Kořen a vložený fragment
Ulož první příklad jako hlavni.xml a druhý jako cast.xml ve stejné složce. Href se řeší vůči základnímu URI, které může ovlivnit xml:base.
<dokument xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="cast.xml"/>
</dokument> Vložený dokument
Po zpracování se na místě xi:include objeví element kapitola. Procesor může přidat xml:base nebo xml:lang pro zachování kontextu. Nejde o prosté slepení souborů.
<kapitola><nadpis>Úvod</nadpis></kapitola> Text a náhradní obsah
Parse=text vloží znaky místo XML stromu. Encoding určuje kódování textového zdroje. Fallback poskytuje náhradu při chybě získání zdroje; není univerzální opravou neplatného XML.
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="poznamka.txt" parse="text" encoding="UTF-8">
<xi:fallback>Text není dostupný.</xi:fallback>
</xi:include> Spuštění a bezpečnost
Lokálně můžeš vyzkoušet xmllint --xinclude hlavni.xml. Náš online parser pouze ověří XML syntaxi. Vypnutí DTD a externích entit nevypíná samostatnou fázi XInclude. Pro nedůvěryhodné vstupy ji vypni nebo omez resolver na schválené zdroje a velikosti.
Výsledek a řízený negativní test
<dokument xmlns:xi="http://www.w3.org/2001/XInclude"><kapitola><nadpis>Úvod</nadpis></kapitola></dokument> Serializovaný výsledek může mít jinou deklaraci nebo doplněné xml:base. Zkontroluj, že počet xi:include klesl na nulu a vznikla jedna kapitola; namespace xi deklarovaný na kořeni může ve výstupu zůstat. Přejmenuj cast.xml a spusť stejný příkaz: bez fallback má zpracování nahlásit nedostupný zdroj.
Pro textový include ulož do poznamka.txt řetězec A & B. Vložený obsah je text a serializátor zapíše ampersand escapovaně. Nevkládá se jako XML element. Při nedostupném textovém zdroji s fallback z příkladu vznikne náhradní text. Pro soubor, který existuje, ale má chybnou XML syntaxi, nepovažuj fallback za obecnou opravu.
XInclude zpracuj v jasné fázi před cílovou validací, pokud schéma očekává již vložené kapitoly. Relativní adresy závisejí na base URI dokumentu; při čtení řetězce bez známého zdrojového souboru jej můžeš muset dodat v API. Pravidla definuje XInclude 1.0.
XInclude není xs:include ani XSLT import
Podobný název neznamená stejný postup. XInclude vkládá obsah do zpracovávaného dokumentu. xs:include připojuje další soubor schématu XSD a xsl:include připojuje pravidla transformace XSLT. Použití jednoho prvku nespouští ostatní mechanismy.
Pokud máš hlavni.xml s xi:include a schéma pro výsledný dokument, nejdřív proveď povolené vložení a potom validaci výsledku. Při validaci původního souboru by schéma vidělo xi:include místo požadované kapitoly. Tyto fáze odděluje i specifikace XInclude.