我一直在为此苦苦挣扎。我需要为提供的XML构建一个xsd。但是由于这个xml的格式化方式,似乎没有任何东西可以正确验证。 Itried大多数在线生成器,但无论它们创建什么xsd,都不会验证架构。有人可以帮帮我吗?
<?xml version="1.0" encoding="utf-8"?>
<MMIT_Data_Record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Supplier_Code xmlns="http://schemas.multi-mit.com/DataFormat">XXX</Supplier_Code>
<Country_Code xmlns="http://schemas.multi-mit.com/DataFormat">UK</Country_Code>
<Market_Code xmlns="http://schemas.multi-mit.com/DataFormat">xxxxxx</Market_Code>
<Source_Code xmlns="http://schemas.multi-mit.com/DataFormat">xxxxxxx</Source_Code>
<Source xmlns="http://schemas.multi-mit.com/DataFormat">XX</Source>
<External_Reference_Id xmlns="http://schemas.multi-mit.com/DataFormat">123456789</External_Reference_Id>
<Person_Data xmlns="http://schemas.multi-mit.com/DataFormat">
<First_Names>John</First_Names>
<Last_Names>Doe</Last_Names>
</Person_Data>
<Company_Data xmlns="http://schemas.multi-mit.com/DataFormat">
<Company_Name Order="1">The Company</Company_Name>
</Company_Data>
<Address xmlns="http://schemas.multi-mit.com/DataFormat">
<Address_Display>
<Address_Line_1>xxxxxxxxxxx</Address_Line_1>
<Address_Line_2 />
<Address_Line_3 />
<Postal_Code>XXX123</Postal_Code>
<Town>The Town</Town>
<County>The County</County>
<Country>US</Country>
</Address_Display>
</Address>
</MMIT_Data_Record>
架构更大,但这给出了基本的想法。我的主要问题是根元素没有命名空间,大多数生成器只是将其遗漏,但是在验证时找不到这个元素。如果包含该元素,则在命名空间中找不到所有子元素。我需要为此构建一个XSD和一个WSDL elements
部分,但我无法弄清楚如何。请帮忙。
更新:这是大多数自动生成的xsd。问题是在尝试验证时,它找不到根元素MMIT_Data_Record
。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://schemas.multi-mit.com/DataFormat">
<xs:element name="Supplier_Code" type="xs:string"/>
<xs:element name="Country_Code" type="xs:string"/>
<xs:element name="Market_Code" type="xs:string"/>
<xs:element name="Source_Code" type="xs:string"/>
<xs:element name="Source" type="xs:string"/>
<xs:element name="External_Reference_Id" type="xs:int"/>
<xs:element name="Person_Data">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="First_Names"/>
<xs:element type="xs:string" name="Last_Names"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Company_Data">
<xs:complexType>
<xs:sequence>
<xs:element name="Company_Name">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:byte" name="Order"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Address">
<xs:complexType>
<xs:sequence>
<xs:element name="Address_Display">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Address_Line_1"/>
<xs:element type="xs:string" name="Address_Line_2"/>
<xs:element type="xs:string" name="Address_Line_3"/>
<xs:element type="xs:string" name="Postal_Code"/>
<xs:element type="xs:string" name="Town"/>
<xs:element type="xs:string" name="County"/>
<xs:element type="xs:string" name="Country"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</schema>