我想创建一个XSD,它定义一个属性,该属性可以放在来自其他模式的元素或不在任何模式中的元素上.例如,架构看起来像这样:
@H_403_14@<xs:schema id="MySchema" targetNamespace="http://tempuri.org/MySchema" elementFormDefault="qualified" xmlns="http://tempuri.org/MySchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:attribute name="myAttribute" /> </xs:schema>
文档可能看起来像这样:
<someElement xmlns="http://tempuri.org/OtherSchema" xmlns:m="http://tempuri.org/MySchema"> <someOtherElement someAttribute="value" m:myAttribute="value2" /> </someElement>
此示例的“OtherSchema”如下所示:
<xs:schema id="OtherSchema" targetNamespace="http://tempuri.org/OtherSchema" elementFormDefault="qualified" xmlns="http://tempuri.org/OtherSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:element name="someElement"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="someOtherElement"> <xs:complexType> <xs:attribute name="someAttribute" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
一个完整的示例,包括执行验证的C#控制台应用程序,可以从http://dl.getdropbox.com/u/407740/SchemaTest.zip下载.我的目标是进行此验证而无需修改“OtherSchema”.这可能吗?