我有一个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