Lisez-moi S.V.P. 

Page de couverture | Retour au contenu intelligent | Vers le DOM de WebCGM

WebCGM 2.0 : Le fichier d'accompagnement XML (XCF) de WebCGM


4. Le fichier d'accompagnement XML de WebCGM

Cette section et ses sous-sections sont normatives, sauf indication contraire.

Sommaire

4.1 Introduction et exemples

Cette sous-section est informative (non normative).

Le fichier d'accompagnement XML (XCF) de WebCGM est un nouveau composant de WebCGM, prévu dans la version 1.0 et ajouté dans la mise à jour 2.0. Les définitions d'éléments et d'attributs trouvés dans cette section représentent la définition DTD XCF de WebCGM. Cette définition DTD peut être étendue par des profils dérivant de WebCGM 2.0. Les fichiers XCF de WebCGM peuvent servir à plusieurs utilisations. Il existe beaucoup de scénarios d'utilisation concevables mais pour le champ d'application de WebCGM 2.0 les trois suivants ont été jugés les plus importants.

Scénario n° 1 : Un fichier d'accompagnement peut servir à lier des détails d'applications spécifiques (tel un numéro de pièce) à une structure d'application particulière. Le contrôle de l'utilisation des informations spécifiques de l'application est le fait de l'application.

Exemple 4.1 : Un fichier d'accompagnement utilisé pour relier des données spécifiques d'une application à des objets graphiques.

<!ENTITY % grobjectAttEXT "model:partNum CDATA #IMPLIED">
<webcgm version="2.0" id="root-cgm"
    filename="sample_1.cgm"
    xmlns:model="http://example.org"
    xmlns="http://www.cgmopen.org/schema/webcgm/">

    <grobject apsid="id_1"
        model:partNum="bolt-100A"/>
    <grobject apsid="id_2"
        model:partNum="wingnut-T9"/>
    ...
    <grobject apsid="id_49"
        model:partNum="drill-bit-D01"/>
    <grobject apsid="id_50"
        model:partNum="router-bit-B389"/>

</webcgm>

Scénario n° 2 : Un fichier d'accompagnement peut aussi servir à mettre à jour une illustration CGM via le DOM de WebCGM (cf. la section « Les relations avec le fichier d'accompagnement XML » pour plus de renseignements) :

Exemple 4.2 : Un fichier d'accompagnement utilisé pour mettre à jour le fichier sample_2.cgm avant d'être affiché par un agent utilisateur. Des appels de méthodes du DOM de WebCGM sont nécessaires pour réaliser cette tâche.

<webcgm version="2.0" id="root-cgm"
    filename="sample_2.cgm"
    xmlns="http://www.cgmopen.org/schema/webcgm/">

    <bindByName apstargetname="bolt_100"
        screentip="Replacement part:bolt-100B"/>

    <bindByName apstargetname="wingnut_9"
        screentip="Replacement part:wingnut-T9A"/>

</webcgm>

Scénario n° 3 : Bien qu'il ne soit pas dans le propos de cette version du fichier XCF de WebCGM de refléter entièrement la structure hiérarchique d'un graphique CGM (cf. « Vue d'ensemble de la structure »), un fichier d'accompagnement XML pourrait servir d'inventaire XML réduit partiel d'une illustration CGM en énumérant les identificateurs, les types et (la plupart des) attributs des structures d'application.

Exemple 4.3 : Un fichier d'accompagnement utilisé comme inventaire partiel du fichier sample_3.cgm. Dans ce cas, la description met l'accent sur la région sensible de chaque élément grobject.

<webcgm version="2.0" id="root-cgm"
    filename="sample_3.cgm"
    xmlns="http://www.cgmopen.org/schema/webcgm/">

    <grobject apsid="id_1" region="1 0 0 100 100"/>
    <grobject apsid="id_2" region="1 200 0 300 100"/>
    ...
    <grobject apsid="id_49" region="1 1600 600 1700 700"/>
    <grobject apsid="id_50" region="1 1800 600 1900 700"/>

</webcgm>

4.2 Le contenu et la structure du fichier XCF

4.2.1 Vue d'ensemble de la structure

Le fichier d'accompagnement XML (XCF) de WebCGM n'a pas vocation à être une représentation XML fidèle de l'arbre d'objets d'un fichier WebCGM hiérarchique. Le fichier XCF fournit plutôt un mécanisme pour externaliser les métadonnées normalisées et privées (celles de l'application) d'une instance WebCGM structurée, et pour les lier aux objets exacts dans l'arbre d'objets de l'instance WebCGM.

