0

特定のスキーマに対して XML を検証する XML バリデーターの作成に取り組んでいます。現在、OASIS スキーマを使用して、そのスキーマに対してアサーションを検証しています。以下は、スキーマが SchemaFactory に渡され、スキーマ オブジェクトが作成され、インポートされたスキーマ xenc-schema.xsd に存在する xenc:EncryptedData 要素が解決されないときのスキーマです。

また、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());
}

私は応答を求めています。

4

1 に答える 1

0

xencXML ファイル、または少なくとも要素全体で名前空間が宣言されていないようですxenc:EncryptedData。XML ファイルを投稿してください。EncryptedDataXSD ファイルに要素の定義がありません。

于 2013-10-30T08:56:48.437 に答える