XML 유효성 검사 : 제대로하고 있습니까?
-
03-07-2019 - |
문제
나는 누군가가 내 XML 검증 코드를 한 번만 줄 수 있는지 궁금해했다. 다음은 나에게 문제를주는 코드의 일부입니다 ...
SAXParserFactory factory = SAXParserFactory.newInstance();
SchemaFactory schemaFactory = SchemaFactory
.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
// *** CODE FAILS ON THE BELOW LINE **/
factory.setSchema(schemaFactory
.newSchema(new Source[] { new StreamSource(schemaStream) }));
SAXParser parser = factory.newSAXParser();
SAXReader reader = new SAXReader(parser.getXMLReader());
reader.setValidation(false);
reader.setErrorHandler(new ResultProducingErrorHandler());
reader.read(content);
위의 코드를 실행할 때마다 다음은 다음과 같은 줄을 따라 오류가 발생합니다.
src-resolve: Cannot resolve the name 'ns:myStructure' to a(n) 'type definition' component.
오류 메시지에 언급 된 요소는 모두 호출을 통해 스키마로 가져온 요소입니다.u003Cxs:import /> . 스키마는 W3C XML 스키마 유효성 검사기.
이러한 각 스키마의 개별적으로 포함해야합니까? 나는 뉴스 스키마 호출에 전달 된 배열에 추가하려고 시도했지만 아무런 차이가 없었습니다.
나는 스키마에 대한 링크를 줄 수 없다고 생각합니다. 그래서 나는 내 코드가 적어도 허용되는지에 대해 예 또는 아니오를 찾고 있습니다.
해결책
XS : 가져 오기 명령문이 응용 프로그램의 현재 디렉토리에서 도달 할 수있는 경로를 가리 킵니다. 현재 디렉토리는 당신이 생각하는 것이 아닐 수도 있습니다.
제휴하지 않습니다 StackOverflow