<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
<package version="1.0">
  <name>XML_Serializer</name>
  <summary>Swiss-army knive for reading and writing XML files. Creates XML files from data structures and vice versa.</summary>
  <description>XML_Serializer serializes complex data structures like arrays or object as XML documents.
This class helps you generating any XML document you require without the need for DOM.
Furthermore this package can be used as a replacement to serialize() and unserialize() as it comes with a matching XML_Unserializer that is able to create PHP data strcutures (like arrays and objects) from XML documents, if type hints are available.
If you use the XML_Unserialzer on standard XML files, it will try to guess how it has to be unserialized. In most cases it does exactly what you expect it to do.
Try reading a RSS file with XML_Unserializer and you have the whole RSS file in a structured array or even a collection of objects, similar to XML_RSS.

Since version 0.8 the package is able to treat XML documents like the simplexml extension of PHP 5.</description>
  <maintainers>
    <maintainer>
      <user>schst</user>
      <name>Stephan Schmidt</name>
      <email>schst@php-tools.net</email>
      <role>lead</role>
    </maintainer>
  </maintainers>
  <release>
    <version>0.13.1</version>
    <date>2004-11-26</date>
    <license>PHP License</license>
    <state>beta</state>
    <notes>Serializer:
- fixed error handling (suppress error handling, when XML_Util returns an error) (patch by Lukas Smith)
- replaced some left-over tabs with spaces</notes>
    <deps>
      <dep type="pkg" rel="ge" version="0.4.2" optional="no">XML_Util</dep>
      <dep type="pkg" rel="ge" version="1.1.0" optional="no">XML_Parser</dep>
      <dep type="pkg" rel="has" optional="no">PEAR</dep>
    </deps>
    <filelist>
      <file role="data" baseinstalldir="XML" md5sum="94b6430d469c935aa398185f4346fc3f" name="doc\todo.txt"/>
      <file role="doc" baseinstalldir="XML" md5sum="e9eabbdfdcfc442be88d446648206c3c" name="examples\example.xml"/>
      <file role="doc" baseinstalldir="XML" md5sum="dde7be256b3d0823d252f37650af1955" name="examples\serializeArrayWithObjects.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="0f2ec73fb8cad2bdaa8958f8c75f2544" name="examples\serializeEmptyArray.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="d956dc15f08a4fb8ea301fca1b09e90f" name="examples\serializeIndexedArray.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="95771ace332eaef261474f89dc275747" name="examples\serializeObject.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="7a90c462e03e288a75423a1ced4642f3" name="examples\serializeRDF.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="f509afa024e0454d627153e54f0b9ec8" name="examples\serializeWithAttributes.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="20f92c39706caae8db9b88667d0757fe" name="examples\serializeWithAttributes2.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="d20caa0cca96ce5afa0e54b654b40bf1" name="examples\serializeWithDtd.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="c6d966fc7173eb38a94a534024067bb0" name="examples\serializeWithIndentedAttributes.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="045d677da61de0aef6a882f8d0571798" name="examples\serializeWithTagMap.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="652d0f0e2020758f19897115d59f9883" name="examples\unserializeAnyXML.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="2ac56910b59cc8f69e6a20bf9851774a" name="examples\unserializeEnum.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="cc6b33b4f0f7b84a771d2cb506f83b2f" name="examples\unserializeObject.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="0d094fbd7787b073b910b21d6dfd19ee" name="examples\unserializeRDF.php"/>
      <file role="doc" baseinstalldir="XML" md5sum="4b20ba86c0afbbb4b0e873b7a4ddd324" name="examples\unserializeWithAttributes.php"/>
      <file role="php" baseinstalldir="XML" md5sum="3ba428aa9edae39aaf538432ac44b97d" name="Serializer.php"/>
      <file role="php" baseinstalldir="XML" md5sum="901c79b0f4af50d7a4a4e77efd3a9c43" name="Unserializer.php"/>
    </filelist>
  </release>
  <changelog>
    <release>
      <version>0.2</version>
      <date>2003-08-03</date>
      <state>beta</state>
      <notes>inital release
</notes>
    </release>
    <release>
      <version>0.4</version>
      <date>2003-08-12</date>
      <state>beta</state>
      <notes>added Unserializer
removed bug with object typehint
removed bug with unnameditem w/o _originalKey attribute
uses XML_Util to validate tagname
serializer does not break on resources anymore
added support for __sleep() and __wakeup()
</notes>
    </release>
    <release>
      <version>0.5</version>
      <date>2003-08-14</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>Unserializer is now able to unserialize XML files w/o type hints by automatically transforming multiple occurences of the same tag to an indexed array
This is now similar to ext/simpleXML in PHP5 that means it can be used to parse any XML file, try it with your favorite RSS feed
</notes>
    </release>
    <release>
      <version>0.6</version>
      <date>2003-08-21</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>Unserializer is able to return the name of the root tag,
