我在用XSD验证XML时遇到了困难。验证器抛出
与元素类型"mpreader“关联的属性"xsi:schemaLocation”的前缀"xsi“不绑定。
这是一个XML剪辑
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<mpreader xmlns="C:\Users\Dallan\Desktop\Mpreader\" xmlns:xs="http://www.w3.org/20one/XMLSchema-instance"
xsi:schemaLocation="C:\Users\Dallan\Desktop\Mpreader\mpreaderschemafinal.xsd">
<firmware>"3.4.16"</firmware>
<hardware>"2.3.53"</hardware>
<sn>"234-1three5"</sn>
<devices>
</devices>
</mpreader>这是XSD剪辑
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="C:Users/Dallan/Desktop/Mpreader/" elementFormDefault="qualified" targetNamespace="C:\Users\Dallan\Desktop\Mpreader\">
<xs:element name="mpreader">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="firmware" type="xs:string"/>
<xs:element name="hardware" type="xs:string"/>
<xs:element name="sn" type="xs:string"/>
<xs:element name="devices">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>发布于 2015-08-04 07:26:11
与元素类型"mpreader“关联的属性"xsi:schemaLocation”的前缀"xsi“不绑定。
把它绑起来,亲爱的达兰,亲爱的达兰.
只需添加一个名称空间声明,将前缀xsi绑定到命名空间http://www.w3.org/2001/XMLSchema-instance。
(Bucket)
发布于 2015-08-03 23:44:56
您的XML应该为xsi声明名称空间,例如xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance“
发布于 2015-08-04 02:03:55
快速回答:修复您使用xsi:schemaLocation的方式
<mpreader xmlns="C:\Users\Dallan\Desktop\Mpreader\"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="C:\Users\Dallan\Desktop\Mpreader\
C:\Users\Dallan\Desktop\Mpreader\mpreaderschemafinal.xsd">详细信息
xsi (not xs)命名空间前缀以匹配它在xsi:schemaLocation中的使用。xsi:http://www.w3.org/2001/XMLSchema-instance、而不是 http://www.w3.org/20one/XMLSchema-instance声明正确的命名空间。xsi:schemaLocation的值更改为命名空间位置对。devices中的空格(尽管这可能只是剪枝的一个工件)。XSD中也缺少一个关闭xs:sequence标记(但是,这可能只是一个修剪错误):
然后,整个,下面的XSD,
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="C:\Users\Dallan\Desktop\Mpreader\">
<xs:element name="mpreader">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="firmware" type="xs:string"/>
<xs:element name="hardware" type="xs:string"/>
<xs:element name="sn" type="xs:string"/>
<xs:element name="devices">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>将验证以下XML:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<mpreader xmlns="C:\Users\Dallan\Desktop\Mpreader\"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="C:\Users\Dallan\Desktop\Mpreader\
C:\Users\Dallan\Desktop\Mpreader\mpreaderschemafinal.xsd">
<firmware>"3.4.16"</firmware>
<hardware>"2.3.53"</hardware>
<sn>"234-1three5"</sn>
<devices/>
</mpreader>https://stackoverflow.com/questions/31798449
复制相似问题