Par conséquent, la structure du fichier d'accompagnement XML est presque plate. Après l'élément racine webcgm, les divers éléments XCF normalisés apparaissent comme frères dans le fichier d'accompagnement (à la seule exception de l'élément linkuri). Ainsi, par exemple, les éléments grobject qui ont une relation parent-enfant dans le fichier CGM sont frères dans le fichier XCF. La définition DTD normative de WebCGM 2.0 exprime et met en application cette structure plate, indépendamment d'une quelconque hiérarchie existante dans l'instance WebCGM correspondante.

Exemple 4.4 : Un fichier d'accompagnement presque plat lie des métadonnées normalisées à un arbre d'objets hiérarchique dans une instance WebCGM.

<webcgm version="2.0" filename="sample_4.cgm"
        xmlns="http://www.cgmopen.org/schema/webcgm/">

    <grobject apsid="level-4-obj"
        screentip="wingnut-400A"/>
    <grobject apsid="level-3-obj"
        screentip="bolt-assembly-100A"/>

</webcgm>
BegPic
  ..(graphics etc)..
  BegAps type="grobject" id="level-1-obj"
    BegAps type="grobject" id="level-2-obj"
      ..(graphics etc)..
      BegAps type="grobject" id="level-3-obj"
        BegAps type="grobject" id="level-4-obj"
          ..(graphics etc)..
        EndAps
      EndAps
    EndAps
  EndAps
EndPic

Remarque : L'exemple 4.4 emploie une représentation schématique condensée du code CGM, éliminant nombre de détails pour illustrer le point.

