gpt4 book ai didi

java - 禁用单个元素的 XSD 验证?

转载 作者:行者123 更新时间:2023-11-29 04:43:15 26 4
gpt4 key购买 nike

我有一个 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 不直接支持您的要求,但有两种选择:

  1. 如果您不希望 NonTeachingActivity 的内容模型已验证,您可以腾出它,

    <xs:element name="NonTeachingActivity"/>

    然后它将被允许包含任何 XML。

  2. 如果您希望 NonTeachingActivity 出现在内容模型中其他不影响验证的元素,您可以尝试将对 NonTeachingActivity 的引用替换为

    <xs:any processContents="skip" />

    并且,如果您没有造成解析歧义,这将允许任何元素出现在它的位置。

选项 #1,结合使 NonTeachingActivity 在任何地方使用都可选,可能最接近满足您的要求。

关于java - 禁用单个元素的 XSD 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38325359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com