2016-07-12 33 views
1

Ich habe eine XSD-Datei, dieDisable XSD Validierung für ein einzelnes Element?

<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> 

I NonTeachingActivity solche die Validierung von Element alle ein Element enthält entfernt werden soll, dass, ob es oder nicht geschieht, wird es nie Validierung überprüfen werden. Und ich werde das ganze Element nicht entfernen, nur dieses Element ignorieren.

Antwort

3

Es gibt keine direkte Unterstützung in XSD für das, was Sie fragen, aber hier sind zwei Möglichkeiten:

  1. Wenn Sie NonTeachingActivity ‚s Content-Modell wollen nicht validiert werden, können Sie es räumen,

    <xs:element name="NonTeachingActivity"/> 
    

    dann darf es XML enthalten.

  2. Wenn Sie anderer Elemente im Inhaltsmodell NonTeachingActivity ‚s Aussehen wollen nicht Validierung beeinflussen, können Sie versuchen, Verweise auf NonTeachingActivity zu ersetzen mit

    <xs:any processContents="skip" /> 
    

    und, sofern Sie nicht erstellt haben eine Parsing-Ambiguität, dies wird ermöglichen jedes Element an seiner Stelle erscheinen.

Option # 1, kombiniert mit der Herstellung NonTeachingActivity überall eingesetzt optional, ist wahrscheinlich am nächsten Ihre Anforderungen zu erfüllen.

+0

ich dieses Element Validierung ignoriert werden sollen, entweder auftritt oder nicht in XML-Datei. – Gabu

+0

@Gabu: In Ihrem Kommentar werden die neuen Informationen, die ich Ihnen in dieser Antwort gegeben habe, nicht berücksichtigt. Es wird lediglich Ihre ursprüngliche Anfrage wiederholt. – kjhughes

+0

Option 1 funktioniert gut für mich – Roland

0

Kann die "any" Tag verwenden:

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

Dies ist nicht funktionieren. – Gabu