0

Xerces を使用して Java で XML ドキュメントを検証していますが、エラーは発生しません。

ただし、XML ドキュメントにはエラーが含まれており、XMLSply エディターなどで検証すると、エラーが正しく報告されます。

私が間違っていることを見つけることができません。正しく検証するために必要なすべての XSD スキーマを含めていると思います。

アドバイスをお願いします。コード スニペット:

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");

検証に使用する XSD は次のとおりです。

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/basis/bd/items/bd-burgers.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;
}

検証中の xml ファイルの小さなスニペット (大きすぎてすべてをリストできません):

<bd-burgers:CommutingExpensesDaysPerWeekCount unitRef="uu_513" contextRef="cc_711">2</bd-burgers:CommutingExpensesDaysPerWeekCount>

このエントリには次のエラーが含まれています。

Numeric item <bd-burgers:CommutingExpensesDaysPerWeekCount> has neither a 'precision' nor a 'decimals' attribute.

これは XMLSpy によって正しく報告されますが、私の Java コードでは報告されません :(... では、ここで何が間違っているのでしょうか? XSD ファイルを忘れていたのですが、"CommutingExpensesDaysPerWeekCount" は " http://www.nltaxonomie. nl/7.0/basis/bd/items/bd-burgers.xsd "、これは xsd の上に含まれ、" http://www.nltaxonomie.nl/7.0/basis/ sbr/types/nl-types.xsd "、上記の xsd にも含まれ、"monetaryItemType" を拡張し、" http://www.xbrl.org/2003/xbrl-instance-2003-12-31で定義されています.xsd "、この xsd も上記の検証に含まれています。

Java 検証でエラーが報告されない理由を教えてください。

ところで: 上記の XML スニペットを次のように変更すると、エラーが報告されます。

<bd-burgers:CommutingExpensesAccordingToTableTotalAmount>841.0</bd-burgers:CommutingExpensesAccordingToTableTotalAmount>

つまり、すべての属性を削除します。次に、contextRef が欠落しているという正しい検証エラーが発生します。

4

1 に答える 1