added 'complexType' option to XML_Unserializer,
added possibility to create nested objects from any XML file,
tagname is used as classname if no other class is specified,
added 'overrideOptions' option that can be used to restore the default options for a serialization,
added 'keyAttribute' option to XML_Unserializer,
added Todo list
</notes>
    </release>
    <release>
      <version>0.8</version>
      <date>2003-09-23</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>XML_Serializer:
* added option: scalarAsAttribute to create tags with attributes from an array or object,
* added option: prependAttributes to enable a prepend string for attributes (ensure they are different from type hints),
* added option: attributeIndent to allow multiline tags, if a tag has several attributes; this makes it easier to read (requested by Yavor Shahpasov),
* now requires XML_Util 0.4.1 or newer,
* added option: mode =&gt; simplexml, allows you to serialize indexed arrays like simpleXML of PHP5 does: tags use name of the parent structure and are in the same depth (this is still in alpha state, not thoroughly tested)

XML_Unserializer:
* added option: parseAttributes which allows you to parse tags with attributes,
* added option: attributesArray to specify the name of the array in which attributes should be stored,
* added option: prependAttributes to specify a prepend string for the generated array keys,
* added option: contentName to specify the key for the content of a tag that contains also attributes
* added option: tagMap, to change the names of the tags while parsing

Both:
* removed bug that occured when instantiating w/o options (reported by Alan Knowles),
* added options: keyAttribute, typeAttribute and classAtribute to allow user to specify attribute names for typehints,
* added resetOptions(),
* added setOption(),
* added option: overrideOptions that allows you to reset to defaults for one call of serialize or unserialize,
* added some very small docs to defaultOptions arrays
</notes>
    </release>
    <release>
      <version>0.8.1</version>
      <date>2003-09-23</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>Bugfix release
                                        
XML_Serializer:
* removed bug when using mode =&gt; simplexml and indexed arrays contained only scalar values,
* removed bug with missing _originalKey attribute when serializing objects

XML_Unserializer:
* added check for set{$propName} method to use methods to set properties in Unserializer instead of direct access
</notes>
    </release>
    <release>
      <version>0.9</version>
      <date>2003-10-13</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>XML_Serializer:
+ added support for doctype declaration (requested by Lapo 'Raist' Luchini),
* changed tagName option to rootName option (tagName is still supported but deprecated),
+ added rootAttributes option (thanks to Lapo 'Raist' Luchini),
+ added rootName option for serializing objects

XML_Unserializer:
* removed bug with unserializing aggregated objects
</notes>
    </release>
    <release>
      <version>0.9.1</version>
      <date>2003-10-26</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>fixed bug #105
</notes>
    </release>
    <release>
      <version>0.9.2</version>
      <date>2004-04-23</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>fixed invalid multiple call to XML_Parser constructor
</notes>
    </release>
    <release>
      <version>0.10.0</version>
      <date>2004-05-24</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>- fixed bug #1478 (Array to string conversion)
- fixed bug #170 (RDF examples produce incorrect code)
- added new options to XML_Serializer: attributesArray and contentName to match XML_Unserializer
</notes>
    </release>
    <release>
      <version>0.10.1</version>
      <date>2004-07-12</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>fixed bug #1846 (unserialization bug with empty arrays)
</notes>
    </release>
    <release>
      <version>0.11.0</version>
      <date>2004-08-24</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>Serializer:
- Request #2019 (use classname as tagname in indexed arrays)
- replaced double quotes with single quotes
- some CS fixes

Unserializer:
- added new option 'forceEnum'
- replaced double quotes with single quotes
</notes>
    </release>
    <release>
      <version>0.11.1</version>
      <date>2004-08-25</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>Serializer:
- fixed bug with default line endings
</notes>
    </release>
    <release>
      <version>0.12.0</version>
      <date>2004-11-03</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>Serializer:
- added new option tagMap (requested by Toby)
Unserializer:
- added encoding option (thanks to mc[at]glouglou[dot]net)
</notes>
    </release>
    <release>
      <version>0.13.0</version>
      <date>2004-11-06</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>Serializer:
- fixed bug #2688: in simplexml mode $array needs to be non-empty (thanks to demian[at]phpkitchen[dot]com and derek[at]hostbaby[dot]com)
Unserializer:
- implemented Request #2650: Multiple key attributes
</notes>
    </release>
    <release>
      <version>0.13.1</version>
      <date>2004-11-26</date>
      <license>PHP License</license>
      <state>beta</state>
      <notes>Serializer:
- fixed error handling (suppress error handling, when XML_Util returns an error) (patch by Lukas Smith)
- replaced some left-over tabs with spaces
</notes>
    </release>
  </changelog>
</package>
