MCD et XML

6 Héritage et entités

XML est un (méta-)langage hiérarchique, mais il ne possède pas la notion d'héritage. De même, dans la DTD, ce concept n'est pas présent. Aussi, pour gérer cette notion, nous allons utiliser l'entité paramètre [1]. Sorte de "constante" dans le cadre de la DTD, elle va permettre de simuler l'héritage.

EAP Générique - gestion de l'héritage

Un première solution peut être celle présentée ci-dessous. Dans ce cas, nous avons comme hypothèse que "Ref" n'est pas une entité réelle/concrète, il ne sera jamais utilisé directement. Dans notre pseudo-langage de description, le symbole "%" désigne une entité paramètre XML.

EAP Générique - gestion de l'héritage

D'autres solutions sont aussi possibles. Par exemple, il est aussi possible de créer des éléments pour chaque entité. Dans l'exemple précédent, les éléments "Ref", "A" et "C" sont définis (avec leurs identifiants propres) et "Ref" contient "(A|C)?, Ref-S2+", "A" contient "A-S1*" et "C" est vide. "Ref" peut aussi être "(A|C), ..." s'il est abstrait. Tout va dépendre des contraintes appliquées à l'héritage (exclusion, totalité…).

EAP Générique - gestion de l'héritage

Une autre idée est de créer les éléments "Ref", "RefA" et "RefC" (où seulement les deux derniers si "Ref" est abstrait).

Retour



Notes

1. Attention aux deux sens de "entité" dans ce cours. En effet, "entité" est utilisé dans les MCD pour représenter les concepts manipulés dans le cade du système d'informations. Mais c'est aussi un terme utilisé en XML pour représenter la notion de constante dans un document XML ("entité générale") ou dans une DTD ("entité paramètre").