Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

différence entre deux schémas

1 view
Skip to first unread message

thierry

unread,
Nov 8, 2009, 3:48:19 PM11/8/09
to
Bonjour,

J'aimerais comprendre la différence entre

<?xml version="1.0" encoding="iso-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://domaine.tld"
xmlns="http://domaine.tld">

<xsd:element name="serveur" type="xsd:string" />
<xsd:element name="definition">
<xsd:complexType>
<xsd:all>
<xsd:element ref="serveur" minOccurs ="1" maxOccurs ="1" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>

qui valide

<?xml version="1.0" encoding="utf-8"?>
<definition xmlns="http://domaine.tld">
<serveur>serveur1</serveur>
</definition>

ET

<?xml version="1.0" encoding="iso-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://domaine.tld"
xmlns="http://domaine.tld">

<xsd:element name="definition">
<xsd:complexType>
<xsd:all>
<xsd:element name="serveur" minOccurs ="1" maxOccurs ="1" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>

qui valide

<?xml version="1.0" encoding="utf-8"?>
<definition xmlns="http://domaine.tld">
<serveur xmlns="">anyType</serveur>
</definition>

La différence étant que dans le deuxième cas la balise serveur semble
avoir besoin d'un attribut xmlns.

Merci d'avance pour vos avis éclairés

thierry

Mayeul

unread,
Nov 9, 2009, 3:28:13 AM11/9/09
to
Bonjour,

je suis surpris que la deuxi�me XSD valide le deuxi�me document, car si
je ne me trompe pas :

- Les deux XSD sont �quivalentes.
- Le deuxi�me document ne devrait �tre valid� par aucune des deux.

Pour information, xmlns="" signifie grosso-modo "enlever le namespace
par d�faut."

Dans le premier document, "definition" et "serveur" sont tous les deux
dans le namespace "http://domaine.tld/".

Dans le second document, seul "definition" est dans le namespace
"http://domaine.tld/". "serveur" n'a pas de namespace.

Pour cette raison, le second document ne devrait pouvoir �tre valid�
qu'avec au moins deux XSD : une pour "http://domaine.tld/" et une sans
namespace. De plus, le type de "definition" devrait indiquer que son
enfant "serveur" n'a pas de namespace. Tel que, son enfant "serveur" est
cens� �tre dans le m�me namespace.

--
Mayeul

thierry

unread,
Nov 9, 2009, 4:32:25 AM11/9/09
to
merci pour ta réponse, je vais insister pour chercher à comprendre
dans la mesure ou j'ai toujours tendance à partager ton analyse.
0 new messages