我是初学者。这是我的XML Schema代码:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.w3.org/1999/xhtml">
<xs:element name="breaksfast_menu">
<xs:complexType>
<xs:sequence>
<xs:element name="food">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="price" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
<xs:element name="calories" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML文档:
<?xml version="1.0" encoding="UTF-8"?>
<breakfast_menu xmlns:xsi="http://www.w3.org/1999/xhtml">
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>
</breakfast_menu>
尝试验证XML文件时,出现错误消息:
元素
xs
的前缀xs:schema
未绑定。
答案 0 :(得分:2)
更正初始错误
元素
xs
的前缀xs:schema
未绑定。
在任何使用名称空间(包括XSD)的XML文档中,所有使用的名称空间前缀(例如xs
)必须绑定到名称空间URI(例如http://www.w3.org/2001/XMLSchema
),以便XML文档成为namespace-well-formed
此外,XSD元素在特定名称空间中定义:http://www.w3.org/2001/XMLSchema
(不是http://www.w3.org/1999/xhtml
,它是XHTML的名称空间,而不是XSD。)
因此,改变
xmlns="http://www.w3.org/1999/xhtml"
到
xmlns:xs="http://www.w3.org/2001/XMLSchema"
消除您的初始错误。
纠正附加错误
完成上述修复后,还有一些问题需要解决。
在您的XSD中
breaksfast_menu
应与breakfast_menu
匹配
你的XML; xmlns:xsi="http://www.w3.org/1999/xhtml"
是不必要的,但应该
你需要它来定义xsi:noNamespaceSchemaLocation
,你会
需要纠正它
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
。完成上述所有更改后,您的XML将对您的XSD有效。
由于您仍然遇到麻烦,以下是更正的XML和XSD。希望这会有所帮助:
<?xml version="1.0" encoding="UTF-8"?>
<breakfast_menu xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="try.xsd">
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>
</breakfast_menu>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="breakfast_menu">
<xs:complexType>
<xs:sequence>
<xs:element name="food">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="price" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
<xs:element name="calories" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>