递归 XSD 定义
Recursive XSD definition
我正在尝试编写递归 XSD 定义。我看了类似的问题,但我仍然无法找到我做错了什么。
我正在定义一个 header 项目,它有一个文本、一个 URL 和一个 children 项目列表。
<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>
我的 IDE 在嵌套项中给出错误,指出 "item" 未定义。
您已经在本地定义了 item
元素,但必须全局定义它才能被引用:
<?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>
我正在尝试编写递归 XSD 定义。我看了类似的问题,但我仍然无法找到我做错了什么。
我正在定义一个 header 项目,它有一个文本、一个 URL 和一个 children 项目列表。
<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>
我的 IDE 在嵌套项中给出错误,指出 "item" 未定义。
您已经在本地定义了 item
元素,但必须全局定义它才能被引用:
<?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>