我的XML Schema上有一条错误消息。首先,这是我的XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<customer xmlns:xsi="http:www.w3.org/2001/XMLSchema"
xsi:noNamespaceSchemaLocation="customer.xsd">
<name>
<first>Bob</first>
<MI>H</MI>
<last>Jones</last>
</name>
<cnum>007389</cnum>
<mail_a>
<line1>12345 Mockingbird Lane</line1>
<city>Omaha</city>
<state>NE</state>
<zip>68123</zip>
<country>USA</country>
</mail_a>
<deliver_a>
<line1>12345 Mockingbird Lane</line1>
<city>Omaha</city>
<state>NE</state>
<zip>68123</zip>
<country>USA</country>
</deliver_a>
<member_date>1995-10-15</member_date>
<l_order_date>2003-08-02</l_order_date>
</customer>
这是我的架构:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="customer"/>
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="cnum"/>
<xs:element ref="mail_a"/>
<xs:element ref="deliver_a"/>
<xs:element ref="member_date"/>
<xs:element ref="l_order_date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="first" type="xs:string"/>
<xs:element name="MI" type="xs:string"/>
<xs:element name="last" type="xs:string"/>
<xs:element name="cnum" type="xs:integer"/>
<xs:element name="line1" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="state" type="xs:string"/>
<xs:element name="zip" type="xs:integer"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="member_date" type="xs:date"/>
<xs:element name="l_order_date" type="xs:date"/>
<xs:element name="name">
<xs:complexType>
<xs:sequence>
<xs:element ref="first"/>
<xs:element ref="MI"/>
<xs:element ref="last"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="mail_a">
<xs:complexType>
<xs:sequence>
<xs:element ref="line1"/>
<xs:element ref="city"/>
<xs:element ref="state"/>
<xs:element ref="zip"/>
<xs:element ref="country"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="deliver_a">
<xs:complexType>
<xs:sequence>
<xs:element ref="line1"/>
<xs:element ref="city"/>
<xs:element ref="state"/>
<xs:element ref="zip"/>
<xs:element ref="country"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我得到的错误是
元素类型
xs:element
必须由匹配终止 结束标记</xs:element>
由于某种原因,它似乎不喜欢第55行(element ref =“line1”),它上面有一个结束标记。
XML文件说我缺少xs:schema结束标记。好吧,那是...... 我正在使用的编辑器是oXygen。
有什么想法?我一直在努力摆弄它。
答案 0 :(得分:1)
在架构声明之后,您立即关闭了customer元素:
架构元素不正确:
<xs:element name="customer"/>
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="cnum"/>
<xs:element ref="mail_a"/>
<xs:element ref="deliver_a"/>
<xs:element ref="member_date"/>
<xs:element ref="l_order_date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
更正架构元素:
<xs:element name="customer">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="cnum"/>
<xs:element ref="mail_a"/>
<xs:element ref="deliver_a"/>
<xs:element ref="member_date"/>
<xs:element ref="l_order_date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
答案 1 :(得分:1)
除了过早关闭@randominstanceOfLivingThing提到的customer
元素声明之外,你必须更改
xmlns:xsi="http:www.w3.org/2001/XMLSchema"
到
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
在您的XML中,您的XSD将被找到,您的XML将成功验证。
以下是整个更正的XML和XSD文件:
<?xml version="1.0" encoding="UTF-8"?>
<customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="try.xsd">
<name>
<first>Bob</first>
<MI>H</MI>
<last>Jones</last>
</name>
<cnum>007389</cnum>
<mail_a>
<line1>12345 Mockingbird Lane</line1>
<city>Omaha</city>
<state>NE</state>
<zip>68123</zip>
<country>USA</country>
</mail_a>
<deliver_a>
<line1>12345 Mockingbird Lane</line1>
<city>Omaha</city>
<state>NE</state>
<zip>68123</zip>
<country>USA</country>
</deliver_a>
<member_date>1995-10-15</member_date>
<l_order_date>2003-08-02</l_order_date>
</customer>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="customer">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="cnum"/>
<xs:element ref="mail_a"/>
<xs:element ref="deliver_a"/>
<xs:element ref="member_date"/>
<xs:element ref="l_order_date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="first" type="xs:string"/>
<xs:element name="MI" type="xs:string"/>
<xs:element name="last" type="xs:string"/>
<xs:element name="cnum" type="xs:integer"/>
<xs:element name="line1" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="state" type="xs:string"/>
<xs:element name="zip" type="xs:integer"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="member_date" type="xs:date"/>
<xs:element name="l_order_date" type="xs:date"/>
<xs:element name="name">
<xs:complexType>
<xs:sequence>
<xs:element ref="first"/>
<xs:element ref="MI"/>
<xs:element ref="last"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="mail_a">
<xs:complexType>
<xs:sequence>
<xs:element ref="line1"/>
<xs:element ref="city"/>
<xs:element ref="state"/>
<xs:element ref="zip"/>
<xs:element ref="country"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="deliver_a">
<xs:complexType>
<xs:sequence>
<xs:element ref="line1"/>
<xs:element ref="city"/>
<xs:element ref="state"/>
<xs:element ref="zip"/>
<xs:element ref="country"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>