![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
sylvie
J´ai réussi à faire une simple transformation, mais j´ai des problèmes tout d´avord pour demander avec du xslt de générer les PK à chaque nouvel ajout dans un tableau.
Si generate-id() sur le premier nœud qui correspond n'est pas acceptable parce qu'il faut absolument un nombre, il n'y a pas de moyen simple.
Pour un projet ou un client ça reste faisable :
count(//Projet[not(preceding::Projet[nom = $projectName])])
Autre possibilité : sélectionner directement tous les //Projet sans condition et se reposer sur la position() de chaque Projet ainsi traité. Au niveau performances ça passe.
Pour un employé c'est plus chaud, je pense qu'il faut un template.
Je m'attends à ce que les performances sur un gros fichier soient catastrophiques.
![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
sylvie
XML --> (quel genre de Transformation?) --> Banque de données ?
Ben, un XML c'est aussi une banque de données
.
Pas mon usage préféré pour une grosse banque, je l'admets, mais parfois ça se justifie.
Il y a peut-être des utilitaires à la Talend pour faire ça sans trop se casser la tête, mais au bout du compte c'est de l'informatique pas de la magie : tu essaies de passer d'une structure hiérarchique à une structure relationnelle. Pour ça il faut factoriser les invariants, leur donner un id et calculer les mises en relations. Ce n'est pas une mince affaire, en calcul, comme en syntaxe.
(Ceci dit, en utilisant une approche impérative plutôt que déclarative, genre en utilisant xquery plutôt que XSLT, tu devrais au moins éviter de calculer des milliers de fois la même chose.)
Partager