L'exemple 4.4 illustre un autre aspect des relations du contenu du fichier XCF à l'instance WebCGM correspondante (l'ordre du fichier XCF n'est pas obligé de suivre l'ordre du contenu CGM).

Comme suggéré par l'exemple 4.4, l'élément racine d'une instance XCF conforme doit être l'élément webcgm. L'élément webcgm correspond à l'objet PICTURE dans le fichier CGM. Cf. « Les relations avec le fichier d'accompagnement XML » pour plus d'explications.

La section suivante traite en détails des attributs et éléments de métadonnées spécifiques de l'application dans un fichier XCF. Afin d'établir sans ambiguïté où, dans l'arbre d'objets WebCGM, ces métadonnées doivent s'insérer, les attributs et éléments spécifiques de l'application (définis dans un espace de noms séparé) sont placés dans le fichier XCF comme attributs et éléments enfants sur les éléments XCF normalisés qui correspondent (se lient) à l'objet approprié dans le fichier WebCGM. Cela apparaît dans l'exemple 4.1 pour les attributs spécifiques de l'application. Cf. également la section « Les relations avec le fichier d'accompagnement XML » pour plus d'explications.

4.2.2 L'extension du fichier d'accompagnement XML

La définition DTD de WebCGM est extensible et des métadonnées spécifiques de l'application ou de l'industrie peuvent donc être ajoutées au modèle objet de WebCGM (comme illustré dans l'exemple 4.1). Les définitions d'extension sont mises en œuvre en utilisant des espaces de noms. La définition DTD décrit une entité d'extension pour le contenu et les attributs de la plupart des éléments. Comme exemple, prenons un fabricant de pièces de rechange qui souhaite associer des renseignements à propos de ces pièces à des objets graphiques. Cela pourrait être mise en œuvre avec une extension comme celle-ci :

<!ENTITY   % grobjectAttEXT   "model:partNum CDATA #IMPLIED" >

Une application hôte pourrait alors interroger le DOM de WebCGM et récupérer les renseignements (à propos des pièces) associés.

On doit suivre un ensemble de règles pour l'extension de la définition DTD de WebCGM :

  1. L'élément racine DOIT être webcgm ;
  2. Les éléments et/ou attributs étendus DOIVENT être dans un autre espace de noms (cf. « Les espaces de noms en XML) ;
  3. L'extension de la liste de sous-éléments d'un élément DOIT utiliser l'entité nomDeLÉlémentEXT ;
  4. L'extension de la liste d'attributs d'un élément DOIT utiliser l'entité nomDeLÉlémentAttEXT ;
  5. Les éléments de l'espace de noms WebCGM NE DOIVENT PAS être des descendants d'éléments d'autres espaces de noms.

Les règles précédentes permettent aux agents utilisateurs WebCGM de traiter les fichiers d'accompagnement étendus de manière interopérable.

4.2.3 L'espace de noms XCF de WebCGM

L'espace de noms WebCGM :

http://www.cgmopen.org/schema/webcgm/

Exemple d'espace de noms :

<webcgm version="2.0" filename="sample.cgm"
    xmlns="http://www.cgmopen.org/schema/webcgm/">

L'identificateur public de WebCGM 2.0 :

PUBLIC "-//OASIS//DTD WebCGM 2.0//EN"

L'identificateur système de WebCGM 2.0 :

http://docs.oasis-open.org/webcgm/v2.0/webcgm20.dtd

Exemple de déclaration DOCTYPE : Voici un exemple de déclaration de type de document d'un document XCF WebCGM :

<!DOCTYPE webcgm PUBLIC "-//OASIS//DTD WebCGM 2.0//EN"
    "http://docs.oasis-open.org/webcgm/v2.0/webcgm20.dtd">

4.2.4 La conformité du fichier d'accompagnement XML de WebCGM

Un fichier est un document XCF WebCGM 2.0 conforme, s'il adhère aux spécifications décrites dans ce document (WebCGM 2.0), y compris celles de la définition DTD XCF WebCGM 2.0, et si, en plus :

4.3 Les éléments XCF

Les éléments XCF normalisés comprennent :

Les éléments XCF normalisés comprennent aussi l'attribut linkuri. C'est un attribut APS codé comme un élément XCF et non comme un attribut, afin d'éviter un codage sinon excessivement complexe de la chaîne qui comprendrait sa valeur comme un attribut XML.

4.3.1 Les types de données et les codages

Pour le contenu XCF normalisé, la plupart des items exprimés sur les éléments XCF comme des attributs XML sont en corrélation directe avec un attribut ou une propriété WebCGM normalisés, qui peuvent être établis ou lus au moyen d'un appel DOM WebCGM.

En général, le codage des attributs XML sur les éléments XCF est identique au codage des paramètres correspondants dans les appels DOM. Par exemple, l'interface WebCGMAppStructure (section 5.7.6) définit viewcontext comme une chaîne simple de quatre chiffres, séparés par des blancs (cf. la définition de la production Wsp, section 5.5). Le codage de viewcontext comme attribut XML sur un élément XCF permis est le même que celui comme paramètre de méthode DOM.

De même, les propriétés de style (assignables sur les interfaces WebCGMPicture et WebCGMAppStructure), comme attributs XML sur les éléments XCF, ont les mêmes valeurs légales et sont codés de la même façon que dans les appels DOM correspondants.

La seule exception d'utilisation de codages en harmonie est celle de l'attribut APS linkuri, qui est codé comme un élément dans le fichier XCF pour les raisons expliquées.

Cf. la section « Les types de données du DOM de WebCGM » pour des renseignements complets.

4.3.2 Les conventions d'écriture

Pour la plupart, les éléments XCF peuvent avoir des propriétés de style en tant qu'attributs XML (les propriétés de style sont définies et gérées par les interfaces DOM WebCGMPicture et WebCGMAppStructure). La définition d'entité suivante est utilisée dans les blocs DTD des sous-sections à suivre, sur les éléments qui acceptent des propriétés de style aux deux niveaux de la structure APS et de l'image. (La propriété de style background-color ne s'applique qu'au niveau de l'image).

<!ENTITY % styleProperties

        "text-size            CDATA        #IMPLIED
         fill-color           CDATA        #IMPLIED
         intensity            CDATA        #IMPLIED
         stroke-color         CDATA        #IMPLIED
         stroke-weight        CDATA        #IMPLIED
         text-color           CDATA        #IMPLIED
         text-font            CDATA        #IMPLIED
         raster-intensity     CDATA        #IMPLIED"
>

Un seul élément XCF WebCGM ne doit pas contenir en même temps la propriété intensity et une ou plusieurs propriétés chevauchantes (overlapping properties) fill-color, stroke-color ou text-color. Les propriétés chevauchantes peuvent apparaître en succession sur des éléments XCF différents, et leur traitement est alors défini selon leur ordre d'apparition (cf. la description des propriétés de style).

Cf. la section « Les types de données et les codages » pour plus de renseignements à propos des propriétés de style.

4.3.3 L'élément webcgm

Un fichier d'accompagnement WebCGM (ou tout autre profil CGM dérivé du profil WebCGM) doit avoir un élément webcgm comme élément racine. L'élément webcgm correspond au nœud WebCGMPicture dans l'arbre DOM de WebCGM (cf. par exemple l'interface WebCGMPicture dans le DOM).

<!ENTITY % webcgmEXT "" >
<!ENTITY % webcgmAttEXT "" >
<!ELEMENT webcgm ( (layer | grobject | para | subpara | bindById | bindByName %webcgmEXT;)* ) >
<!ATTLIST webcgm
        id       ID    #IMPLIED
        version  CDATA #FIXED '2.0'
        filename CDATA #IMPLIED
        xmlns    CDATA #FIXED "http://www.cgmopen.org/schema/webcgm/"
        background-color  CDATA  #IMPLIED
        pictureVisibility    ( on | off) #IMPLIED
        %styleProperties;
        %webcgmAttEXT;
>

Définitions d'attributs :

