繁体   English   中英

具有唯一 ID 的 xml 架构

[英]xml schema with unique id

你好,我必须为大学示例做 xsd 文件。 我的 xsd 文件应该包含有关部门的信息。 每个部门都应该有唯一的 ID xs:ID,然后是名称和可选的地址数。 在部门中,有些员工也应该具有特定部门的唯一 ID。 每个员工都有姓名,必填姓氏,可选标题和三个类别。 每个人都应该按特定顺序至少回答一个问题。 在大学里也有科目列表,其中每个科目都有唯一的 ID、描述和学生人数。 对于每个主题,它应该被定义为 employed xs:IDREF。 我有这样的事情:如何将此 IDREF 添加到主题,当我尝试在 xsd 图表中打开它时遇到问题。 我得到的信息是属性元素是未知的,节点是未知的。 这里有什么问题以及如何解决这个问题?

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    
    <xs:element name="university">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="department" >
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="id_department"><xs:attribute name="id_department"
                                        type="xs:ID"
                                        use="required"/></xs:element>
                            <xs:element name="name"
                                    type="xs:string"></xs:element>
                            <xs:element name="address"
                                    type="xs:string"
                                    maxOccurs="unbounded"  ></xs:element>
                            <xs:element name="employee" >
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="id_employee"
                                                type="xs:ID"
                                                minOccurs="1">
                                            <xs:attribute name="id_employee"
                                                    type="xs:ID"
                                                    use="required"/>
                                        </xs:element>
                                        <xs:element name="name"
                                                type="xs:string"
                                                minOccurs="1"></xs:element>
                                        <xs:element name="surname"
                                                type="xs:string"
                                                minOccurs="1"></xs:element>
                                        <xs:element name="title"
                                                type="xs:string"
                                                minOccurs="0"></xs:element>
                                        <xs:element name="category"
                                                type="xs:string">
                                            <xs:simpleType>
                                                <xs:restriction base="string">
                                                    <xs:enumeration value="science"></xs:enumeration>
                                                    <xs:enumeration value="administration"></xs:enumeration>
                                                    <xs:enumeration value="technical"></xs:enumeration>
                                                </xs:restriction>
                                            </xs:simpleType>
                                        </xs:element>
                                        <xs:element name="address" minOccurs="1">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="street"></xs:element>
                                                    <xs:element name="number"></xs:element>
                                                    <xs:element name="zip_code"></xs:element>
                                                    <xs:element name="city"></xs:element>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="subject">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="id_subject"
                                                type="xs:string"> <xs:attribute name="id_subject"
                                                    type="xs:ID"
                                                    use="required"/></xs:element>
                                        <xs:element name="name"
                                                type="xs:string"></xs:element>
                                        <xs:element name="description"
                                                type="xs:string"></xs:element>
                                        <xs:element name="students_count"
                                                type="xs:int"><xs:minInclusive value="6"/>
                                            <xs:maxInclusive value="400"/>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>


xs:attribute不能作为xs:element的子元素出现。 您需要为元素定义一个xs:complexType ,属性可以定义为 complexType 的一部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM