私のようなXMLスキーマがあります。1つのXMLファイルを別のXMLファイルに「含める」方法はありますか?
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="MySchema"
targetNamespace="http://tempuri.org/MySchema.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/MySchema.xsd"
xmlns:mstns="http://tempuri.org/MySchema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MyDocument">
<xs:complexType>
<xs:all>
<xs:element name="TextHeader" type="xs:string" minOccurs="0" />
<xs:element name="TextBody" type="xs:string" minOccurs="0" />
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
このスキーマに従って有効なXML文書は次のようになります。
<?xml version="1.0" encoding="utf-8" ?>
<MyDocument xmlns="http://tempuri.org/MySchema.xsd">
<TextHeader>My header which is almost always the same...</TextHeader>
<TextBody>My text body which is always different...</TextBody>
</MyDocument>
質問1:からTextHeader要素「を含める」ことですそこに道を別のファイルですか?
ので、同様:
ファイル "Header.xml":
<?xml version="1.0" encoding="utf-8" ?>
<MyDocument xmlns="http://tempuri.org/MySchema.xsd">
<TextHeader>My Header which is almost always the same...</TextHeader>
</MyDocument>
ファイル "CompleteDocument.xml":
<?xml version="1.0" encoding="utf-8" ?>
<MyDocument xmlns="http://tempuri.org/MySchema.xsd">
include "Header.xml" ???
<TextBody>My text body which is always different...</TextBody>
</MyDocument>
質問2:それがすべてで可能なら、 .NET XMLSerializer
は、このような「インクルード」を含む文書を解析して理解できるでしょうか?
ありがとうございました!
私はちょうどXInclude(http://en.wikipedia.org/wiki/XIncludeとhttp: /www.w3.org/TR/xinclude/)しかし、私はこれを動作させませんでした。 XInclude名前空間を参照すると、(VS2008の) 'xi:include'要素が認識されません。私はこれが誰にも決して実装されていないW3Cの「勧告」であるかどうか疑問に思います。あるいは、XIncludeの目的を間違って解釈しているのでしょうか? – Slauma
最後に、独自の「インクルード」要素を導入し、XmlSerializerを使用せずにXML文書全体を処理しました。ヒントをありがとう! – Slauma