我有一个 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
是否能够解析和理解包含“include...”的文档?
提前感谢您的帮助!
XInclude
(http://en.wikipedia.org/wiki/XInclude和http://www.w3.org/TR/xinclude/)但我没有成功。当我引用XInclude命名空间时,`xi:include`元素无法被识别(在VS2008中)。我想知道这是否只是W3C的“建议”,从未被任何人实现。或者我可能对XInclude的目的有误解? - Slauma