XmlDocument
そのフラグメントのみを表す XSD に対して のフラグメントを検証しようとしています。例えば:
<!-- Validate entire message against message.xsd -->
<?xml version="1.0" encoding="utf-8" ?>
<Message>
<Header>
...
</Header>
<Body>
<!-- Validate this against body.xsd -->
...
</Body>
</Message>
メッセージ全体が、開発者提供のmessage.xsdスキーマに対して検証されます。要素のコンテンツは、クライアント提供のbody.xsdスキーマ<Body>
に対して検証されます。
body.xsdスキーマは、要素または要素について何も認識していません。要素内に含まれるべきものを定義するだけです。<Message>
<Header>
<Body>
<Body>
XML スキーマ フラグメントに対して XML フラグメントを検証する方法がわかりません。すべてが、XML スキーマ フラグメントがその祖先要素をすべて把握している必要があることを示唆しているようです。いくつかのパスを念頭に置いていますが、それらを実装する方法がわかりません。
- body.xsdをmessage.xsdの適切なノードにプログラムで挿入します。
XmlElement
から適切なものを抽出し、このノードに基づいてXmlDocument
新しい を作成します。XmlDocument
- 私がまだ理解していない名前空間と関係があります。
この問題にはどのような解決策がありますか?