2013-11-22 57 views
0

一部分我有以下XML模式:Refrencing一個元件是一個複雜類型的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元件具有類型學生/ ID。我該如何替換佔位符? 我曾嘗試放式=「Assignments_Hello /學生/ ID」,它沒有工作

回答

0

你需要在頂層聲明的類型,並在兩個地方引用它:作爲目前

<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元素,但如果你調整它允許每個不止一個,那麼你可能要考慮使用關鍵keyref,以確保學生的ID都是唯一的,並且每個assi的StudentID gnment確實對應於其中一個學生的ID

相關問題