XML-привязка схемы существования элемента с атрибутом определенного значения - PullRequest
1 голос
/ 12 ноября 2011

У меня есть следующая структура XML-

<Recipients>
 <SwapswireRecipient Role="Counterparty">
 ...
 </SwapswireRecipient>
 <SwapswireRecipient Role="PrimeBroker">
 ...
 </SwapswireRecipient>
</Recipients>

Получатели могут иметь 0 или более SwapswireRecipient, и каждый SwapswireRecipient должен иметь атрибут Role с уникальным значением. Атрибут роли является необязательным.

Я реализовал выше в схеме xsd, и она работает нормально. Теперь у меня есть новое ограничение для реализации в схеме, которое мне трудно реализовать.

Constraint- Если присутствует SwapswireRecipient, то должен существовать ровно один SwapswireRecipient со значением Role = "Counterparty"

Любая помощь приветствуется.

1 Ответ

1 голос
/ 12 ноября 2011

Это невозможно сделать в XML-схеме, одна часть из-за ограничений в синтаксисе XPath, поддерживаемых селекторами, а другая связана с проверкой между полями.

Если такое правило должно быть записано в вашемXSD, я бы переписал схему XML так, чтобы содержимое элемента включало необязательную последовательность, состоящую из обязательного элемента , с последующим нулем или более .Я бы сохранил предложение xsd: unique для элементов и обеспечил бы ограничение типа @ Role, чтобы оно не включало значение Counterparty.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...