xsd验证码问题

时间:2012-02-02 16:49:08

标签: xml xsd

我正在尝试让XML文件清楚地验证我的汽车文件有问题,任何人指出我需要改变的正确方向吗?

xml代码

<?xml version="1.0"?>

<employees> xmlns="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="employees.xsd">

<emp> <first>Bill</first> <last>Johnson</last> </emp> <emp> <first>April</first> <last>Jones</last> </emp> <emp> <first>Chad</first> <last>Becker</last> </emp> <emp> <first>David</first> <last>Jones</last> </emp> </employees>

xsd代码

<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="employees"> <xs:simpleType> <xs:restriction base="xs:string"> </xs:restriction> </xs:simpleType> </xs:element>

<xs:element name="emp"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="first|last" /> </xs:restriction> </xs:simpleType> </xs:element>

<xs:element name="first">

1 个答案:

答案 0 :(得分:0)

您发布的XSD和XML代码都存在格式问题。我不确定将代码复制/粘贴到SO中是否存在问题,或者您正在编写的代码存在问题。我已经采用了您发布的片段并创建了一个有效的模式和匹配的xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.w3schools.com" xmlns:xs="http://www.w3.org/2001/XMLSchema"    targetNamespace="http://www.w3schools.com">
<xs:element name="last" type="xs:string"/>
<xs:element name="first" type="xs:string"/>
<xs:element name="employees">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="emp" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
<xs:element name="emp">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="first"/>
            <xs:element ref="last"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

...和XML文件:

<?xml version="1.0"?>
<employees xmlns="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3schools.com">
<emp>
    <first>Bill</first>
    <last>Johnson</last>
</emp>
<emp>
    <first>April</first>
    <last>Jones</last>
</emp>
<emp>
    <first>Chad</first>
    <last>Becker</last>
</emp>
<emp>
    <first>David</first>
    <last>Jones</last>
</emp>
</employees>