Inclure plusieurs fichiers xml dans un seul

Inclure plusieurs fichiers xml dans un seul - XML/XSL - Programmation

Marsh Posté le 27-08-2010 à 02:48:31    

Bonjour à Tous,
 
   J'ai plusieurs fichiers xml que je veux inclure dans un seul, mais franchement je ne l'ai jamais essayé. Est ce que c'est faisable par xinclude et si c'est le cas comment on réussi à le faire, sinon, si vous avez d'autres solutions je serai très reconnaissante si vous les partagez avec moi.
 
Merci d'avance.

Reply

Marsh Posté le 27-08-2010 à 02:48:31   

Reply

Marsh Posté le 27-08-2010 à 07:12:49    

Reply

Marsh Posté le 27-08-2010 à 16:16:34    

Re,  
   Oui pour chaque fichier xml j'ai un xsd associé.  
Je veux inclure trois fichiers xml dans un seul et pour chacun des trois j'ai un xsd.

Reply

Marsh Posté le 27-08-2010 à 21:24:49    

Hannah001 a écrit :

Bonjour à Tous,
 
   J'ai plusieurs fichiers xml que je veux inclure dans un seul, mais franchement je ne l'ai jamais essayé. Est ce que c'est faisable par xinclude et si c'est le cas comment on réussi à le faire, sinon, si vous avez d'autres solutions je serai très reconnaissante si vous les partagez avec moi.
 
Merci d'avance.

XInclude, c'est fait pour ça, mais le niveau de support par divers outils (par exemple les browsers) est faible.
La solution classique est DTD et fichiers externes déclarés et inclus comme des entités externes.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 28-08-2010 à 01:27:41    

OK je vois, donc je remplace mes XSD par des DTD. Cependant, j'arrive pas à cerner ce que vous voulez dire par des fichiers externes!?

Reply

Marsh Posté le 28-08-2010 à 11:39:12    

Je suppose ici que tu crées ton document final a partir de deux autres, contenus dans file1.xml et file2.xml et que ta dtd est dans un fichier document.dtd

Code :
  1. <?xml version="1.0" standalone="no" ?>
  2. <!DOCTYPE document SYSTEM "document.dtd" [
  3. <!ENTITY file1 SYSTEM "file1.xml">
  4. <!ENTITY file2 SYSTEM "file2.xml">
  5. ]>
  6. &file1;
  7. &file2;
 

Ici, la directive SYSTEM suppose que ton processeur xml sera résoudre les localisations, sinon, on peut faire plus explicite, par exemple si tout est accessible par un serveur web (cas courant):

Code :
  1. <?xml version="1.0" standalone="no" ?>
  2. <!DOCTYPE document SYSTEM "http://www.mondomaine.org/mesdtds/document.dtd" [
  3. <!ENTITY file1 SYSTEM "http://www.mondomaine.org/mesfichiers/file1.xml">
  4. <!ENTITY file2 SYSTEM "http://www.mondomaine.org/mesfichiers/file2.xml">
  5. ]>
  6. &file1;
  7. &file2;
 

Bien sur, tu peux avoir aussi une partie du document présent, et n'inclure les fichiers que comme des bouts dans ton document plus complet:

 
Code :
  1. <?xml version="1.0" standalone="no" ?>
  2. <!DOCTYPE document SYSTEM "http://www.mondomaine.org/mesdtds/document.dtd" [
  3. <!ENTITY file1 SYSTEM "http://www.mondomaine.org/mesfichiers/file1.xml">
  4. <!ENTITY file2 SYSTEM "http://www.mondomaine.org/mesfichiers/file2.xml">
  5. ]>
  6. <document>
  7. ....
  8. &file1;
  9. ....
  10. &file2;
  11. ....</document>


Une telle approche est souvent préférable si on ne veut pas avoir la balise ouvrante du document dans un fichier et la balise fermante dans un autre  (ca permet d'avoir des fichier externes comme des fichiers xml bien formés, indépendamment du fichier qui les contient.

 

Un autre style encore pour la même chose:

Code :
  1. <?xml version="1.0" standalone="no" ?>
  2. <!DOCTYPE document [
  3. <!ENTITY % mydtd SYSTEM "http://www.mondomaine.org/mesdtds/document.dtd">
  4. <!ENTITY file1 SYSTEM "http://www.mondomaine.org/mesfichiers/file1.xml">
  5. <!ENTITY file2 SYSTEM "http://www.mondomaine.org/mesfichiers/file2.xml">
  6. %mydtd;
  7. ]>
  8. <document>
  9. ....
  10. &file1;
  11. ....
  12. &file2;
  13. ....</document>

Ce style la permet de regrouper en un seul bloc tous les fichiers externes qu'on va utiliser.

 

A+,


Message édité par gilou le 28-08-2010 à 11:40:44

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 28-08-2010 à 16:31:24    

D'accord, merci beaucoup pour toutes ces explications.  
A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed