Как разрешить элементы в разном порядке в XSD?

Я пытаюсь создать схему XSD, которая описывает экземпляр XML, так что элемент «a» встречается неограниченное количество раз, в то время как элементы «b» и «c» встречаются ровно один раз, и я хочу разрешить элементы в любом порядке. Учитывая, что я не могу изменить XML, и вдобавок я не нашел поддержки JS для версии XSD 1.1. Например, это действительный XML:

<root>
    <a/>
    <a/>
    <a/>
    <b/>
    <c/>
</root>

Также этот пример XML действителен, что элементы «a», «b» и «c» находятся в разном порядке:

<root>
   <c/>
   <b/>
    <a/>
    <a/>
    <a/>
</root>

Я увидел, что есть несколько способов сделать это, но ни один из них не подходит для моих нужд.

  • Использование элемента "последовательность" требует, чтобы элементы были в порядке

  • Использование элемента «выбор» (с несколькими вариантами выбора) требует maxOccurs = «unbounded» и minOccurs = «0» дочерних элементов - это не очень хорошо для меня, потому что я хочу, чтобы элементы «b» и «c» выполнялись ровно один раз. .

  • Использование элемента «all» (версия XSD 1.0) ограничивает min и max. Значение может быть 0 или 1 - и не может быть неограниченным. Так что для меня это нехорошо, потому что я хочу разрешить неограниченное количество элемента «а».

В настоящее время это моя схема XSD:

<xs:schema>
<xs:element name = "root">
    <xs:complexType>
        <xs:sequence>
            <xs:element name = "a">
            <xs:element name = "b">
            <xs:element name = "c">
        <xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

Использование элемента «all» с maxOccurs = «unbounded» доступно в XSD версии 1.1, но я не нашел в JavaScript библиотек, поддерживающих XSD 1.1.

Я также спросил о библиотеках в js, которые поддерживают XSD 1.1, пока нет ответа - stackoverflow.com/q/66852700/14432219

YoavRam 30.03.2021 14:44
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
23
0

Другие вопросы по теме