簡體   English   中英

修飾XML模式中屬於復雜類型一部分的元素

[英]Refrencing a element that is a part of a complex type in XML Schema

我有以下xml模式:

<?xml version="1.0" encoding="ISO-8859-1" ?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xs:element name="Assignments_Hello">
            <xs:complexType>
                <xs:sequence>

                    <xs:element name="Student">
                        <xs:complexType >
                            <xs:sequence>
                                <xs:element name="ID">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:pattern value="[a-zA-Z0-9]{3}[0-9]"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:element>

                                <xs:element name="Name" type="xs:string"  minOccurs="1" maxOccurs="1"/>

                                <xs:element name="Phone"  minOccurs="1" maxOccurs="1">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:pattern value="[1-9][0-9]{2}-[1-9][0-9]{2}-[0-9]{4}"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:element>

                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>

                    <xs:element name="Assignment">
                        <xs:complexType>
                            <xs:sequence>

                                <xs:element name="AssignID">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:pattern value="[1-9]{4}"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:element>

                                <xs:element name="Topic"/>

                                <xs:element name="StudentID" type or ref =**"#----Palceholder-------#"**/>

                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

我希望“工作分配”下的“ StudentID”元素具有“ Student / ID”類型。 我用什么替換占位符? 我試過把type =“ Assignments_Hello / Student / ID”放不下

您需要在頂層聲明類型,並在兩個地方引用它:

<xs:simpleType name="studentIdType">
    <xs:restriction base="xs:string">
        <xs:pattern value="[a-zA-Z0-9]{3}[0-9]"/>
    </xs:restriction>
</xs:simpleType>

 <xs:element name="Assignments_Hello">
      <xs:complexType>
          <xs:sequence>
              <xs:element name="Student">
                  <xs:complexType >
                      <xs:sequence>
                          <xs:element name="ID" type="studentIdType"/>
                          <!-- .... -->
                      </xs:sequence>
                  </xs:complexType>
              </xs:element>

              <xs:element name="Assignment">
                  <xs:complexType>
                      <xs:sequence>
                          <!-- ... -->
                          <xs:element name="StudentID" type="studentIdType" />

當前編寫的架構每個Assignments_Hello只允許一個Student和一個Assignment元素,但是如果您對其進行了調整,以允許一個以上的元素,那么您可能需要考慮使用keykeyref來確保學生ID是唯一的,並且每個作業的StudentID確實對應於其中一個學生的ID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM