* xmlschemas.c: Removed creation of a temporary parser context
during validation when processing xsi:type; this previously
added a string to the dict of the schema - to assure thread
safety, we don't want to modify a given schema during
validation.
* xmlschemas.c: Fixed a potential memory leak in
xmlSchemaCheckCSelectorXPath() when an internal error occurs.
Fixed setting of ctxt->err to the given error code in
the parsing error functions.
* pattern.c: Added internal xmlCompileIDCXPathPath() as a
starting point for IDC XPath compilation; this and some other
tiny changes fixes issues regarding whitespace in the
expressions and IDC selector/field relevant restrictions of
the subset of XPath. Fixed a missing blocking of attributes
in xmlStreamPushInternal().
* runtest.c: removed the error message
* relaxng.c xmlschemas.c: removed 2 instability warnings from function
documentation
* include/libxml/schemasInternals.h: changed warning about API stability
* xmlregexp.c: trying to improve runtime execution of non-deterministic
regexps and automata. Not fully finished but should be way better.
Daniel
* xmlschemas.c: Fixed a memory leak in
xmlSchemaContentModelDump(). Added output of local types
in xmlSchemaElementDump(). Tiny cosmetical changes to the
dump output.
* tree.c pattern.c: Silenced intel compiler warnings (reported
by Kjartan Maraas, bug #318517).
* xmlschemas.c: The above changes in pattern.c revealed an
inconsistency wrt IDCs: we now _only_ pop XPath states, if
we really pushed them beforehand; this was previously not
checked for the case when we discover an element node to be
invalid wrt the content model.
Fixed segfault in xmlSchemaGetEffectiveValueConstraint().
* xmlschemas.c: Fixed some identity-constraint issues:
Restructured IDC node-tables
Allowed IDCs to resolve also to nodes of complex type with
simple content.
Added check for keyrefs with references to keyrefs.
IDC target-nodes were interferring with IDC node-tables,
since they used one list of entries only. I separated this
one big list into 3 lists: 1 for IDC node-table entries,
1 for _duplicates_ of IDC node-table entries and 1 for
IDC target-nodes. More code, but cleaner and it works at last.
Keyrefs will fail to resolve to duplicate key/unique entries.
I thought this was already working this way, but it didn't.
The wording of the definition for [node table] in the spec
can lead to a scenario, where keyrefs resolve perfectly, even
if the relevant key-sequences of the referenced key/unique have
duplicates in the subtree. Currently only Saxon 8.5.1 is
dissallowing resolution to duplicate entries correctly - we
will follow Saxon here.
Removed some intel compiler warnings (reported by
Kjartan Maraas, bug #318517).
* pattern.c: Fixed an IDC-XPath problem when resolving to
attributes.
* xmlschemas.c include/libxml/schemasInternals.h
include/libxml/xmlerror.h: Initial implementation for
redefinitions; this still misses checks for restrictions
of the content model of complex types.
Fixed default/fixed values for attributes (looks like they
did not work in the last releases).
Completed constraints for attribute uses.
Seperated attribute derivation from attribute constraints.
Completed constraints for attribute group definitions.
Disallowing <import>s of schemas in no target namespace if the
importing schema is a chameleon schema. This contradicts
the way Saxon, Xerces-J, XSV and IBM's SQC works, but the
W3C XML Schema WG, thinks it is correct to dissalow such
imports.
Added cos-all-limited constraints.
Restructured reference resolution to model groups and element
declarations.
Misc cleanup.
* xmlschemas.c include/libxml/schemasInternals.h
include/libxml/xmlerror.h: Completion of the schema graph.
Centralisation, more robustness of the schema document
aquisition story. Centralised and restructured component fixup.
Fixed attribute derivation when 'prohibiting' attribute uses.
Added warnings: when schema documents cannot be localized
during imports; when we get duplicate and pointless attribute
prohibitions. Changed error reports for IDCs to report
the relevant IDC designation as well (requested by GUY Fabrice).
Misc code-cleanup.
* xmlschemas.c: Some preparation for the creation of a graph
of imported/included/redefined schemas; this is needed for
at least the redefinitions.
Centralized the creation of the parser context in one function.
* xmlschemas.c include/libxml/xmlerror.h:
Changed output for keyref-match errors; the target-node will
be now reported rather than the scope-node of the keyref
definition - allowing easier chasing of instance errors.
This was reported by Guy Fabrice to the mailing list.
Some initial parsing code for schema redefinitions.
* result/schemas/bug303566_1_1.err
result/schemas/bug312957_1_0.err: Adapted test results due
to the keyref changes.
* xmlschemas.c: Fixed#312957 reported by Carol Hunter:
streaming XPath states were not popped in every case,
thus failed to resolve correctly for subsequent input.
* test/schemas/bug312957* result/schemas/bug312957*:
Added the test submitted by Carol Hunter.
* xmlregexp.c xmlschemas.c: trying to nail down the remaining
##other issues
* result/schemas/any7* test/schemas/any7: completed the tests
and added the results
* result/schemas/any3_0_0.err result/schemas/any5_0_0.err
result/schemas/any5_1_0.err: this slightly chnages the output
from 3 existing tests
Daniel
* HTMLparser.c SAX2.c encoding.c globals.c parser.c relaxng.c
runsuite.c runtest.c schematron.c testHTML.c testReader.c
testRegexp.c testSAX.c testThreads.c valid.c xinclude.c xmlIO.c
xmllint.c xmlmodule.c xmlschemas.c xpath.c xpointer.c: a lot of
small cleanups based on Linus' sparse check output.
Daniel
* xmlschemastypes.c: Added creation of the content type of
xs:anyType. This is needed when trying to extend xs:anyType
(although it makes no sense to extend it; IMHO the schema
people should have ruled this out). This was reported
by Yong Chen to the mailing list.
* xmlschemas.c: Fixed handling of xs:anyType in
xmlSchemaCheckCOSCTExtends() (reported by Young Chen). Tiny
adjustment to an error report output.
* test/schemas/extension2* result/schemas/extension2*:
Added a test case provided by Young Chen.
* xmlschemas.c: Removed the workaround code in
xmlSchemaValidateElemWildcard() for the <any> wildcard
with namespace == ##other. Support for such wildcards was
implemented by Daniel at the automaton level recently, and
the workaround code iterfered with it.
* error.c globals.c parser.c runtest.c testHTML.c testSAX.c
threads.c valid.c xmllint.c xmlreader.c xmlschemas.c xmlstring.c
xmlwriter.c include/libxml/parser.h include/libxml/relaxng.h
include/libxml/valid.h include/libxml/xmlIO.h
include/libxml/xmlerror.h include/libxml/xmlexports.h
include/libxml/xmlschemas.h: applied a patch from Marcus Boerger
to fix problems with calling conventions on Windows this should
fix#309757
Daniel
* parser.c: an optimization of the char data inner loop,
can gain up to 10% in pure SAX2 parsing speed
* xmlschemas.c: applied patch from Kupriyanov Anatolij fixing
a bug in XML Schemas facet comparison #310893
Daniel
* xmlregexp.c xmlschemas.c: fixed the error reporting for
not transitions
* result/schemas/any5_0_0* result/schemas/any5_0_2*
result/schemas/any5_1_0*: fixed output
Daniel
* xmlregexp.c xmlschemas.c include/libxml/xmlautomata.h: fixing
bug #172215 about foreign namespaces by adding support for
negated string transitions. Error messages still need to be
improved.
* test/schemas/any5* result/schemas/any5*: adding regression
tests for this.
Daniel
* xmlschemas.c: fixed xsd:all when used in conjunction with
substitution groups
* test/schemas/allsg_* result/schemas/allsg_*: adding specific
regression tests, strangely missing from NIST/Sun/Microsoft
testsuites
Daniel
* error.c relaxng.c xmlreader.c xmlschemas.c include/libxml/relaxng.h
include/libxml/xmlschemas.h: applied patch from Marcus Boerger
to route relaxng and schemas error messages when using the reader
through the structured interface if activated.
* elfgcchack.h doc/* testapi.c: rebuilt since this add new APIs
to test.
Daniel
* xstc/Makefile.am README README.tests Makefile.tests Makefile.am:
preparing to make testsuite releases along with code source releases
* gentest.py testapi.c: fixed a couple of problem introduced by
the new Schemas support for Readers
* xpath.c: fixed the XPath attribute:: bug #309580, #309864 in a crude
but simple way.
* xmlschemas.c include/libxml/tree.h: fixed a couple of problems
raised by the doc builder.
* doc/*: made rebuild
Daniel
* doc/xmllint.1 doc/xmllint.html doc/xmllint.xml: fixed a typo
pointed by Jeroen Ruigrok
* include/libxml/xmlreader.h include/libxml/xmlschemas.h: increased
the APIs for xmlReader schemas validation support
* xmllint.c xmlreader.c xmlschemas.c: xmlReader schemas validation
implementation and testing as xmllint --stream --schema ...
Daniel
* parser.c: fix for #309761 from Dylan Shell
* xmlschemas.c include/libxml/xmlschemas.h: added xmlSchemaSAXPlug
and xmlSchemaSAXUnplug generic APIs for SAX Schemas validation.
* xmllint.c: couple of fixes plus added descriptions for --sax and
--sax1
Daniel
* parser.c: fix some potential leaks in error cases.
* xmllint.c: added --sax, to allow testing of --schemas --sax and
various other combinations.
* xmlschemas.c: fix a couple of tiny problems in
xmlSchemaValidateStream()
Daniel
* test/relaxng/docbook_0.xml: added the missing entity to the
document internal subset to avoid errors if the DocBook catalogs
are not there
* xmlschemas.c: first cut at implementing xmlSchemaValidateStream()
untested yet
Daniel
* testapi.c tree.c: fixing a leak detected by testapi in
xmlDOMWrapAdoptNode, and fixing another side effect in testapi
seems to pass tests fine now.
* include/libxml/parser.h parser.c: xmlStopParser() is no more limited
to push mode
* error.c: remove a warning
* runtest.c xmllint.c: avoid compilation errors if only some parts
of the library are compiled in.
Daniel
* xmlschemas.c: Fixed NULL values to be validated as empty
string values (reported by Dhyanesh to the mailing list).
Adjusted text concatenation of mixed content.
* xmlschemas.c: Fixed SAX2 validation: grow of internal
namespace list, appending of element character content.
* xstc/xstc.py: Added "--sax" option for SAX2 validation.
* xmllint.c: if sax1 is used and input is a file use the old
API xmlParseFile()
* xmlschemas.c: cleanups
* doc/* testapi.c elfgcchack.h: rebuilt to add python bindings
for the new functions in Schemas.
Daniel
* pattern.c: Some changes/fixes to the streaming evaluation.
* xmlschemas.c: A bit of support for parsing the schema for
schema. Fixed attribute derivation when the use is
"prohibited" and was "optional". Fixed an attribute construction
bug, a left-over from the time, where <complexContent>,
<extension>, etc. where created as structs.
* xmlschemas.c xmlschemastypes.c include/libxml/schemasInternals.h
include/libxml/xmlschemastypes.h: Changed the validation process
to be able to work in streaming mode. Some datatype fixes,
especially for list and union types. Due to the changes the
error report output has changed in most cases. Initial migration to
functions usable by both, the parser and the validator. This should
ease a yet-to-come XS construction API in the long term as well.
* xmlschemas.c: Fixed facet errors to be channelled back for
union type members; facet-validation will stop now on the
first error. Reported by GUY Fabrice to the mailing-list.
* xmlschemastypes.c: Changed to ignore lengh-related facet
validation for QNames and NOTATIONs as proposed by the
schema people.
* test/schemas/union2* result/schemas/union2*: Added
regression tests for union types (by GUY Fabrice).
* xmlschemas.c: Removed workaround for bug #172215, since it
does more harm in some scenarios. Added some of the
"Particle Restriction OK" constraints - not yet enabled.
* xmlschemas.c: Added output of canonical values in
identity-constraint error messages.
* xmlschemastypes.c include/libxml/xmlschemastypes.h:
Added xmlSchemaGetCanonValueWhtsp() to the API.
Further enhancement of the canonical value
conversion.
* test/schemas/changelog093_0.*: Added test with an XSD
submitted by Randy J. Ray.
* xmlschemas.c: Added substitution group constraints; changed
the build of the pre-computed substitution groups. Channeled
errors during xsi assembling of schemas to the validation
context. Fixed a big memory leak, which occured when using
IDCs: the precomputed value of attributes was not freed if
the attribute did not resolve to an IDC field (discovered
with the help of Randy J. Ray's schema, posted to the
xmlschema-dev maling list).
* xmlschemas.c: Added "Particle correct 2" to parsing of model groups.
Added handling substitution groups inside <choice> and <sequence>;
for <all> this is not supported yet. Changed circular checks for
model groups definitions. "memberTypes" are processed at different
levels now: component resolution first, construction later; this
goes hand in hand with a global change to handle component
resolution in a distinct phase. Fixed invalid default values for
elements to mark the schema as invalid; this just resulted in an
error report previously, but the schema was handled as valid.
Separated the assignment of the model groups to referencing
model group definition references (i.e. particles); this was
needed to perform the circularity check for model group definitions.
Added "Element Declaration Properties Correct (e-props-correct)"
constraints. Separated component resolution for simple/complex
types.
* include/libxml/schemasInternals.h: Added a flag for substitution
group heads.