Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Manifestations XML francophones et internationales.L'actualité des affaires et stratégies XML.L'actualité des technologies XML.Les nouveautés et l'actualités de notre site.Pointeurs sur l'actualité XML sur d'autres sites, en français comme en anglais.


Qui utilise les facettes fondamentales de W3C XML Schema?

Répondez à cet article.

Michael Sperberg-McQueen pose sur XML-DEV une question qui semble aussi surprenante surréaliste : quelqu'un utilise t-il les facettes fondamentales de W3C XML Schema?

Eric van der Vlist, Dyomedea (vdv@dyomedea.com).
vendredi 10 octobre 2003

Le problème de base est simple et bien connu : le type « xs:duration » de W3C XML Schema qui suit le format « PnYnMnDTnHnMnS » permet de mélanger des durées exprimées en années, mois, jours, heures, minutes et secondes.

Le nombre de jours dans un mois (entre 28 et 31) ou dans une année (365 ou 366) étant variable, la relation d'ordre entre durées mélangeant ces unités n'est que partielle. Ainsi, les deux durées « P1M » (1 mois) et « P30D » (30 jours) ne peuvent pas être comparées puisque un mois est composé de 28 à 31 jours.

La solution lorsque les applications ont besoin d'utiliser des durées disposant d'une relation d'ordre totale est tout aussi connue : on définit des durées composées soit uniquement de mois et d'années soit uniquement de jours, heures, minutes et secondes.

Ces durées peuvent être définies par dérivation en utilisant la facette « pattern » (voir par exemple la section correspondante dans mon livre « RELAX NG »).

Deux valeurs appartenant à un de ces types, par exemple « P24M » (24 mois) et « P1Y12M » (1 année et 12 mois) peuvent être comparées sans problème puisque les unités utilisées ont des correspondances fixes dans chacun de ces deux sous-types.

Ce besoin de types dérivés du type « xs:duration » disposant de relations d'ordre totales a été formulée par le groupe de travail XQuery et le groupe de travail W3C XML Schema songe à les définir comme des types prédéfinis dans sa version 1.1.

Tout irait bien s'il n'était spécifié dans la recommandation W3C XML Schema que les types dérivés (prédéfinis ou non) héritent de toutes les propriétés de leur type de base.

Appliqué à notre problème, cela signifie que dans la mesure où le type de base « xs:duration » dispose d'une relation d'ordre qui n'est que partielle, les types dérivés doivent avoir la même propriété et ne peuvent pas être considérés comme ayant une relation d'ordre totale.

D'où la question de Michael Sperberg-McQueen qui demande si les applications respectent cette règle en souhaitant que ce ne soit pas le cas pour pouvoir tout simplement "ignorer le problème" .

Que le coresponsable d'un groupe de travail puisse publiquement souhaiter que personne n'ait eu l'idée de suivre à la lettre une de ses recommandations montre bien la limite du système de typage de W3C XML Schema.

Ce que l'on peut reprocher ici au groupe de travail W3C XML Schema, ce n'est bien entendu pas la complexité des unités de date héritée du calendrier Grégorien, mais plutôt d'avoir cherché à imposer des types de données universels devant convenir à tout le monde au lieu d'avoir proposé un mécanisme permettant à chacun de créer les types de données qui lui conviennent.

Pour en revenir au type « xs:duration », ce type ne convient ni au contrôleur de gestion qui souhaiterait des facteurs de conversions fixes entre jours, mois et années (un mois = 30 jours, 1 année = 360 jours) ni à l'astronome qui souhaiterait des taux de conversions variable entre années et secondes pour tenir compte d'ajustements plus fins entre ces durées.

Nous ne pouvons pas reprocher à W3C XML Schema de ne pas avoir défini tous ces types, mais il est difficile d'accepter que les applications en ayant besoin soient bloquées et ne puissent pas les définir de manière complète, avec leurs propriétés (ou facettes fondamentales pour reprendre l'expression de Michael Sperberg-McQueen).

Plutôt que d'ignorer le problème, peut-être serait-il souhaitable d'essayer de le résoudre enfin?

Il faut dire que le problème est de taille et que la partie correspondante au niveau du projet ISO/DSDL semble être, elle aussi, en panne!

Autres articles :

Copyright 2003, Eric van der Vlist.


 

Mots clés.



L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.


Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot  

Conception, réalisation et hébergement
Questions ou commentaires
  redacteurs@xmlfr.org