Table des matières
Liste des tableaux
Liste des exemples
Ce document présente les lignes directrices pour l'implémentation des métadonnées gouvernementales en schéma XML. Ces métadonnées gouvernementales sont décrites dans le document @@xref. Le modèle qui sous-tend celles-ci est décrit dans le guide @@xref.
Avertissement | |
---|---|
Les termes élément, enrichissement et schème d'encodage employés dans ce document réfèrent aux objets du modèle de métadonnées correspondants tels que définits dans le guide d'utilisation des métadonnées. Ce guide utilise conjointement deux terminologies provenant des domaines XML et des métadonnées, ce qui peut porter à confusion. On désignera donc par le terme élément une métadonnée et par élément XML l'objet définit dans la norme XML 1.0. |
Cette section décrit comment réaliser les composants du modèle de métadonnées gouvernemental en utilisant le langage des schémas XML du World Wide Web Consortium (W3C).
aewf
Principe numéro 1. On employera des noms d'espaces nominatifs pour identifier de façon unique des noms d'élément, des enrichissements et des schèmes d'encodage. Les composants provenant d'autres schèmes, par exemple ceux de Dublin Core@@xref ou des composants communs gouvernementaux, doivent conserver leurs noms d'espace nominatif d'origine.
Principe numéro 2. Une métadonnée est représentée par un élément XML. Le nom de cet élément doit correspondre avec le nom de la métadonnée et non son libellé. Le nom d'un élément XML doit toujours s'écrire en lettres minuscules.
Soit la métadonnée Date de création et un fragment de la fiche qui la définit:
Date de création | |
---|---|
Libellé | Date de création |
Nom | date-création |
... | ... |
L'élément qualifié:
<métadonnées xmlns:meta="http://www.gouv.qc.ca/2003/metadonnees"> <meta:date-création>2004-01-08</meta:date-création> </métadonnées> |
Principe numéro 3. La valeur d'une métadonnée est consignée dans le contenu d'un élément XML. On doit éviter de consigner la valeur d'une métadonnée dans un attribut XML.
Exemple 2.1. Valeur d'une métadonnée
Employer:
<métadonnées xmlns:meta="http://www.gouv.qc.ca/2003/metadonnees"> <meta:titre>Initiation aux techniques horticoles</meta:titre> </métadonnées> |
Ce qui suit est à éviter:
<métadonnées xmlns:meta="http://www.gouv.qc.ca/2003/metadonnees"> <meta:titre valeur="Initiation aux techniques horticoles"/> </métadonnées> |
Une bonne pratique consiste à utiliser autant que possible une valeur littérale dans le contenu d'une métadonnée.
Principe numéro X. Les valeurs multiples sont consignées chacunes dans un élément XML. On doit éviter de consigner plusieurs valeurs dans un même élément XML.
<meta:auteur>Borduas, Paul-Emile</meta:auteur> <meta:auteur>Arbour, Magdeleine</meta:auteur> <meta:auteur>Barbeau, Marcel</meta:auteur> |
Principe numéro X. Un enrichissement est représenté par un élément XML. Le nom de cet élément XML doit correspondre avec le nom de l'enrichissement et non son libellé. L'élément XML n'est pas imbriqué dans un élément de niveau supérieur qui représenterait la métadonnée qu'il enrichit. La filiation entre l'enrichissement et l'élément de métadonnée est assurée par un groupe de substitution, à même le schéma XML, où l'élément de métadonnée est choisi comme élément de tête du groupe, et chacun de ses enrichissements constitue un membre du groupe de substitution.
Principe numéro X. Un schème d'encodage est représenté par un type de donnée XML. On employera l'attribut XML xsi:type pour associer un schème d'encodage à un élément. Ce type de donnée doit être dérivé du type de base meta:simple-littéral et son nom doit être un nom XML qualifié (QName). Le nom du type de donnée doit correspondre à celui du schème d'encodage.
Par exemple:
<meta:identifiant xsi:type="meta:ISBN">2-89105-817-8</meta:identifiant> |
Principe numéro X. Lorsque la langue du contenu d'une métadonnée est identifiée, celle-ci doit être consignée dans l'attribut XML xml:lang. La valeur inscrite doit provenir de la liste des codes de langues à deux ou trois lettres prescrite par les normes RFC 3066 et ISO 639-2. Les subdivisions des codes sont acceptés (par exemple: en-GB). La langue par défaut est le français.
Par exemple:
<métadonnées xmlns:meta="http://www.gouv.qc.ca/2003/metadonnees"> <meta:titre xml:lang="fra">Lexique musical international</meta:titre> <meta:titre xml:lang="eng">International vocabulary of music</meta:titre> </métadonnées> |
Est équivalent à:
<métadonnées xmlns:meta="http://www.gouv.qc.ca/2003/metadonnees"> <meta:titre>Lexique musical international</meta:titre> <meta:titre xml:lang="eng">International vocabulary of music</meta:titre> </métadonnées> |
Un exemple de restriction d'un profil des métadonnées gouvernementales: la seule chose permise est d'interdire ce qui est facultatif.
Principe numéro X. Un profil de métadonnées est constitué d'un élément XML conteneur, ayant son propre nom d'espace nominatif, et dont le modèle de contenu est constitué d'une séquence d'éléments de métadonnées. On aura précisé pour chacun d'eux le caractère facultatif, obligatoire ou répétable à l'aide des attributs minOccurs et maxOccurs.
Principe numéro X. Toute dérivation d'un profil de métadonnées gouvernemental effectuée par extension de son modèle de contenu doit s'effectuer dans un espace nominatif différent que celui d'origine. Il est déconseillé d'employer la stratégie de redéfinition xs:redefine afin de dériver par extension un modèle de contenu d'un profil pour, par exemple, lui ajouter une nouvelle métadonnée. On optera plutôt pour la création d'un nouveau profil, ayant son propre espace nominatif, dans lequel on pourra importer le profil source pour lui appliquer une dérivation par extension.
La condition obligatoire d'une métadonnée s'exprime via la facette minOccurs et non en précisant que le contenu ne peut pas être vide.
|
Soit la métadonnée Titre et son enrichissement Titre autre. Voici un fragment de schéma XML:
<xs:schema
targetNamespace="http://www.gouv.qc.ca/2002/metadonnees"
xmlns:meta="http://www.gouv.qc.ca/2002/metadonnees"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
…
<xs:element name="titre" type="meta:simple-littéral">
<xs:annotation>
<xs:documentation>Nom donné au document.</xs:documentation>
</xs:annotation>
</xs:element>
…
<xs:element name="titre-autre" substitutionGroup="meta:titre">
<xs:annotation>
<xs:documentation>
Titre complémentaire ou alternatif du document.
</xs:documentation>
</xs:annotation>
</xs:element>
…
</xs:schema>
|
Un fragment XML contenant les deux métadonnées:
<métadonnées xmlns:meta="http://www.gouv.qc.ca/2003/metadonnees"> <meta:titre>L'ABC de la taille</meta:titre> <meta:titre-autre>Apprenez à tailler vos végétaux</meta:titre-autre> </métadonnées> |
Les exemples qui suivent sont à éviter:
<métadonnées xmlns:meta="http://www.gouv.qc.ca/2003/metadonnees"> <meta:titre>L'ABC de la taille <meta:titre-autre>Apprenez à tailler vos végétaux</meta:titre-autre> </meta:titre> </métadonnées> |
<métadonnées xmlns:meta="http://www.gouv.qc.ca/2003/metadonnees"> <meta:titre>L'ABC de la taille</meta:titre> <meta:titre.titre-autre> Apprenez à tailler facilement vos végétaux </meta:titre.titre-autre> </métadonnées> |
Prendre l'exemple des attributs de droits d'accès.
<xs:complexType name="limite-accès"> <xs:annotation> <xs:documentation>Schème d'encodage contenant la liste des valeurs provisoires pour les limites d'accès.</xs:documentation> </xs:annotation> <xs:simpleContent> <xs:restriction base="meta:simple-littéral"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="public"/> <xs:enumeration value="protégé"/> <xs:enumeration value="confidentiel"/> </xs:restriction> </xs:simpleType> <xs:attribute ref="xml:lang" use="prohibited"/> </xs:restriction> </xs:simpleContent> </xs:complexType> |
Un centre de documentation du ministère « mo » dispose d'une collection de rapports techniques. On voudrait créer pour chaque ouvrage une fiche de métadonnées basée sur le profil de métadonnées des documents de référence du gouvernement du Québec, à laquelle on ajoutera la table des matières de l'ouvrage. On présume que le schéma XML de la table des matières est créé au ministère mo.
Tableau 5.1. Espaces nominatifs en jeux
Préfixe | URI | Description |
---|---|---|
meta | http://www.gouv.qc.ca/2002/metadonnees | Métadonnées gouvernementales. |
doc-ref | http://www.gouv.qc.ca/2002/metadonnees/doc-reference | Espace nominatif pour le profil de métadonnées des documents de référence. |
mo | http://www.mo.gouv.qc.ca/2002/metadonnees | Espace nominatif pour les métadonnées du ministère mo. |
tdm | http://www.mo.gouv.qc.ca/2002/tdm | Espace nominatif où est versé le schéma définissant une table des matières. Celle-ci aurait tdm:tdm pour élément racine . |
Créer une nouvelle métadonnée mo:tdm, un enrichissement de meta:résumé (une métadonnée gouvernementale). La nouvelle métadonnée aura comme modèle de contenu l'élément tdm:tdm.
<?xml version="1.0" encoding="UTF-8"?> <dref:doc-référence xmlns:dref="http://www.gouv.qc.ca/2002/metadonnees/doc-reference" xmlns:meta="http://www.gouv.qc.ca/2002/metadonnees" xmlns:mo="http://www.mo.gouv.qc.ca/2004/metadonnees" xmlns:tdm="http://www.mo.gouv.qc.ca/2004/tdm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mo.gouv.qc.ca/2004/metadonnees mo.xsd"> <meta:titre>Titre de la ressource</meta:titre> <!-- ... --> <!-- Selon la séquence, meta:résumé peut être utilisée ici. On lui préfèrera l'enrichissement mo:tdm --> <mo:tdm> <tdm:tdm><!-- Le contenu de la table des matières... --></tdm:tdm> </mo:tdm> <!-- ... --> </dref:doc-référence> |
Les mécanismes intrinsèques des schémas XML limitent considérablement les possibilités de qualification de la relation entre un élément et son enrichissement. Le mécanisme des groupes de substitution (xs:substitutionGroup) des schémas XML est utilisé ici pour indiquer que la métadonnée Y constitue une sous-classe de la métadonnée X. La relation filiale elle-même ne peut pas être qualifié.
La solution actuelle pour implémenter un modèle de métadonnées en schéma XML fait en sorte qu'il n'est pas possible de contrôler le mécanisme de substitution des métadonnées. Cette limitation des schémas XML provient du fait que les métadonnées employées dans un profil ne sont généralement pas définies localement, mais sont plutôt invoquées par référence à l'aide de l'attribut xs:element/@ref dans le modèle de contenu de l'élément conteneur du profil.
Une olution possible serait de définir un schéma alternatif pour la validation at run time des systèmes où l'on définierait localement les métadonnées dans le modèle de contenu du profil. Cette solution n'est pas possible, puisque les schémas XML ne permettent pas de définir localement des éléments faisant partie d'un espace nominatif autre que celui de l'élément conteneur.
[DC Schema Note] Notes on the W3C XML Schemas for Qualified Dublin Core . http://dublincore.org/schemas/xmls/qdc/2003/04/02/notes/.
[DCMI NS] Namespace Policy for the Dublin Core Metadata Initiative (DCMI) . 2001-10-26. http://dublincore.org/documents/2001/10/26/dcmi-namespace/.
[ISO 639-2] ISO 639-2:1998 Codes pour la représentation des noms de langue -- Partie 2: Code alpha-3 . http://www.iso.ch/iso/fr/CatalogueDetailPage.CatalogueDetail?CSNUMBER=4767&ICS1=1&ICS2=140&ICS3=20.
[RFC 3066] Tags for the Identification of Languages . http://www.ietf.org/rfc/rfc3066.txt.
[EBSI 2002] Le titre de la ressource . (Consulté le 12 janvier 2003). http://www.ebsi.umontreal.ca/termino/index.htm.