XML-файл с пользовательскими дочерними узлами

На самом деле я работаю с платформой 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, и я изо всех сил пытаюсь найти решение, где это может быть что угодно в моих двух узлах.

Спасибо,
Matthéo.

1 ответ

Решение

Тип, который вы хотите 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" />
Другие вопросы по тегам