Salut a tous,
je suis debutant en XML SCHEMA et je voulais savoir si on peux faire dans XS de la programmation conditionnelle.
Voici un exemple pour mieux comprendre ce que je veux faire :
J'ai le xml suivant :
et je voudrais par exemple pouvoir dire dans le schema si l'attribut element_type de l'element predicate-has-element est egal a SSR alors l'attribut property-name de l'element predicate-property-is est obligatoirement egal a CODE
Voila le schema que j'ai deja fait mais il ne comporte pas les conditions :
Merci d'avance pour votre aide.
Modifié par Mehdi146 (03 Aug 2006 - 15:20)
je suis debutant en XML SCHEMA et je voulais savoir si on peux faire dans XS de la programmation conditionnelle.
Voici un exemple pour mieux comprendre ce que je veux faire :
J'ai le xml suivant :
<predicate-n-ary-operator operator-type="AND">
<predicate-has-element element-type="SSR">
<matching-predicate>
<predicate-property-is property-name="CODE">
<value>VGML</value>
</predicate-property-is>
</matching-predicate>
</predicate-has-element>
<predicate-has-element activity="added" element-type="AIR"/>
<predicate-has-element activity="*" element-type="REMARK">
<matching-predicate>
<predicate-property-is property-name="TYPE">
<value>RM</value>
</predicate-property-is>
</matching-predicate>
</predicate-has-element>
</predicate-n-ary-operator>
et je voudrais par exemple pouvoir dire dans le schema si l'attribut element_type de l'element predicate-has-element est egal a SSR alors l'attribut property-name de l'element predicate-property-is est obligatoirement egal a CODE
Voila le schema que j'ai deja fait mais il ne comporte pas les conditions :
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xsd:element name="predicate-n-ary-operator">
<xsd:complexType>
<xsd:choice minOccurs="2" maxOccurs="unbounded">
<xsd:element ref="predicate-has-element"/>
</xsd:choice>
<xsd:attribute name="operator-type" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="AND"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="predicate-has-element">
<xsd:complexType>
<xsd:choice minOccurs="0" maxOccurs="1">
<xsd:element ref="matching-predicate"/>
</xsd:choice>
<xsd:attribute name="element-type" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="AIR"/>
<xsd:enumeration value="REMARK"/>
<xsd:enumeration value="SSR"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="activity">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="*"/>
<xsd:enumeration value="added"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="matching-predicate">
<xsd:complexType>
<xsd:choice minOccurs="1" maxOccurs="1">
<xsd:element ref="predicate-property-is"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="predicate-property-is">
<xsd:complexType>
<xsd:choice minOccurs="1" maxOccurs="1">
<xsd:element ref="value"/>
</xsd:choice>
<xsd:attribute name="property-name" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="CODE"/>
<xsd:enumeration value="TYPE"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="value" type="xsd:string"/>
</xsd:schema>
Merci d'avance pour votre aide.
Modifié par Mehdi146 (03 Aug 2006 - 15:20)