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

带属性的列表型XSD Type定义需求及XML示例问询

没问题,我来帮你定义符合目标XML结构的XSD Schema,先理清楚需求细节,再给出具体实现:

匹配目标XML的XSD Schema定义

先明确你给出的XML结构规则:

  • <run-list>作为根元素,可包含任意数量的<topic>子元素
  • <topic>必须带必填的name属性,同时允许包含0个或多个<file>子元素
  • <file>必须带必填的number属性,还可以包含文本内容(即属性+文本节点的混合内容)

下面是完全匹配该结构的XSD代码:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <!-- 定义根元素run-list -->
    <xs:element name="run-list">
        <xs:complexType>
            <xs:sequence>
                <!-- 允许任意数量的topic元素 -->
                <xs:element name="topic" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <!-- topic下可包含0到多个file元素 -->
                            <xs:element name="file" minOccurs="0" maxOccurs="unbounded">
                                <xs:complexType mixed="true">
                                    <!-- 定义file的必填number属性 -->
                                    <xs:attribute name="number" type="xs:string" use="required"/>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                        <!-- 定义topic的必填name属性 -->
                        <xs:attribute name="name" type="xs:string" use="required"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

</xs:schema>

关键细节说明:

  • 针对<file>元素设置mixed="true",让它支持同时包含属性和文本内容,完美适配你示例中带多行文本的<file>节点
  • maxOccurs="unbounded"实现了“任意数量”的元素需求
  • use="required"标记name和number为必填属性,符合你的要求
  • minOccurs="0"确保<topic>可以不包含任何<file>子元素

用这个XSD校验你给出的XML示例,完全可以通过验证哦!

内容的提问来源于stack exchange,提问作者Joseph Gagnon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:18:31