我在从架构生成xsd文件时遇到一些问题,因为它是对另一个架构中的元素的引用。你们任何人都知道如何解决这个问题?这是我试图从中创建xsd的模式。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="urn:ean.ucc:2" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:ean.ucc:2" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import />
<xs:element name="message">
<xs:complexType>
<xs:sequence>
<xs:element ref="entityIdentification" />
<xs:element name="transaction">
<xs:complexType>
<xs:sequence>
<xs:element ref="entityIdentification" />
<xs:element ref="command" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="documentCommand">
<xs:complexType>
<xs:sequence>
<xs:element ref="documentCommandHeader" />
<xs:element ref="documentCommandOperand" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
你可以看到它引用了很多其他元素。我创建此模式的方法是使用vs2013中的工具从XML文件创建模式。
希望你们知道如何解决这个问题,谢谢!
答案 0 :(得分:0)
您需要阅读并理解XML命名空间如何工作以及它们与两个模式之间的关系如何相关,当一个模式使用另一个模式时。
This article是这种理解的一个极好的起点;虽然使用的工具是付费的,但我不是以任何方式宣传或附属。
相关位:
CommonTypes.xsd
<?xml version="1.0" encoding="utf-16"?> <xs:schema targetNamespace="http://NamespaceTest.com/CommonTypes" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:complexType name="AddressType"> <xs:sequence> <xs:element name="Line1" type="xs:string" /> <xs:element name="Line2" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:simpleType name="PriceType"> <xs:restriction base="xs:decimal"> <xs:fractionDigits value="2" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="PaymentMethodType"> <xs:restriction base="xs:string"> <xs:enumeration value="VISA" /> <xs:enumeration value="MasterCard" /> <xs:enumeration value="Cash" /> <xs:enumeration value="Amex" /> </xs:restriction> </xs:simpleType> </xs:schema>
CustomerTypes.xsd
<?xml version="1.0" encoding="utf-16"?> <xs:schema xmlns:cmn="http://NamespaceTest.com/CommonTypes" targetNamespace="http://NamespaceTest.com/CustomerTypes" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:import schemaLocation="CommonTypes.xsd" namespace="http://NamespaceTest.com/CommonTypes"/> <xs:complexType name="CustomerType"> <xs:sequence> <xs:element name="Name" type="xs:string" /> <xs:element name="DeliveryAddress" type="cmn:AddressType" /> <xs:element name="BillingAddress" type="cmn:AddressType" /> </xs:sequence> </xs:complexType> </xs:schema>