我有一個XML模式,如:如何將一個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命名空間時,'xi:include`元素不被識別(在VS2008中)。我想知道這是否僅僅是W3C「推薦」,這是任何人都沒有實現過的。或者,我是否可以解釋XInclude的目的是錯誤的? – Slauma 2010-12-04 13:12:45
最後,我介紹了我自己的「Include」元素,並處理了整個XML文檔而不使用XmlSerializer。謝謝你的提示! – Slauma 2010-12-05 23:08:57