Xml 递归XSD定义

Xml 递归XSD定义,xml,xsd,xml-validation,Xml,Xsd,Xml Validation,我正在尝试编写一个递归XSD定义。我看了类似的问题,但我仍然无法找到我做错了什么 我正在定义一个标题,它是一个包含文本、URL和子项列表的项 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="header"> <xs:sequence> <xs:element name="item"> <xs:co

我正在尝试编写一个递归XSD定义。我看了类似的问题,但我仍然无法找到我做错了什么

我正在定义一个标题,它是一个包含文本、URL和子项列表的项

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="header">
    <xs:sequence>
        <xs:element name="item">
            <xs:complexType>
                <xs:sequence>
                    <xs:element type="xs:string" name="text"/>
                    <xs:element type="xs:string" name="url"/>
                    <xs:sequence>
                        <xs:element ref="item" />
                    </xs:sequence>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:sequence>
</xs:element>


My IDE在嵌套项中给出了一个错误,表示“项”未定义。

您已经在本地定义了
元素,但必须全局定义它才能被引用:

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

  <xs:element name="item">
    <xs:complexType>
      <xs:sequence>
        <xs:element type="xs:string" name="text"/>
        <xs:element type="xs:string" name="url"/>
        <xs:sequence>
          <xs:element ref="item" />
        </xs:sequence>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="header">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="item"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>