XSD 架构中的递归元素
本文关键字:递归 元素 XSD | 更新日期: 2023-09-27 17:56:51
我正在尝试为类别制作XSD,但它总是给我这个警告错误警告:命名空间 '' 不可用于在此架构中引用错误:"类别"未报告我尝试使用未指定的层次结构级别制作递归类别
这是我的 XSD 结构
<xs:schema xmlns:tns="http://www.tempuri.org" targetNamespace="http://www.tempuri.org" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Categories">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="Category" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Category">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="code" type="xs:string" />
<xs:element name="parent" nillable="true" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Category" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
所需的 xml 就像
<?xml version="1.0" encoding="utf-8"?>
<Categorıes>
<Category>
<Code>1</Code>
<Name>Kategori1</Name>
<Parent>0</Parent>
<Category>
<Code>11</Code>
<Name>Kategori11</Name>
<Parent>1</Parent>
<Category>
<Code>111</Code>
<Name>Kategori111</Name>
<Parent>11</Parent>
</Category>
</Category>
</Category>
<Category>
<Code>2</Code>
<Name>Kategori2</Name>
<Parent>0</Parent>
<Category>
<Code>21</Code>
<Name>Kategori21</Name>
<Parent>2</Parent>
<Category>
<Code>211</Code>
<Name>Kategori211</Name>
<Parent>21</Parent>
</Category>
<Category>
<Code>212</Code>
<Name>Kategori212</Name>
<Parent>21</Parent>
</Category>
</Category>
</Category>
</Categorıes>
请帮助我
Category
元素位于命名空间http://www.tempuri.org
中,因此您需要将其引用为
<xs:element minOccurs="0" maxOccurs="unbounded" ref="t:Category"
xmlns:t="http://www.tempuri.org"/>
当然,命名空间声明可以出现在任何祖先元素上;通常将其放在xs:schema本身上。