У меня есть XML, который выглядит следующим образом:Предельное число вхождений элемента на основании значения атрибута
<Artifacts count="2">
<Artifact>
...
</Artifact>
<Artifact>
...
</Artifact>
</Artifacts>
Я ищу способ обеспечения соблюдения, что число Artifact
элементов, содержащихся в Artifact
с должны быть равно значению атрибута «count», используя схему XSD.
Несмотря на то, что я нашел возможные способы достижения этого, используя спецификацию XSD 1.1, я задаюсь вопросом, возможно ли это без него, то есть на основе спецификации XSD 1.0.
Редактировать: Я попытаюсь предоставить немного больше контекста на вопрос, чтобы быть более точным.
XML-файл будет предоставлен как вход в приложение C++. Проблема заключается в том, что среда разработки обеспечивает использование библиотеки Xerces v. 2.8.0 для синтаксического анализа. Насколько я понимаю, эта версия не поддерживает стандарт XSD 1.1.
Конечно, я могу добавить дополнительный код, чтобы проверить правильность количества вхождений элементов Artifact
после проверки XSD. Я надеялся, что будет возможность избежать дополнительного сегмента кода и полностью проверить входной файл на основе только XSD.
Спасибо за ваш ответ. Я надеялся, что будет способ манипулировать схемой, чтобы делать мои ставки, но кажется, что нет. Я дам ему еще немного времени, чтобы узнать, появляются ли какие-то сумасшедшие идеи от других пользователей, иначе этот ответ велик и правилен! Тем временем я создаю схему с этим ограничением в виду, и я рассматриваю способы включения XLST и XPath. – Vag
Это правильно, и я бы также бросил вызов дизайну OP, который требует атрибута, который просто отражает количество дочерних атрибутов. – kjhughes
@kjhughes Хорошая мысль, я попытался изменить это в своем ответе - дайте мне знать, если это все еще нуждается в улучшении. –