Jump to content
  • entries
    69
  • comments
    19
  • views
    7647

Une histoire X - 2e partie


David Julot

674 views

 Share

Lors de la première partie, vous avez eu droit à un cours théorique sur l’XML, pour cette deuxième partie et pour illustrer un peu le propos de la 1ère, je vais essayer de documenter un fichier qui est fourni en standard par FileMaker depuis plusieurs années : le format d’étiquettes…

 

La personnalisation des formats d’étiquettes

FileMaker Pro permet la création de modèles de type étiquettes pour l’impression de planche d’étiquettes. Pour rappel, la création d’un nouveau modèle d’étiquette passe, en mode Modèle, par le menu Modèles > Nouveau Modèle/Rapport puis l’option Étiquettes.Par défaut et pour la version française, le logiciel propose les références de la marque Avery®.

Dans le cas où l’utilisateur ne trouve pas la référence voulue il a la possibilité alors de définir son propre format en saisissant les cotes de son étiquette.

FileMaker utilise un fichier au format XML pour décrire les formats d’étiquettes qui seront utilisés lors de la création d’un nouveau modèle. L’avantage de ce type de personnalisation est la possibilité ainsi offerte à l’utilisateur final de définir ses propres formats d’étiquettes et de les distribuer sur tous les postes équipés de FileMaker. Ceci permet d’éviter d’avoir à se rappeler à chaque création de modèle d’étiquettes, toutes les caractéristiques dimensionnelles de ce dernier.

 

Fichier standard

En standard, lors de l’installation de FileMaker Pro en version française c’est le fichier LABELSFrench.flb qui est installé.

Emplacement du fichier LABELSFrench.flb :

Sous Mac OS Classic :

  • FileMaker Pro 6:Etiquettes:

Sous Mac OS X :

  • FileMaker Pro 6 : FileMaker Pro 6:FileMaker Pro:Contents:MacOS: Etiquettes:
  • FileMaker Pro 7 : FileMaker Pro 7:Extensions:Labels:
  • FileMaker Pro 8 : FileMaker Pro 8:Extensions:Labels:
  • FileMaker Pro 8.5 : FileMaker Pro 8.5:Extensions:Labels:
  • FileMaker Pro 9 : FileMaker Pro 9:Extensions:Labels:

Sous Windows :

  • FileMaker Pro 6 : FileMaker Pro 6/Etiquettes/
  • FileMaker Pro 7 : FileMaker Pro 7/Extensions/Labels/
  • FileMaker Pro 8 : FileMaker Pro 8/Extensions/Labels/
  • FileMaker Pro 8.5 : FileMaker Pro 8.5/Extensions/Labels/
  • FileMaker Pro 9 : FileMaker Pro 9/Extensions/Labels/

 

Présentation du contenu du fichier de description des étiquettes

Le fichier XML se décompose d’une racine FMLABELS et d’autant d’éléments FMLABEL que de description de format d’étiquettes :

<?XML VERSION="1.0" standalone="yes" ?>
<FMLABELS>
  <FMLABEL>
    <LABELNAME VALUE="Avery J8159" />
    <UNITS VALUE="cm" />
    <COLUMNCOUNT VALUE="3" />
    <HORIZPITCH VALUE="6.67" />
    <VERTPITCH VALUE="3.39" />
    <LABELHEIGHT VALUE="3.39" />
    <TOPMARGIN VALUE="1.37" />
    <LEFTMARGIN VALUE=".63" />
    <RIGHTMARGIN VALUE=".63" />
    <DISCARDPART VALUE="no" />
  </FMLABEL><FMLABEL>
    <LABELNAME VALUE="Avery L7163" />
    <UNITS VALUE="cm" />
    <COLUMNCOUNT VALUE="2" />
    <HORIZPITCH VALUE="10.16" />
    <VERTPITCH VALUE="3.81" />
    <LABELHEIGHT VALUE="3.81" />
    <TOPMARGIN VALUE="1.59" />
    <LEFTMARGIN VALUE=".47" />
    <RIGHTMARGIN VALUE=".47" />
    <DISCARDPART VALUE="no" />
  </FMLABEL></FMLABELS>

 

Description des balises

Présentation du descriptif de chaque balise et de son attribut qui compose le fichier de description des étiquettes de FileMaker Pro.

La balise FMLABEL

Cet élément est composé de dix éléments décrivant le format d’une étiquette. Notez que les valeurs de chaque élément sont des attributs et non des valeurs en tant que telle. Le format utilisé pour les valeurs numériques est le format US, c’est-à-dire que le séparateur décimal est un point et non une virgule.

<FMLABEL></FMLABEL>

la balise LABELNAME

