81 votes

Pouvons-nous importer un fichier XML dans un autre fichier XML?

Pouvons-nous importer un fichier XML dans un autre fichier XML? Je veux dire, existe-t-il une balise d'importation XML prenant le chemin XML comme paramètre et importe XML (pour lequel le chemin est fourni)?

Merci d'avance

89voto

Mads Hansen Points 24537

Vous pouvez utiliser un externe (analysé) générale de l'entité.

Vous déclarez l'entité comme ceci:

<!ENTITY otherFile SYSTEM "otherFile.xml">

Alors vous référence comme ceci:

&otherFile;

Un exemple complet:

<?xml version="1.0" standalone="no" ?>
<!DOCTYPE doc [
<!ENTITY otherFile SYSTEM "otherFile.xml">
]>
<doc>
  <foo>
    <bar>&otherFile;</bar>
  </foo>
</doc>

Lorsque l'analyseur XML lit le fichier, il permettra d'élargir l'entité de référence et comprennent référencés fichier XML, comme une partie du contenu.

Si l' "otherFile.xml" contenu: <baz>this is my content</baz>

Ensuite, le document XML est évalué et "vu" par un analyseur XML:

<?xml version="1.0" standalone="no" ?>
<doc>
  <foo>
    <bar><baz>this is my content</baz></bar>
  </foo>
</doc>

Quelques références qui pourront vous être utiles:

23voto

VoteCoffee Points 404

Par http://msdn.microsoft.com/en-us/library/aa302291.aspx

Pourquoi XInclude?

La première question que l'on peut se poser est "Pourquoi utiliser XInclude au lieu de XML entités externes?" La réponse est que le XML entités externes ont un certain nombre de bien-connu des limitations et incommode implications, qui a pour effet de les empêcher d'être d'un usage général l'inclusion de la facilité. Plus précisément:

  • Un XML entité externe ne peut pas être un véritable indépendant document XML-ni autonome déclaration XML ni déclaration Doctype est autorisé. Cela signifie en fait un fichier XML externe de l'entité elle-même ne peut pas inclure d'autres entités externes.
  • Un XML entité externe doit être bien formé XML (pas si mal, à première vue, mais imaginez que vous voulez inclure les exemples de code C# dans votre document XML).
  • Impossible de charger une entité externe est une erreur fatale; toute reprise est strictement interdite.
  • Seulement l'ensemble de l'entité externe peut être inclus, il n'y a aucun moyen de n'inclure qu'une partie d'un document. -Les entités externes doivent être déclarés dans une DTD ou d'un sous-ensemble interne. Cela ouvre la Boîte de Pandore pleine de conséquences, comme le fait que l'élément de document doit être nommé dans la déclaration Doctype et la validation des lecteurs peut exiger que la totalité du contenu du modèle de document défini dans la DTD, entre autres.

Les lacunes de l'aide de XML entités externes comme un mécanisme d'inclusion ont été connus pour un certain temps et, en fait, a donné naissance à la présentation de l'XML de l'Inclusion de la Proposition au W3C en 1999 par Microsoft et IBM. La proposition définit un modèle de traitement et de syntaxe pour XML à usage général l'inclusion de la facilité.

Quatre ans plus tard, la version 1.0 de XML Inclusions, aussi connu comme Xinclude, est Candidat à une Recommandation, ce qui signifie que le W3C est convaincu qu'il a été largement revue et satisfait à la base des problèmes techniques à résoudre, mais n'est pas encore complète de la recommandation.

11voto

Tomasz Nurkiewicz Points 140462

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X