=== version history of XML::Compile Unless noted otherwise, these changes where initiated and applied by Mark Overmeer. To be resolved: - length facet on base64/hex encoding about binary length - handle XML::LibXML::Error objects - useSchema() relation to ::Cache::declare()? - proposed new schema features: . alternative http://www.ibm.com/developerworks/library/x-xml11pt2/#N103D7 . ::Instance cannot handle element and attribute declaration attribute "targetNamespace" (proposed schema feature) - namespace blocking option for templates; exclude deprecated elements version 1.12: Mon Jan 11 11:46:43 CET 2010 Fixes: - writer: optional block was not optional [Roman Daniel] - accept xsi:type with alternative in namespace which is not used by the schema itself [Roman Daniel] version 1.11: Fri Jan 8 12:37:23 CET 2010 Fixes: - forgot to document the new xsi_type option to ::Schema::compile() - implement facets on lists correctly. Tests in new t/55facet_list.t Pushed by rt.cpan.org #53392 [Николай Шуляковский] version 1.10: Thu Dec 24 16:56:13 CET 2009 Changes: - keyRewrite now also applies to attributes. Fixes: - writer sometimes destroyed the data-structure which was passed in. Now automatically tested for each test_rw. - support sub-seconds in time format. - writer: do not produce an empty element when minOccurs is combined with nillable in a complexType. rt.cpan.org#51264 [Roman Daniel] - ::Iterator::currentType() could crash. Improvements: - writer: major readibility changes. - all: implemented xsi:type - template: do not produce superfluous quotes in Perl template examples when anonymous HASH of ARRAY is included. version 1.09: Fri Nov 13 10:56:45 CET 2009 Fixes: - writer: do not produce an empty element when minOccurs is combined with nillable in a simpleType rt.cpan.org#51264 [Roman Daniel] Improvements: - template: use prefixes to avoid namespaces in types. version 1.08: Sat Oct 24 20:11:10 CEST 2009 Fixes: - reader: fix last parameter of replacement hook Improvements: - template: support for key_rewrite - use the new XML::LibXML::RegExp, to replace tricky XML::RegExp. version 1.07: Mon Jun 22 11:35:22 CEST 2009 Fixes: - mixed attribute on complexContent not detected. - anyType elements which have sub-elements will not stringify, but only simple strings will get simplified. Otherwise, an XML::LibXML::Node is kept. Improvements: - reader: anyType element processing can be hooked via a new compile(any_type) option. - partial support for attribute targetNamespace on element and attribute declarations. Currently produces a warning. version 1.06: Thu May 28 10:28:45 CEST 2009 Fixes: - prefer simpleType child over base type attribute in simpleContent/restriction. rt.cpan.org#46212 [Erich Weigand] Improvements: - ignore all references to an (unloaded) schema, for instance with deprecated structures via ::compile(block_namespace) with tests in t/76blocked.t - fixed tests in t/91noqual.t - include t/75type.t in the distribution. - added test for base64Binary to t/21types.t - reader and writer: replace hook also gets code-ref able to process what is being replaced, implementing a wrapper. version 1.05: di apr 28 13:04:42 CEST 2009 Improvements: - writer: accept single element for tagged and mixed. - writer: accept scalar for mixed, upgraded to text node. version 1.04: Fri Apr 24 16:08:43 CEST 2009 Fixes: - the use of cached schema elements must be limited to single ::Schema objects (for instance per WSDL object). rt.cpan.org#44959 [Jozef Kutej] - complex extension of anyType types. Improvements: - document that key_rewrite only applies to elements, not attributes. - add 'target_namespace' overrule option to importDefinitions() and ::Schema::addSchemas() - have ::Schema::new() pass options to importDefinitions() - added various entries about fixing-up schema's to the FAQ. version 1.03: Wed Mar 25 15:41:43 CET 2009 Fixes: - template: protect output against combinatorial explosion, which did hurt [Anton Berezin] Improvements: - new option ::Schema::compile(abstract_types) - template: compact the output of substitutionGroups, leaving the abstract types out and use columns in the display. - template: add namespace details to XML and PERL output - template: add header to XML and PERL output. New option ::Schema::template(skip_header) version 1.02: Thu Feb 12 11:37:49 CET 2009 Fixes: - fix useSchema() deep recursion - writer: repair ARRAY complaint when scalar given on place where an array of values is acceptable. [Allan Wind] version 1.01: Thu Feb 12 09:39:50 CET 2009 Fixes: - do not use /bin/pwd in t/pod.t - writer: report warnings when accepting a difficult construction. - key_rewrite(PREFIXED) options now do stack, without the possibility to get it rewritten twice. - reader: complain if no data was recognized. [Jozef Kutej] - handle schema's with targetNamespace but not qualified elements. http://www.w3.org/TR/xmlschema-0/#UnqualLocals [Jozef Kutej] Improvements: - ::Schema::useSchema() let you share definitions between various ::Schema extensions. - document that XML::Compile::dataToXML() can be used as instance method as well. version 1.00: Wed Jan 21 10:51:23 CET 2009 Changes: - oops, rename elementFormDefault parameters into element_form_default. Breaks only XML::Compile::SOAP 2.00_01 - substitutionGroup keys did not get prefixed, when key_rewrite was enabled. Fixes: - writer: name-space qualified for NIL [Mark Blackman] - template: be more careful not to put trailing '}' on a line with comment. - writer: contents of tagged elements were not processed, so not checked or whitespace corrected. - report rewritten key when required value is missing, not the full key. - compile(mixed_elements=STRUCTURAL) was ignored when the mixed option was found with the complexContent. Improvements: - template: hook "COLLAPSE" to reduce output size for well-known types. - writer: accept {_ => $value} as alternative for $value. - writer: optimize seq block with one block element. - added XML::Compile::Util::even_elements() - writer: show available tags in complex block with unused tags when in debug mode. - show substitutionGroup members in debug mode. Requires Log::Report v0.21 - make addHooks() use addHook(), easier to override. - reader: elements with mixed="true" by default only unpacks the ATTRIBUTES. It is hard to figure-out why the node is not translated into Perl. Therefore, the resulting HASH now contains a _MIXED_ELEMENT_MODE key as explanation. - with "Log::Report mode => 'DEBUG'", you may get extra help on some errors. version 0.99: Mon Dec 29 10:16:28 CET 2008 Changes: - reset "used count" when include_namespaces - Qname will not complain about "unused namespace", because that is often not true. If true, than you have to provide a the compile(prefixes) as HASH with used flag set. Fixes: - elements and attributes with non-default "form" attribute were not recognized. - type-based replace hook selected too often. Improvements: - compile(include_namespaces) can have a code reference to filter included namespace declarations to be included. - addSchemas/importDefinitions now have options {element,attribute}FormDefault to overrule the (missing) info in many (old) schemas (even those of soap and wsdl). - dataToXML() also finds filenames in the SCHEMADIR, not only known namespaces. That was always intended to happen. - optimize reading of complex with zero or one component. - new reader hook after => 'NODE_TYPE' - error when schema definition contains components of other namespaces. - you now can compile types only, where the schema does not contain the definition of the element which will be produced. But I will not tell you how until the interface has settled ;-) version 0.98: Tue Dec 16 08:32:04 CET 2008 Fixes: - writer failed for choice with an element containing a false value, like "0" or ''. Reported by [Sander Hulst] - do not attempt to add namespace declarations to produced attributes in the writer. - elements with minOccurs=0/maxOccurs=unbounded and optional content failed. rt.cpan.org#41725 [Osfameron] Improvements: - easier to understand error messages in block writer. - started XML::Compile::FAQ version 0.97: Mon Nov 24 15:51:54 CET 2008 Fixes: - dataToXML() with document node will return document element. - dateTime reversed minutes/seconds. Fixed by [Allan Wind] - dateTime timezone part is optional. Fixed in docs by [Allan Wind] - count error with array of elements writer, when maxOccurs is an integer value larger than 1. An error will be produced when too many elements are provided. Improvements: - bigfloat support for xml2yaml [Slaven Rezic] version 0.96: Fri Oct 10 16:02:09 CEST 2008 Fixes: - warning condition on old libxml2 version was broken: warned too often. rt.cpan.org#39807 [Joerg Plate] - overruling "qualified" on top-level elements did not work anymore. - writer hook "replace" crashed on missing (optional) data. version 0.95: Wed Oct 1 17:38:07 CEST 2008 Fixes: - top-level elements could not be have as nillable, default, and fixed. rt.cpan.org#39215 [Tom Hukins] - do pattern match on unmodified float values. rt.cpan.org#39224 [MIROD] - automatically defined xsi when any element is nillable. You will still need to specify "include_namespaces => 1" to have the compiler add the name-space definition to the root namespace. For the moment only supports SCHEMA2001 - the applications of facets is explicitly ordered, to avoid colissions between checks in lexical space and conversions made in value-space. - accept but ignore minScale and maxScale facets (cannot be represented in Perl objects yet) - removed facet totalFracDigits, which does not exist. How did it get in? - precissionDecimal was handled as int, should be float. - positiveInteger value check broken. [Sander Hulst] - accept the 'error' base-type. Improvements: - small (<1e9) float/decimal values will not become Math::Big* - facet lists and non-lists various optimizations in reader. - pre-lexical facet whiteSpace on list does not need to be checked in writer. - handling of (+|-|)INF and NaN for precissionDecimals, floats and doubles. - adapt names of test helpers to new X::C::Tester standard. v0.03 of that module is now required. version 0.94: Tue Aug 26 10:09:05 CEST 2008 Fixes: - repair whitespace facets collapse and replace. [Allan Wind] - NMTOKEN has no blanks, but token may have them. rt.cpan.org#38675 [Allan Wind] Improvements: - show more useful features of Log::Report in ::Schema SYNOPSIS version 0.93: Mon Aug 11 21:13:22 CEST 2008 Changes: - changed order of attributes back to situation of 0.90: the base-class attributes are probably more important than the attributes of the extension. - groups with maxOccurs > 1 renamed from gr_