为secific xml构建XSD

时间:2015-06-08 09:24:12

标签: xml xsd wsdl xml-namespaces xml-validation

我一直在为此苦苦挣扎。我需要为提供的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>

0 个答案:

没有答案