2016-07-12 7 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 «s модель содержимого не быть подтверждено, вы можете освободить его,

    <xs:element name="NonTeachingActivity"/> 
    

    тогда ему будет разрешено содержать любой XML.

  2. Если вы хотите появление NonTeachingActivity «сек в модели содержимого других элементов, которые не влияют на проверку, вы можете попытаться заменить ссылки на NonTeachingActivity с

    <xs:any processContents="skip" /> 
    

    и, при условии, вы не создали двусмысленность разбора, это будет , чтобы любой элемент появлялся на своем месте.

Вариант № 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