xml,xsd验证问题

问题描述:

我想弄清楚这个错误是什么意思,当我在http://corefiling.com/opensource/schemaValidate.html使用验证器。这是我从这个验证器收到的错误。xml,xsd验证问题

s4s-elt-must-match.1: The content of 'orders' must match (annotation?, (simpleType | 
    complexType)?, (unique | key | keyref)*)). 
    A problem was found starting at: element. 

这是什么错误信息我?

这里是我的xsd文件

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
<xs:element name="orders"> 
<xs:element name ="order" maxOccurs="unbounded"> 
    <xs:complexType> 
    <xs:sequence> 
    <xs:element name="case" type="xs:caseColor" > 
     <xs:simpleType name="caseColor"> 
     <xs:restriction base="string"> 
      <xs:enumeration value="Lemonde" /> 
      <xs:enumeration value="Strawberry" /> 
      <xs:enumeration value="Lime" /> 
      <xs:enumeration value="Blueberry" /> 
     </xs:restriction> 
     </xs:simpleType> 
    </xs:element> 
    <xs:element name="batteries" type="xs:numOfBat" default = 
"1"> 
     <xs:simpleType name="numOfBat"> 
     <xs:restriction base="integer"> 
      <xs:enumeration value="1" /> 
      <xs:enumeration value="2" /> 
      <xs:enumeration value="3" /> 
      <xs:enumeration value="4" /> 
     </xs:restriction> 
     </xs:simpleType> 
    </xs:element> 
    <xs:element name="recharger" type="xs:volt"> 
    <xs:simpleType name="volt"> 
     <xs:restriction base="string"> 
      <xs:enumeration value="110-120" /> 
      <xs:enumeration value="220-240" /> 
     </xs:restriction> 
    </xs:simpleType> 
    </xs:element> 
    <xs:element name="arm"> 
     <xs:element name ="reaches" minOccurs="2" maxOccurs="3" 
type="xs:reach"> 
     <xs:simpleType name="reach"> 
      <xs:restriction base = "integer"> 
       <xs:enumeration value = "50" /> 
       <xs:enumeration value = "75" /> 
       <xs:enumeration value = "100" /> 
      </xs:restriction> 
    </xs:simpleType> 
    </xs:element> 
    </xs:element> 
    <xs:element name ="camera" type="numOfCam"> 
     <xs:simpleType name="numOfCam"> 
     <xs:restriction base="string"> 
      <xs:enumeration value="1" /> 
      <xs:enumeration value="2" /> 
     </xs:restriction> 
     </xs:simpleType> 
    </xs:element> 
    <xs:element name = "speech" type="xs:language"> 
     <xs:simpleType name = "language"> 
     <xs:restriction base = "string"> 
      <xs:enumeration value = "Spanish" /> 
      <xs:enumeration value = "Chinese" /> 
      <xs:enumeration value = "English" /> 
      <xs:enumeration value = "German" /> 
      <xs:enumeration value = "French" /> 
     </xs:restriction> 
     </xs:simpleType> 
    </xs:element> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 
</xs:element> 
</xs:schema> 

这里是我的xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<orders> 
    <order> 
    <case> Strawberry </case> 
    <batteries> 2 </batteries> 
    <recharger> 110-120 V </recharger> 
    <arm> 2 
     <length> 50 </length> 
     <length> 100 </length> 
    </arm> 
    <camera> 2 </camera> 
    <speech> Spanish </speech> 
    </order> 
    <order> 
    <case> Lime </case> 
    <batteries> 4 </batteries> 
    <recharger> 220-240 V </recharger> 
    <arm> 3 
     <length> 75 </length> 
     <length> 75 </length> 
     <length> 100 </length> 
    </arm> 
    <camera> 1 </camera> 
    <speech> Chinese </speech> 
    </order> 
    <order> 
    <case> Blueberry </case> 
    <batteries> 1 </batteries> 
    <recharger> 110-120 V </recharger> 
    <arm> 2 
     <length> 75 </length> 
     <length> 100 </length> 
    </arm> 
    <camera> 2 </camera> 
    <speech> French </speech> 
    </order> 
</orders> 

发生了多次错误,我有固定的所有的人,请参考下面的改良代码:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="orders"> 
    <xs:complexType> 
     <xs:sequence> 
    <xs:element name ="order" maxOccurs="unbounded"> 
     <xs:complexType> 
     <xs:sequence> 
      <xs:element name="case"> 
      <xs:simpleType> 
       <xs:restriction base="xs:string"> 
       <xs:enumeration value="Lemonde" /> 
       <xs:enumeration value="Strawberry" /> 
       <xs:enumeration value="Lime" /> 
       <xs:enumeration value="Blueberry" /> 
       </xs:restriction> 
      </xs:simpleType> 
      </xs:element> 
      <xs:element name="batteries" default = 
"1"> 
      <xs:simpleType> 
       <xs:restriction base="xs:integer"> 
       <xs:enumeration value="1" /> 
       <xs:enumeration value="2" /> 
       <xs:enumeration value="3" /> 
       <xs:enumeration value="4" /> 
       </xs:restriction> 
      </xs:simpleType> 
      </xs:element> 
      <xs:element name="recharger"> 
      <xs:simpleType> 
       <xs:restriction base="xs:string"> 
       <xs:enumeration value="110-120" /> 
       <xs:enumeration value="220-240" /> 
       </xs:restriction> 
      </xs:simpleType> 
      </xs:element> 
      <xs:element name="arm"> 
      <xs:complexType> 
       <xs:sequence> 
      <xs:element name ="reaches" minOccurs="2" maxOccurs="3"> 
       <xs:simpleType> 
       <xs:restriction base = "xs:integer"> 
        <xs:enumeration value = "50" /> 
        <xs:enumeration value = "75" /> 
        <xs:enumeration value = "100" /> 
       </xs:restriction> 
       </xs:simpleType> 
      </xs:element> 
       </xs:sequence> 
        </xs:complexType> 
      </xs:element> 
      <xs:element name ="camera"> 
      <xs:simpleType> 
       <xs:restriction base="xs:string"> 
       <xs:enumeration value="1" /> 
       <xs:enumeration value="2" /> 
       </xs:restriction> 
      </xs:simpleType> 
      </xs:element> 
      <xs:element name = "speech"> 
      <xs:simpleType> 
       <xs:restriction base = "xs:string"> 
       <xs:enumeration value = "Spanish" /> 
       <xs:enumeration value = "Chinese" /> 
       <xs:enumeration value = "English" /> 
       <xs:enumeration value = "German" /> 
       <xs:enumeration value = "French" /> 
       </xs:restriction> 
      </xs:simpleType> 
      </xs:element> 
     </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 
+0

我试着验证这个对我的XML文件,我收到了很多错误 – beginnerprogrammer 2012-04-09 05:07:53

+0

与我的XML,我假设你的意思是由X你提供的ML!它没有给我任何错误! – 2012-04-09 05:09:03

+0

这怎么可能?它应该工作!你使用了什么验证器(XML解析器)? – 2012-04-09 05:10:16