XML 包含自定义子节点的文件
XML file with custom children nodes
我实际上正在使用 Magento 2 框架,该框架为他的配置文件实现了 XSD 模式。
我有一个文件 flow.xml
,开发人员在其中放置了他的 XML 映射和一些配置。
我的目标是使两个节点成为必需的 mapping
和 options
,开发人员可以在其中编写他想要的任何 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" />
我实际上正在使用 Magento 2 框架,该框架为他的配置文件实现了 XSD 模式。
我有一个文件 flow.xml
,开发人员在其中放置了他的 XML 映射和一些配置。
我的目标是使两个节点成为必需的 mapping
和 options
,开发人员可以在其中编写他想要的任何 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" />