IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

Modification structure XSD


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    CUCARACHA
    Invité(e)
    Par défaut Modification structure XSD
    Salut,

    Je travaille sur une architecture dont toutes les applications s'appuient sur un référentiel décrit par un XSD commun.

    Des problèmes surviennent lorsque l'administrateur du référentiel modifie sa structure. En effet, les développeurs des applications consommatrices de l'XSD stockent les chemins d'accès à certains nœuds de l'XSD à l'aide de chaines XPath.

    Compte tenu du fait que les nœuds sont susceptibles de bouger mais conservent les mêmes noms, (d'instinct) je pense au regex pour effectuer des recherches dans l'XSD pour remettre à jour les chemins XPath.

    Connaissant assez mal les performances d'XPath lorsque l'on ne connait pas le chemin d'accès à une node, j'aimerais savoir si d'après vous, l'utilisation des RegEx (que j'aime beaucoup) pourrait être plus efficace que celle des XPATH ?

    Mon idée srait d'utiliser 1 reg Ex qui me localiserait la feuille puis qui remonterait chaque niveau hiérarchique parent dans un groupe différent en utilisant des back referneces.

    A la limite, si vous connaissez une adresse qui présenterait un comparatif de perfs, je suis preneur...

    ++

    Laurent

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    les performances doivent être assez équivalentes je pense, en tout cas la différence ne doit être significative que pour les très grosses sources XML.

    L'argument en faveur des Regex serait peut-être que la recherche peut s'arrêter dès la première occurrence trouvée, tandis que le moteur XPath ne s'arrête que lorsque tous les sous-arbres désignés par l'expression XPath ont été parcourus. Maintenant, il sera beaucoup plus simple de reconstruire un chemin XPath à partir d'un noeud DOM (en parcourant ses parents jusqu'à la racine) qu'en utilisant pour cela les Regex.

    Tes éléments à rechercher sont identifiés de manière unique ?
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Considérant qu'un schéma XSD est un document XML, pourquoi ne pas envisager une transformation XSLT pour générer la correspondance nom_element/chemin_XPath ??

    Pour parser du XML avec des expressions régulières, il faut faire attention à toute la mise en page, aux commentaires, ...
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  4. #4
    CUCARACHA
    Invité(e)
    Par défaut Identifiants uniques
    Salut,

    Merci pour vos réponses. Effectivement, les identifiants "pivots" sont uniques et invariables d'une version d'XSD à l'autre.

    L'XSD qui parait être le plus volumineux pèse 1.53 Mo

    Ce n’est pas énorme toutefois, plutôt que de faire de la localisation dynamique, les équipes qui le reçoivent préfèrent stocker tous les XPath en base dans le meilleur des cas et carrément en dur pour certains.

    Du coup, une mise à jour manuelle est nécessaire pour la base et une recompilation (en environnement industriel) l'est pour les autres

    Tous sont d'accord pour dire qu'une intégration dynamique est impossible, je pense le contraire, en conséquence, j'essaye d'étayer mon discours en partageant cette expérience avec vous.

    Encore merci pour votre participation

    LJ

    P.S. Impossible n’est il pas un mot qui vous rend dingue en informatique ?

  5. #5
    CUCARACHA
    Invité(e)
    Par défaut ah bon ?
    Salut,

    Citation Envoyé par alain.couthures Voir le message
    Pour parser du XML avec des expressions régulières, il faut faire attention à toute la mise en page, aux commentaires, ...
    Je suis très étonné par ce que tu dis... un commentaire ne peut pas être mis à l'intérieur d'un tag or, le nom du tag est forcément compris entre < et >.

    Avec une regex s'assurer qu'une chaine est entre deux autres n'est certainement pas le plus difficile... Je dirais même que c'est un fondamental.

    Concernant la mise en page, je suis encore plus étonné. Je parle de XML et non de XHTML. La mise en page est "virtuelle" puisqu'elle est générée par le navigateur lorsqu'il en a la capacité, sinon il n'y a pas de mise en page sauf combinaison avec XSLT (ou alors il faut que je révise mes bases du XML)...

    ++

    LJ

  6. #6
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Ce que je voulais dire, c'est qu'une fois chargé en mémoire, on n'a plus à se préoccuper des sauts de ligne, tabulations et autres qui peuvent se trouver quasiment partout (entre les élements, entre les attributs, entre le nom d'attribut et le =,...).

    C'est pareil pour les commentaires (qui commencent par < et finissent par >), les processing-instructions (qui commencent par < et finissent par >),...

    Il y a aussi les entités à considérer, l'encodage,...

    La puissance des expressions régulières fait que je les apprécie moi-aussi mais, si c'est possible d'utiliser un parseur pour d'abord charger le document en mémoire, cela me parait bien plus raisonnable, évolutif,...
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  7. #7
    CUCARACHA
    Invité(e)
    Par défaut UTF-32
    Salut,

    Concernant l'encodage, ils utilisent de l'UTF 32, sans doute ont-ils pensé "qui peut le plus peut le moins" mais pour coder de valeurs anglaises, c'est un peu vouloir enfoncer une aiguille avec un marteau pilon.

    Pour ceux qui aiment les Regex, je n'y comprenais pas grand chose jusqu'à ce que j'investisse dans le bouquin Maitriser les expressions régulières d'Oreilly (très bon bouquin mais pas pour débuter) et comme justement ce bouquin ne s'adresse pas vraiment aux débutants, je me suis fendu de RegEx Buddy un petit soft dispo sur le net à 30€, franchement génial. C'est une sorte de mini Visual Studio pour Regex avec débogueur et tout... Très clair. En plus, cerise sur le gâteau, une fois que tu as fini de préparer ton expression tu peux la copier au format du langage avec lequel tu vas l'utiliser. C#, VB, Jscript etc.

    ++

    Laurent

    PS les commentaires c'est pas entre < > c'est entre <!-- et > donc les tags /<~(<!--)\1(Attributs).~(>)/i non ?

  8. #8
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    PS les commentaires c'est pas entre < > c'est entre <!-- et >
    Plus exactement entre < et > et, plus précisément, entre <!-- et --> ...

    au format du langage avec lequel tu vas l'utiliser. C#, VB, Jscript etc.
    C'est vrai qu'il est dommage qu'il existe plusieurs implémentations des expressions régulières et c'est plutôt pénible alors que XML et XSLT sont bien standardisés...

    /<~(<!--)\1(Attributs).~(>)/i
    Quel sens a le ~ dans cette expression (je ne suis pas sûr que cette notation soit comprise partout...) ?
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Juste pour ma curiosité, vous utilisez une architecture impliquant une brique de type Master Data Management ? En effet, ce genre d'architecture, souvent à base de progiciel, permet de gérer les données de référence ...
    Certaines reposent même sur un XSD (www.orchestranetworks.com).

    Cdt,

    Eric

  10. #10
    CUCARACHA
    Invité(e)
    Par défaut Merci
    Salut

    Raaa j'hallucine... EBX Platform c'est exactement la même chose que le truc qu'ils font...

    Merci pour l'info...

    ++

    Laurent

  11. #11
    CUCARACHA
    Invité(e)
    Par défaut le ~
    Le ~veut dire que l'élément suivant ne doit pas être présent

    ++

    Laurent

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 4
    Points
    4
    Par défaut EBX.Platform
    Citation Envoyé par Laurent Jordi Voir le message
    Salut

    Raaa j'hallucine... EBX Platform c'est exactement la même chose que le truc qu'ils font...

    Merci pour l'info...

    ++

    Laurent
    Laurent,

    J'ai vu sur ton blog que tu t'interessais également au SOA ... Jettes un oeil sur le site http://www.sustainableitarchitecture.com/ dont le concepteur n'est autre que Pierre Bonnet, directeur conseil d'Orchestra Networks et éminant spécialiste dans le domaine ... CQFD

    Pour revenir à EBX Platform, sur quel type de référentiel travailles-tu exactement ? Vous vous en sortez pas trop mal en dev spécifique ? Ton retour d'expérience m'interesse beaucoup.

    Eric

  13. #13
    CUCARACHA
    Invité(e)
    Par défaut Salut et merci :)
    Salut,

    Merci pour cette info, elle me sera fort utile.

    @+

    Laurent

Discussions similaires

  1. [1.x] Modification structure base de données
    Par potpot85 dans le forum Symfony
    Réponses: 2
    Dernier message: 07/04/2010, 14h09
  2. probleme modification structure table
    Par livinho38 dans le forum Développement
    Réponses: 15
    Dernier message: 20/07/2009, 09h07
  3. [WD12] Modification structure fichier HF
    Par Gaetch dans le forum WinDev
    Réponses: 2
    Dernier message: 20/04/2009, 11h18
  4. Modification structure de la base
    Par HASSIOMAR dans le forum Bases de données
    Réponses: 5
    Dernier message: 23/09/2008, 10h29
  5. modification structure table liée access 2003
    Par olivierbro dans le forum Windows
    Réponses: 0
    Dernier message: 23/04/2008, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo