=== version history of XML::Compile Unless noted otherwise, these changes where initiated and applied by Mark Overmeer. TODO: - improve template output, f.i. anyAttribute, any, maxOccurs > 1, schema recursion. version 0.55: Wed Sep 26 10:32:49 CEST 2007 Changes: - split-off the SOAP and WSDL things into a separate XML::Compile::SOAP distribution, because they need more complex dependencies and need more releases in the near future. - install xsd's automatically in XML/Compile/xsd/ (XML::Compile::SOAP's xsd-files are in XML/Compile/SOAP/xsd/) Improvements: - added display of XML::LibXML version to t/01use.t - accept recursive schema's. Reported by [Scott Peimann] tests in t/62recurse.t - old bug in XML::LibXML shows up in its 1.64 release in combination with the XML::Compile test-set. XML::LibXML 1.65 contains the patch. - skip t/pod.t when manuals are still in OODoc format. - XML::Compile::addSchemaDirs() effects are now global. - XML::Compile::knownNamespaces() can be used to define own files for name-spaces, also global. version 0.54: Fri Sep 14 15:35:53 CEST 2007 Fixes: - XmlReader::block_handler called "last", where "return" was ment, resulting in a warning. [Gert Doering] - Handle case where choice has minOccurs==1, but one (or more) of the options has minOccurs==0... which makes the choice optional implicitly. Found by [Gert Doering] version 0.53: Thu Sep 6 21:15:14 CEST 2007 Changes: - When calling SOAP operations, the elements do not use a Body or Header anymore: these structures are flattened for the user's convenience. Fixes: - totalDigits did only handle floats, not integers. Reported by [Gert Doering] - float values should not show trailing zeros. The use of sprintf "%lf" was superfluous, hence removed. - produce error when pre-installed schemas are not found. Improvements: - a bit of progress on WSDL/SOAP - YAPC::EU 2007 presentation available on the website. version 0.52: Tue Aug 14 09:37:14 CEST 2007 Fixes: - sloppy_integer did not pass some usage restrictions for other than Integer->int translation. version 0.51: Fri Aug 10 14:27:05 CEST 2007 Changes: - the labels for blocks when maxOccurs >= 2 have changed from f.i. 'xyz' into 'seq_xyz', to become clearer. Fixes: - both attribute with own simpleType definition, as attribute ref to attribute with own simpleType were missing. - got direct compilation of top-level attributes to work, and all available soap11 tests with it. Improvements: - much clearer docs about repetative blocks. - reread/corrected a few manual pages, but there is still a lot to do. version 0.50: Thu Aug 9 23:19:19 CEST 2007 MAJOR REWRITE of the schema parser and code generators. Changes: - any maxOccurs >1 will produce/require an ARRAY. Until now, the sequence, all, choice, and group didn't work correctly. - removed a way to catch the errors produced while processing a message: an error is an error (or use hooks). - convert error handling to Log::Report, which allows translations and clean processing. - much improved error messages. - hooks are called differently, to be more useful. Fixes: - the reader now requires the correct order of the elements inside the message. - "any" can appear everywhere, not only at the end of blocks. - "any" now correctly defaults as minOccur==maxOccur==1 - accept attributes for complexType/simpleContent - floating-point restriction (facet) did not process well. - an empty XML container will be produced when an {} was given: it will not be ignored. - improved template output Improvements: - added t/pod.t, which flagged some (produced) pod errors - added XML::Compile::Iterator, to ease the implementation of XML::Compile::Schema::Translate - more checks whether the schema is sound. - added XML::Compile::Util - removed XML::Compile::parse() and parseFile() from the public interface. - in doc: schema's should be schemas [Sven Neuhaus] - many more tests - no need for wsdl-patch.xsd anymore. version 0.18: Wed Jun 6 22:46:44 CEST 2007 Changes: - renamed XML::Compile::Schema::importData() into ::importDefinitions() - renamed XML::Compile::WSDL::addSchemas() into ::importDefinitions() - Schema::addSchema() will only add parsed XML. Use Schema::importDefinitions() to added any (other) kind of data. - reworked Namespaces::findElement() and ::findType() into ::find(KIND, ...) - upgraded XML::LibXML requirement to 1.63 Fixes: - Added dependency for IO 1.22 (IO::File) - Preference to address elements with a certain name, about types. - Regular expression for all date types was not precise enough. Now following the specs more closely. Bug report from [Gerard Gerritsen] - Namespace of schema now separates attributeGroup and group names from element, attributes and types. - include_namespaces parameter to Schema::compile() was always set to 1. Improvements: - added xsd/2003-* for SOAP1.2 - initial implementation for SOAP in lib/XML/Compile/SOAP.pm and lib/XML/Compile/SOAP/SOAP1[12].pm - hooks with type/id/path will be invoked on all nodes. - removed Translate::reference(), in favour of a reference lookup per kind of object. - ::Translate::element_by_node() renamed to ::element(). - ::Schema::compile() and ::template() do not check provided name anymore, but leave that to ::Translate::new() - ::Schema::compile(elements_qualified) now can limit ns-qual to the TOP element only. version 0.17: Tue Mar 20 12:21:57 CET 2007 Improvements: - added XML::Compile::Dumper and t/21dump.t. Added automatic compatibility tests with non-dumped parsing. However, this results in "PmmREFCNT_dec: REFCNT decremented below 0! during global destruction." errors in XML::LibXML, so is disabled by default (see $skip_dumper in t/TestTools.pm) version 0.16: Sun Feb 25 00:28:48 CET 2007 Changes: - rename Schema::importSchema() into Schema::importData(), because its parameter is very different from what addSchemas() expects but the name was too close. - added patch to WSDL, to simplify the tOperation type, which is overly complex. - now all four kinds of operations are detected. - build-in type anyURI is relative, hence cannot be checked at parse time. This means that XML::Compile doesn't need Regexp::Common anymore (which was a forgotten dependency). version 0.15: Fri Feb 16 16:21:59 CET 2007 Changes: - removed "top()" from XML::Compile, because with multiple XML sepcification files, there is no real "top" element. Fixes: - do not destroy caller's data when creating complex or tagged elements. - added missing str2num() in BuiltInTypes for floats and doubles. Improvements: - move non-distributed xsd's to private dir. - added XML::Compile::WSDL and t/80wsdl.t, partial implementation - added XML::Compile::SOAP::Operation, partial implementation - added reader hooks and t/60hooks_r.t - added writer hooks and t/61hooks_w.t - implemented attribute by ref version 0.14: Tue Jan 30 12:30:34 CET 2007 Fixes: - Sequence of choices will multiply min/max. Required to understand WSDL. - Give error on unknown particles. Improvements: - Implemented 'any' element - fields of type QName are translated from "prefix:type" into "{namespace}type". - Makefile.PL requires 5.8.0, which is probably still a mild setting. XML::LibXML is probably more demanding. version 0.13: Mon Jan 29 00:11:12 CET 2007 Fixes: - One place with nested Complex extensions, but more may need fixing. Improvements: - Added WSDL and SOAP schema's - fixed importSchema() where addSchema() missed an 's' -> addSchemas(). - XML::Compile::new() now also accepts a filename, a ref Scalar, and pre-defined name-spaces. - skip key, keyref, unique, selector, fields elements; just like notation and annotation are lost. - defined top-level element "attribute", but not yet used. Only useful in anyAttribute, which is not checked. - check all top-level elements for their name, to find typo's. - implemented anyAttribute - XML::Compile::dataToXML is used to accept user spec of XML on many places. version 0.12: Tue Dec 19 15:22:59 CET 2006 Fixes: - fixed attributes can be optional. [Igor Shynkarev] - correct dateTime values were disapproved. [John R.] - converted to use oodist script (new feature of OODoc) version 0.11: Wed Oct 25 08:08:20 CEST 2006 Fixes: - Need to use "getChildrenBy..." in stead of "getElementsBy" in XmlReader, because otherwise we search the whole tree. Problem reported by [Igor Shynkarev] Improvements: - When the reader is called with a document, its document-element is taken automatically. In response to [Igor Shynkarev] - First attempt for XML template output. version 0.10: Tue Oct 24 11:40:09 CEST 2006 Fixes: - Some minor cleanups in XmlWriter - Now depends on XML::LibXML 1.61, which has a lot of improvements and fixes. As disadvantage does it require a recent libxml2, which is only included with very recent Linux distributions. - t/49big.t test failed when installed on 64bit Perl, because one of the test-values was smaller then MAX_INT in that case. - Default attribute type anyType. - anyType is correct namespace. - Type resolving when schemaNamespace is not the default was broken. - Complex body permitted to be empty. - Default for "check_occurs" set to `true', because default should give best results. - Missing element with default gave error when check_occurs. Improvements: - Added Template.pm to produce a Perl template example of a certain type. See XML::Compile::Schema::template() - Implemented type definitions contain an example which is used for the templates. version 0.09: Mon Sep 25 08:40:24 CEST 2006 Fixes: [thanks to cpan-testers work by Slavan Rezic] - MANIFEST not correct: contained old files - Removed dependency for Regex::Common, added Math::BigInt - Upgraded to XML::LibXML 1.60, which changed from Attribute handling. Improvements: - Reorganized order in some man-pages. version 0.08: Fri Sep 22 15:52:49 CEST 2006 Improvements: - Turned XML::Compile::Schema::Translate into a singleton object, and reshaped functions into methods. The arguments hash intern in object. Together much cleaner. - Replaced use of "croak" for errors during translation into a call to the error() method, with nicer and more consequent error text layout. - Split XML::Compile::Schema::BuiltinStructs into lazy loading XML::Compile::Schema::XmlReader and ::XmlWriter. version 0.07: Thu Sep 21 15:06:05 CEST 2006 - implemented substitution-groups - implementation of ref-element was bogus. - improved documentation (more about Schemas) - $schema->addSchemas from text - $schema->importSchema() with support of search-path. Schema's not automatically installed (yet) - added other schema's to the distribution. version 0.06: Thu Sep 14 10:10:31 CEST 2006 - The internals of the translator (and the produced code) are fully rewritted to support complexType/simpleContent in a clean way. - better support for list. - major improvements in the documentation. version 0.05: Sun Aug 27 12:00:00 CEST 2006 - Release as OODoc processed package :( version 0.04: Sun Aug 27 11:49:54 CEST 2006 - Rewrote the particle handling to better process nesting and min/maxOccurs. - Many rewrites to implement complexType/simpleType processing. - Extended list describing missing features (and resolved quite a few of them). Parser is much stricter now, closer to the specs. version 0.03: Tue Aug 15 09:13:06 CEST 2006 - Doc about what to pass as type to compile() was not updated. - Added attribute default, fixed and use=forbidden. - Added simpleType within list. - Added memberTypes with union. version 0.02: Mon Aug 14 13:42:02 CEST 2006 - Perl internal integer dependent size of INT_MIN and INT_MAX to avoid use of BigInt. Idea by [Merijn H Brand] - Added type assertions to translator, to check known attributes to follow the spec. - All constructing routines are called with ($path, $args, ...) where before, the $args option had different locations in the parameter lists. - Moved element fixed tests to t/47fixed.t, reimplemented it to make it work with BigInt. - Implemented element default and t/48default.t - Non-sloppy integers implemented in BigInts, tests t/49big.t - Element ref() should not specify own name. - XML::Compile::Schema::Instance collects info about one single schema. - XML::Compile::Schema::Namespaces collects schema instances. - Under fly adding of schemas with ::Schema::addSchema - understands qualified and unqualified processing - and many more... version 0.01: Wed Jul 26 12:19:10 CEST 2006 - initial version