Dies ist das, was die xinclude W3C-Standard ist für. Ähnlich wie beim Ansatz der externen Entitäten (wie in der obigen Antwort) können Sie den einzuschließenden Inhalt in einer separaten Datei kodieren, wie z. B. (frag.xml):
<a><!-- huge content --></a>
In der Haupt-XML-Datei verweist eine xinclude-Anweisung auf diesen externen Inhalt:
<document>
<xi:include href="frag.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<b/>
</document>
Bei der Verarbeitung mit einem (xinclude-fähigen) XML-Prozessor (wie z. B. Xerces http://xerces.apache.org/
), wird der Parser diese xinclude-Anweisung um den Inhalt erweitern, auf den sie verweist. Das Einschlussziel im @href-Attribut wird als URI interpretiert, so dass Sie auch auf Fragmente verweisen können, indem Sie Fragmentbezeichner verwenden (z. B. href="frag.xml#fragment1
).
Neben einfachen URIs in @href unterstützt der xinclude-Standard ein sehr feinkörniges Vokabular, um das Einschlussziel in einem @xpointer-Attribut auszudrücken. Die Unterstützung für komplexe XPointer-Ausdrücke hängt jedoch von der XPointer-Konformität des Prozessors ab, die im Allgemeinen nicht ausreichend genutzt wird. Es gibt jedoch auch eine (minimale) XSLT-Implementierung: XIPr ( http://dret.net/projects/xipr/
).