2016-07-12 131 views
1

我有一個XSD文件,其中包含了一些元素禁用單個元素的XSD驗證?

<xs:element name="BasicData"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="TTTeacherList" minOccurs="0"/> 
       <xs:element ref="NonTeachingActivityList" minOccurs="0"/> 
       <xs:element ref="TTStudentList" minOccurs="0"/> 
      </xs:sequence> 
     </xs:complexType> 
</xs:element> 

<xs:element name="NonTeachingActivityList"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="NonTeachingActivity" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
</xs:element> 

<xs:element name="NonTeachingActivity"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="NTCode" type="String10"/> 
       <xs:element name="Description" type="String100"/> 
       <xs:element name="Type" type="MeetingType"/> 
      </xs:sequence> 
      <xs:attribute name="RefId" type="GUID" use="required"/> 
     </xs:complexType> 
</xs:element> 

我想刪除元素NonTeachingActivity,使得無論發生或不發生,它將永遠不會檢查驗證所有的驗證。我不會刪除整個元素只是忽略這個元素。

回答

3

有一個在XSD你問什麼不直接支持,但這裏有兩個選擇:

  1. 如果你想NonTeachingActivity的內容模型不被 驗證,您可以騰退,

    <xs:element name="NonTeachingActivity"/> 
    

    那麼它將被允許包含任何XML。

  2. 如果你想NonTeachingActivity的內容模型外觀等元素 不影響驗證,你可以嘗試用

    <xs:any processContents="skip" /> 
    

    和,你沒有創建提供替換引用NonTeachingActivity一個解析含糊不清,這將 允許任何元素出現在它的位置。

選項#1,結合在任何地方使用NonTeachingActivity可選,可能最符合您的要求。

+0

我想忽略這個元素驗證,無論發生或不發生在XML文件中。 – Gabu

+0

@Gabu:您的評論無法解決我在此答案中提供給您的新信息;它只是重申你原來的要求。 – kjhughes

+0

選項1適合我工作 – Roland

0

可以使用「任何」標籤:

<xs:element name="NonTeachingActivityList"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:any minOccurs="0"/> 
      </xs:sequence> 
     </xs:complexType> 
</xs:element> 
+0

這是行不通的。 – Gabu