元素类型 xs:element 必须由匹配的结束标记 </xs:element> 终止
The element type xs:element must be terminated by the matching end-tag </xs:element>
我的 XML 架构有一条错误消息。首先,这是我的 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>
我得到的错误是
The element type xs:element
must be terminated by the matching
end-tag </xs:element>
它似乎出于某种原因不喜欢第 55 行(元素 ref="line1"),它上面有一个结束标记。
XML 文件说我缺少 xs:schema 结束标记。好吧,它在那里......
我使用的编辑器是 oXygen。
有什么想法吗?我一直在摆弄它。
在架构声明之后您立即关闭了客户元素:
不正确的架构元素:
<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>
除了@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
<?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>
XSD
<?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>
我的 XML 架构有一条错误消息。首先,这是我的 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>
我得到的错误是
The element type
xs:element
must be terminated by the matching end-tag</xs:element>
它似乎出于某种原因不喜欢第 55 行(元素 ref="line1"),它上面有一个结束标记。
XML 文件说我缺少 xs:schema 结束标记。好吧,它在那里...... 我使用的编辑器是 oXygen。
有什么想法吗?我一直在摆弄它。
在架构声明之后您立即关闭了客户元素:
不正确的架构元素:
<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>
除了@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
<?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>
XSD
<?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>