xml验证问题

时间:2010-05-30 15:13:32

标签: xsd

我在验证我创建的架构时遇到了问题。 “cvc-elt.1:无法找到元素'类别'的声明。”

XSD

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

<xs:element name="list">
<xs:complexType>
    <xs:sequence>
        <xs:element name="category" type="categoryType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>
</xs:element>

<xs:complexType name="categoryType">
    <xs:sequence>
        <xs:element name="name" type="xs:string"/>
        <xs:element name="desc"  type="xs:string"/>
        <xs:element name="icon" type="xs:base64Binary"/>
        <xs:element name="poi" type="poiType"  minOccurs="0"  maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="poiType">
    <xs:sequence>
        <xs:element name="name" type="xs:string"/>
        <xs:element name="desc"  type="xs:string"/>
        <xs:element name="longitude"  type="xs:long"/>
        <xs:element name="latitude"  type="xs:long"/>
        <xs:element name="url" type="xs:string" minOccurs="0"  maxOccurs="unbounded"/>
        <xs:element name="image" type="xs:base64Binary" minOccurs="0"  maxOccurs="unbounded"/>  
    </xs:sequence>
</xs:complexType>

</xs:schema>

XML

<?xml version="1.0" encoding="UTF-8"?>
<list SchemaLocation="sem.xsd">

<category>

<name>Sehenswürdigkeiten</name>
<desc>sehenswerte und berühmte Orte, die man gesehen haben muss</desc>
<icon>...</icon>

<poi>
<name>Linzer Landhaus</name>
<desc>Sitz des Oberösterreichsichen Landtags</desc>
<url>http://www.linz.at/tourismus/7569.asp</url>
<longitude>48.304107</longitude>
<latitude>14.286025</latitude>
<image>...</image>
</poi>

<poi>
<name>Ars Electronica</name>
<desc>Museum der digitalen Künste</desc>
<url>http://www.aec.at</url>
<longitude>48.309788</longitude>
<latitude>14.284179</latitude>
<image>...</image>
<image>...</image>
</poi>

</category>

<category>...</category>

</list>

任何想法都错了吗? 欢呼声恶作剧

2 个答案:

答案 0 :(得分:2)

问题可能出在以下几行:

<list SchemaLocation="sem.xsd">

您尚未表明SchemaLocation有任何特殊之处,它只是看起来像另一个属性。

应该是:

<list xsi:schemaLocation="sem.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

有关更详细的说明,请参阅here

答案 1 :(得分:2)

<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="sem.xsd">

诀窍=)

相关问题