Skip to content

Base

The Base XML element is the standard parser & generator that's used by the XML reader and writer.

It spits out a simple PHP array structure during deserialization, that can also be directly injected back into Writer::write.

Properties

value

PHP value to serialize.

protected mixed $value

Methods

__construct

Constructor.

public __construct(mixed $value = null): mixed

Parameters:

Parameter Type Description
$value mixed

xmlSerialize

The xmlSerialize method is called during xml writing.

public xmlSerialize(\Sabre\Xml\Writer $writer): mixed

Use the $writer argument to write its own xml serialization.

An important note: do not create a parent element. Any element implementing XmlSerializable should only ever write what's considered its 'inner xml'.

The parent of the current element is responsible for writing a containing element.

This allows serializers to be re-used for different element names.

If you are opening new elements, you must also close them again.

Parameters:

Parameter Type Description
$writer \Sabre\Xml\Writer

xmlDeserialize

The deserialize method is called during xml parsing.

public static xmlDeserialize(\Sabre\Xml\Reader $reader): mixed

This method is called statically, this is because in theory this method may be used as a type of constructor, or factory method.

Often you want to return an instance of the current class, but you are free to return other data as well.

Important note 2: You are responsible for advancing the reader to the next element. Not doing anything will result in a never-ending loop.

If you just want to skip parsing for this element altogether, you can just call $reader->next();

$reader->parseInnerTree() will parse the entire sub-tree, and advance to the next element.

  • This method is static.

Parameters:

Parameter Type Description
$reader \Sabre\Xml\Reader


Automatically generated on 2025-03-18