元素或属性与QName生成不匹配,xmlns:xs正确定义

时间:2017-07-19 00:05:55

标签: xml xsd

我正在尝试验证此xsd文件,但同样的错误会不断弹出: 异常:元素或属性与QName生成不匹配:QName :: =(NCName':')?NCName。 假

这是xsd文件:

    <?xml version="1.0" encoding="UTF-8"?>

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

<xs:element name="student">
<xs:complexType>
<xs:sequence>
<xs:element name="rollno" type="xs:int"/>
<xs:element name="standard" type="xs:int"/>
<xs:element name="section" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="staff">
<xs:complexType>
<xs:sequence>
<xs:element name="staffid" type="xs:int"/>
<xs:element name="subject" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs: element name="persons">
<xs:complexType>
<xs:sequence>
<xs:element name="person" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="age" type="xs:int"/>
<xs:element name="gender">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="M|F"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="address">
<xs:complexType>
<xs:sequence>
<xs:element name="doorno" type="xs:int"/>
<xs:element name="street" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="state" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:choice>
<xs:element ref="student"/>
<xs:element ref="staff"/>
</xs:choice>        
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

这是它的XML文件:

<?xml version="1.0" encoding="utf-8"?>

<persons>

    <person>

        <name>Tom</name>

        <age>11</age>

        <gender>M</gender>

        <address>

            <doorno>27</doorno>

            <street>Tony's road, koramangala</street>

            <city>Bangalore</city>

            <state>Karnataka</state>

        </address>

        <student>

            <rollno>10</rollno>

            <standard>6</standard>

            <section>A</section>

        </student>  

    </person>

    <person>

        <name>Shiny</name>

        <age>12</age>

        <gender>F</gender>

        <address>

            <doorno>10</doorno>

            <street>Main Bazar, Madiwala</street>

            <city>Bangalore</city>

            <state>Karnataka</state>

        </address>

        <staff>

            <staffid>123</staffid>

            <subject>Maths</subject>

        </staff>

    </person>

</persons>

我见过的所有其他问题都提到了xmlns:xs = line的错误,但我认为我已经正确定义了。关于如何解决这个问题的任何想法都会受到欢迎。谢谢!

1 个答案:

答案 0 :(得分:0)

更改

<xs: element name="persons">

<xs:element name="persons">

然后您的XSD将格式正确并将成功验证您的XML。