验证xsd到#AnonType的错误

时间:2014-04-10 02:58:04

标签: xml xsd

我是XML和XSD的新手,我一直在尝试将此xsd代码验证为xml文件,但没有任何成功。我在下面收到错误,我看不出有什么问题。任何帮助将不胜感激。

  

s4s-elt-invalid-content.1:内容   '#AnonType_endangered_species'是无效的。元素'元素'是   无效,错位或过于频繁发生。

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name="endangered_species">
  <xsd:complexType>

<xsd:element name="animal" type="xsd:string" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
    <xsd:sequence>
<xsd:element name="name" minOccurs="2" maxOccurs="2" type="xs:string">
    <xsd:complexType>
        <xsd:all>
        </xsd:all>
             <xsd:attribute ref="language"> 
            <xsd:simpleType>
               <xsd:restriction base="xsd:string">
                  <xsd:enumeration value="English"/>
                  <xsd:enumeration value="Latin"/>
               </xsd:restriction>
            </xsd:simpleType>
             </xsd:attribute>
    </xsd:complexType>
</xsd:element>

    </xsd:sequence>
</xsd:complexType>
</xsd:element>  

</xsd:complexType>
</xsd:element>

</xsd:schema>

1 个答案:

答案 0 :(得分:2)

您的xsd:element标记放错了地方。作为xsd:element的孩子,您无法xsd:contentType

您可能希望将其放在一个组中,例如序列

<xsd:complexType>
    <xsd:sequence>
         <xsd:element ...>
    ...
...

您还有XSD中的其他问题。您必须选择是否要嵌套complexType元素,或者是否要声明一个简单类型。您可以修复它从嵌套的type="xsd:string"元素中删除xs:element属性。

最后,您要么引用一个属性(在XSD中不存在),也要为其命名。由于您有嵌套类型,因此您可能不想引用它。因此,将<xsd:attribute ref="language">更改为<xsd:attribute name="language">