Bonjour,

Je suis en train de decouvrir en profondeur les restrictions avec import de schema avec namespace et je trouve cela bien fastidieux.
Le validateur, Saxon8-3, ne parait pas accepter grand chose, et je voulais savoir si cela etait bien normal.

Je dois avoir deux schemas avec targetNameSpace qualified.

Le 1er :

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
 
 
<?xml version="1.0" encoding="UTF-8"?>
 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:un="http://www.un"
 
            targetNamespace="http://www.un"
 
            elementFormDefault="qualified"
            attributeFormDefault="unqualified">
 
 
   <xsd:complexType name="totoType">
      <xsd:sequence>
         <xsd:element ref="un:pere"/>
      </xsd:sequence>
   </xsd:complexType>
 
   <xsd:element name="pere" type="un:pereType"/>
 
   <xsd:complexType name="pereType">
      <xsd:sequence>
         <xsd:element ref="un:monElement"/>
      </xsd:sequence>
   </xsd:complexType>
 
   <xsd:element name="monElement" type="un:monElementType"/>
 
   <xsd:complexType name="monElementType">
      <xsd:sequence>
         <xsd:element ref="un:titi"
                      minOccurs="0"
                      maxOccurs="unbounded"/>
      </xsd:sequence>
   </xsd:complexType>
 
   <xsd:element name="titi" type="un:titiType"/>
 
   <xsd:simpleType name="titiType">
      <xsd:restriction base="xsd:string"/>
   </xsd:simpleType>
 
</xsd:schema>
Le second doit restreindre totoType :

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
 
 
<?xml version="1.0" encoding="UTF-8"?>
 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:deux="http://www.deux"
            xmlns:un="http://www.un"
 
            targetNamespace="http://www.deux"
 
            elementFormDefault="qualified"
            attributeFormDefault="unqualified">
 
   <xsd:import namespace="http://www.un"
               schemaLocation="un.xsd"/>
 
     <xsd:complexType name="totoType">
      <xsd:complexContent>
         <xsd:restriction base="un:totoType">
            <xsd:sequence>
 
               <xsd:element name="pere"
                            minOccurs="0"
                            maxOccurs="1"
                            form="unqualified">
                  <xsd:complexType>
                     <xsd:complexContent>
                        <xsd:restriction base="un:pereType">
                           <xsd:sequence>
 
                              <xsd:element ref="deux:monElement"/>
 
                           </xsd:sequence>
                        </xsd:restriction>
                     </xsd:complexContent>
                  </xsd:complexType>
               </xsd:element>
 
            </xsd:sequence>
         </xsd:restriction>
      </xsd:complexContent>
   </xsd:complexType>
 
   <xsd:element name="monElement" type="deux:monElementType"/>
 
   <xsd:complexType name="monElementType">
      <xsd:complexContent>
         <xsd:restriction base="un:monElementType">
            <xsd:sequence>
               <xsd:element ref="deux:titi"
                               minOccurs="0"
                               maxOccurs="1"/>
            </xsd:sequence>
         </xsd:restriction>
      </xsd:complexContent>
   </xsd:complexType>
 
   <xsd:element name="titi" type="deux:titiType"/>
 
   <xsd:simpleType name="titiType">
      <xsd:restriction base="un:titiType">
         <xsd:enumeration value="grosminet"/>
      </xsd:restriction>
   </xsd:simpleType>
 
 
</xsd:schema>
Le validateur accepte le premier schema, mais me jette sur le second avec :

"Error on line 47 of file:/home/moucha/safe/src/xsd/int/esa/safe/1.0/deux.xsd:
The content model of the complex type monElementType is not a valid restriction of the content model of the type monElementType. Restricted type allows element titi where the base type does not
Error on line 27 of file:/home/moucha/safe/src/xsd/int/esa/safe/1.0/deux.xsd:
The content model of the complex type of element pere is not a valid restriction of the content model of the type pereType. Restricted type allows element monElement where the base type does not
Error on line 18 of file:/home/moucha/safe/src/xsd/int/esa/safe/1.0/deux.xsd:
The content model of the complex type totoType is not a valid restriction of the content model of the type totoType. Restricted type allows element pere where the base type does not
Schema processing failed: The schema is invalid"


Le probleme est que mon deux:titi est bien une restriction de un:titi ! Et ainsi de suite.
Non seulement je dois semble-t-il a chaque nouvelle instance TOUT redefinir en global (avec une form unqualified sinon il me jette), mais en plus le validateur semble vraiment bloquer sur le changement de namespace.

Ex : deux:titi n'est pas une restriction de un:titi par definition semble-t-il...

Bref : je trouve les restrictions successives avec chgt de namespace absolument horribles, et j'aimerais avoir vos avis eclaires dessus svp.

Un ENORME merci pour votre aide ![/code]