Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1409 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  Etendue des namespaces XML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Etendue des namespaces XML

n°1675991
Seyev
Let's fork();
Posté le 24-01-2008 à 02:12:04  profilanswer
 

Salut à tous,
 
Si quelqu'un pouvait me donner un éclaircissement au sujet de l'étendue des namespaces XML, je l'en remercie d'avance. Plus précisément, je me demande :
 


<?xml version="1.0" encoding="UTF-8" ?>
<ns1:root xmlns:ns1="http://www.domain.com/NS1">
  <a attr="attr">
    <b/>
  </a>
</ns1:root>


L'élément a, son attribut attr et l'élément b font partie du namespace http://www.domain.com/NS1 ?
 
--------------------------------------------------


<?xml version="1.0" encoding="UTF-8" ?>
<ns2:root xmlns:ns1="http://www.domain.com/NS1" xmlns:ns2="http://www.domain.com/NS2">
  <ns1:a attr="attr">
    <b/>
  </ns1:a>
</ns2:root>


L'attribut attr de a ainsi que l'élément b font partie du namespace http://www.domain.com/NS1 ?
 
--------------------------------------------------


<?xml version="1.0" encoding="UTF-8" ?>
<ns2:root xmlns="http://www.domain.com/NS0" xmlns:ns1="http://www.domain.com/NS1" xmlns:ns2="http://www.domain.com/NS2">
  <c/>
  <ns1:a attr="attr">
    <b/>
  </ns1:a>
</ns2:root>


Ici, aucun élément ne fait partie du namespace http://www.domain.com/NS0 ?
L'élément c fait partie du namespace http://www.domain.com/NS2 ?
L'élément a et son attribut attr ainsi que l'élément b font bien partie de namespace http://www.domain.com/NS1 ?
 
--------------------------------------------------


<?xml version="1.0" encoding="UTF-8" ?>
<root xmlns="http://www.domain.com/NS0" xmlns:ns1="http://www.domain.com/NS1" xmlns:ns2="http://www.domain.com/NS2">
  <c/>
  <ns1:a attr="attr">
    <ns2:b>
      <d attr="attr"/>
    </ns2:b>
  </ns1:a>
</root>


Les éléments root et c font partie du namespace http://www.domain.com/NS0 ?
L'élément a et son attribut attr font partie du namespace http://www.domain.com/NS1 ?
Les éléments b et d ainsi que son attribut attr font partie du namespace http://www.domain.com/NS2 ?
 
--------------------------------------------------
 
Merci d'avance pour vos lumières !

mood
Publicité
Posté le 24-01-2008 à 02:12:04  profilanswer
 

n°1676186
FlorentG
Unité de Masse
Posté le 24-01-2008 à 13:34:49  profilanswer
 

Normalement, pour le premier code :

Code :
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <ns1:root xmlns:ns1="http://www.domain.com/NS1">
  3.  <a attr="attr">
  4.    <b/>
  5.  </a>
  6. </ns1:root>


a et b ne sont pas dans le namespace ns1, vu qu'il faut préfixer le nom de l'élément par ns1 pour qu'ils soient dans le namespace. Ils seront dans un namespace nul, sans valeur, vu qu'il n'y a pas de namespace par défaut.

 

Le namespace par défaut est déclaré par un xmlns sans préfixe :

Code :
  1. <ns1:pouet xmlns:ns1="http://domaine.com/ns1" xmlns="http://domaine.com/some-namespace>
  2.  <tagada />
  3.  <ns1:truc />
  4. </pouet>


Là <tagada> n'est pas préfixé, mais comme y'a un namespace par défaut, il appartiendra à ce namespace par défaut.

 

cf. Namespace Defaulting


Message édité par FlorentG le 24-01-2008 à 13:35:49
n°1676246
Seyev
Let's fork();
Posté le 24-01-2008 à 14:36:39  profilanswer
 

Merci.
 
En fait, le truc que je trouve le plus étrange (mais peut-être que je ne vois pas toute la beauté de la chose) c'est que les descendants d'un élément namespacé explicitement avec un prefix ne font pas partie du même namespace de cet élément. J'en prend pour exemple ta réponse ainsi que Namespace Scoping.
 
De même, les attributs doivent toujours être préfixés (même si l'élément auquel ils appartiennent est préfixé et qu'il existe un namespace par défaut), sans quoi ils ne feront partie d'aucun namespace. Uniqueness of Attributes.
 
En fait, à tête reposée, ça colle avec ce que j'ai pu lire ici et là...
 
En tous cas merci !
 
 

n°1676262
FlorentG
Unité de Masse
Posté le 24-01-2008 à 14:50:39  profilanswer
 

Seyev a écrit :

En fait, le truc que je trouve le plus étrange (mais peut-être que je ne vois pas toute la beauté de la chose) c'est que les descendants d'un élément namespacé explicitement avec un prefix ne font pas partie du même namespace de cet élément.


Au contraire, ça permet d'avoir des descendants appartenant au namespace par défaut. Sinon soit ce serait impossible. Soit faudrais un préfixe genre #default ou je sais pas quoi.

n°1676282
Seyev
Let's fork();
Posté le 24-01-2008 à 15:08:42  profilanswer
 

Mouais. C'est vrai qu'il existe la possibilité du xmlns="..." pour que les descendants appartiennent au même namespace. D'un autre coté, on aurait toujours pu y revenir avec un xmlns=""...


Message édité par Seyev le 24-01-2008 à 15:09:15
n°1676314
masklinn
í dag viðrar vel til loftárása
Posté le 24-01-2008 à 15:35:36  profilanswer
 

Seyev a écrit :

Merci.
 
En fait, le truc que je trouve le plus étrange (mais peut-être que je ne vois pas toute la beauté de la chose) c'est que les descendants d'un élément namespacé explicitement avec un prefix ne font pas partie du même namespace de cet élément. J'en prend pour exemple ta réponse ainsi que Namespace Scoping.


ben non, sinon c'est la merde pour mixer les préfixes quand on en a un par défaut.
 
Par contre, il est possible de déclarer un namespace par défaut sur n'importe quel élément, et dans ce cas ça s'applique à tous les descendants.

Seyev a écrit :

De même, les attributs doivent toujours être préfixés (même si l'élément auquel ils appartiennent est préfixé et qu'il existe un namespace par défaut), sans quoi ils ne feront partie d'aucun namespace. Uniqueness of Attributes.


 
Ouaip, sinon il devient impossible d'utiliser des attributs avec un namespace vide ({}), c'est à dire:

  • La grande majorité des attributs, pour commencer
  • Un truc super utile quand une multitude d'éléments (y compris dans des namespaces différents) ont des attributs en commun


:)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  Etendue des namespaces XML

 

Sujets relatifs
[XML / Flash / PHP] Insertion galerie Photoshop dans page web[Résolu] Problème de character set XML et PHP (SimpleXML)
Validation fichier XML sous PHP5[Résolu] Parsage d'un flux XML, les accents = découpe du texte
XSLT avec un document XML validé avec XML schema pb....[rresolu]XML DTD ok mais XML et XML-Schema?
Retour a la ligne XMLencodage caractères spéciaux XML
[C# / XML] Validation XML d'une date sous .Net 1.1Problème affichage XML dans IE
Plus de sujets relatifs à : Etendue des namespaces XML


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR