Change History for libxml-enno: Some entries in this file have module specific prefixes, e.g DOM for XML::DOM, XQL for XML::XQL and CHK for XML::Checker. See Changes.DOM, Changes.XQL and Changes.Checker for the change history prior to libxml-enno 1.00. 1.02 (enno) - This release fixes some installation related stuff. - Changed =head3 pod directives to =head2 in XML/Checker.pm This used to cause warnings when generating the man pages with pod2man. - Changed dependency of XML::Parser::PerlSAX to require version 0.07. libxml-perl 0.06 had a bad version number, causing a warning when doing 'make'. - Removed the libxml-enno.ppd file from the distribution. As Matt Sergeant pointed out, these PPD files are platform dependant and you can generate them yourselves with 'make ppd'. If you still need one, try Simon Oliver's website (see below.) 1.01 (enno) 2/17/2000 - This release contains XML::DOM 1.27, XML::XQL 0.63 and XML::Checker 0.09. - Added FAQ.xml (Needs more stuff.) - Added dependencies in Makefile.PL for LWP::UserAgent and XML::Parser::PerlSAX. See Makefile.PL for details. - Fixed XML::Filter::SAXT (a PerlSAX that works like Unix' tee command.) - Renamed XML::DOM::PerlSAX to XML::Handler::BuildDOM. A warning will be issued with -w if your code uses XML::DOM::PerlSAX. The reason for this change is that the new name is more consistent with how other PerlSAX related classes are named. Also added a test case for it in t/build_dom.t. - Added XML::Filter::DetectWS, a first stab at a PerlSAX filter that detects ignorable whitespace. Needs more testing! - Added XML::Filter::Reindent, a first stab at a PerlSAX filter that removes and inserts whitespace into the PerlSAX event stream to reindent the XML document for pretty printing functionality. Needs more testing! - Added XML::Handler::Composer. Yet another XML printer/writer that has several features missing in other implementations. See docs for details. Needs more testing! - Added bin/pretty.pl, an XML pretty printer that uses the previous 3 classes. - Added XML::UM for encoding support when printing XML. Needs more testing! - Added XML::Handler::PrintEvents for debugging PerlSAX filters/producers. - Added a PPM description called: libxml-enno.ppd I have no idea whether or how it works, so let me know! (Thanks to Simon Oliver <Simon.Oliver@umist.ac.uk>, who has more package files at http://www.bi.umist.ac.uk/packages) - DOM: Reimplemented all Node types as a blessed array reference instead of a blessed hash reference. This should speed things up and consume less memory. Downside is that the code is harder to read and it's harder to extend the Node classes. - DOM: In XML::DOM::Element, attributes are stored in a NamedNodeMap with the hash key 'A' (i.e. _A). Previously, the NamedNodeMap object was created even if there were no attributes. For speed and memory reasons, we now create the NamedNodeMap objects only when needed. - DOM: The parsefile() method of XML::DOM::Parser now supports URLs. It uses LWP to download the remote file. See XML::DOM::Parser documentation for more info. This probably belongs in XML::Parser. - DOM: Added new test cases in t/dom_jp_*.t and a Japanese XML file in samples/minutes.xml. (Thanks to OKABE, Keiichi <email@example.com>) - DOM: Added support for parameter entity references (e.g. %pent;) in the DTD. If the reference points to a SYSTEM entity and XML::Parser read and expanded it (ParseParamEnt=1) and XML::DOM::Parser option ExpandParamEnt=0, then it will still add the contents of the entity to the DTD, but the nodes are flagged as 'Hidden'. In this case, it will also add an EntityReference node to the DTD. The Hidden nodes are skipped when printing, so this way you can suppress the expansion of external parameter entity references. Note that we still want to add these hidden nodes to the DTD, because they might contain e.g. ENTITY declarations that can be referenced further in the document. See new testcase t/dom_extent.t. (Thanks to Guillaume Rouchy <firstname.lastname@example.org>) - XQL: all XML::XQL::Operator classes now 'use fields', which makes them faster and smaller (see man fields(3) and man base(3)). - XQL: the minus '-' sign is now allowed in XQL function names etc. - XQL: added the XQL+ document() method, which creates XML::DOM::Documents on the fly. The document() parameter can be a simple string (i.e. filename or URL) or a query that evaluates to a bunch of filenames. See XML::XQL for details. See also new test case: t/xql_document.t - XQL: added the following methods which were found in the XPath spec to XQL+: round, floor, ceiling, concat, starts-with, contains, substring-before, substring-after, substring (not the same as substr, the index is 1-based!), translate, string-length (similar to length, but is also a method), normalize-space, sum. Also added ends-with, which is not part of XPath. See XML::XQL(3) for details. - XQL: added XML::XQL::Query::dispose(). Call dispose on your query object to clean up circular references after you're done and avoid memory leaks. - CHK: error 103 (undefined attribute) was not detected in all cases. (Thanks to Mark Hewis <email@example.com>) - CHK: error 103 - The error context used to contain the hash key 'Elem', but since all other errors use 'Element', this was changed to 'Element' as well. - CHK: The parsefile() method of XML::Checker::Parser now supports URLs. It uses LWP to download the remote file. See XML::Checker::Parser documentation for more info. - CHK: Fixed attlist_decl() handler to use 'ElementName' instead of 'EntityName'. 1.00 (enno) 10/26/1999 - This is the first version of libxml-enno. It contains XML::DOM 1.26, XML::XQL 0.62 and XML::Checker 0.08. See Changes.DOM, Changes.XQL and Changes.Checker for the change history prior to libxml-enno. - I redid the html documentation. Lots of cross links, more info. Check it out! - Added XML::DOM::PerlSAX. It's a PerlSAX handler that builds DOM trees. - Added XML::Filter::SAXT. It's a PerlSAX handler that forwards the callbacks to 2 or more PerlSAX handlers, kind of like the Unix 'tee' command. - Added XML::RegExp. It contains regular expressions for several XML tokens, as defined in the XML spec. - DOM: XML::DOM warnings now go thru XML::DOM::warning() (which uses warn by default) You can redefine XML::DOM::warning() to change this behavior. Currently, warning() is called only in one place: in XML::DOM::AttListDecl::addAttDef when multiple attribute definitions exist for the same attribute. - DOM: I added the xql() method to XML::DOM::Node as yet another shortcut to perform XQL queries on nodes. Make sure you 'use' XML::XQL and XML::XQL::DOM. - XQL: Added the '..' operator. If '.' returns the current node, '..' returns the parent node. This is not standard XQL. - XQL: Removed $`, $' and $& from code to speed up pattern matching in general - XQL: The query parser used to allow bogus characters after a valid expression. It now croaks when there is stuff left over. (Thanks to Jack Chu <Jack_Chu@mail.bankone.com>) - XQL: Added links to Japanese versions of XML::XQL and XML::XQL::Tutorial by Takanori Kawai (aka Hippo2000 <firstname.lastname@example.org>) to the XML::XQL documentation and web pages - XQL: The `tput ...` calls were put in a wrapper function that checks the OS its running under to prevent warning messages under Windows. - CHK: XML::Checker now implements the PerlSAX Handler interface. - CHK: Fixed XML::Checker::Parser to use XML::Parser::Expat::specified_attr to determine which attributes were specified (and which were defaulted by expat.) (I was using original_string before and parsing the string myself to figure out which attributes were specified, but there was a bug in my code which would generate bogus error-159's.) (Thanks to Jim Anderson <email@example.com>) - CHK: External DTDs with relative file paths (and without the 'file://' prefix) are now located using SGML_SEARCH_PATH. See XML::Checker::Parser pod for details. (Thanks to Stephane Bortzmeyer <firstname.lastname@example.org>) - CHK: XML::Checker::DOM is now obsolete. I moved the functionality to XML::DOM. - CHK: The error descriptions in the XML::Checker manual page now have links to the appropriate sections and Validity Constraints in the XML spec.