Java에서 Xerces를 사용하여 XML 문서의 유효성을 검사하고 있지만 오류가 발생하지는 않습니다.많은 XSD의 잘못된 XML 문서에 대한 XML 유효성 검사가 Java의 오류를보고하지 않습니까?
그러나 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");
I 유효성을 검사하는 데 사용하는 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에서 올바르게보고되었지만 자바 코드로는 올바르게보고되지 않았습니다. ( 그래서 내가 뭘 잘못하고 있니? 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"에 포함 된 "nonNegativeIntegerItemType"유형에 해당하는 xsd보다 위에 포함되어 있습니다. "monetaryItemType"을 확장하고 "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"에 정의 된 xsd는 위 유효성 검사에도 포함됩니다.
Java 유효성 검사가 오류를보고하지 않는 이유는 무엇입니까?
는 BTW : 모든 속성을 제거 :입니다
<bd-burgers:CommutingExpensesAccordingToTableTotalAmount>841.0</bd-burgers:CommutingExpensesAccordingToTableTotalAmount>
: 그것은 내가 위의 XML 조각을 변경하면 오류를보고한다. 그런 다음 contextRef가 없다는 올바른 Validation 오류가 발생합니다.
감사합니다. 나는 다른 XBRl 유효성 검사 단계/레벨, FRIS, 비즈니스 제약 등과 같은 것을 알고 있습니다. 그러나이 오류는 "정상적인"XSD 유효성 검사 오류 (내가 수행하는 것처럼)라고 생각합니다. 어떻게 생각합니까? 특정 XBRL 유효성 검사? 정상적인 XSD 유효성 검사를 수행 할 때도 이런 종류의 오류가 발생합니까? Gespsio를 사용할 수는 없지만 앞으로 UBMatrix를 고소하고 DTS 검색 및 유효성 검사를 사용할 계획입니다. 그러나 XBRL 유효성 검사 및 DTS 검색 오픈 소스 프로젝트가 가까운 미래에 나타날 것으로 기대합니다. – edbras