특정 스키마에 대해 XML의 유효성을 검사하는 XML 유효성 검사기를 만드는 중입니다. 현재 OASIS 스키마를 사용하여 해당 스키마에 대한 어설 션 유효성을 검사하고 있습니다 .Below는 SchemaFactory로 전달되고 스키마 개체가 생성 된 후 xenc입니다. 가져온 스키마 xenc-schema.xsd에있는 EncryptedData 요소가 확인되지 않음 "XSD에 대해 올바른 형식의 XML을 확인하는 중 문제가 발생했습니다.
내가 같이 SchemaFactory의 인스턴스를 생성하고 스키마를로드 할 때, 위의 스키마에 가져온 스키마를 찾을 수 없습니다 :
XML is not valid because
src-resolve: Cannot resolve the name 'xenc:EncryptedData' to a(n) 'element declaration' component.
내가 스키마 객체를 생성 SchemaFactory를에 스키마를 가져올 해결할 수있는 방법을 가져온 스키마를 찾을 수 있어야합니까? 아래 코드는 제가 작성한 코드입니다 :
...
System.out.println("Executing the value");
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Source schemaFile = new StreamSource(new File("D:\\saml-schema-assertion- 2.0.xsd"));
Schema schema = sf.newSchema(schemaFile);
Validator validator = schema.newValidator();
validator.setErrorHandler(new SAMLErrorHandler());
validator.validate(new StreamSource(new File("D:\\Saml.xml")));
System.out.println("XML is valid");
} catch (IOException ex) {
} catch (SAXException e) {
System.out.println("XML is not valid because ");
System.out.println(e.getMessage());
}
나는 응답을 찾고있다.
내가 사용중인 오아시스 스키마의 일부는 다음 주소에서 공유됩니다. http : //docs.oasis-open.org/security/saml/v2.0/saml-schema-assertion-2.0.xsd –