je découvre un peu le XML (dans son utilisation avancée), et notamment
les espaces de nom. J'ai besoin de créer un format XML incluant des
portions de DSML.
j'ai trouvé un autre format faisant ce genre de choses : SPML. Voici
un exemple :
<spmlsearch:searchResponse status="spml:success"
xmlns:spml="urn:oasis:names:tc:SPML:2:0"
xmlns:spmlsearch="urn:oasis:names:tc:SPML:2:0:search">
<spml:pso>
<spml:psoId ID="CN=John Doe,OU=accounting,DC=acme.com"
targetID="acme.com"/>
<spml:data>
<attr name="cn" xmlns="urn:oasis:names:tc:DSML:2:0:core">
<value>John Doe</value>
</attr>
Je me pose des questions sur ces préfixes, notamment : pourquoi
<spml:data> et <value> (et pas <data> et <dsml:value>) ?
Merci
François
Bonjour
>
> Je me pose des questions sur ces pr�fixes, notamment : pourquoi
> <spml:data> et <value> (et pas <data> et <dsml:value>) ?
C'est juste l'exemple qui s'en sert comme �a. On pourrait faire un autre
exemple o� �a serait <data> et <dsml:value>, ou encore un autre o� �a
serait <spml:data> et <dsml:value>.
Un pr�fixe indique � quel _espace de nom_, ou namespace, appartient un
�l�ment. Mais le pr�fixe ne repr�sente aucun namespace tant que �a n'a
pas �t� d�clar� quelque part dans le document.
xmlns:spml="urn:oasis:names:tc:SPML:2:0" a associ� le pr�fixe "spml" au
namespace du SPML.
Une autre mani�re d'indiquer le namespace des �l�ments, est de d�finir
un _namespace par d�faut_. L'�l�ment o� est d�fini le namespace par
d�faut, et tous ses descendants, font partie de ce namespace s'ils ne
sont pas pr�fix�s.
xmlns="urn:oasis:names:tc:DSML:2:0:core" a d�fini le namespace par
d�faut comme �tant celui du DSML, pour le premier �l�ment <attr> et ses
descendants.
C'est pour �a que cet exemple ne pr�fixe pas les �l�ments <attr> et <value>.
Le m�me extrait de XML peut �tre r��crit de fa�on compl�tement
�quivalente, ainsi :
<spmlsearch:searchResponse status="spml:success"
xmlns:spml="urn:oasis:names:tc:SPML:2:0"
xmlns:dsml="urn:oasis:names:tc:DSML:2:0:core"
xmlns:spmlsearch="urn:oasis:names:tc:SPML:2:0:search">
<spml:pso>
<spml:psoId ID="CN=John Doe,OU=accounting,DC=acme.com"
targetID="acme.com"/>
<spml:data>
<dsml:attr name="cn">
<dsml:value>John Doe</dsml:value>
</dsml:attr>
--
Mayeul
dans mon exemple, pso, psold et data sont préfixés car aucun namespace
par défaut n'est déclaré dans leur périmètre, tandis que attr et value
ne sont pas préfixés car définis dans le namespace par défaut déclaré
dans leur périmètre (dans attr).
François