Cet élément contient un attribut VALUE contenant le nom du format d’étiquette. C’est ce nom qui apparaît dans le menu local lors de la création d’un nouveau modèle. Si la valeur de l’attribut VALUE est un tiret ( – ), alors une ligne de séparation apparaîtra dans le menu local. Dans ce cas, il n’est pas nécessaire de placer les neufs autres éléments.

<FMLABEL>
  <LABELNAME VALUE="Exemple de nom" />
  <UNITS VALUE="cm" /></FMLABEL>

ou

<FMLABEL>
  <LABELNAME VALUE="-" />
</FMLABEL>

la balise UNITS

Cet élément contient un attribut VALUE contenant l’unité de mesure utilisée par les autres éléments. Cet attribut peut avoir, au choix, la valeur cm ou inch. Attention, une fois l’unité choisie FileMaker Pro considèrera toutes les valeurs de dimensions dans cette unité contenue dans l’élément FMLABEL parent.

<FMLABEL>
  <LABELNAME VALUE="Exemple de nom" />
  <UNITS VALUE="cm" /></FMLABEL>

ou

<FMLABEL>
  <LABELNAME VALUE="Exemple de nom" />
  <UNITS VALUE="inch" /></FMLABEL>

La balise COLUMNCOUNT

Cet élément contient un attribut VALUE contenant le nombre d’étiquettes par rangée. Cette valeur doit être un entier positif.

<FMLABEL>
  <LABELNAME VALUE="exemple de nom" />
  <UNITS VALUE="cm" />
  <COLUMNCOUNT VALUE="2" /></FMLABEL>

La balise HORIZPITCH

Cet élément contient un attribut VALUE contenant la largeur d’une étiquette. La valeur est exprimée suivant l’unité spécifiée dans l’élément UNITS.

<FMLABEL>
  <LABELNAME VALUE="exemple de nom" />
  <UNITS VALUE="cm" />
  <COLUMNCOUNT VALUE="2" />
  <HORIZPITCH VALUE="3.24" /></FMLABEL>

La balise VERTPITCH

Cet élément contient un attribut VALUE contenant la hauteur d’une étiquette y compris la marge de séparation entre deux étiquettes. La valeur est exprimée suivant l’unité spécifiée dans l’élément UNITS.

<FMLABEL>
  <LABELNAME VALUE="exemple de nom" />
  <UNITS VALUE="cm" />
  <COLUMNCOUNT VALUE="2" />
  <HORIZPITCH VALUE="3.24" />
  <VERTPITCH VALUE="3.5" /></FMLABEL>

La balise LABELHEIGHT

Cet élément contient un attribut VALUE contenant la hauteur d’une étiquette. La valeur est exprimée suivant l’unité spécifiée dans l’élément UNITS.

<FMLABEL>
  <LABELNAME VALUE="exemple de nom" />
  <UNITS VALUE="cm" />
  <COLUMNCOUNT VALUE="2" />
  <HORIZPITCH VALUE="3.24" />
  <VERTPITCH VALUE="3.5" />
  <LABELHEIGHT VALUE="3.25" /></FMLABEL>

La balise TOPMARGIN

Cet élément contient un attribut VALUE contenant la hauteur de la marge haute de la planche d’étiquettes. La valeur est exprimée suivant l’unité spécifiée dans l’élément UNITS.

<FMLABEL>
  <LABELNAME VALUE="exemple de nom" />
  <UNITS VALUE="cm" />
  <COLUMNCOUNT VALUE="2" />
  <HORIZPITCH VALUE="3.24" />
  <VERTPITCH VALUE="3.5" />
  <LABELHEIGHT VALUE="3.25" />
  <TOPMARGIN VALUE="1.25" /></FMLABEL>

La balise LEFTMARGIN

Cet élément contient un attribut VALUE contenant la largeur de la marge gauche de la planche d’étiquettes. La valeur est exprimée suivant l’unité spécifiée dans l’élément UNITS.

<FMLABEL>
  <LABELNAME VALUE="exemple de nom" />
  <UNITS VALUE="cm" />
  <COLUMNCOUNT VALUE="2" />
  <HORIZPITCH VALUE="3.24" />
  <VERTPITCH VALUE="3.5" />
  <LABELHEIGHT VALUE="3.25" />
  <TOPMARGIN VALUE="1.25" />
  <LEFTMARGIN VALUE=".75" /></FMLABEL>

La balise RIGHTMARGIN

Cet élément contient un attribut VALUE contenant la largeur de la marge droite de la planche d’étiquettes. La valeur est exprimée suivant l’unité spécifiée dans l’élément UNITS.

<FMLABEL>
  <LABELNAME VALUE="exemple de nom" />
  <UNITS VALUE="cm" />
  <COLUMNCOUNT VALUE="2" />
  <HORIZPITCH VALUE="3.24" />
  <VERTPITCH VALUE="3.5" />
  <LABELHEIGHT VALUE="3.25" />
  <TOPMARGIN VALUE="1.25" />
  <LEFTMARGIN VALUE=".75" />
  <RIGHTMARGIN VALUE=".75" />
  …
