Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Xpath et DTD avec dom4j

4 réponses
Avatar
Wamli
Salut,

Je débute un peu en XML mode "formel" et je me demandais s'il était coutume
de faire dépendre les expressions XPath de la DTD. Je m'explique.

Imaginons qu'un programme java muni de dom4j qui supporte le XPath doive
aller rechercher régulièrement des infos dans un fichier XML. Faut-il écrire
dans le code java quelque chose genre

>> XMLDocument.getXPath("/catalogue/article/meubles/*")

ou alors plutôt le connecter à la DTD, au cas où celle-ci changerait, c'est
à dire


>> String s1 =DTDDocument.getFirstLevelKeyword(); // s1 = "catalogue"
>> String s2 = DTDDocument.getSecondLevelKeyword(); // s2 = "article"
>> String s3 = ....
>> XMLDocument.getXPath("/"+s1+"/"+s2+"s3"+"/*");

évidemment dans mon exemple les methods getFirst... et getSecond n'existent
pas mais c'est pour se faire une idée.

Ma question est donc : d'expérience, est-ce quelque chose qui se fait ? ou
généralement on balance les expressions XPath comme ça direct ? Ou est-ce
que, on les mets dans un fichiers de propriétés, pour ne pas avoir à
recompiler le cas échéant mais sans les lier à la DTD ?

4 réponses

Avatar
drkm
Wamli writes:

Je débute un peu en XML mode "formel" et je me demandais s'il était coutume
de faire dépendre les expressions XPath de la DTD. Je m'explique.


C'est quoi « XML en mode formel » ?

Imaginons qu'un programme java muni de dom4j qui supporte le XPath doive
aller rechercher régulièrement des infos dans un fichier XML. Faut-il écrire
dans le code java quelque chose genre

XMLDocument.getXPath("/catalogue/article/meubles/*")



ou alors plutôt le connecter à la DTD, au cas où celle-ci changerait, c'est
à dire

String s1 =DTDDocument.getFirstLevelKeyword(); // s1 = "catalogue"
String s2 = DTDDocument.getSecondLevelKeyword(); // s2 = "article"
String s3 = ....
XMLDocument.getXPath("/"+s1+"/"+s2+"s3"+"/*");



évidemment dans mon exemple les methods getFirst... et getSecond n'existent
pas mais c'est pour se faire une idée.


Mais que sont sensées faire ces fonctions ? Personnellement,
je ne vois pas du tout. Et j'ai l'intuition que si tu essaies
d'en formaliser un peu les spécifications, tu tomberas sur des
problèmes. Donc fais-le. Soit ça t'aideras à comprendre, soit
ça nous permettra de comprendre ce que tu veux.

--drkm



Avatar
Wamli
Je repose ma question autrement : faut-il placer les expression Xpath telle
quelles dans un fichier source de java, ou faut-il les construire
dynamiquement ?




"drkm" wrote in message
news:
Wamli writes:

Je débute un peu en XML mode "formel" et je me demandais s'il était
coutume
de faire dépendre les expressions XPath de la DTD. Je m'explique.


C'est quoi « XML en mode formel » ?

Imaginons qu'un programme java muni de dom4j qui supporte le XPath doive
aller rechercher régulièrement des infos dans un fichier XML. Faut-il
écrire
dans le code java quelque chose genre

XMLDocument.getXPath("/catalogue/article/meubles/*")



ou alors plutôt le connecter à la DTD, au cas où celle-ci changerait,
c'est
à dire

String s1 =DTDDocument.getFirstLevelKeyword(); // s1 = "catalogue"
String s2 = DTDDocument.getSecondLevelKeyword(); // s2 = "article"
String s3 = ....
XMLDocument.getXPath("/"+s1+"/"+s2+"s3"+"/*");



évidemment dans mon exemple les methods getFirst... et getSecond
n'existent
pas mais c'est pour se faire une idée.


Mais que sont sensées faire ces fonctions ? Personnellement,
je ne vois pas du tout. Et j'ai l'intuition que si tu essaies
d'en formaliser un peu les spécifications, tu tomberas sur des
problèmes. Donc fais-le. Soit ça t'aideras à comprendre, soit
ça nous permettra de comprendre ce que tu veux.

--drkm





Avatar
Lionel
Wamli wrote:
Je repose ma question autrement : faut-il placer les expression Xpath
telle quelles dans un fichier source de java, ou faut-il les
construire dynamiquement ?


Quelle est la fréquence de modification de la DTD ?

Avatar
Wamli
C'est une application nouvelle, alors c'est difficile à dire. Normalement
cette fréquence ne devrait pas être tellement élevée, mais l'application est
destinée à des gens ne connaissant pas le Java. Elle est d'autre part sensé
pouvoir évoluer mais uniquement à travers la modification des fichiers XMLs.

Je voulais surtout savoir si cela se faisait, ou si généralement on n'allait
pas jusqu'à un tel degré (je ne sais pas trop comment on dit) d'abstraction,
de métaprogramming ?


"Lionel" <SPAMcoollATfreePOINTfr> wrote in message
news:438ed2de$0$19250$
Wamli wrote:
Je repose ma question autrement : faut-il placer les expression Xpath
telle quelles dans un fichier source de java, ou faut-il les
construire dynamiquement ?


Quelle est la fréquence de modification de la DTD ?