- No functional changes since 0.4.3. Marking it as 1.0.0 as a promise for API stability.
- Using php-cs-fixer for automated CS enforcement.
- Minor tweaks for the public release.
- Removed
constants.php
again. They messed with PHPUnit and don't really provide a great benefit. - #41: Correctly handle self-closing xml elements.
- #40: An element with an empty namespace (xmlns="") is not allowed to have a prefix. This is now fixed.
- Added
Sabre\Xml\Service
. This is intended as a simple way to centrally configure xml applications and easily parse/write things from there. #35, #38. - Renamed 'baseUri' to 'contextUri' everywhere.
- #36: Added a few convenience constants to
lib/constants.php
. Sabre\Xml\Util::parseClarkNotation
is now in theSabre\Xml\Service
class.
- Added
XmlDeserializable
to matchXmlSerializable
.
- Added
$elementMap
argument to parseInnerTree, for quickly overriding parsing rules within an element.
- Now depends on sabre/uri 1.0.
- LibXMLException now inherits from ParseException, so it's easy for users to catch any exception thrown by the parser.
- Major BC Break: method names for the Element interface have been renamed
from
serializeXml
anddeserializeXml
toxmlSerialize
andxmlDeserialize
. This is so that it matches PHP'sJsonSerializable
interface. - #25: Added
XmlSerializable
to allow people to write serializers without having to implement a deserializer in the same class. - #26: Renamed the
Sabre\XML
namespace toSabre\Xml
. Due to composer magic and the fact that PHP namespace are case-insensitive, this should not affect anyone, unless you are doing exact string matches on class names. - #23: It's not possible to automatically extract or serialize Xml fragments
from documents using
Sabre\Xml\Element\XmlFragment
.
- #16: Added ability to override
elementMap
,namespaceMap
andbaseUri
for a fragment of a document during reading an writing usingpushContext
andpopContext
. - Removed:
Writer::$context
andReader::$context
. - #15: Added
Reader::$baseUri
to matchWriter::$baseUri
. - #20: Allow callbacks to be used instead of
Element
classes in theReader
. - #25: Added
readText
to quickly grab all text from a node and advance the reader to the next node. - #15: Added
Sabre\XML\Element\Uri
.
- Added:
CData
element. - #13: Better support for xml with no namespaces. (@kalmas)
- Switched to PSR-4 directory structure.
- Added: baseUri property to the Writer class.
- Added: The writeElement method can now write complex elements.
- Added: Throwing exception when invalid objects are written.
- Fixed: The KeyValue parser was skipping over elements when there was no whitespace between them.
- Fixed: Clearing libxml errors after parsing.
- Added: Support for CDATA.
- Added: Context properties.
- Changed: Reader::parse returns an array with 1 level less depth.
- Added: A LibXMLException is now thrown if the XMLReader comes across an error.
- Fixed: Both the Elements and KeyValue parsers had severe issues with nesting.
- Fixed: The reader now detects when the end of the document is hit before it should (because we're still parsing an element).
- Added: Elements parser.
- Added: KeyValue parser.
- Change: Reader::parseSubTree is now named parseInnerTree, and returns either a string (in case of a text-node), or an array (in case there were child elements).
- Added: Reader::parseCurrentElement is now public.
- First alpha release
Project started: 2012-11-13. First experiments in June 2009.