From: Laurent CAPRANI (caprani@multimania.com)
Date: 14/02/2001 - 04:15
En réponse à SIMON JC, voici mes 2 cents canadiens.
Si quelqu'un a une meilleure explication, ou simplement une appréciation, je
suis preneur.
> Envoyé : 13 février, 2001 10:45
> À : xml-tech@dyomedea.com
> Objet : [xml-tech] Synthese namespace
>
>
> Bonjour.
>
> Si je resume tres sommairement la norme namespace, es-ce que les
> lignes qui
> suivent sont justes et satisfaisantes ?
>
> *********
> Objectif de la norme :
>
> - Qualifier les noms des elements et des attributs (balises) dans les
> documents XML
> - Regroupement en domaine
> - Reutilisation des termes et des regles de constructions
Les espaces de noms est un problème général en informatique, qui se pose par
exemple dans les langages de programmation et dans la désignation des
ressources (ex.: les fichiers, les ordinateurs).
XML a introduit les espaces de noms car XML a l'ambition de définir des
vocabulaires et pas seulement des types de documents.
Avec SGML (HTML) et les DTDs on proposait de créer des documents (des
instances) qui correspondaient à un modèle (un type de document).
Depuis XML, non contents de créer des documents sans modèle, on veut en plus
créer des documents qui empruntent à plusieurs modèles et aux différentes
technologies qui leur sont associées. Les modèles (les schémas par exemple)
ne portent plus sur des documents, mais sur des composantes de document.
L'intérêt est de pouvoir combiner des technologies en provenance de diverses
sources. C'est le bon vieux principe des bibliothèques en programmation.
> - Lever les ambiguite sur les identificateurs (balises)
>
> Exemple "titre" => d'un ouvrage
> => d'une personne
>
Ce n'est pas un objectif, c'est le problème qui se pose ensuite.
Dans un type de document, chaque nom de balisage (élément, attribut, entité)
correspond à une définition. C'est ce qu'on appelle un espace de noms en
général en informatique.
Exemples: un répertoire de fichiers est un espace de nom (1 nom -> 1
fichier).
un module dans un langage de programmation est un espace de nom (1
nom -> 1 fonction)
une région téléphonique est un espace de noms (1 no de tél. -> 1
abonné)
> Solution => prefixage => "perso:titre" et "biblio:titre".
Si l'on veut pouvoir travailler sur des choses appartenant à plusieurs
espaces de noms, il va falloir ajouter de l'information et la solution est
toujours la même, ajouter le nom de l'espace de nom.
Exemples: on ajoute le nom du répertoire aux noms de fichiers.
on ajoute le nom de la bibliothèque, du module, de l'objet, de la
structure, ... en programmation.
on ajoute l'indicatif de la région, du pays aux numéros de
téléphone.
> - Declaration des prefixes par une URI (qui peut etre fictive), referencee
> par un organisme garant du vocabulaire (sil y a lieu)
Le problème qui se pose ensuite, c'est de voir comment nommer les espaces de
noms. Il faut qu'une autorité despotique attribue et réserve plus ou moins
arbitrairement les noms des espaces.
Pour les fichiers on a décidé qu'il y aurait un centre (la racine) et que
tous les espaces de noms seraient définis en hiérarchie depuis ce centre.
Pour que ça fonctionne, il faut un despote à chaque étage qui va décider des
noms.
Pour les numéros de téléphone, c'est le même principe du despotisme à
étages.
En programmation, c'est souvent "premier arrivé, premier servi" (ex.: Perl).
Certains langages utilisent des noms qui existent déja comme les noms
Internet (Java).
La question du nommage des espaces de noms se posait bien avant XML. SGML
(et HTML donc) s'en remettait aux "identifiants publics ISO". Ce sont des
machins du genre "ISO 8879:1986//NOTATION Information processing - Text and
office systems - Standard Generalized Markup Language (SGML)//EN" ou encore
"-//W3C//DTD HTML 4.0 Transitional//EN" qui identifie une certaine variante
de HTML4.
XML a choisi de réutiliser les despotes qui existent déja: Ceux qui
attribuent des noms aux ordinateurs sur Internet et ceux qui numérotent et
inventorient déja des trucs depuis des lustres (ex: les libraires et leurs
ISBN, Microsoft et ses GUID).
Les URI rassemblent tout ça. Ils ne servent pas seulement à nommer les
espaces de noms, ils servent à nommer tout ce qu'on peut nommer sur
Internet, c'est à dire tout. Oui, Tout.
-- urn:nom-des-gens/caprani/laurent
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:05 UTC
webmaster@xmlfr.org
|