Difference between revisions of "FR/FAQ/Generale/045"

From Apache OpenOffice Wiki
< FR‎ | FAQ‎ | Generale
Jump to: navigation, search
(Pourquoi choisir le XML ?)
(Qu'est-ce que le XML ?)
Line 26: Line 26:
 
   <office:meta> sera terminé par </office:meta>
 
   <office:meta> sera terminé par </office:meta>
 
Pour ajouter des informations au document, on lui donne des attributs, toujours accompagnés d'une valeur : meta:page-count="17". L'attribut meta:page-count a la valeur "17" (le document a 17 pages). On peut également placer des commentaires comme ceci :  
 
Pour ajouter des informations au document, on lui donne des attributs, toujours accompagnés d'une valeur : meta:page-count="17". L'attribut meta:page-count a la valeur "17" (le document a 17 pages). On peut également placer des commentaires comme ceci :  
   <!--645m35(Build:8762)-->.
+
   ""<!--645m35(Build:8762)-->""
  
 
=== Pourquoi choisir le XML ? ===
 
=== Pourquoi choisir le XML ? ===

Revision as of 08:40, 8 May 2007

OpenOffice.org et le XML

Vous avez sans-doute souvent entendu parler du XML, entendu dire que le format de fichier d'OpenOffice.org était du XML, mais qu'en est-il exactement et surtout qu'est-ce que cela signifie, qu'est-ce en fin de compte que le XML ?

Qu'est-ce que le XML ?

Cet acronyme est l'abréviation de eXtensible Markup Language. En le traduisant en français, cela voudrait dire "langage à balises extensibles". Cela ne vous en dit pas beaucoup plus :) Le XML fait partie de la classe des métalangages, c'est en fait un sous-ensemble du SGML. Bon, alors qu'est-ce que le SGML (Standard Generalized Markup Language) ? C'est un langage qui permet de créer des documents de façon structurée et modulaire. Concrètement cela veut dire que vous pouvez créer un document à partir de données aussi hétéroclites que du son, des données provenant d'une base, ou du texte et des images. Le SGML a donc été défini pour une large gamme d'applications et doit être maintenu sur un très long terme. Ce langage étant assez complet et complexe, le XML a été créé pour simplifier le SGML.

Ce qui peut prêter à confusion au premier abord, c'est que le HTML ressemble beaucoup au XML. C'est un langage avec des balises, qui s'ouvrent et qui se ferment. Grande différence pourtant, le HTML a été défini avec des balises qui décrivent la présentation, alors que les balises du XML, elles, traitent du contenu. Mais oui, le HTML est aussi un sous ensemble du SGML, mais uniquement pour traiter des données sur le Web.

Si l'on se résume, le XML est donc un moyen (et ni un langage de programmation, ni un nouveau HTML) clair de structurer, décrire et échanger des données. On sépare le contenu de la forme pour permettre cet échange. Le contenu pourra alors être réutilisé sous d'autres formes ou d'autres supports. Les données peuvent être de toutes sortes : formules chimiques, données financières, données musicales, texte... L'actualité du xml en France xmlfr.org

Un exemple du contenu xml d'un document OOo :

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE office:document-meta PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "office.dtd">
 <office:meta>
       <meta:generator>OpenOffice.org 1.1.1 (Win32)</meta:generator>
       <meta:initial-creator>Sophie Gautier</meta:initial-creator>
       <meta:creation-date>2004-05-10T19:07:36</meta:creation-date>
       <meta:document-statistic meta:table-count="0" meta:image-count="31" meta:object-count="0" meta:page-count="17" meta:paragraph-count="213"
         meta:word-count="2647" meta:character-count="16353"/>
 </office:meta>

Vous le voyez les balises <> distinguent le contenu du document. Une balise ouverte doit toujours être fermée :

 <office:meta> sera terminé par </office:meta>

Pour ajouter des informations au document, on lui donne des attributs, toujours accompagnés d'une valeur : meta:page-count="17". L'attribut meta:page-count a la valeur "17" (le document a 17 pages). On peut également placer des commentaires comme ceci :

 """"

Pourquoi choisir le XML ?

Si l'on regarde le fragment de code XML ci-dessus, il y a quelques choses qui surprennent :

  • le XML est lisible par vous même, mais également par la machine. C'est un de ses grands avantages.
  • Il est unicode (unicode : on définit un nombre unique pour chaque charactère, quels que soient la plateforme, le langage, le programme). Cela veut dire qu'il peut être stocké dans différents encodages. Quelle différence ? Vous savez sans doute que les documents étaient (sont encore) encodées en ASCII, mais celui-ci ne se rapporte qu'à un seul alphabet et un seul système d'écriture. Le fragment de code indique un encodage UTF-8 qui est supporté par bon nombre d'alphabets.
  • le XML est orienté objet : au lieu de décomposer les données dans des tables normalisées liées par relations, il décrit des objets (concrets ou abstraits) en modelisant leurs propriétés telles qu'elles sont, ce qui rend les documents XML plus intuitifs à comprendre.
  • Enfin, le XML distingue le contenu de la forme, la mise en page des données étant assurée par des langages tiers comme CSS, XSL...
  • le XML génère un faible coût au niveau des composants logiciels, d'où sa bonne intégration dans l'industrie informatique.

Le XML de OOo

Et comment, à quoi voit-on que OOo est du XML ? OOo a un format de fichier .xml natif compressé. Cela signifie que les fichiers qui composent votre document OOo sont encapsulés dans une archive. Un exemple : prenez votre dézipeur favorit et ouvrez n'importe quel fichier .sxw (Writer) avec, voici ce que vous obtenez :

Une collection de fichiers différents dont certains portent l'extension .xml.

Quels modules d'OOo utilisent le xml ?

Tous les modules d'OOo utilisent le xml comme format de fichier natif. Le module Math utilise une structure de package un peu différente, mais du xml à l'intérieur du package : MathML qui est un standard xml pour les formules. Egalement, certains fichiers de configuration utilisent le XML. Vous retrouverez toujours ces fichiers :

  • le fichier meta.xml contient des informations au sujet du document (l'auteur, la date de la dernière sauvegarde).
  • le fichier styles.xml contient les styles utilisés dans le document
  • le fichier contentt.xml contient le contenu principale du document (texte, tableaux, éléments graphiques...)
  • le fichier settings.xml, en général spécificique à une application, il contient certains paramètres tel que l'imprimante sélectionnée...)
  • les fichiers META-INF/manifest.xml contiennent des informations supplémentaires sur les autres fichiers (comme le tympe MIME ou le cryptage).

Les images sont sauvegardées dans le format natif à l'intérieur du zip. Vous comprenez maintenant pourquoi les fichiers OOo occupent si peu de place sur votre disque !

Pour en savoir plus sur les formats de fichiers OpenOffice.org, consultez le site xml.openoffice.org

Notez qu'un document XML ne peut être affiché tel quel, il lui faut un langage de transformation (XSLT) et un langage de formatage des objets (XSL-FO) pour pouvoir afficher toutes les informations correctement (ex : si votre document est constitué des diverses parties organisées distinctement ou encore s'il contient un tableau avec des formatages...)


DTD, Schéma XML, XSLT, ..., qu'est-ce ?

DTD Document Type Définition

La DTD va spécifier quels éléments et attributs vont être utilisés dans le document XML et va en décrire la structure et le contenu. La DTD peut être interne au document (elle inclut les définitions au sein même du document) ou externe (elle est située dans un fichier local ou appelée par URL). La norme XML ne rend pas obligatoire la DTD, ainsi, on parle de document XML valide s'il comporte une DTD ou de document XML bien formé s'il n'en comporte pas (mais qu'il respecte le strandard XML). Exemple de contenu de DTD OOo:

             List the initial writers in this form (with initial="true"). Initial Writers is a term from the PDL (License).
             If one of these authors assined copyright to somebody else, e.g. the company they are working for, use the attribute copyright="..."
             and name the copyright holder.
     -->
     <!ELEMENT authors ( author+ ) >
     <!ELEMENT author (#PCDATA)>
     <!ATTLIST author
                 id      ID    #REQUIRED
                 initial CDATA #IMPLIED
                 email   CDATA #REQUIRED>
     
Personal tools