Bonjour,
pour mon application, je suis arrivé au schéma ci-dessous, mais il est incomplet et j'aimerais y apporter les contraintes suivantes :
- Un PorteConsommable peut avoir SOIT 4, SOIT 16 éléments Consommable, selon qu'il est respectivement de type Cassette ou Portoir (Hors pour l'instant j'ai simplement su mettre des limites)
- Lorsque le PorteConsommable est de type Cassette, les consommables associés doivent avoir un élément supplémentaire de type string avec les restrictions "Haut|Bas" (ça je sais faire mais pas différencier suivant le type ...)
Dans les deux cas, mon problème est le même, savoir faire un choix qui ait des incidences sur d'autres éléments.
Merci d'avance pour votre aide
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 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <!-- Définitions des éléments --> <xs:element name="Comete"> <xs:complexType> <xs:sequence> <xs:element ref="Plaque"/> <xs:element ref="PorteConsommable" maxOccurs="3"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Plaque"> <xs:complexType> <xs:sequence> <xs:element ref="CAB"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="PorteConsommable"> <xs:complexType> <xs:sequence> <xs:element ref="Type"/> <xs:element ref="CAB"/> <xs:element ref="Consommable" minOccurs="4" maxOccurs="16"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Consommable"> <xs:complexType> <xs:sequence> <xs:element ref="CAB"/> </xs:sequence> <xs:attribute name="Position" use="required" type="typePosition"/> </xs:complexType> </xs:element> <xs:element name="Type" type="typePorteConsommable"/> <xs:element name="CAB" type="typeCàB"/> <!-- Définitions des types --> <xs:simpleType name="typePosition"> <xs:restriction base="xs:integer"> <xs:minInclusive value="1"/> <xs:maxInclusive value="16"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typePorteConsommable"> <xs:restriction base="xs:string"> <xs:enumeration value="Cassette"/> <xs:enumeration value="Portoir"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeCàB"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{13}"/> </xs:restriction> </xs:simpleType> </xs:schema>
Partager