XML-schemabindend bestaan ​​van een element met een kenmerk met een specifieke waarde

ik heb de volgende xml-structuur


 
 ...
 
 
 ...
 

Ontvangers kunnen 0 of meer SwapswireRecipient hebben en elke SwapswireRecipient moet een Role attribuut met een unieke waarde hebben. Rolkenmerk is optioneel.

Ik heb hierboven in xsd-schema geïmplementeerd en het werkt prima. Nu heb ik een nieuwe beperking om te implementeren in een schema dat ik moeilijk vind om te implementeren.

Beperking- Als SwapswireRecipient aanwezig is, zou exact één SwapswireRecipient moeten bestaan ​​met de waarde Role = "Counterparty"

Alle hulp wordt gewaardeerd.

1

1 antwoord

Het kan niet worden gedaan in xml Schema, een deel vanwege de beperkingen in de XPath-syntaxis ondersteund door selectors en de andere met betrekking tot cross-field validatie.

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
toegevoegd