id="xml:id"
L'attribut XML normalisé pour assigner un identificateur unique à un élément. Cf. la spécification « Le langage de balisage extensible (XML) 1.0, 3ème édition » [XML10].
version="valeur de type CDATA"
Représente la version de la spécification WebCGM. La valeur est "2.0" pour cette spécification. Chaque fichier XCF conforme doivent identifier cette version, soit en incluant cet attribut dans l'élément webcgm, soit en incluant une déclaration DOCTYPE pointant vers la définition DTD de ce fichier XCF WebCGM, ou les deux (recommandé). Un profil spécifique d'une industrie dérivé de cette spécification XCF WebCGM ne doit pas utiliser cet attribut pour identifier sa version de profil. Par exemple, si l'association ASD incluait dans la version 2.3 de sa spécification S1000D un fichier XCF dérivé de WebCGM 2.0, la balise webcgm ressemblerait à ceci :
<webcgm version="2.0" asd:s1000d-version="2.3" xmlns:asd="http://example.org/asd/" ...>
filename="valeur de type CDATA"
Représente le nom de fichier du fichier WebCGM correspondant. L'attribut filename est descriptif.
xmlns[:préfixe]="valeur de type CDATA"
L'attribut XML normalisé dont la valeur définit le « nom-de-ressource » pour identifier un espace de noms XML. Cf. la spécification « Les espaces de noms dans XML ». L'attribut xmlns sans préfixe identifie l'espace de noms WebCGM (défaut), et (avec préfixe) on doit l'employer pour identifier les espaces de noms étrangers des métadonnées spécifiques d'une application utilisées dans l'instance XCF. Notez que la valeur donnée dans le bloc DTD et le type d'attribut (#FIXED) ne s'appliquent qu'à l'espace de noms WebCGM par défaut non préfixé.
EXEMPLES :
<webcgm version="2.0" xmlns="http://www.cgmopen.org/schema/webcgm/"
            xmlns:asd="http://example.org/asd/" ...>


<xcf:webcgm version="2.0" xmlns:asd="http://example.org/asd/"
            ...>

Dans le premier exemple, l'espace de noms WebCGM est déclaré comme espace de noms par défaut de l'élément webcgm et son contenu, et le contenu dans l'espace de noms asd emploierait le préfixe « asd: ». Comme la définition DTD le montre, le second exemple est également valide parce que l'espace de noms IRI se replie correctement au défaut pour l'attribut xmlns sans préfixe. Toutefois, on recommande de toujours inclure l'attribut xmlns pour déclarer l'espace de noms par défaut (WebCGM).

background-color="valeur de type CDATA"
La propriété background-color est une propriété de style qui établit la couleur d'arrière-plan de PICTURE (le nœud racine de l'arbre d'objets WebCGM).
pictureVisibility="on|off"
Définit la visibilité de l'image qui correspond à l'élément webcgm de ce fichier XCF. Cette propriété est similaire à l'attribut APS visibility applicable aux structures d'application du métafichier, sauf qu'elle s'applique à l'image (où l'attribut APS visibility n'est pas permis selon les règles de CGM). L'effet est le même que celui de l'invocation de la méthode setPictureVisibility sur l'interface WebCGMPicture du DOM.
styleProperties
L'entité styleProperties définit collectivement les propriétés de style qui s'appliquent à la fois au niveau de l'image (PICTURE) et au niveau de l'objet/structure d'application.
webcgmEXT
L'entité webcgmEXT est un mécanisme pour ajouter des sous-éléments (N.d.T. adding additional child content), c'est-à-dire des métadonnées, au nœud racine.
webcgmAttEXT
L'entité webcgmAttEXT est un mécanisme pour ajouter des attributs (N.d.T. adding additional attributes), c'est-à-dire des métadonnées, au nœud racine.

4.3.4 L'élément layer

L'élément layer d'un fichier d'accompagnement XML représente une structure d'application CGM de type layer. Le layer correspondant est identifiable par la valeur de son attribut apsid.

<!ENTITY % layerEXT "EMPTY" >
<!ENTITY % layerAttEXT ""   >
<!ELEMENT layer %layerEXT;  >
<!ATTLIST layer
        apsid         ID           #REQUIRED
        layerdesc     CDATA        #IMPLIED
        visibility    ( on | off  | inherit) #IMPLIED
        interactivity ( on | off  | inherit) #IMPLIED
        %styleProperties;
        %layerAttEXT;
>

Définitions d'attributs :

