Salut à tous,

j´ai deux tableaux (Assertion et Concept_Assertion) qui sont en relation 1:n. Vu que les données pour remplir ces tableaux sont fournies par un fichier XML, il me faut aussi écrire un schema de validation. Dans ce schema j´écris pour chaque élément (tableau) non pas seulement ses différents champs mais aussi je spécifie quel champ est considéré comme clé primaire. Puis je crée une référence (lien) avec les autres tableaux en relation ainsi que des Keyref.
Voici les définitions des tableaux: Assertion (Assertion_ID, Assertion_Formula, Name); Concept_Assertion(Assertion_ID, Concept_ID).
Et voici mon schéma:

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
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:html="http://www.w3.org/1999/xhtml" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="MDR">
<xs:complexType>
<xs:sequence>
     <xs:element name="Assertion" minOccurs="0" maxOccurs="unbounded">
     <xs:complexType>
     <xs:sequence>
     <xs:element name="Assertion_ID">
     <xs:simpleType>
        <xs:restriction base="xs:double">
           <xs:minInclusive value="-1.7976931348623157e+308"/>
           <xs:maxInclusive value="1.7976931348623157e+308"/>
        </xs:restriction>
     </xs:simpleType>
     </xs:element>
     ......
     <LES AUTRES CHAMPS></LES AUTRES CHAMPS>
     ......
     <xs:element ref="Concept_Assertion" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     </xs:complexType>
     <xs:key name="Assertion_PrimaryKey_1">
          <xs:selector xpath="."/>
          <xs:field xpath="Assertion_ID"/>
     </xs:key>
     <xs:keyref name="Concept_Assertion_ForeignKey_1" refer="Assertion_PrimaryKey_1">
     <xs:selector xpath="Concept_Assertion"/>
     <xs:field xpath="Assertion_ID"/>
     </xs:keyref>

     <xs:element name="Concept_Assertion" minOccurs="0" maxOccurs="unbounded">
	<xs:complexType>
	<xs:sequence>
        ......
        <DEFINITION DES CHAMPS></DEFINITION DES CHAMPS>
        ......
        </xs:sequence>
        </xs:complexType>
        </xs:element>

</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
J´obtiens hélas l´information (erreur): "Concept_Assertion must refer to an existing element." La ligne fautive est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<xs:element ref="Concept_Assertion" minOccurs="0" maxOccurs="unbounded"/>
Je ne comprends pas cette erreur puisque je définis bien aussi l´élement Concept_Assertion. Pourquoi y a-t-il erreur à la référence? Ou alors comment définir les relations entre tableaux ou élements dans du XSD?

Merci déjà pour toutes vos réponses. Cela fait longtemps que ce problème me tracasse.
Sylvie