Salut,

J'ai besoin de décrire une structure très simple en xml, dont le document ressemble à ceci:
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
<?xml version="1.0" encoding="UTF-8"?>
 
<station-logos type="freeboxtv" base-url="http://unsite/remote/station-logos/tv">
	<station num="1" filename="tf1.png" />
	<station num="2" filename="france2.png" />
	<station num="3" filename="france3.png" />
	<station num="5" filename="france5.png" />
	<station num="6" filename="m6.png" />
	<station num="7" filename="arte.png" />
	<station num="8" filename="direct8.png" />
	<station num="9" filename="w9.png" />
	<station num="11" filename="nt1.png" />
	<station num="12" filename="nrj.png" />
	<station num="13" filename="lcp.png" />
</station-logos>
J'avais tout d'abord fait une DTD:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8"?>
 
<!ELEMENT station-logos (station*)>
<!ATTLIST station-logos type CDATA #REQUIRED base-url CDATA #REQUIRED>
 
<!ELEMENT station EMPTY>
<!ATTLIST station num CDATA #REQUIRED filename CDATA #REQUIRED>
 
<!ELEMENT url (#PCDATA)>
mais je voudrais maintenant utiliser XMLSchema.

J'ai donc fait ceci:
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
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 
	<xs:element name="station-logos">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="station" type="Station" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
 
	<xs:complexType name="Station">
		<xs:sequence>
			<xs:element name="num" type="xs:nonNegativeInteger"/>
			<xs:element name="filename" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
 
</xs:schema>
  1. Concernant la structure, vaut-il mieux "externaliser" xs:complexType pour l'élement "station-logos"?
  2. Vaut-il mieux xs: ou xsd: (j'ai trouvé les 2 sur google)?
  3. J'ai utilisé nonNegativeInteger parce que j'ai trouvé ça par hasard, mais où puis-je trouver la liste de tous les types prédéfinis?
  4. Pour la DTD, il est possible d'indiquer dans un xml utilisant ce format une ligne du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE channel-logos PUBLIC "unsite/public-logos" "http://unsite/remote/station-logo.dtd">
    Comment faire de même en XMLSchema?
  5. Une fois cette ligne ajoutée, les parseurs SAX ou DOM de Java peuvent-il vérifier qu'un document respecte le XMLSchema (comme il le fait pour vérifier le respect de la DTD)?
  6. Ai-je fait des erreurs dans ma description XMLSchema?