Radu Coravu created XERCESJ-1754:
------------------------------------
Summary: XMLSchemaValidator reset no longer resets id validation
caches
Key: XERCESJ-1754
URL: https://issues.apache.org/jira/browse/XERCESJ-1754
Project: Xerces2-J
Issue Type: Bug
Components: XML Schema 1.1 Structures
Reporter: Radu Coravu
Attachments: test.xml, test.xsd
I validate an XML with an XML Schema 1.1 file.
On the first validation the XML is reported valid.
On the second validation I re-use the parser, the ID values inside elements are
reported as duplicate and I get errors like this reported:
{code}Message: cvc-type.3.1.3: The value 'thing122' of element 'uid' is not
valid.{code}
Looking at the method
org.apache.xerces.impl.xs.XMLSchemaValidator.reset(XMLComponentManager),
sometime probably in the Xerces 2.12.2 release there was a fast return added to
it:
{code} if (!parser_settings) {
// parser settings have not been changed
fValidationManager.addValidationState(fValidationState);
// the node limit on the SecurityManager may have changed so need
to refresh.
nodeFactory.reset();
// Re-parse external schema location properties.
XMLSchemaLoader.processExternalHints(
fExternalSchemas,
fExternalNoNamespaceSchema,
fLocationPairs,
fXSIErrorReporter.fErrorReporter);
return;
}{code}
and this means all the code which for example cleared the IDs cache:
{code} // reset ID Context
if (fIDContext != null) {
fIDContext.clear();
}{code}
is no longer executed.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]