1
많은 XSD 파일에 대해 XML 파일의 유효성을 검사하려고합니다. 지금은 xsd 스키마 만 수동으로 입력 할 수 있습니다. (나는 XML 파일을 검사하고 XSD 정의를 살펴 본다.) XML 파일에서 XSD 스키마 파일을 검색하려면 어떻게합니까?XML 파일에서 XSD 스키마 파일을 자동으로 검색하는 방법은 무엇입니까?
지금까지 시도한 내용 : // 다음 xml 파일을 여러 xsd 스키마 파일과 비교하여 검사하십시오.
public static void XSDValidation() throws SAXException, IOException, ParserConfigurationException {
try {
SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
Schema sch = schemaFactory.newSchema(new Source[] { new StreamSource(new FileInputStream("role-1.2.xsd")),
new StreamSource(new FileInputStream("role-1.1.xsd")) });
Validator validator = sch.newValidator();
validator.validate(new StreamSource("role.xml"));
System.out.println("INFO: Validation is done successfully.");
} catch (Exception e) {
System.out.println("ERROR: Validation is failed.");
}
}
나는 모든 도움을 DOM 파서 및 Java 8
사전 감사를 사용합니다.
편집 : kjhughes @ 단순히
XSD를 파일에 대한 XML 파일의 유효성을 확인하는 가장 좋은 방법은 무엇입니까 물어하지 않았다?
내 질문
: 어떻게 우리는 XML 파일에서 XSD 스키마 파일을 검색 할 수 있습니다. 예를 들어, b.xsd와 c.xsd가 포함 된 a.xml의 유효성을 검사하려면 이러한 파일을 자동으로 실제 순서대로 검색하고 싶습니다. XML이 첫 번째로 네임 스페이스를 c.xsd에서 사용하는 경우이를 감지해야합니다. 예제에서 XSD 스키마 파일과 그 순서는 XML 내부를 검사하여 수동으로 작성되었습니다.
참조되는 스키마를 찾기 위해 사용자 정의 entityresolver를 사용하는 방법은 어떻습니까? – ulab
@ulab https://docs.oracle.com/javase/7/docs/api/org/xml/sax/EntityResolver.html을 읽었지만 실제로 어떻게 적용 할 수 있는지 이해할 수 없었습니다. 좀 더 설명해 주시겠습니까? – limonik
이러한 XSD 선언을 사용하는 샘플 XML이 도움이 될 수 있습니다. 샘플을 게시 할 수 있습니까? –