You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写XSD实现可选列表存在时至少包含1个元素的校验规则

修正方案

你当前的XSD未限制<special>节点的最大出现次数,同时冗余配置导致空<specials>节点无法被识别为非法,调整如下即可满足要求:

修正后完整XSD代码

<xs:element name="software">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="programm" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="name" type="xs:string" minOccurs="1"/>
                        <xs:element name="specials" minOccurs="0">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="special" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="id" type="programmID"/>
                </xs:complexType>
            </xs:element>
       </xs:sequence>
    </xs:complexType>
</xs:element>

调整说明

  1. 移除了<xs:sequence>上冗余的minOccurs="1"配置(该属性默认值就是1,无需显式声明)
  2. 给<special>节点新增maxOccurs="unbounded"配置,既可以强制只要出现<specials>就至少有1个<special>子节点,也能匹配你示例中多个<special>的使用场景
  3. 调整后空<specials></specials>或自闭合<specials/>都会触发校验错误,完全符合你要求的规则

内容的提问来源于stack exchange,提问作者Ulf Tietze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:24:08