对单个元素禁用 XSD 验证?
Disable XSD validation for a single element?
我有一个 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
的所有验证,这样无论它是否发生,都不会检查验证。而且我不会删除整个元素只是忽略这个元素。
XSD 中没有直接支持您提出的问题,但有两种选择:
如果您希望NonTeachingActivity
的内容模型不
验证通过,可以腾空了,
<xs:element name="NonTeachingActivity"/>
那么它将被允许包含任何 XML.
如果您希望NonTeachingActivity
出现在内容模型中
其他不影响验证的元素,您可以尝试
将对 NonTeachingActivity
的引用替换为
<xs:any processContents="skip" />
并且,如果您没有造成解析歧义,这将
允许任何元素出现在它的位置。
选项 #1,结合使 NonTeachingActivity
在任何地方使用都可选,可能最接近满足您的要求。
可以使用 "any" 标签:
<xs:element name="NonTeachingActivityList">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
我有一个 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
的所有验证,这样无论它是否发生,都不会检查验证。而且我不会删除整个元素只是忽略这个元素。
XSD 中没有直接支持您提出的问题,但有两种选择:
如果您希望
NonTeachingActivity
的内容模型不 验证通过,可以腾空了,<xs:element name="NonTeachingActivity"/>
那么它将被允许包含任何 XML.
如果您希望
NonTeachingActivity
出现在内容模型中 其他不影响验证的元素,您可以尝试 将对NonTeachingActivity
的引用替换为<xs:any processContents="skip" />
并且,如果您没有造成解析歧义,这将 允许任何元素出现在它的位置。
选项 #1,结合使 NonTeachingActivity
在任何地方使用都可选,可能最接近满足您的要求。
可以使用 "any" 标签:
<xs:element name="NonTeachingActivityList">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>