Rapport hebdomadaire 4

Documentation sur XML, sur XML Schema, et sur les feuilles de style XSL.


Mots-clés:

XML, XML Schema, XSL.
 

Bibliographie:

XML Schema Part 0: Primer; W3C 30 mars 2001
Programmation Java, Jean-François Macary et Cédric Nicolas, Eyrolles 1996
 

Sites internet:

X3C XML Schema:
http://www.w3.org/TR/xmlschema-0/
Unicode:
http://www.unicode.org/unicode/reports/tr27/
XSL-list:
http://www.mulberrytech.com/
 

Direction provisoire:

XML fût pressenti dès son arrivée comme une technologie qui allait révolutionner l'échange de données. Cependant, les DTD, le langage de schéma
actuel pour spécifier le contenu et la structure de documents XML, souffrent de quelques déficiences.

Tout d'abord, les DTD ne sont pas écrites en XML, ce qui signifie que les technologies existantes pour manipuler des documents XML telles que DOM ou SAX ne
peuvent être utilisées pour « parser » des schémas de documents. Ensuite, les DTD ne supportent pas les espaces de nom ce qui rend impossible l'import de
schémas externes afin de réutiliser du code existant. Enfin, et surtout, les DTD n'offrent qu'un typage très limité des données.
Conscient de ces fâcheuses limitations, le W3C a récemment proposé un nouveau langage de définition de schéma, XML Schema.
Conçu pour palier aux déficiences pré-citées des DTD, XML Schema propose, en plus des fonctionnalités fournies par les DTD, des nouveautés :
 


XML Schema va donc permettre à XML d'atteindre son potentiel maximal.
Il est possible d'appliquer des feuilles de style sur un fichier XML dont la structure est décrite par un XML Schema, comme sur tout fichier XML.

Les objectifs finaux sont un format d'échange en XML, et un moteur de conversion de XML vers SVG. Le format XML doit séparer la syntaxe de la sémantique, entre autres pour permettre l'extraction de données musicales sans téléchargements inutiles. Les formats XML disponibles actuellement n'incluent pas les informations graphiques. Le meilleur format XML est MusicXML de Michael Good, le transformer en schema permettra de bénéficier du typage de données lors du développement du moteur. Il s'agit de coder un ensemble de règles typographiques dans des feuilles de style (XSL), avec des "exceptions". Appliquer des feuilles de style sur un fichier XML dont la structure est décrite par un XML Schema multiplie les fichiers à manipuler. Les exceptions, ou interventions locales du graveur, peuvent techniquement être codées dans les feuilles de style, puisqu'elles fonctionnent de manière contextuelle; par exemple, il est possible de rajouter une règle sur la 181ème mesure. Même si la raison de cette exception n'est pas modèlisée, il est nécessaire de pouvoir intervenir localement, avec une feuille de style de rang inférieur. On peut espèrer une convergence vers des feuilles plus universelles. De cette manière, le format original ne contient aucune information graphique. En effet, les informations graphiques ne font pas partie de la musique elle-même, il devrait donc être possible de développer un système de mise en page automatique et paramétrable, comme un arrière petit-fils d'abc2ps. Le graphique devient optionnel pour les application qui n'en ont pas besoin, le format permet alors l'échange entre les applications. Les règles sont perfectibles en quantité et en qualité, pour typographier le fond de façon toujours plus esthétique. Il ne s'agit plus uniquement d'un format de sauvegarde, mais d'un format qui distingue l'intention du compositeur, les règles de gravure, et éventuellement les ajustements personnels. Cela lui permet d'être exploitable dans plusieurs contextes. La non séparation du fond et de la forme est à l'origine de la multiplicité  des formats. La sémantique est le minimum commun pour les applications, une sorte d'intersection obligatoire entre les différents formats. Les formats commerciaux, ne possèdent pas cette séparation logique par obligation d'être présent sur le marché le plus tôt possible. Essayer de structurer les données de manière intelligente nous rapproche d'un langage commun. SVG est lui-même du XML, c'est un projet tout XML, et son comparse Java, avec lequel il partage ses ambitions multiplateformes. Unicode fourni des symboles intéressants.