2008-11-14 6 views
2

je ce schéma XML ...XML Schema: Rendre la valeur d'une variable multiple survenant unique,

<module> 
    <promo> 
     <day>1</day> 
     <day>2</day> 
    </promo> 
    <promo> 
     <day>3</day> 
     <day>4</day> 
    </promo> 
    <promo> 
     <day>Default</day> 
    </promo> 
</module> 

Je voudrais empêcher les utilisateurs de mettre la même valeur en 2 <day> balises partout dans la balise <module>.

Je peux actuellement le faire en utilisant la balise <xsd:unique>, mais cela ne me permet pas d'avoir deux balises <day> dans une balise <promo>.

Je pourrais également utiliser l'attribut base="xs:ID" mais cela ne permet pas à la valeur de commencer par un nombre.

Toute aide est très appréciée.

Cordialement, Tom.

Répondre

6

Voici la réponse à ma question. Définition d'une balise xs: unique à cette ...

<xsd:unique name="day"> 
    <xs:selector xpath="promo/day" /> 
    <xs:field xpath="." /> 
</xsd:unique> 

La déclaration de l'élément pour la balise 'module' me donne la fonctionnalité dont j'ai besoin.

Cordialement, Tom.

+0

Fou ... J'ai essayé * exactement la même chose * (et quelques variantes de celui-ci) pendant une demi-heure maintenant, en utilisant MSXML. MSXML ne m'a pas donné d'erreur même s'il ne répondait manifestement pas à cette exigence. Qu'avez-vous utilisé? Pouvez-vous essayer avec MSXML? – Tomalak

Questions connexes