apsid="xml:id"
L'identificateur unique de la structure d'application pour le fichier WebCGM donné.
layerdesc="valeur de type CDATA"
La valeur de l'attribut APS layerdesc de la structure d'application associée.
visibility="on|off|inherit"
La valeur de l'attribut APS visibility de la structure d'application associée.
interactivity="on|off|inherit"
La valeur de l'attribut APS interactivity de la structure d'application associée.
styleProperties
L'entité styleProperties définit collectivement les propriétés de style qui s'appliquent à la fois au niveau de l'image (PICTURE) et au niveau de l'objet/structure d'application.
layerEXT
L'entité layerEXT est un mécanisme pour ajouter des sous-éléments, c'est-à-dire des métadonnées, à l'élément layer.
layerAttEXT
L'entité layerAttEXT est un mécanisme pour ajouter des attributs, c'est-à-dire des métadonnées, à l'élément layer.

Cf. également la description fonctionnelle de layer dans la section 3.

4.3.5 L'élément grobject

L'élément grobject d'un fichier d'accompagnement XML représente une structure d'application CGM de type grobject. Le grobject correspondant est identifiable par la valeur de son attribut apsid.

<!ENTITY % grobjectEXT "" >
<!ENTITY % grobjectAttEXT "" >
<!ELEMENT grobject ( linkuri %grobjectEXT; )* >
<!ATTLIST grobject
        apsid         ID            #REQUIRED
        screentip     CDATA         #IMPLIED
        region        CDATA         #IMPLIED
        viewcontext   CDATA         #IMPLIED
        visibility    ( on | off | inherit ) #IMPLIED
        interactivity ( on | off | inherit ) #IMPLIED
        %styleProperties;
        %grobjectAttEXT;
>

Définitions d'attributs :

apsid="xml:id"
L'identificateur unique de la structure d'application pour le fichier WebCGM donné.
screentip="valeur de type CDATA"
La valeur de l'attribut APS screentip de la structure d'application associée.
region="valeur de type CDATA"
La valeur de l'attribut APS region de la structure d'application associée.
viewcontext="valeur de type CDATA"
La valeur de l'attribut APS viewcontext de la structure d'application associée.
visibility="on|off|inherit"
La valeur de l'attribut APS visibility de la structure d'application associée.
interactivity="on|off|inherit"
La valeur de l'attribut APS interactivity de la structure d'application associée.
styleProperties
L'entité styleProperties définit collectivement les propriétés de style qui s'appliquent à la fois au niveau de l'image (PICTURE) et au niveau de l'objet/structure d'application.
grobjectEXT
L'entité grobjectEXT est un mécanisme pour ajouter des sous-éléments, c'est-à-dire des métadonnées, à l'élément grobject.
grobjectAttEXT
L'entité grobjectAttEXT est un mécanisme pour ajouter des attributs, c'est-à-dire des métadonnées, à l'élément grobject.

Cf. également la description fonctionnelle de grobject dans la section 3.

4.3.6 L'élément para

L'élément para d'un fichier d'accompagnement XML représente une structure d'application CGM de type para. Le para correspondant est identifiable par la valeur de son attribut apsid.

<!ENTITY % paraEXT "" >
<!ENTITY % paraAttEXT "" >
<!ELEMENT para ( linkuri %paraEXT; )* >
<!ATTLIST para
        apsid         ID           #REQUIRED
        screentip     CDATA        #IMPLIED
        region        CDATA        #IMPLIED
        viewcontext   CDATA        #IMPLIED
        visibility    ( on | off | inherit) #IMPLIED
        interactivity ( on | off | inherit) #IMPLIED
        %styleProperties;
        %paraAttEXT;
>

Définitions d'attributs :

apsid="xml:id"
L'identificateur unique de la structure d'application pour le fichier WebCGM donné.
screentip="valeur de type CDATA"
La valeur de l'attribut APS screentip de la structure d'application associée.
region="valeur de type CDATA"
La valeur de l'attribut APS region de la structure d'application associée.
viewcontext="valeur de type CDATA"
La valeur de l'attribut APS viewcontext de la structure d'application associée.
visibility="on|off|inherit"
La valeur de l'attribut APS visibility de la structure d'application associée.
interactivity="on|off|inherit"
La valeur de l'attribut APS interactivity de la structure d'application associée.
styleProperties
L'entité styleProperties définit collectivement les propriétés de style qui s'appliquent à la fois au niveau de l'image (PICTURE) et au niveau de l'objet/structure d'application.
paraEXT
L'entité paraEXT est un mécanisme pour ajouter des sous-éléments, c'est-à-dire des métadonnées, à l'élément para.
paraAttEXT
L'entité paraAttEXT est un mécanisme pour ajouter des attributs, c'est-à-dire des métadonnées, à l'élément para.

Cf. également la description fonctionnelle de para dans la section 3.

4.3.7 L'élément subpara

L'élément subpara d'un fichier d'accompagnement XML représente une structure d'application CGM de type subpara. Le subpara correspondant est identifiable par la valeur de son attribut apsid.

