我正在尝试为类别制作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>
请帮帮我
答案 0 :(得分:0)
Category
元素位于命名空间http://www.tempuri.org
中,因此您需要将其引用为
<xs:element minOccurs="0" maxOccurs="unbounded" ref="t:Category"
xmlns:t="http://www.tempuri.org"/>
当然命名空间声明可以出现在任何祖先元素上;通常把它放在xs:schema本身上。