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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
<?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.