=== 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,
version 0.62: Tue Nov 27 12:23:38 CET 2007
Fixes:
- Remove requirement for Data::Dump::Streamer.
version 0.61: Tue Nov 27 11:43:08 CET 2007
Changes:
- Moved XML::Compile::Dumper from this distribution into
its own.
Fixes:
- ::compileClient(element_qualified => 'TOP') did remove the
existing qualification need.
version 0.60: Sat Nov 24 10:22:53 CET 2007
Changes:
- ELEMENT_ORDER hook returns packed types, not nodeName's,
because that would include a (non constant) prefix.
Fixes:
- ::Util::pack_type() with undef namespace returned undef.
Improvements:
- Warn people about out-dated libxml2 when running tests
in t/01use.t. Let's see of CPANTesters like this.
- when a READER is compiled with C<rpc_hrefs>, then elements
may have a href attribute, used for SOAP-RPC encoding.
version 0.59: Thu Nov 8 14:04:44 CET 2007
Fixes:
- Schema recursion detected too often. It had to be based on the
schema-node, not the type name (which isn't unique enough)
Spotted by [Gert Doering].
version 0.58: Tue Nov 6 12:35:28 CET 2007
Fixes:
- could not handle empty sequences.
- boolean 'true' and 'false' must be decoded into 1 and 0.
- parsing of boolean was sensitive for blanks.
- elements_qualified overrule extended too far.
version 0.57: Mon Nov 5 15:53:19 CET 2007
Fixes:
- basic schema elements (like SCHEMA2001 int) could not be
used as starting point for translation.
Improvements:
- XML::Compile::Util now exports some standard name-spaces as
symbolic names, like SCHEMA2001.
- added 2001 XMLSchema instance xsd.
- XML::Compile::Schema::importDefinitions ignores undef param.
- compile(output_namespaces) now can be initialized with a
simple ARRAY, and explained a little better.
version 0.56: Thu Oct 18 09:25:16 CEST 2007
Improvements:
- XML::Compile::Util::pack_type() and ::unpack_type() now
understand name-spaceless types.
- filled-in pre-declared type tables for older schema
definitions, but did NOT IMPLEMENT the differences in
SCHEMA RULES. Some initial checks in t/81-2000.t
- XML::Compile::SOAP::Server split-off from XML::Compile::SOAP;
documentation updated to reflect this.
- added README.todo
- implemented correct QNAME run-time "{ns}local" to "prefix:local"
translator, for writer. May cause run-time error message.
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