Download the PHP package kingson-de/marshal-xml-serializer without Composer
On this page you can find all versions of the php package kingson-de/marshal-xml-serializer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download kingson-de/marshal-xml-serializer
More information about kingson-de/marshal-xml-serializer
Files in kingson-de/marshal-xml-serializer
Package marshal-xml-serializer
Short Description Marshal XML Serializer will directly serialize the data to XML, it is built on top of the Marshal Serializer.
License Apache-2.0
Informations about the package marshal-xml-serializer
Marshal XML Serializer
Introduction
Marshal XML is serializing / marshalling data structures to XML. It is also deserializing / unmarshalling XML back to the data structures.
Installation
Easiest way to install the library is via composer:
The following PHP versions are supported:
- PHP 7.0
- PHP 7.1
- PHP 7.2
- PHP 7.3
Execute tests
Just run:
Or without code coverage:
Usage
How to create Data Structures which can be serialized?
Please check the Marshal Serializer README for more information.
How to use the Marshal XML Serializer library?
The library provides several static methods to create your XML data once you defined the data structures.
Be aware MarshalXml::serializeCollection
and MarshalXml::serializeCollectionCallable
methods are not available.
Collections in XML cannot be generated at root level.
But after defining the root node you can use collections anywhere.
How to define XML attributes?
If you are using a concrete implementation that is extending AbstractXmlMapper you can use the attributes
method.
If you are using a callable you need to use the MarshalXml::ATTRIBUTES_KEY
constant.
This will generate:
How to define XML node values?
This is pretty simple:
This will generate:
How to define XML node values as CDATA?
Then you must use the cdata
method for concrete Mapper implementations or MarshalXml::CDATA_KEY
for callable.
This will generate:
But how to define XML node values if the node also has attributes?
Then you must use the data
\/ cdata
method for concrete Mapper implementations or MarshalXml::DATA_KEY
\/ MarshalXml::CDATA_KEY
for callable.
This will generate:
Deserializing / Unmarshalling
To transform XML back to your structure use Marshal's deserialize functions. You need a class extending the AbstractObjectMapper which will be passed to the deserializeXml function.
Another option would be to use the deserializeCallable function.
Modify existing XML
An easy way to modify existing XML is to use FlexibleData. Here is an example:
License
This project is released under the terms of the Apache 2.0 license.