首页 > 解决方案 > 谁能告诉我为什么我在针对我的 xsd 验证我的 xml 时出错?

问题描述

谁能告诉我为什么我在针对我的 xsd 验证我的 xml 时出错?这是我的xml:

<?xml version="1.0" encoding="utf-8"?>
<Person xsi:noNamespaceSchemaLocation=person.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <Lecturer>
<Name>John</Name>
<Surname>Smith</Surname>
</Lecturer>
</Person>

这是我的xsd:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Person">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="Lecturer">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Name" type="xs:string"/>
                        <xs:element name="Surname" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

标签: xmlxsdxsd-validation

解决方案


唯一阻止您的 XML 对您的 XSD 有效的是在xsi:noNamespaceSchemaLocation=person.xsd"属性值周围省略引号。

这是您更正的 XML:

<?xml version="1.0" encoding="utf-8"?>
<Person xsi:noNamespaceSchemaLocation="person.xsd"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Lecturer>
    <Name>John</Name>
    <Surname>Smith</Surname>
  </Lecturer>
</Person>

推荐阅读