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

时间:2018-08-28 16:33:42

标签: xml xsd xsd-validation

谁能告诉我为什么我在针对我的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>

1 个答案:

答案 0 :(得分:0)

阻止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>