<!ENTITY % subparaEXT "" >
<!ENTITY % subparaAttEXT "" >
<!ELEMENT subpara ( linkuri %subparaEXT; )* >
<!ATTLIST subpara
        apsid         ID           #REQUIRED
        screentip     CDATA        #IMPLIED
        region        CDATA        #IMPLIED
        viewcontext   CDATA        #IMPLIED
        visibility    ( on | off | inherit) #IMPLIED
        interactivity ( on | off | inherit) #IMPLIED
        %styleProperties;
        %subparaAttEXT;
>

Définitions d'attributs :

apsid="xml:id"
L'identificateur unique de la structure d'application pour le fichier WebCGM donné.
screentip="valeur de type CDATA"
La valeur de l'attribut APS screentip de la structure d'application associée.
region="valeur de type CDATA"
La valeur de l'attribut APS region de la structure d'application associée.
viewcontext="valeur de type CDATA"
La valeur de l'attribut APS viewcontext de la structure d'application associée.
visibility="on|off|inherit"
La valeur de l'attribut APS visibility de la structure d'application associée.
interactivity="on|off|inherit"
La valeur de l'attribut APS interactivity de la structure d'application associée.
styleProperties
L'entité styleProperties définit collectivement les propriétés de style qui s'appliquent à la fois au niveau de l'image (PICTURE) et au niveau de l'objet/structure d'application.
subparaEXT
L'entité subparaEXT est un mécanisme pour ajouter des sous-éléments, c'est-à-dire des métadonnées, à l'élément subpara.
subparaAttEXT
L'entité subparaAttEXT est un mécanisme pour ajouter des attributs, c'est-à-dire des métadonnées, à l'élément subpara.

Cf. également la description fonctionnelle de subpara dans la section 3.

4.3.8 L'élément linkuri

L'élément linkuri d'un fichier d'accompagnement XML représente un attribut APS linkuri WebCGM. Contrairement aux autres attributs, l'attribut linkuri s'exprime comme un élément dans le fichier d'accompagnement XML. La structure d'application correspondante de ce linkuri est son élément parent.

<!ENTITY % linkuriEXT "" "EMPTY" >
<!ENTITY % linkuriAttEXT "" >
<!ELEMENT linkuri %linkuriEXT; >
<!ATTLIST linkuri
        uri      CDATA #REQUIRED
        behavior CDATA #IMPLIED
        desc     CDATA #IMPLIED
        %linkuriAttEXT;
>

Définitions d'attributs :

uri="valeur de type CDATA"
L'adresse IRI de cet attribut linkuri. Cf. la section « Les types de données de base » pour plus de renseignements.
behavior="valeur de type CDATA"
Le comportement de cet attribut linkuri. Cf. la section « Les types de données de base » pour plus de renseignements.
desc="valeur de type CDATA"
Le titre ou description de cet attribut linkuri. Cf. la section « Les types de données de base » pour plus de renseignements.
linkuriEXT
L'entité linkuriEXT est un mécanisme pour ajouter des sous-éléments, c'est-à-dire des métadonnées, à l'élément linkuri.
linkuriAttEXT
L'entité linkuriAttEXT est un mécanisme pour ajouter des attributs, c'est-à-dire des métadonnées, à l'élément linkuri.

Cf. également la description fonctionnelle de linkuri dans la section 3.

4.3.9 L'élément bindByName

L'élément bindByName d'un fichier d'accompagnement XML est prévu pour correspondre à une ou plusieurs structures d'application dans un fichier CGM. Le lien commun entre ces structures est la valeur de leur attribut name ou layername correspondant à celle de l'attribut apstargetname. Cf. la section « Les relations avec le fichier d'accompagnement XML » pour plus de renseignements sur les règles de mappage des attributs de bindByName aux structures d'application WebCGM.

<!ENTITY % bindByNameEXT "" >
<!ENTITY % bindByNameAttEXT "" >
<!ELEMENT bindByName ( linkuri %bindByNameEXT; )* >
<!ATTLIST bindByName
        apstargetname CDATA        #REQUIRED
        screentip     CDATA        #IMPLIED
        region        CDATA        #IMPLIED
        viewcontext   CDATA        #IMPLIED
        layerdesc     CDATA        #IMPLIED
        visibility    ( on | off | inherit) #IMPLIED
        interactivity ( on | off | inherit) #IMPLIED
        %styleProperties;
        %bindByNameAttEXT;
>

Définitions d'attributs :

