Установка minOccurs и maxOccurs в XSD на основе значения другого поля XML?

У меня есть XSD для проверки XML-файла. Структура выглядит следующим образом:

<root>
    <child>
        <size>2</size>
        <childElement>Element 1</childElement>
        <childElement>Element 2</childElement>
    </child>
</root>

НомерchildElements зависит от предоставленного размера, то есть, еслиsize был установлен как 3, не более 3childElementс можно добавить.

Я пытался использоватьxs:alternative но это не похоже на работу

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="root">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="child" minOccurs="1" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="size" type="xs:integer" maxOccurs="1"/>
                            <xs:element name="childElement" type="xs:string" maxOccurs="1">
                                <xs:alternative test="@size>1" maxOccurs="@size"/>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Есть ли способ использованияxs:alternative или другой тег для достижения этого, или это за пределами возможного с XSD?

Ответы на вопрос(1)

Ваш ответ на вопрос