私は異なるスキーマ(不自然な例について謝罪)の数に対してXMLファイルを検証しようとしています: 検証複数のスキーマ定義に対するXMLファイル
- a.xsd特に輸入
- c.xsd
c.xsdはb.xsdとb.xsd輸入は使用、a.xsd:
<xs:include schemaLocation="b.xsd"/>
私は次のようにのXercesを経てこれをやろうとしている:
XMLSchemaFactory xmlSchemaFactory = new XMLSchemaFactory();
Schema schema = xmlSchemaFactory.newSchema(new StreamSource[] { new StreamSource(this.getClass().getResourceAsStream("a.xsd"), "a.xsd"),
new StreamSource(this.getClass().getResourceAsStream("b.xsd"), "b.xsd"),
new StreamSource(this.getClass().getResourceAsStream("c.xsd"), "c.xsd")});
Validator validator = schema.newValidator();
validator.validate(new StreamSource(new StringReader(xmlContent)));
が、これは、名前を「何とか」を解決できない正しくその結果スキーマの3つすべてをインポートするために失敗しています( n) 'グループ'コンポーネント。
私はこれが正常にPythonのを使用しますが、のJava 6.0とのXerces 2.8.1との本当の問題を抱えて検証しました。誰でもここで何がうまくいかないのか、XML文書を検証するための簡単なアプローチを提案できますか?
カスタムリソースリゾルバがこれをどのように動作させるかについて、少し詳しく説明します。ありがとう。 – Casey
次のようなものを追加する必要があることを付け加えることができます: ' '親XSDで' new StreamSource(this.getClass()。getResourceAsStream( "parent.xsd") ' –
がロードされています)他のすべてのものをインポートした"人為的 "親スキーマを作成しましたか? – zedoo