</FMLABEL>

Référence des cotes utilisées par les balises

  • HORIZPITCH : Largeur d’une étiquette
  • VERTPICH : Hauteur d’une étiquette avec la marge intercalaire
  • LABELHEIGHT : Hauteur d’une étiquette
  • TOPMARGIN : Marge haute de la planche
  • LEFTMARGIN : Marge gauche de la planche
  • RIGHTMARGIN : Marge droite de la planche


La balise DISCARDPART

Cet élément contient un attribut VALUE contenant soit la valeur yes soit la valeur no.

<FMLABEL>
  <LABELNAME VALUE="exemple de nom" />
  <UNITS VALUE="cm" />
  <COLUMNCOUNT VALUE="2" />
  <HORIZPITCH VALUE="3.24" />
  <VERTPITCH VALUE="3.5" />
  <LABELHEIGHT VALUE="3.25" />
  <TOPMARGIN VALUE="1.25" />
  <LEFTMARGIN VALUE=".75" />
  <RIGHTMARGIN VALUE=".75" />
  <DISCARDPART VALUE="no" />
</FMLABEL>

Si la valeur de l’attribut VALUE est à yes, alors l’assistant de création de nouveau modèle cochera l’option Autoriser le chevauchement sur deux pages ainsi que la sous-option Ne pas placer le reste sur la page suivante du paramétrage de l’élément corps du modèle ainsi créé.

Dans le cas contraire, si la valeur de l’attribut VALUE est à no, alors l’assistant de création de nouveau modèle décochera l’option Autoriser le chevauchement sur deux pages du paramétrage de l’élément corps du modèle ainsi créé.

 

DTD proposé

La DTD, Document Type Definition, donne la définition de tous les éléments utilisés, ou pouvant être utilisés, dans un fichier XML. De plus elle explicite la grammaire du fichier XML. Un fichier DTD n’est pas obligatoire, mais un fichier XML s’y référant, et surtout s’y conformant, sera déclaré valide.

L’intérêt d’avoir un fichier DTD permet par exemple à une personne A de générer un fichier XML et de le valider par le fichier DTD fournit par la personne B. La personne B recevant le fichier XML de la personne A sera sûr que la structure du fichier XML est valide par rapport à sa grammaire.

Il est à noter que la DTD ne permet pas la vérification des données du fichier XML mais uniquement la structure.

Pour votre sagacité, je vous propose la définition suivante, vous comprendrez mieux, je pense :

<?xml version= »1.0 encoding= »UTF-8″?>
<!ELEMENT LABELNAME EMPTY>
<!ELEMENT UNITS EMPTY>
<!ELEMENT COLUMNCOUNT EMPTY>
<!ELEMENT HORIZPITCH EMPTY>
<!ELEMENT VERTPITCH EMPTY>
<!ELEMENT LABELHEIGHT EMPTY>
<!ELEMENT TOPMARGIN EMPTY>
<!ELEMENT LEFTMARGIN EMPTY>
<!ELEMENT RIGHTMARGIN EMPTY>
<!ELEMENT DISCARDPART EMPTY>

<!ATTLIST LABELNAME VALUE CDATA #REQUIRED>
<!ATTLIST UNITS VALUE ( cm | inch ) #REQUIRED>
<!ATTLIST COLUMNCOUNT VALUE CDATA #REQUIRED>
<!ATTLIST HORIZPITCH VALUE CDATA #REQUIRED>
<!ATTLIST VERTPITCH VALUE CDATA #REQUIRED>
<!ATTLIST LABELHEIGHT VALUE CDATA #REQUIRED>
<!ATTLIST TOPMARGIN VALUE CDATA #REQUIRED>
<!ATTLIST LEFTMARGIN VALUE CDATA #REQUIRED>
<!ATTLIST RIGHTMARGIN VALUE CDATA #REQUIRED>
<!ATTLIST DISCARDPART VALUE ( yes | no ) #REQUIRED>

<!ELEMENT FMLABEL ( LABELNAME | ( LABELNAME, UNITS, COLUMNCOUNT, HORIZPITCH, VERTPITCH, LABELHEIGHT, TOPMARGIN, LEFTMARGIN, RIGHTMARGIN, DISCARDPART ) )>

<!ELEMENT FMLABELS ( FMLABEL+ )>

 

C’est tout pour aujourd’hui

J’espère que vous avez été intéressé par cette introduction à l’XML (1ère partie) et à cette chronique sur le format d’étiquette. La prochaine fois, nous nous attaquerons au principe de la transformation XML…

En attendant, je vous souhaite, à toutes et à tous, une excellente semaine.

 Share

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...