2017-01-31 7 views
2

J'essaye d'écrire une règle de schematron en tant que telle: L'attribut de propriétaire existe seulement si l'attribut de nom existe. Par exemple:J'ai besoin d'une règle de schematron qui impose l'existence d'un attribut seulement si un autre attribut existe en premier.

<business name="n1" owner="o1" /> 

l'attribut owner ne peut exister que si l'attribut name existe. Merci!

+2

Si vous pouvez utiliser XSD 1.1 vous pouvez ajouter un '' , vous n'avez pas besoin d'un schematron. Avez-vous vraiment besoin d'un schematron? (Notez que vous avez étiqueté votre question avec xsd, donc je suppose que vous avez déjà un schéma). – potame

+0

@potame: Avec tout le respect, Schematron a ses avantages. Peut-être une objection plus juste à soulever serait simplement pourquoi une question sur Schematron a une étiquette XSD. – kjhughes

Répondre

2

Vous pouvez affirmer que ce soit à la fois @owner et @name existe, ou @owner ne compte pas:

<rule context="business"> 
    <assert test="(@owner and @name) or not(@owner)"> 
    The owner attribute requires the name attribute. 
    </assert> 
</rule>