在XML架构中获取错误

时间:2014-03-12 19:18:19

标签: xml

我一直收到错误:属性名称"元素"与元素类型相关联" xs"必须遵循' ='字符。在第4行,每当我验证我的XML模式时,也可以在我的XML模式和我的XML文档中看到我有2个项目标签,我在XML模式中为它们做了正确的事情,我是新手,实际上我的今天第一次尝试XML模式

XML Schema:

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

<xs element name="shiporder" type="xs:string">
<xs: complexType>
<xs: sequence>
<xs element name="orderperson"/>
<xs element name="shipto">
<xs: complexType>
<xs: sequence>
<xs element name="name" type="xs:string"/>
<xs element name="address" type="xs:string"/>
<xs element name="city" type="xs:string"/>
<xs element name="country" type="xs:string"/>
<xs: complexType>
<xs: sequence>
<xs: element name="title" type="xs:string"/>
<xs: element name="note" type="xs:string"/>
<xs: element name="quantity" type="xs:integer"/>
<xs: element name="price" type="xs:decimal"/>
</xs:sequence>
<xs:attribute name="item" type="xs:string" use="required"/> 
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>

   

XML文档:

<?xml version="1.0" encoding="UTF-8"?> 

<shiporder orderid="889923" xmlns:xsi="http://www.w3.org/2001/XMLSchema-xsi:noNamespaceSchemaLocation="shiporder.xsd"> 
<orderperson>John Smith</orderperson> 
<shipto> 
<name>Ola Nordmann</name> 
<address>Langgt 23</address> 
<city>4000 Stavanger</city> 
<country>Norway</country> 
</shipto> 
<item> 
<title>Empire Burlesque</title> 
<note>Special Edition</note> 
<quantity>1</quantity> 
<price>10.90</price> 
</item> 
<item> 
<title>Hide your heart</title> 
<quantity>1</quantity> 
<price>9.90</price> 
</item> 
</shiporder> 

1 个答案:

答案 0 :(得分:0)

您可能需要在架构中将<xs element替换为<xs:element。因为否则element确实不被解释为标记名,而是被解释为属性

此外,您需要将元素和complexType折叠为一个标记:

所以:

<xs element name="shiporder" type="xs:string">
<xs: complexType>

应该成为:

<xs: complexType name="shiporder">

不要忘记删除结束标记(因为此操作后只有一个开始标记)。

您需要删除类型(否则您无法将数据插入标记中)。