Guide du développeur XML de métadonnées

version 0.5 (2004-02-09T15:28:55)

Résumé

Voici le résumé...


Table des matières

Avant propos
1. Introduction
2. Lignes directrices
1. Principes généraux
2. Profils de métadonnées
3. meta:simple-littéral et sa conformance avec les schémas XML
4. Métadonnée obligatoire, élément vide
5. Quelques exemples
1. Ajout d'une métadonnée à un profil gouvernemental
2. Ajout d'un enrichissement à une métadonnée
3. Création d'un schème d'encodage
4. Utilisation de listes d'autorité externes
5. Contenu structuré d'une métadonnée
6. Création d'un nouveau profil
6. Limitations
1. Enrichissements et sous-classement
2. Contrôle des substitutions
3. Schème d'encodage par défaut
Bibliographie

Liste des tableaux

5.1. Espaces nominatifs en jeux

Liste des exemples

2.1. Valeur d'une métadonnée

Avant propos

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.

[Warning]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.

Chapitre 1. Introduction

[Note]Note
  • Tout nouvel élément de métadonnée, enrichissement ou schème d'encodage doit être versé dans un espace nominatif autre que celui gouvernemental.

  • Un rappel des bonnes pratiques (priorité à la réutilisation, pointeurs vers les autres documents dont celui décrivant le modèle abstrait de métadonnées)

  • Une courte description des étapes de modélisation pour les métadonnées: analyse des besoins en métadonnées, formulation des besoins en termes du modèle de métadonnées, réutilisation des composants communs utiles, création des composants originaux, publication (enregistrement?) des composants dans le registre gouvernemental

Les concepts et leur transposition en schéma XML

  • Le mécanisme mis en place pour modifier un profil ou une métadonnée existante: le complexType associé à chaque métadonnée (i.e. titre_type pour titre) permet d'imposer un schème d'encodage... Donner une procédure à suivre:

    1. Créer un schéma driver

      1. espace nominatif cible (targetNamespace) identique à celui du schéma que l'on veut redéfinir

      2. redéfinir les complexType associés aux métadonnées (donner des exemples)

    2. importer le schéma driver dans le schéma du profil local que l'on veut créer...

Notes en vrac

  • espaces nominatifs et noms qualifiés. Donner des précisions à propos des noms d'éléments qualifiés. Par exemple, on peut préconiser l'emploi d'un préfixe, mais celui-ci reste arbitraire dans le document XML.

  • se conformer au protocole de création de schémas

  • Peut-on qualifier la relation entre un qualificatif et le terme auquel il se rapporte? @@ Par exemple, préciser que le qualificatif xx yy?

  • Mentionner qu'il faut commenter les composants créés.

Chapitre 2. Lignes directrices

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).

1. Principes généraux

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'encodageLes 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 XMLLe 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
Nomdate-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 XMLOn 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 XMLOn 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:langLa 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>

2. Profils de 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.

Chapitre 3.  meta:simple-littéral et sa conformance avec les schémas XML

Chapitre 4. Métadonnée obligatoire, élément vide

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.

Chapitre 5. Quelques exemples

1. Ajout d'une métadonnée à un profil gouvernemental

Mentionner que l'enrichissement doit être versé dans un espace nominatif autre que celui d'origine si l'on n'est pas registraire de l'espace nominatif source.


2. Ajout d'un enrichissement à une métadonnée

Mentionner que l'enrichissement doit être versé dans un espace nominatif autre que celui d'origine si l'on n'est pas registraire de l'espace nominatif source.

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>

3. Création d'un schème d'encodage



4. Utilisation de listes d'autorité externes

Exemple type: conversion en schème d'encodage flottant. Y a-t-il des alternatives?

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>

5. Contenu structuré d'une métadonnée

Description du cas

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éfixeURIDescription
metahttp://www.gouv.qc.ca/2002/metadonneesMétadonnées gouvernementales.
doc-refhttp://www.gouv.qc.ca/2002/metadonnees/doc-referenceEspace nominatif pour le profil de métadonnées des documents de référence.
mohttp://www.mo.gouv.qc.ca/2002/metadonneesEspace nominatif pour les métadonnées du ministère mo.
tdmhttp://www.mo.gouv.qc.ca/2002/tdmEspace nominatif où est versé le schéma définissant une table des matières. Celle-ci aurait tdm:tdm pour élément racine .

Solution adoptée

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.

Les étapes de réalisation

<xs:schema 
    targetNamespace="http://www.mo.gouv.qc.ca/2004/metadonnees" 
    xmlns:meta="http://www.gouv.qc.ca/2002/metadonnees" 
    xmlns:doc-ref="http://www.gouv.qc.ca/2002/metadonnees/doc-reference" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:tdm="http://www.mo.gouv.qc.ca/2004/tdm" 
    xmlns:mo="http://www.mo.gouv.qc.ca/2004/metadonnees" 
    elementFormDefault="qualified" attributeFormDefault="unqualified">

<xs:import namespace="http://www.mo.gouv.qc.ca/2004/tdm" 
           schemaLocation="tdm.xsd"/> 1
<xs:import namespace="http://www.gouv.qc.ca/2002/metadonnees/doc-reference" 
           schemaLocation="doc-reference.xsd"/> 2
<xs:import namespace="http://www.gouv.qc.ca/2002/metadonnees" 
           schemaLocation="composants-communs.xsd"/> 3
  <xs:element name="tdm" substitutionGroup="meta:résumé"> 4
    <xs:complexType>
      <xs:complexContent mixed="true"> 5
        <xs:extension base="meta:simple-littéral">
          <xs:sequence>
            <xs:element ref="tdm:tdm"/> 6
          </xs:sequence>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
</xs:schema>
1

Importation du schéma XML pour les tables des matières.

2

Importation du schéma XML du profil de métadonnées des documents de référence, ce qui expose l'élément doc-ref:doc-référence contenant le profil. Cet élément XML sera le conteneur des métadonnées dans les instances.

3

Importation du schéma XML pour les métadonnées gouvernementales, y compris les enrichissements. Ce schéma contient le type de base meta:simple-littéral qui sert de type de base à la nouvelle métadonnée.

4

Déclaration de la nouvelle métadonnée mo:tdm en tant qu'enrichissement de meta:résumé.

5

En utilisant l'élément xsd:complexContent, nous pouvons dériver le type ancestral des métadonnées meta:simple-littéral de façon à permettre des éléments dans le contenu.

6

L'élément racine devant contenir une table des matières.

Exemple d'instance XML

<?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>

6. Création d'un nouveau profil



Chapitre 6. Limitations

1. Enrichissements et sous-classement

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é.

2. Contrôle des substitutions

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.

3. Schème d'encodage par défaut

Lorsqu'un utilise par référence une métadonnées, il n'est pas possible de lui déclarer un type par défaut.

Bibliographie

[DC Schema Note] Pete Johnston. 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) . Dublin Core Metadata Initiative. 2001-10-26. http://dublincore.org/documents/2001/10/26/dcmi-namespace/.

[ISO 639-2] Organisation internationale de normalisation. 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] H. Alvestrand. Cisco Systems. Tags for the Identification of Languages . http://www.ietf.org/rfc/rfc3066.txt.

[EBSI 2002] Prénom Nom. et/ou Organisation. Le titre de la ressource . (Consulté le 12 janvier 2003). http://www.ebsi.umontreal.ca/termino/index.htm.