2013-03-30 70 views
1

因此,我的任務是編寫XML模式定義來存儲我當前學期的學術計劃。我應該包括我的名字和課程年度以及每個學術課程的額外元素。我需要執行規則,我必須至少有四班,不超過八班。對於每個班級,我需要一個指示符,課程名稱,教師姓名和當前總體百分比。我還需要確保它們都是適當的數據類型。課程安排的XML模式定義

我的問題似乎是放在部分名稱和班級年。目前,我有:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> 

<xs:element name="classSchedule">    
    <xs:complexType> 
     <xs:attribute name="name" type="xs:string"/> 
     <xs:attribute name="classYear" type="xs:int"/> 
      <xs:sequence minOccurs="4" maxOccurs="8"> 
       <xs:element name="class"> 
        <xs:complexType> 
         <xs:all> 
          <xs:element name="courseDesignator" type="xs:string"/> 
          <xs:element name="courseName" type="xs:string"/> 
          <xs:element name="instructorName" type="xs:string"/> 
          <xs:element name="currentGrade" type="xs:float"/> 
         </xs:all> 
        </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
     </xs:complexType>  
    </xs:element> 
</xs:schema> 

現在,我得到一個錯誤的sequence標籤不能來的complexType標籤下方。

名稱和班級年份是關於學生的信息,每個學生將有4到8個班級;現在我無法弄清楚爲什麼我在名字和課程年度中遇到麻煩。當我拿出兩行名稱和班級年份時,XSD正確保存而沒有錯誤。

回答

1

您的模式基本沒問題,但是complexType節點的定義需要屬性出現在序列之後。例如: -

<xs:complexType> 
    <xs:sequence minOccurs="4" maxOccurs="8"> 
    <xs:element name="class"> 
     <xs:complexType> 
     ... 
     </xs:complexType> 
    </xs:element> 
    </xs:sequence> 
    <xs:attribute name="name" type="xs:string"/> 
    <xs:attribute name="classYear" type="xs:int"/> 
</xs:complexType> 
+0

+1毆打我衝! –