XInclude

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání

XML Inclusions (neboli XInclude) je obecný mechanismus pro slučování XML dokumentů vyvinutý W3C; pomocí speciálních značek v „hlavním“ dokumentu lze automaticky zahrnout jiné (textové) dokumenty nebo části XML dokumentů[1]. Výsledný dokument bude jediný složený XML Information Set.

Způsob použití[editovat | editovat zdroj]

Před použitím XInclude je třeba deklarovat jmenný prostor XML http://www.w3.org/2001/XInclude, standardně pod názvem xi. K tomu je třeba do hlavního elementu XML dokumentu nebo do rodiče elementu, do něhož má být vložen obsah, doplnit atribut:

xmlns:xi="http://www.w3.org/2001/XInclude"

V místě, kam se má vložit obsah jiného souboru, je třeba vložit element <xi:include/>. Element může obsahovat atributy:

  • href - URI souboru, jehož obsah má být vložený
  • parse - způsob analýzy (parsingu) obsahu vkládaného souboru. Může nabývat hodnot "xml" nebo "text"
  • xpointer - adresa vkládaného elementu souboru XML v formátu XPointer
  • encoding - Kódování vkládaného textového souboru. Tento atribut se ignoruje, pokud atribut parse má hodnotu "xml"
  • accept - obsah hlavičky "Accept" posílané na server při načítání cílového souboru.
  • accept-language - obsah hlavičky "Accept-Language" posílané na server při načítání cílového souboru.

POZOR! Element <xi:include/> musí obsahovat alespoň jeden z atributů href nebo atribut xpointer.

Pokud soubor, na který se odkazuje atribut href, nelze načíst, bude vygenerována chybová stránka. Tomu je možné zabránit tak, že se do elementu <xi:include/> vloží element <xi:fallback/> obsahující text, který má být vložen místo obsahu vkládaného souboru. Pokud je <xi:fallback/> prázdný, nic není vloženo a není vygenerována žádná stránka.

Příklady[editovat | editovat zdroj]

XML[editovat | editovat zdroj]

Obsah „hlavního“ souboru http://example.com/soubor.xml:

<?xml version="1.0" encoding="utf-8"?>
<xml xmlns:xi="http://www.w3.org/2001/XInclude">
   Moje oblíbená barva je
   <xi:include href="http://example.com/barva.txt" parse="text" encoding="utf-8">
      <xi:fallback>zelená</xi:fallback>
   </xi:include>.
</xml>

Obsah souboru http://example.com/barva.txt:

modrá

Výsledek zpracování souboru http://example.com/soubor.xml:

<?xml version="1.0" encoding="utf-8"?>
<xml>
   Moje oblíbená barva je modrá.
</xml>

HTML[editovat | editovat zdroj]

Vložení textového souboru license.txt s obsahem:

This document is published under GNU Free Documentation License

do „hlavního“ XHTML dokumentu:

<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:xi="http://www.w3.org/2001/XInclude">
   <head>...</head>
   <body>
      ...
      <p><xi:include href="license.txt" parse="text"/></p>
   </body>
</html>

dává:

<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:xi="http://www.w3.org/2001/XInclude">
   <head>...</head>
   <body>
      ...
      <p>This document is published under GNU Free Documentation License</p>
   </body>
</html>

Mechanismus je podobný použití značky <object>, které je však dostupná pouze v HTML; XInclude je však určen pro libovolný XML formát, jako SVG nebo XHTML.

Podpora[editovat | editovat zdroj]

XInclude by měl být podporován renderovacím strojem Gecko 1.9[2] (používaný mimo jiné prohlížečem Firefox 3).

Částečná podpora je možná pomocí kódu v Javascriptu[3].

Podporu XInclude obsahuje například Xsltproc nebo XML editor Oxygen.

Obsah[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byly použity překlady textů z článků XML Inclusions na polské Wikipedii a XInclude na anglické Wikipedii.

  1. J. Marsh, D. Orchard, Daniel Veillard. XML Inclusions (XInclude) Version 1.0 (Second Edition), Appendix C: Examples (non-normative) [online]. World Wide Web Consortium [cit. 2007-06-28]. Dostupné online. 
  2. mozilla wiki - Firefox/Feature Brainstorming:Web Standards Support
  3. Brettz9. XInclude [online]. Mozilla Developer Network. Dostupné online. 

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]