XSD验证错误:元素“xs:schema”的“xs”未绑定——新手求助
解决XSD验证中“xs未绑定”的错误
嘿,作为XSD初学者碰到这个问题太正常了,我来帮你快速搞定它!
错误原因
你看到的“元素‘xs:schema’的‘xs’未绑定”错误,本质是XML解析器不知道xs这个前缀对应哪个命名空间。你的代码里只声明了XHTML的命名空间,但完全没给XSD本身的元素指定命名空间绑定,所以解析器认不出所有xs:开头的XSD关键字。
修正后的完整代码
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 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:integer"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
关键修正点
我给你加了这一行核心声明:
xmlns:xs="http://www.w3.org/2001/XMLSchema"
这行代码的作用是把xs前缀和W3C官方的XML Schema命名空间绑定在一起,这样解析器就能识别xs:schema、xs:element、xs:string这些XSD专属的元素和类型了。
另外注意到你的代码里calories的类型没写完,我帮你补成了xs:integer(当然你也可以根据需求改成xs:string等其他类型)。
如果之后你要用这个XSD验证XML文件,可能还需要设置targetNamespace和elementFormDefault="qualified",但先解决当前的绑定错误就足够让你的XSD能被正常解析啦!
内容的提问来源于stack exchange,提问作者FF FF
相关产品推荐
相关产品推荐

