XML validation against many XSD's of inocrrect XML doc not report any
errors in Java?
I am validating an XML doc in Java with Xerces, but don't get any errors.
However, the XML doc contains errors and when I validate it with for
example XMLSply editor, the errors are correctly reported.
I can't find what I am doing wrong. I think I do include all XSD schemas
that are required to validate correctly.
Please some advice? The code snippet:
SchemaFactory factory =
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
factory.setErrorHandler(new ErrorHandlerDefault());
Schema schema = factory.newSchema(createSchemaSources());
validator = schema.newValidator().validate("file.xml";
The XSD's that I use to validate:
private Source[] createSchemaSources() throws IOException {
Source[] sources = new Source[5];
sources[0] =
createSource("http://www.nltaxonomie.nl/7.0/domein/bd/tuples/bd-bedr-tuples.xsd");
sources[1] =
createSource("http://www.nltaxonomie.nl/7.0/domein/bd/tuples/bd-bedr-tuples.xsd");
sources[2] =
createSource("http://www.nltaxonomie.nl/7.0/domein/bd/tuples/bd-burg-tuples.xsd");
sources[3] =
createSource("http://www.nltaxonomie.nl/7.0/basis/sbr/types/nl-types.xsd");
sources[4] =
createSource("http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd");
return sources;
}
A small snippet of the xml file being validated (too big to list all):
<bd-burgers:CommutingExpensesDaysPerWeekCount unitRef="uu_513"
contextRef="cc_711">2</bd-burgers:CommutingExpensesDaysPerWeekCount>
This entry contains an error, namely:
Numeric item <bd-burgers:CommutingExpensesDaysPerWeekCount> has neither a
'precision' nor a 'decimals' attribute.
This is correctly reported by XMLSpy but not by my Java code :(... So what
am I doing wrong here? I though I was forgetting an XSD file, but
"CommutingExpensesDaysPerWeekCount" is defined in
"http://www.nltaxonomie.nl/7.0/basis/bd/items/bd-burgers.xsd", that is
contained int he above xsd's, that corresponds to the type
"nonNegativeIntegerItemType" contained in
"http://www.nltaxonomie.nl/7.0/basis/sbr/types/nl-types.xsd", also
contained in the xsd's above, and that extends "monetaryItemType" and is
defined in "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", which
xsd is also contained in the above validation.
Any idea why my Java validation not reports any errors?
BTW: it does report an error if I change the above XML snippet in:
<bd-burgers:CommutingExpensesAccordingToTableTotalAmount>841.0</bd-burgers:CommutingExpensesAccordingToTableTotalAmount>
That is: removing all attributes. I then get a correct Validation error
saying that the contextRef is missing.
No comments:
Post a Comment