XML Schema:如何拥有多个相同的元素?

stf*_*tfn 4 xml schema xsd

我在构建我的第一个 XML 模式时遇到了相当大的困难。我需要它来验证形成问卷的 XML 文档的正确性。
所以这里是不要得到的部分:

我改变了来源。第一个答案是指此代码:

<root>
    <values>
        <value>Lorem</value>
        <value>ipsum</value>
        <value>dolor</value>
    </values>
</root>
Run Code Online (Sandbox Code Playgroud)

现在我的实际目标是这样的:

<requires>
    <require requires-id="2" type="included">
        <values>  
            <value isRequired="true">Lorem</value>
            <value isRequired="false">Lorem</value>
            <value isRequired="false">Lorem</value>
        </values>
    </require>
    <require requires-id="5" type="excluded">
        <values>  
            <value isRequired="true">Lorem</value>
            <value isRequired="false">Lorem</value>
        </values>
    </require>
</requires>
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮忙制作一个合适的架构吗?我正在使用Sun Multi-Schema XML Validator (MSV)根据 Schema 验证文档。

提前致谢,
史蒂夫

stf*_*tfn 5

这应该为第一个 xml 执行此操作:

<xs:complexType name="Values">
    <xs:sequence>
        <xs:element name="value" minOccurs="0" maxOccurs="200">
            <xs:complexType>
                <xs:simpleContent>
                    <xs:extension base="xs:string">
                        <xs:attribute name="isOnlyOption" type="xs:boolean"/>
                    </xs:extension>
                </xs:simpleContent>
            </xs:complexType>
        </xs:element>
    </xs:sequence>
</xs:complexType>
<xs:element name="values" type="Values" minOccurs="0"/>
Run Code Online (Sandbox Code Playgroud)

第二个看起来像这样:

<xs:element name="requires" minOccurs="0">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="require" minOccurs="1" maxOccurs="200">
                <xs:complexType>
                    <xs:attribute name="requires-id" type="xs:IDREF"/>
                    <xs:attribute name="type" type="RequiresType"/>
                    <xs:all>
                        <xs:element name="values" type="Values" minOccurs="0" maxOccurs="1"/>
                    </xs:all>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

请注意第一个片段中对自定义数据类型“值”的引用。

谢谢,
史蒂夫