apstargetname="valeur de type CDATA"
Le nom utilisé pour identifier la (ou les) structure(s) d'application d'un fichier WebCGM.
screentip="valeur de type CDATA"
La valeur de l'attribut APS screentip de la structure d'application associée.
region="valeur de type CDATA"
La valeur de l'attribut APS region de la structure d'application associée.
viewcontext="valeur de type CDATA"
La valeur de l'attribut APS viewcontext de la structure d'application associée.
layerdesc="valeur de type CDATA"
La valeur de l'attribut APS layerdesc de la structure d'application associée.
visibility="on|off|inherit"
La valeur de l'attribut APS visibility de la structure d'application associée.
interactivity="on|off|inherit"
La valeur de l'attribut APS interactivity de la structure d'application associée.
styleProperties
L'entité styleProperties définit collectivement les propriétés de style qui s'appliquent à la fois au niveau de l'image (PICTURE) et au niveau de l'objet/structure d'application.
bindByNameEXT
L'entité bindByNameEXT est un mécanisme pour ajouter des sous-éléments, c'est-à-dire des métadonnées, à la structure d'application.
bindByNameAttEXT
L'entité bindByNameAttEXT est un mécanisme pour ajouter des attributs, c'est-à-dire des métadonnées, à la structure d'application.

4.3.10 L'élément bindById

L'élément bindById d'un fichier d'accompagnement XML représente une structure d'application de type inconnu (quelques possibilités sont : layer, grobject, para, subpara). L'objet correspondant est identifiable par la valeur de son attribut apsid. Cf. la section « Les relations avec le fichier d'accompagnement XML » pour plus de renseignements sur les règles de mappage des attributs de bindById aux structures d'applications WebCGM.

<!ENTITY % bindByIdEXT "" >
<!ENTITY % bindByIdAttEXT "" >
<!ELEMENT bindById ( linkuri %bindByIdEXT; )* >
<!ATTLIST bindById
        apsid         ID           #REQUIRED
        screentip     CDATA        #IMPLIED
        region        CDATA        #IMPLIED
        viewcontext   CDATA        #IMPLIED
        layerdesc     CDATA        #IMPLIED
        visibility    ( on | off | inherit) #IMPLIED
        interactivity ( on | off | inherit) #IMPLIED
        %styleProperties;
        %bindByIdAttEXT;
>

Définitions d'attributs :

apsid="xml:id"
L'identificateur unique de la structure d'application pour le fichier WebCGM donné.
screentip="valeur de type CDATA"
La valeur de l'attribut APS screentip de la structure d'application associée.
region="valeur de type CDATA"
La valeur de l'attribut APS region de la structure d'application associée.
viewcontext="valeur de type CDATA"
La valeur de l'attribut APS viewcontext de la structure d'application associée.
layerdesc="valeur de type CDATA"
La valeur de l'attribut APS layerdesc de la structure d'application associée.
visibility="on|off|inherit"
La valeur de l'attribut APS visibility de la structure d'application associée.
interactivity="on|off|inherit"
La valeur de l'attribut APS interactivity de la structure d'application associée.
styleProperties
L'entité styleProperties définit collectivement les propriétés de style qui s'appliquent à la fois au niveau de l'image (PICTURE) et au niveau de l'objet/structure d'application.
bindByIdEXT
L'entité bindByIdEXT est un mécanisme pour ajouter des sous-éléments, c'est-à-dire des métadonnées, à la structure d'application.
bindByIdAttEXT
L'entité bindByIdAttEXT est un mécanisme pour ajouter des attributs, c'est-à-dire des métadonnées, à la structure d'application.

4.4 La définition DTD XCF complète

