Existence de liaison de schéma XML d'un élément avec un attribut de valeur spécifique

J'ai la structure xml suivante


 
 ...
 
 
 ...
 

Les destinataires peuvent avoir au moins 0 SwapswireRecipient et chaque attribut SwapswireRecipient doit avoir un attribut de rôle avec une valeur unique. L'attribut de rôle est facultatif.

J'ai mis en œuvre ci-dessus dans le schéma xsd et cela fonctionne bien. Maintenant, j'ai une nouvelle contrainte à implémenter dans un schéma que je trouve difficile à implémenter.

Contrainte- Si SwapswireRecipient est présent, alors exactement un SwapswireRecipient doit exister avec la valeur Role = "Counterparty"

Toute aide est appréciée.

1

1 Réponses

Cela ne peut pas être fait dans xml Schema, une partie en raison des limitations de la syntaxe XPath prises en charge par les sélecteurs, et l'autre liée à la validation de champs croisés.

If such a rule must be captured in your XSD, I would rewrite the xml Schema so that the content of a element would include an optional sequence, made from a mandatory element, folllowed by zero or more . I would keep the xsd:unique clause for elements and ensure that the @Role's type is restricted so that it does not include the Counterparty value.

1
ajouté