设计XML结构

时间:2017-07-27 13:41:24

标签: xml

XYZ学校希望将学生和教职员工的详细信息存储在XML文件中。以下方案有助于设计XML文档:

  • persons将成为根标记。
  • persons将为每个人提供姓名,年龄,性别,地址的条目。
  • 一个人可以是学生或工作人员。
  • 学生将拥有rollno,标准和部分。
  • 如果是员工,那么就是员工和主题。
  • 每个人必须拥有以下条目的地址 - doorno,街道,城市和州。

我收到此错误:

  

例外:cvc-complex-type.2.4.a:从元素' student'开始发现无效内容。其中一个{name}'是期待。

2 个答案:

答案 0 :(得分:0)

xsd

    <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="persons">
      <xs:complexType>
         <xs:sequence>
            <xs:element name="person">
               <xs:complexType>
                  <xs:sequence>
                     <xs:element name="name" type="xs:string" />
                     <xs:element name="age" type="xs:integer" />
                     <xs:element name="gender" type="xs:string" />
                     <xs:element name="address">
                        <xs:sequence>
                           <xs:element name="doorno" type="xs:integer" />
                           <xs:element name="street" type="xs:string" />
                           <xs:element name="city" type="xs:string" />
                           <xs:element name="state" type="xs:string" />
                        </xs:sequence>
                     </xs:element>
                     <xs:element name="student" minOccurs="0">
                        <xs:complexType>
                           <xs:sequence>
                              <xs:element name="rollno" type="xs:integer" />
                              <xs:element name="standard" type="xs:integer" />
                              <xs:element name="section" type="xs:string" />
                           </xs:sequence>
                        </xs:complexType>
                     </xs:element>
                     <xs:element name="staff" minOccurs="0">
                        <xs:complexType>
                           <xs:sequence>
                              <xs:element name="staffid" type="xs:integer" />
                              <xs:element name="subject" type="xs:string" />
                           </xs:sequence>
                        </xs:complexType>
                     </xs:element>
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
</xs:schema>

答案 1 :(得分:0)

其中一个名称可能不是有效的类型。尝试以下代码。

<?xml version="1.0" encoding="utf-8"?>
<persons>
    <person>
        <name>Sam</name>
        <age>11</age>
        <gender>M</gender>
        <address>
            <doorno>20</doorno>
            <street>Gandhi Colony</street>
            <city>Hyderabad</city>
            <state>Telangana</state>
        </address>
        <student>
            <rollno>39</rollno>
            <standard>6</standard>
            <section>A</section>
        </student>
    </person>
    <person>
        <name>Sally</name>
        <age>30</age>
        <gender>F</gender>
        <address>
            <doorno>17</doorno>
            <street>Ambedkar Road</street>
            <city>Hyderabad</city>
            <state>Telangana</state>
        </address>
        <staff>
            <staffid>120</staffid>
            <subject>English</subject>
        </staff>
    </person>
</persons>