XML 包含自定义子节点的文件

XML file with custom children nodes

我实际上正在使用 Magento 2 框架,该框架为他的配置文件实现了 XSD 模式。
我有一个文件 flow.xml,开发人员在其中放置了他的 XML 映射和一些配置。
我的目标是使两个节点成为必需的 mappingoptions,开发人员可以在其中编写他想要的任何 XML 结构。

这是我的实际文件:

# File flow.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Dnd_Flow:etc/flow.xsd">
    <mapping>
        // Here can be other nodes on X levels (or simply string = bonus) 
    </mapping>
    <options>
        // Here can be other nodes on X levels (or simply string = bonus) 
    </options>
</config>

我的 XSD 文件如下所示:

# File flow.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="config" type="configType" />

    <xs:complexType name="configType">
        <xs:sequence>
            <xs:element type="xs:????" name="mapping" minOccurs="0" />
            <xs:element type="xs:????" name="options" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>
</xs:schema>

我尝试了 mixed 个值,xs:all 个不同的元素类型,但没有结果。

这可能是小菜一碟,但我是 XSD 模式的新手,我正在努力寻找可以在我的两个节点中包含所有内容的解决方案。

谢谢,
马修

您想要的类型是 xsd:anyType,您可以通过名称获取:

<xs:element type="xs:anyType" name="mapping" minOccurs="0" />
<xs:element type="xs:anyType" name="options" minOccurs="0" />

或省略 type 属性:

<xs:element name="mapping" minOccurs="0" />
<xs:element name="options" minOccurs="0" />