Voici la définition DTD complète du fichier d'accompagnement XML (XCF) de WebCGM :

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE webcgm [
<!-- ================================================================ -->
<!-- This is the WebCGM XML Companion File DTD for use with           -->
<!-- WebCGM 2.0                                                       -->
<!-- ================================================================ -->
<!-- Original issue: September 2004                                   -->
<!--                                                                  -->
<!-- Revision history:                                                -->
<!-- December 2004 (r1)                                               -->
<!-- Added xml version statement                                      -->
<!-- Corrected spelling of interactivity                              -->
<!-- Changed visibility/interactivity parameters from                 -->
<!-- CDATA to "on" or "off"                                           -->
<!-- January 2005 (r2)                                                -->
<!-- Corrected linkrui to linkuri and subpara extensible              -->
<!-- attributes value                                                 -->
<!-- Added region and viewcontext attributes to                       -->
<!-- grobject, para, subpara, bindById, and bindByName                -->
<!-- Change webcgm element attributes version and filename            -->
<!-- to #IMPLIED                                                      -->
<!-- ================================================================ -->
<!--                                                                  -->
<!-- ================================================================ -->
<!-- Application specific entities                                    -->
<!-- Application groups define application specific attributes here   -->
<!-- and define the stubs for application specific elements that      -->
<!-- will be defined later in the DTD                                 -->
<!--                                                                  -->
<!ENTITY % webcgmEXT ""                                                 >
<!ENTITY % webcgmAttEXT ""                                              >
<!ENTITY % layerEXT "EMPTY"                                             >
<!ENTITY % layerAttEXT ""                                               >
<!ENTITY % grobjectEXT ""                                               >
<!ENTITY % grobjectAttEXT ""                                            >
<!ENTITY % paraEXT ""                                                   >
<!ENTITY % paraAttEXT ""                                                >
<!ENTITY % subparaEXT ""                                                >
<!ENTITY % subparaAttEXT ""                                             >
<!ENTITY % linkuriEXT "" "EMPTY"                                        >
<!ENTITY % linkuriAttEXT ""                                             >
<!ENTITY % bindByIdEXT ""                                               >
<!ENTITY % bindByIdAttEXT ""                                            >
<!ENTITY % bindByNameEXT ""                                             >
<!ENTITY % bindByNameAttEXT ""                                          >
<!ENTITY % styleProperties
            "text-size            CDATA        #IMPLIED
             fill-color           CDATA        #IMPLIED
             intensity            CDATA        #IMPLIED
             stroke-color         CDATA        #IMPLIED
             stroke-weight        CDATA        #IMPLIED
             text-color           CDATA        #IMPLIED
             text-font            CDATA        #IMPLIED
             raster-intensity     CDATA        #IMPLIED"
>

<!ELEMENT webcgm ( (layer | grobject | para | subpara | 
             bindById | bindByName %webcgmEXT;)* )
>
<!ATTLIST webcgm
             id       ID    #IMPLIED
             version  CDATA #FIXED '2.0'
             filename CDATA #IMPLIED
             background-color CDATA #IMPLIED
             pictureVisibility ( on | off ) #IMPLIED
             xmlns    CDATA #FIXED "http://www.cgmopen.org/schema/webcgm/"
             %styleProperties;
             %webcgmAttEXT;
>

<!ELEMENT layer %layerEXT;
>
<!ATTLIST layer
             apsid         ID           #REQUIRED
             layerdesc     CDATA        #IMPLIED
             visibility    ( on | off | inherit) #IMPLIED
             interactivity ( on | off | inherit) #IMPLIED
             %styleProperties;
             %layerAttEXT;
>

<!ELEMENT grobject ( linkuri %grobjectEXT; )*
>
<!ATTLIST grobject
             apsid         ID           #REQUIRED
             screentip     CDATA        #IMPLIED
             region        CDATA        #IMPLIED
             viewcontext   CDATA        #IMPLIED
             visibility    ( on | off | inherit) #IMPLIED
             interactivity ( on | off | inherit) #IMPLIED
             %styleProperties;
             %grobjectAttEXT;
>

<!ELEMENT linkuri %linkuriEXT;
>
<!ATTLIST linkuri
             uri      CDATA #REQUIRED
             behavior CDATA #IMPLIED
             desc     CDATA #IMPLIED
             %linkuriAttEXT;
>

<!ELEMENT para ( linkuri %paraEXT; )*
>
<!ATTLIST para
             apsid       ID           #REQUIRED
             screentip     CDATA        #IMPLIED
             region        CDATA        #IMPLIED
             viewcontext   CDATA        #IMPLIED
             visibility    ( on | off | inherit) #IMPLIED
             interactivity ( on | off | inherit) #IMPLIED
             %styleProperties;
             %paraAttEXT;
>

<!ELEMENT subpara ( linkuri %subparaEXT; )*
>
<!ATTLIST subpara
             apsid         ID           #REQUIRED
             screentip     CDATA        #IMPLIED
             region        CDATA        #IMPLIED
             viewcontext   CDATA        #IMPLIED
             visibility    ( on | off | inherit) #IMPLIED
             interactivity ( on | off | inherit) #IMPLIED
             %styleProperties;
             %subparaAttEXT;
>

<!ELEMENT bindById ( linkuri %bindByIdEXT; )*
>
<!ATTLIST bindById
             apsid         ID           #REQUIRED
             screentip     CDATA        #IMPLIED
             layerdesc     CDATA        #IMPLIED
             region        CDATA        #IMPLIED
             viewcontext   CDATA        #IMPLIED
             visibility    ( on | off | inherit) #IMPLIED
             interactivity ( on | off | inherit) #IMPLIED
             %styleProperties;
             %bindByIdAttEXT;
>

<!ELEMENT bindByName ( linkuri %bindByNameEXT; )*
>
<!ATTLIST bindByName
             apstargetname CDATA        #REQUIRED
             screentip     CDATA        #IMPLIED
             layerdesc     CDATA        #IMPLIED
             region        CDATA        #IMPLIED
             viewcontext   CDATA        #IMPLIED
             visibility    ( on | off | inherit) #IMPLIED
             interactivity ( on | off | inherit) #IMPLIED
             %styleProperties;
             %bindByNameAttEXT;
>

<!-- Define content models for application specific elements          -->
<!--                                                                  -->]
>

Retour au début du chapitre