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 :
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 <?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 validateur accepte le premier schema, mais me jette sur le second avec :
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>
"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]
Partager