Re: Macros en XML
Pierre Attar <[email protected]> Mon, 28 May 2007 23:15:08 +0200
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Message-ID | <[email protected]> |
On avait inventé cela à l'époque de SGML avec ce que l'on avait appelé les options de minimisation. Il suffisait d'écrire dans la DTD <!element itemizelist O O listitem+> <!element listitem O O para+> <!element para - - ....> le O voulant dire la balise de début (respectivement de fin) n'est pas obligatoire et le - voulant signifier une obligation de balisage. L'idée était de demander au parseur d'inférer, quand il rencontrait un para que cela voulait dire un para dans un listitem dans une liste. Mais du coup, la DTD était toujours nécessaire pour comprendre un document. On avait aussi inventé les notions de SHORTREF, quii permettaient d'affecter à un caractère une séquence de balises. La grande avancée de XML a été de dire que le langage ne devait présupposer de la façon dont on saisissait l'information et ne devait donc pas mélanger les notions de facilitation de la saisie avec celles de grammaire de séries de document et celles d'instances aisées à lire, en dehors de tout modèle. Ceci a grandement facilité l'écriture de parseurs. Je crois personellement que ce fut une grande avancée. Il faut donc te tourner vers des fonctionnalités de ton éditeur favoir pour voir s'il met en oeuvre des fonctionnalités qui permettre de faire ce que tu souhaites. Dans le domaine libre, XMLMind fait très bien cela. Pierre At 19:09 27/05/2007, you wrote: >Depuis des années que je fais des documents XML, je regrette l'absence >d'un mécanisme de macros, permettant de mettre plusieurs éléments d'un >coup. > >Quelques exemples concrets pour expliquer ce qui me manque : > >1) Je parle de noms de domaines dans des documents Docbook et, au lieu >de <systemitem role="domainnname">fr</systemitem>, j'écrirai bien ><domain>fr</domain>. > >2) J'ai souvent en Docbook des énumérations qui n'ont qu'un seul >paragraphe et, plutôt que de taper <listitem><para> à chaque fois, je >préférai juste mettre <item> > >Les feuilles de style ne résolvent pas le problème. Ce n'est pas la >présentation finale que je veux changer, c'est le code XML tapé. > >Les entités ne résolvent pas le problème parce que j'ai en général des >paramètres (cf. l'exemple des noms de domaine ci-dessus). > >Changer le schéma (ce qui est relativement facile avec des schémas >comme Docbook) pour y introduire mes nouveaux éléments m'oblige >ensuite à gérer une version locale de Docbook, et à adapter les >feuilles de style alors que je veux juste définir un élément en terme >d'autres éléments existants. > >Les macros traditionnelles comme celles de M4 ou de cpp ne me plaisent >guère car elles ne connaissent pas XML. Leur usage perturberait les >éditeurs XML et, en utilisant ces macros, on risque de produire des >documents mal formés (problème courant en C où l'usage des macros peut >produire du code syntaxiquement invalide). > >Je préférerai ce que les programmeurs Scheme appellent « macros >hygiéniques » (« macros de transformation source à source » dans >http://fr.wikipedia.org/wiki/Macro) mais elles ne semblent pas exister >en XML ? > > > > >-- >Devenez redacteur <XML>fr et contribuez au developpement du >xml francophone (http://xmlfr.org/infos/redacteurs/) ! > >Liste de diffusion "[email protected]" (http://xmlfr.org). > >Cette liste est a votre disposition pour discuter en francais de >tout sujet technique lie a XML. > >Pour resilier votre abonnement, envoyez un message contenant >la commande "unsubscribe" a [email protected] >(mailto:[email protected]?Subject=unsubscribe) Pierre Attar (pat àt tireme point/dot fr) Consultant en informatique documentaire XML Consultant in Structured Document engineering Tirème SARL (http://www.tireme.fr)