Polskie t³umaczenie Rekomendacji "XML Inclusions (XInclude) Version 1.0"

Autor: Mariusz ¯ebrowski.
Lokalizacja: http://www.antyspam.pl/w3c/REC-xinclude-20041220/

Dokument ten jest t³umaczeniem rekomendacji W3C XML Inclusions (XInclude) Version 1.0. Przek³ad ten nie jest przk³adem normatywnym i mo¿e zawieraæ b³êdy wynikaj±ce z t³umaczenia. Status normatywny posiada jedynie wersja angielskojêzyczna na stronie W3C http://www.w3.org/TR/2004/REC-xinclude-20041220/.
Dokument jest chroniony prawem autorskim. Copyright © 2004 W3C® (MIT, ERCIM, Keio).

W3C

Inkluzje XML (XInclude) Wersja 1.0

Rekomendacja W3C z 20 grudnia 2004

Obecna wersja:
http://www.w3.org/TR/2004/REC-xinclude-20041220/
Najnowsza wersja:
http://www.w3.org/TR/xinclude/
Poprzednia wersja:
http://www.w3.org/TR/2004/PR-xinclude-20040930/
Edytorzy:
Jonathan Marsh, Microsoft <jmarsh@microsoft.com>
David Orchard, BEA Systems <dorchard@bea.com>

Prosimy odnie¶æ siê do erraty dla tego dokumentu, który mo¿e zawieraæ normatywne poprawki.

Patrz te¿ t³umaczenia.

Ten dokument jest tak¿e dostêpny w formatach nienormatywnych: XML.


Streszczenie

Ten dokument okre¶la tryb przetwarzania i sk³adniê dla ogólnych zadañ inkluzji. Do inkluzji dochodzi poprzez ³±czenie zbiorów informacji XML w jeden z³o¿ony zbiór informacji. Wykaz dokumentów XML (zbiory informacji) do ³±czenia i kontrola nad procesem ³±czenia jest wyra¿ona w sk³adni przyjaznej XML (elementy, atrybuty, odno¶niki URI).

Status dokumentu

Ta czê¶æ opisuje status tego dokumentu w czasie jego publikacji. Inne dokumenty mog± wyprzeæ ten dokument. Lista bie¿±cych publikacji W3C i najnowsza aktualizacja tego raportu technicznego jest dostêpna w indeksie raportów technicznych W3C na stronie http://www.w3.org/TR/.

Ten dokument to Rekomendacja W3C. Zosta³ omówiony przez Cz³onków W3C i inne zainteresowane strony, a tak¿e zosta³ zatwierdzony przez Dyrektora jako Rekomendacja W3C. Jest to sta³y dokument i mo¿e byæ u¿ywany jako wzorzec lub cytowany jako odno¶nik normatywny z innego dokumentu. Rola Rola W3C podczas tworzenia rekomendacji polega na zwróceniu uwagi na specyfikacjê oraz promocjê jego rozwoju. Zwiêksza to funkcjonalno¶æ i interoperacyjno¶æ sieci internetowej.

Ten dokument zosta³ stworzony przez G³ówn± Grupê Robocz± W3C XML jako czê¶æ dzia³ania XML. Angielska wersja tej specyfikacji jest jedyn± normatywn± wersj±. T³umaczenia tego dokumentu s± jednak dostêpne na stronie http://www.w3.org/2003/03/Translations/byTechnology?technology=xinclude10.

G³ówna Grupa Robocza XML uwa¿a, ¿e ta specyfikacja odnosi siê do spraw zwi±zanych z Rekomendacj± Ostatniego Wywo³ania oraz Kandydata (podczas omawiania Proponowanej Rekomendacji nie zg³aszano problemów). Znane implementacje s± zawarte w Raporcie Implementacji XInclude. Zestaw testów jest uwzglêdniony, aby pomóc w ocenie zgodno¶ci z t± specyfikacj±. Ten dokument zosta³ stworzony zgodnie z Procedurami Polityki Patentowej W3C z 24 stycznia 2002 CPP z pó¼niejszymi poprawkami. Ktokolwiek posiadaj±cy rzeczywist± wiedzê o patencie, która wed³ug niego zezwala na roszczenie sobie praw, powinien ujawniæ j± w zwi±zku z t± specyfikacj± i zgodnie z czê¶ci± 6 Polityki Patentowej W3C. Dokumentacjê stanowi±c± w³asno¶æ intelektualn± mo¿liwie zwi±zan± z t± specyfikacj± mo¿na znale¼æ na ogólnej stronie Grupy Roboczej o IPR .

Prosimy zg³aszaæ b³êdy w tym dokumencie do www-xml-xinclude-comments@w3.org; publiczne archiwa s± dostêpne. Spis erraty dla tej edycji jest dostêpny na http://www.w3.org/2004/12/xinclude-errata.

Spis tre¶ci

1 Wstêp
    1.1 Powi±zanie z XLink
    1.2 Powi±zanie z zewnêtrznymi obiektami XML
    1.3 Powi±zanie DTD
    1.4 Powi±zanie ze schematami XML
    1.5 Powi±zanie z charakterystycznymi inkluzjami gramatycznymi
2 Terminologia
3 Sk³adnia
    3.1 xi:zawiera element
    3.2 xi:element rezerwy awaryjnej
4 Model przetwarzania
    4.1 Zawarta lokalizacja
        4.1.1 Powrót do poprzedniego stanu warto¶ci atrybutu href
        4.1.2 U¿ycie XInclude z Ustaleniem Zawarto¶ci
    4.2 Pozycje Zawarte kiedy analiza sk³adni="xml"
        4.2.1 Informacje zawarte w dokumencie
        4.2.2 Wêz³y wielokrotne
        4.2.3 Obszar lokalizacji
        4.2.4 Lokalizacje punktowe
        4.2.5 Informacje o Elementach, Komentarzach i Instrukcjac Przetwarzania
        4.2.6 Informacja o Atrybucie i Deklaracji Przestrzeni Nazw
        4.2.7 Pêtle Inkluzyjne
    4.3 Pozycje Zawarte kiedy analiza sk³adni="text"
    4.4 Zachowanie Rezerwy Awaryjnej
    4.5 Tworzenie wynikowego zbioru informacji
        4.5.1 Niezanalizowane elementy rekordu
        4.5.2 Zapisy
        4.5.3 references Property Fixup
        4.5.4 Fixup przestrzeni nazw
        4.5.5 Podstawowy fixup URI
        4.5.6 Fixup Jêzyka
        4.5.7 W³±¶ciwo¶ci Zachowane przez Zbiór Informacji
5 Zgodno¶æ
    5.1 Zgodno¶æ Znaczników
    5.2 Zgodno¶æ Aplikacji
    5.3 Zgodno¶æ Zbioru Informacji XML

Dodatki

A Odno¶niki
B Odno¶niki (Nienormatywne)
C Przyk³ady (Nienormatywne)
    C.1 Przyk³ad Podstawowej Inkluzji
    C.2 Przyk³ad Inkluzji Tekstowej
    C.3 Inkluzja Tekstowa Przyk³±du XML
    C.4 Fragment Przyk³adu Inkluzji
    C.5 Przyk³ad Inkluzji Zakresu
    C.6 Przyk³ad rezerwy awaryjnej


1 Wstêp

Wiele jêzyków programowania zapewnia mechanizm inkluzyjny w celu u³atwienia modularno¶ci. Czêsto tego typu jêzyki wymagaj± takich mechanizmów. Ta specyfikacja wprowadza mechanizm ogólny dla ³±czenia dokumentów XML (jak przedstawiono w informacjach) dla u¿ytku aplikacji wymagaj±cych takich u³atwieñ. Dzia³anie sk³adni istniej±cych konstrukcji XML - elementy, atrybuty, odno¶ciki URI.

1.1 Zwi±zek z XLink

XInclude ró¿ni siê od elementów ³±cz±cych opisanych w [Jêzyk Po³±czeñ XML], szczególnie ³±czy z warto¶ci± atrybutu show="embed". Takie po³±czenia zapewniaj± sk³adniê niezale¿n± od media-type dla wskazania, ¿e ¼ród³o jest wbudowane graficznie w obrêbie wy¶wietlanego dokumentu. XLink nie wyszczególnia szczególnego modelu przetwarzania, ale po prostu u³atwia wykrywanie linków i rozpoznanie przy³±czonych metadata przez aplikacjê wy¿szego poziomu.

XInclude, z drugiej strony, wyszczególnia szczególn± transformacjê media-type (XML na XML). Okre¶la to szczególny model przetwarzania dla ³±czenia zbiorów informacji. Przetwarzanie XInclude odbywa siê na niskim poziomie, czêsto poprzez procesor rodzajowy, który udostêpnia wynikowy zbiór informacj aplikacjom na wy¿szym poziomie.

Proste inkluzje elementów informacyjnych, jak opisano w tej specyfikacji, ró¿ni± siê od transkluzji, które zachowuj± kontekstowe informacje takie jak styl.

1.2 Zwi±zek z Zewnêtrznymi Elementami Rekordu XML

Jest wiele ró¿nic pomiêdzy zewnêtrznymi elementami XInclude i [XML 1.0] lub [XML 1.1], które sprawiaj±, ¿e s± one technologiami uzupe³niaj±cymi.

Przetwarzanie zewnêtrznych elementów (jak z reszt± of DTD) odbywa siê w czasie rozbioru. XInclude dzia³a na zbiory informacji, a wiêc jest ortogonalne do rozbioru.

Deklaracja zewnêtrznych elementów wymaga DTD lub wewnêtrznego podzbioru. Umieszcza to zbiór zale¿no¶ci na nkluzji, na przyk³ad sk³adnia dla deklaracji DOCTYPE wymaga, aby element dokumentu by³ nazwany - ortogonalnie do inkluzji w wielu przypadkach. Parsery waliduj±ce musz± mieæ zdefiniowany ca³kowity model zawarto¶ci. XInclude jest ortogonalny do walidacji i nazwy elementu dokumentu.

Elementy zewnêtrzne zapewniaj± poziom nieukierunkowania - element zewnêtrzny musi byæ zdeklarowany i nazwany, a tak¿e oddzielnie wywo³any. XInclude u¿ywa odno¶ników bezpo¶rednich. Aplikacje, które tworz± wynik XML przyrostowo mog± wyci±gaæ korzy¶ci z tego, ¿e nie maj± wcze¶niej zdeklarowanych inkluzji.

Niepowodzenie podczas ³adowania elementu zewnêtrznego jest zazwyczaj b³êdem krytycznym. XInclude pozwala autorowi na zapewnienie zawarto¶ci warto¶ci domy¶lnej, która bêdzie u¿ywana je¶li zdalne ¼ród³o nie mo¿e byæ za³adowane.

Sk³adnia dla wewnêtrznego podzbioru jest niewygodna dla wielu autorów prostych, dobrze stworzonych dokumentów XML. Sk³adnia XInclude opiera siê na pokrewnych konstrukcjach XML.

1.3 Zwi±zek z DTD

XInclude nie okre¶la zwi±zku z walidacj± DTD. XInclude opisuje transformacjê podzbiór-do-podzbioru, a nie zmianê w analizowanym zachowaniu XML. XInclude nie okre¶la mechanizmu dla walidacji DTD wynikowego zbioru informacji.

1.4 Zwi±zek ze Schematami XML

XInclude nie okre¶la zwi±zku z rozszerzonymi zbiorami informacji stworzonymi przez stosowanie schematu XML. Takie rozszerzone zbiory informacji mog± byæ dostarczane do wyj¶ciowego zbioru informacji, lub takie rozszerzenie mog³oby byæ stosowane do zbioru informacji wynikaj±cego z inkluzji.

1.5 Zwi±zek z Inkluzjami o Szczególnej Gramatyce

Inkluzje szczególnego u¿ytku zosta³y wprowadzone do szczególnych gramatyk XML. XInclude zapewnia mechanizm rodzajowy dla rozpoznania i przetworzenia inkluzji, a tak¿e mo¿e zaoferowaæ prostsze oólne do¶wiadczenie auorskie, lepsze dzia³anie i mniejsz± nadmiarowo¶æ kodu.

2 Terminologia

[Definicja: S³owa kluczowe musi, nie wolno, wymagany, powinien, nie powinien, powinien, nie powinien, polecany, mo¿e, i opcjonalny bêd± zinterpretowane w tej specyfikacji jak opisano w [IETF RFC 2119].]

[Definicja: Termin zbiór informacji odnosi siê do wyniku procesora [XML 1.0] lub [XML 1.1] wyra¿one jako zbiór elementów informacji i w³asno¶ci, jak okre¶lono przez specyfikacjê [Zbiór Informacji XML].] W tym dokumencie termin zbiór informacji jest u¿yty jako synonim zbioru informacji.

[Definicja: Termin b³±d krytyczny odnosi siê do obecno¶ci czynników, które zapobiegaj± kontynuacji normalnego przetwarzania.] [Definicja: Termin b³±d ¼ród³a odnosi siê do niepowodzenia próby pobrania ¼ród³a z URL.] Procesory XInclude musz± zaprzestaæ przetwarzania, kiedy napotykane b³êdy inne ni¿ b³êdy ¼ród³a, które musz± byæ rozwi±zane jak opisano w 4.4 Zachowanie Rezerwy Awaryjnej.

3 Sk³adnia

XInclude okre¶la przestrzeñ nazw po³±czonych z URI http://www.w3.org/2001/XInclude. Przestrzeñ nazw XInclude zawiera dwa elementy z nazwami lokalnymi include i fallback. Dla pewno¶ci, w obrêbie tych specyfikacji odnosi siê do tych elementów odpowiedno jako xi:include i xi:fallback.

Nastêpuj±ce (nienormatywne) schematy XML [Schematy XML] przedstawiaj± model zawarto¶ci przestrzeni nazw xi:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xi="http://www.w3.org/2001/XInclude"
           targetNamespace="http://www.w3.org/2001/XInclude"
           finalDefault="extension">

  <xs:element name="include" type="xi:includeType" />

  <xs:complexType name="includeType" mixed="true">
    <xs:choice minOccurs='0' maxOccurs='unbounded' >
      <xs:element ref='xi:fallback' />
      <xs:any namespace='##other' processContents='lax' />
      <xs:any namespace='##local' processContents='lax' />
    </xs:choice>
    <xs:attribute name="href" use="optional" type="xs:anyURI"/>
    <xs:attribute name="parse" use="optional" default="xml"
                  type="xi:parseType" />
    <xs:attribute name="xpointer" use="optional" type="xs:string"/>
    <xs:attribute name="encoding" use="optional" type="xs:string"/>
    <xs:attribute name="accept" use="optional" type="xs:string"/>
    <xs:attribute name="accept-language" use="optional" type="xs:string"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:simpleType name="parseType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="xml"/>
      <xs:enumeration value="text"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="fallback" type="xi:fallbackType" />

  <xs:complexType name="fallbackType" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="xi:include"/>
      <xs:any namespace="##other" processContents="lax"/>
      <xs:any namespace="##local" processContents="lax"/>
    </xs:choice>
    <xs:anyAttribute namespace="##other" processContents="lax" />
  </xs:complexType>

</xs:schema>

3.1 Element xi:include

Element xi:include posiada nastêpuj±ce atrybuty:

href

Warto¶æ, która po odpowiednim uwolnieniu (patrz 4.1.1 Uwalnianie warto¶ci atrybutu href) zosta³a wykonana, daje w wyniku odno¶nik URI lub odno¶nik IRI, okre¶laj±ce umieszczenie ¼ród³a do zawarcia. Atrybut href jest opcjonalny; brak tego atrybutu jest taki sa, jak przy okre¶laniu href="", tj., odno¶nik jest do tego samego dokumentu. Je¶li brakuje atrybutu href kiedy parse="xml", atrybut xpointer musi wyst±piæ. Identyfikatory fragmentowe nie mog± byæ u¿yte; ich obecno¶æ jest b³êdem krytycznym. Warto¶æ, która jest wynikiem, jest syntaktycznie nie wa¿na dla URI lub IRI, powinna byæ zg³oszona jako b³±d krytyczny, ale niektóre implementacje mog± uwa¿aæ j± za niepraktyczn± do odró¿nienia tego przypadku od b³êdu ¼ród³owego.

Uwaga:

URI koñcz±ce siê na # jest uwa¿ane przez [IETF RFC 2396] za maj±ce pusty identyfikator fragmentu. Takie URI powodowa³oby b³±d krytyczny jak opisano powy¿ej.

Uwaga:

Kluczow± cech± XInclude jest to, ¿e zezwala, by ¼ród³o by³o uformowane do typu user-specified dla inkluzji (XML lub tekst). Otrzymany media type jest zatem zasadniczo ignorowany dla celów przetwarzania inkluzjii i sk³adnia identyfikatora fragmentu otrzymanego media type nie bêdzie generalnie odpowiednia do typu user-specified. Dla inkluzji parse="xml" pod¼ród³a s± identyfikowane przez oddzielny atrybut xpointer, który jest stosowany po formowaniu. Kiedy to nie zapobiega identyfikacji pod¼róde³ dokumentów XML przez URI (Patrz Struktura World Wide Web [Identyfikacja]), zapobiega ono u¿yciu tych identyfikatorów bezpo¶rednio w obrêbie XInclude.

parse

Wskazuje, czy w³±czyæ ¼ród³o jako przeanalizowany XML czy jako tekst. Atrybut parse pozwala XInclude na danie autorowi w³±czanego dokumentu pierwszeñstwa na serwerze w³±czanego dokumentu co do tego, jak przetworzyæ za³±czon± zawarto¶æ. Warto¶æ "xml" wskazuje, ¿e ¼ród³o musi byæ przeanalizowane jako XML i zbiór informacji scalony. Warto¶æ "text" wskazuje, ¿e ¼ród³o musi byæ za³±czone jako znaki elementu informacji. Ten atrybut jest opcjonalny. Kiedy pominiêty, warto¶æ "xml" jest sugerowana (nawet przy braku warto¶ci domy¶lnej deklaracji). Warto¶ci inne ni¿ "xml" i "text" s± b³êdem krytycznym.

Uwaga:

Dla interoperacyjno¶ci pomiêdzy systemami waliduj±cymi i niewaliduj±cymi, odstêp nie powinien siê pojawiæ w atrybucie parse.

xpointer

Kiedy parse="xml", XPointer (patrz [Struktura XPointer]) zawarta w atrybucie xpointer jest wyznaczona do identyfikacji czê¶æ ¼ród³a do za³±czenia. Ten atrybut jest opcjonalny; kiedy jest pominiêty, ca³e ¼ród³o jest zawarte. Atrybut xpointer nie mo¿e wyst±piæ kiedy parse="text". Je¿eli atrybut xpointernie wystêpuje, atrybut href musi wystêpowaæ.

Uwaga:

Poniewa¿ atrybut xpointer nie jest odno¶nikiem URI, %-uwolnienie nie mo¿e wyst±piæ w XPointer, ani nie ma potrzeby, aby procesor zastosowa³, lub zmieni³ takie uwolnienie.

encoding

Kiedy parse="text", czasami jest niemo¿liwe, by poprawnie wykryæ kodowanie ¼ród³a tekstu. Atrybut encoding okre¶la jak ¼ród³o ma byæ t³umaczone Warto¶ci± tego atrybutu jest EncName, jak opisano w specyfikacji XML, czê¶æ 4.3.3, zasada [81]. Atrybut encoding nie ma wp³ywu kiedy parse="xml".

accept

Warto¶æ atrybutu accept mo¿e byæ u¿ywane przez procesor XInclude, aby wspomóc w ustalaniu zawarto¶ci. Kiedy procesor XInclude pobiera ¼ród³o przez HTTP, powinien umie¶ciæ warto¶æ atrybutu accept, je¶li taki istnieje, w ¿±daniu HTTP jako nag³ówek Accept, jak opisano w czê¶ci 14.1 [IETF RFC 2616]. Warto¶ci zawieraj±ce znaki poza obszarem #x20 do #x7E s± zabronione w nag³ówkach HTTP, i musz± byæ oflagowane jako b³êdy krytyczne.

accept-language

Warto¶æ atrybutu accept-language mo¿e byæ u¿yta przez procesor, aby wspomóc przy ustalaniu zawarto¶ci. Kiedy procesor XInclude pobiera ¼ród³o przez HTTP, powinien umie¶ciæ warto¶æ atrybutu accept-language je¶li taki istnieje, w ¿±daniu HTTP jako nag³ówek Accept-Language, jak opisano w czê¶ci 14.4 [IETF RFC 2616]. Warto¶ci zawieraj±ce znaki poza obszarem #x20 do #x7E s± zabronione w nag³ówkach HTTP, i musz± byæ oflagowane jako b³êdy krytyczne.

Atrybuty inne ni¿ te wymienione powy¿ej mog± byæ umieszczone na elemencie xi:include. Nazwy atrybutów bez prefiksów s± zarezerwowane dla przysz³ych wersji tej specyfikacji i musz± byæ ignorowane przez procesory XInclude 1.0.

W³asno¶æ potomna elementu xi:include mo¿e zawieraæ pojedynczy element xi:fallback; wyst±pienie wiêcej ni¿ jednego elementu xi:fallback, elementu xi:include, lub jakiegokolwiek innego elementu z przestrzeni nazw XInclude jest b³êdem krytycznym. Inna zawarto¶æ (tekst, instrukcje przetwarzania, komentarze, elementy poza przestrzeni± nazw, nastêpcy elementów potomków) nie jest wymuszona przez tê specyfikacjê i jest ignorowana przez procesor XInclude, tzn. nie ma wp³ywu na przetwarzanie za³±czania i nie wystêpuje we w³asno¶ciach potomnych wyniku zbioru warto¶ci. Taka zawarto¶æ mo¿e byæ u¿yta przez aplikacje analizuj±ce przedinkluzjyjny zbiór informacji, lub udostêpniona aplikacjom poinkluzyjnym poprzed ¶rodki inne ni¿ normalne w³asno¶ci zbioru informacji.

Nastêpuj±cy (nienormatywny) fragment DTD przedstawia próbkê deklaracji dla elementu xi:include:

<!ELEMENT xi:include (xi:fallback?)>

<!ATTLIST xi:include
    xmlns:xi        CDATA       #FIXED    "http://www.w3.org/2001/XInclude"
    href            CDATA       #IMPLIED
    parse           (xml|text)  "xml"
    xpointer        CDATA       #IMPLIED
    encoding        CDATA       #IMPLIED
    accept          CDATA       #IMPLIED
    accept-language CDATA       #IMPLIED
>

3.2 Element xi:fallback

Element xi:fallback pojawia siê jako potomek elementu xi:include. Zapewnia mechanizm dla odzyskiwania zaginionych ¼róde³. Kiedy wyst±pi b³±d krytyczny, element xi:include jest wymieniany wraz z zawarto¶ci± elementu xi:fallback. Je¿eli element xi:fallback jest pusty, element xi:include jest usuniêty z wyniku. Je¿eli brakuje elementu xi:fallback, b³±d ¼ród³a prowadzi do in a b³êdu krytycznego.

Element xi:fallback potomek elementu xi:include. Jest to b³±d krytyczny elementu xi:fallback, pojawiaj±cy siê w dokumencie w jakimkolwiek innym miejscu, ni¿ bezpo¶redni potomek xi:include (przed przetarzaniem inklucji na zawarto¶ci elementu.) Jest to b³±d krytyczny dla elementu xi:fallback, zawieraj±cego jakiekolwiek elementy z przestrzeni nazw XInclude inne ni¿ xi:include.

Atrybuty mog± byæ umieszczone na elemencie xi:fallback. Nazwy atrybutów bez prefiksów s± zarezerwowane dla przysz³ych wersji tej specyfikacji i musz± byæ ignorowane przez procesory XInclude 1.0.

Nastêpuj±cy (nienormatywny) fragment DTD przedstawia próbkê deklaracji dla elementu xi:fallback:

<!ELEMENT xi:fallback ANY>

<!ATTLIST xi:fallback
    xmlns:xi   CDATA   #FIXED   "http://www.w3.org/2001/XInclude"
>

4 Model przetwarzania

Inkluzaj, jak opisano w tym dokumencie, jest szczególnym typem transformacji [Zbioru Informacji XML].

[Definicja: Wej¶cie dla transformacji inkluzji sk³ada siê ze zbioru informacji ¼ród³a.] [ Definicja: Wyj¶cie, nazywane wynikowym zbiorem informacji , jest nowym zbiorem informacji, który scala ¼ród³owy zbiór informacji ze zbiorami informacji ¼róde³ identyfikowanych przez odno¶niki URL, lub odno¶niki URI wystêpuj±ce w elementach xi:include.] W ten sposób przyjmuje siê mechanizm rozk³±daj±cy URI i IRI oraz identyfikuj±cy ¼ród³a jako zbiory informacji. Dobrze ukszta³towane elementy rekordu XML, które nie posiadaj± zdefiniowanych zbiorów informacji (np. zewnêtrzny element rekordu z wielokrotnymi elementami najwy¿szego poziomu) s± poza zasiêgiem tej specyfikacji, zarówno dla u¿ycia jako ¼ród³owy zbiór informacji, jak i wynikowy zbiór informacji.

Elementy xi:include [ Definicja: Elementy informacyjne umieszczone przy elemencie xi:include s± nazywane elementami zawartego najwy¿szego poziomu ]. [Definicja: Elementy zawartego najwy¿szego poziomu wraz z ich atrybutami, przestrzeniami nazw oraz potomkami s± nazywane elementami zawartymi ]. Wynikowy zbiór informacji jest zasadniczo kopi± ¼ród³owego zbioru informacji , z ka¿dym elementemxi:include i jego potomkami zast±pionymi przez odpowiednie elementy zawarte.

4.1 Zawarta lokalizacja

Warto¶æ atrybutu href po uwolnieniu zgodnie z 4.1.1 Uwalnianie warto¶ci atrybutu href, jest interpretowane zarówno jako odno¶nik URI, lub odno¶nik IRI. Podstawowy URI dla odpowiednich URI lub IRI jest podstawowym URI elementu xi:include, jak wyszczególniono w [Podstawie XML]. [Definicja: URI lub IRI wynikaj±ce z rozdzielania znormalizowanej warto¶ci atrybutu href (lub pusty ci±g znaków, je¶li nie pojawia siê ¿aden atrybut) do zupe³nej formy URI lub IRI jest zwany zawart± lokalizacj±.]

Brak warto¶ci dla atrybutu href, zarówno przez pojawienie href="", lub braku atrybutu href, przedstawia przypadek, który mo¿e byæ niekompatybilny z pewnymi strategiami implementacji. Na przyk³ad, procesor XInclude mo¿e nie mieæ tekstowego odwzorowania ¼ród³owego zbioru informacji, do w³±czenia jako parse="text", lub mo¿e byæ niezdolny do dostêpu innej czê¶ci dokumentu przy u¿yciuparse="xml" i xpointer, przez znaczenia strumieniowalno¶ci. Implementacja mo¿e wybraæ jakikolwiek lub wszystkie braki warto¶ci dla atrybutu href takiego, jak b³êdy ¼ród³owe. Implementacje powinny dokumentowaæ warunki, pod jakimi takie b³êdy ¼ród³owe wystêpuj±.

4.1.1 Uwalnianie warto¶ci atrybutu href

Warto¶æ atrybutu href jest przekszta³cona do zarówno odno¶nika URI, jak i odno¶nika IRI, jako odpowiednia do implementacji.

Obecnie trwaj± prace nad stworzeniem RFC definiuj±cego Miêdzynarodowe Identyfikatory ¬ród³owe (IRI). Poniewa¿ te prace nie s± jeszcze zakoñczone, w tym dziale definiujemy odno¶niki IRI syntaktycznie. Oczekuje siê wydania errat zastêpuj±cych czê¶ci tego dzia³u z odno¶nikiem do RFC, kiedy bêdzie opublikowany. Dla dalszych ogólnych definicji i dyskusji na temat IRI patrz [Projekt IRI] (prace w trakcie).

[Definicja: Odno¶nik IRI jest ci±giem znaków, który mo¿e byæ przekszta³cony do odno¶nika URI poprzez uwolnienie nastêpuj±cych dodatkowych znaków:]

  • p³aszczyzna kodu ujednolicongo 0 znaków #xA0 - #xD7FF, #xF900-#xFDCF, #xFDF0-#xFFEF

  • p³aszczyzna kodu ujednolicongo 1-14 znaków #x10000-#x1FFFD ... #xE0000-#xEFFFD

Aby zmieniæ warto¶æ atrybutu href do odno¶nika IRI, nastêpuj±ce znaki musz± byæ uwolnione:

  • przestrzeñ #x20

    Uwaga:

    Autorzy zostali powiadomieni, aby unikaæ nieuwolnionych przestrzeni, poniewa¿ Schemat XML zidentyfikowa³ je jako ryzyko interoperacyjno¶ci.

  • ograniczniki < #x3C, > #x3E i " #x22

  • znak { #x7B, } #x7D, | #x7C, \ #x5C, ^ #x5E i ` #x60

Te znaki s± uwolnione w nastêpuj±cy sposób:

  1. Ka¿dy dodatkowy znak jest przekszta³cony do UTF-8 [Unikod] jako jeden lub wiêcej bajtów.

  2. Wynikowe bajty s± uwalniane z mechanizmem uwalniania URI (tj. przekszta³cone do %HH, gdzie HH jest zapisem szesnastkowym warto¶ci bajta).

  3. Oryginalny znak jest zast±piony sekwencj± znaku wynikowego.

Aby przekszta³ciæ odno¶nik IRI do odno¶nika URI, dodatkowe znaki dopuszczone w IRI, musz± byæ uwolnione przy u¿yciu tej samej metody.

4.1.2 U¿ywanie XInclude z Ustaleniem Zawarto¶ci

U¿ywanie mechanizmów takich, jak ustalanie zawarto¶ci HTTP [IETF RFC 2616] wprowadza dodatkowy poziom potencjalnej z³o¿ono¶ci w u¿yciu XInclude. Wykonawcy, którzy u¿ywaj± XInclude w sytuacjach, gdzie ustalanie zawarto¶ci jest prawdopodobne b±d¼ mo¿liwe, powinni byæ ¶wiadomi mo¿liwo¶ci, ¿e bêd± obejmowa³y zawarto¶æ, która mo¿e ró¿niæ siê strukturalnie od zawarto¶ci oczekiwanej, nawet je¶li ta zawarto¶æ to XML. Na przyk³ad, pojedynczy URI lub IRI mo¿e na ró¿ne sposoby oddawaæ nieprzerobione odwzorowanie ¼ród³a XML, odwzorowanie XSL-FO [XSL-FO], lub odwzorowania XHTML [XHTML], a tak¿e jako wszystkie wersje w ró¿nych kodowaniach znaków lub jêzykach.

Autorzy, których przetwarzanie XML zale¿y od odbioru szczególnego s³ownictwa XML, powinni u¿ywaæ atrybuty accept oraz accept-language, aby zwiêkszyæ mo¿liwo¶æ, ¿e ¼ród³o ma zapewniony oczekiwany format.

4.2 Elementy zawarte kiedy parse="xml"

Kiedy parse="xml", zawarta lokalizacja (include location) ma usuniêt± po¶rednio¶æ, ¼ród³o jest za³adowane, a zbiór informacji jest stworzony poprzez analizê ¼ród³a tak, jakby typ media by³ aplikacj±/xml (³±cznie z oznaczeniem znaku kodowania).

Uwaga:

W³a¶ciwo¶ci tego, jak zbiór informacji jest stworzony, s± celowo nieokre¶lone, aby pozwoliæ na elastyczno¶æ przez implementacje i, aby unikn±æ okre¶lania szczególnego modelu przetwarzania dla komponentów struktury XML. Dane szczegó³owe, na przyk³ad czy schemat walidacji DTD lub XML jest wykonany, nie s± objête w tej specyfikacji.

Uwaga:

Znaki kodowania ¼róde³ obejmowanych i zawartych mog± byæ ró¿ne. Nie wp³ywa to na wynikowy zbiór informacji, ale mo¿e wymagaæ rozpatrzenia podczas jakiejkolwiek pó¼niejszej serializacji.

¬ród³a, które s± z jakiegokolwiek powodu niedostêpne (na przyk³ad nie istnieje ¼ród³o, wystêpuj± problemy z ³±czno¶ci±, lub ograniczenia bezpieczeñstwa chroni± go przed za³adowaniem, schemat URI nie mo¿e byæ za³adowany, ¼ród³o ma nieobs³ugiwane kodowanie, lub ¼ród³o jest nie jest zdeterminowane jako XML przez specyficzne mechanizme implementacyjne) powoduj± b³±d ¼ród³a. ¬ród³a posiadaj±ce ¼le utworzony XML powoduj± b³±d krytyczny.

Uwaga:

Ró¿nica pomiêdzy b³êdem ¼ród³owym a b³êdem krytycznym jest w pewien sposób zale¿na od implementacji. Rozwa¿ zawart± lokalizacjê zwracaj±c± dokument HTML, mo¿liwe, ¿e jako b³±d strony. Jeden procesor móg³by okre¶liæ, ¿e nie mo¿e byæ stworzony ¿aden zbiór informacji ze ¼ród³a (np. poprzez sprawdzenie typu media) i spowodowaæ b³±d ¼ród³a, zezwalaj±c na zachowanie rezerwy awaryjnej. Inny procesor bez takiej heurystiki mo¿e próbowaæ zanalizowaæ ¼ród³o, które nie jest ¼ród³em XML jako XML i mo¿e napotkaæ b³±d krytyczny.

[Definicja: elementy xi:include w tym zbiorze informacji s± rekurencyjnie przetwarzane, aby stworzyæ uzyskany zbiór informacji. Dla odno¶nika intra-document (przez atrybut xpointer ) ¼ród³owy zbiór informacji jest u¿ywany jako uzyskany zbiór informacji.]

[Definicja: Czê¶æ uzyskanego zbioru informacji, który ma byæ zawarty jest zwany celem inkluzji (inclusion target).] Element informacyjny dokumentu uzyskanego zbioru informacji s³u¿y jako cel inkluzji, chyba, ¿e wystêpuje atrybut xpointer i identyfikuje pod¼ród³o. Atrybuty XPointer w formach opisanych w [Planie XPointer] i [Schemacie elementu XPointer] musz± byæ obs³ugiwane. Procesory XInclude opcjonalnie wspieraj± inne formy XPointer, takie jak te opisane w [Schemacie XPointer xpointer()]. B³±d w XPointer jest b³êdem ¼ród³a.

[Schemat XPointer xpointer()] nie jest okre¶lony w kategoriach [Zbioru Informacji XML], ale w zamian bazuje na Modelu Danych [XPath 1.0], poniewa¿ Zbiór Informacji XML nie zosta³ jeszcze rozwiniêty. Odwzorowanie pomiêdzy lokalizacjami wêz³a XPath i elementami informacyjnymi jest bezpo¶rednie. Jednak¿e, xpointer() zak³ada, ¿e wszystkie elementy rekordu zosta³y rozszerzone. Zatem b³±d krytyczny ma za zadanie próbowaæ rozwi±zaæ schemat xpointer() w dokumencie, który zawiera nierozszerzon± informacjê odno¶nika elementu rekordu .

Zbiór zawartych elementów najwy¿szego poziomu jest uzyskiwany z uzyskanego zbioru informacji .

4.2.1 Dokument Elementów Informacyjnych

Celem inkluzji mo¿e byæ dokument elementów informacyjnych (na przyk³ad, nieokre¶lony atrybut xpointer, lub XPointer, szczególnie rozmieszczaj±cy podstawê dokumentu.) W tym przypadku, zbiór zawartych elementów najwy¿szego poziomu to potomek elementu informacji dokumentu uzyskanego zbioru informacji , z wyj±tkiem potomka elementu informacji deklaracji typu dokumentu , je¿eli taki istnieje.

Uwaga:

Specyfikacja Zbioru Informacji XML nie zapewnia zachowania odstêpu poza elementem dokumentu. XInclude nie stawia dalszych warunków dla zachowania tych odstêpów

4.2.2 Wêz³y wielokrotne

Cel inkluzji mo¿e zawieraæ wiêcej ni¿ jeden wêze³. W tym przypadku zbiór zawartych elementów najwy¿szego poziomu jest zbiorem informacji elementów z uzyskanego zbioru informacji odpowiadaj±cemu wêz³om, do których odnosi siê w XPointer, w kolejno¶ci, w jakiej pojawiaj± siê one w uzyskanym zbiorze informacji.

4.2.3 Lokalizacje Zbioru Warto¶ci

Cel inkluzji mo¿e byæ zbiorem lokalizacji, który przedstawia zakres lub zbiór zakresów.

Ka¿dy zakres odpowiada elementom zbioru informacji w uzyskanym zbiorze informacji. [Definicja: Element informacji ma byæ wybierany przez przedzia³, je¶li zdarzy siê po (w porz±dku dokumentu) punkcie pocz±tkowym zakresu i przed koñcowym punktem zakresu.] [Definicja: Element informacji ma byæ czê¶ciowo wybrany przez zakres, je¿eli zawiera jedynie punkt pocz±tkowy zakresu, lub tylko koñcowy punkt zakresu.] Wed³ug definicji, element informacji znaku nie mo¿e byæ czê¶ciowo wybrany.

Zbiór zawartych elementów górnego poziomu to z³±cze, w kolejno¶ci dokumentu z usuniêtymi duplikatami, z elementami informacji, zarówno wybranymi lub czê¶ciowo wybranymi przez zakres. W³asno¶ci potomków wybranych elementów informacji nie s± zmodyfikowane. W³asno¶æ potomków czê¶ciowo wybranych elementów informacji to zbiór elementów informacji, które s± kolejno wybrane lub czê¶ciowo wybrane, itd.

4.2.4 Lokalizacje Punktu

cel inkluzji mo¿e byæ zbiorem lokalizacji, który reprezentuje punkt. W tym przypadku zbiór zawartych elementów jest pusty.

4.2.5 Element, Komentarz i Instrukcja Przetwarzania Elementów Informacji

Cel inkluzji element informacji, element infomacji komentarza, lub instrukcja przetwarzania elementu informacji . W tym przypadku zbiór elementów zawartych w najwy¿szym poziomie sk³ada siê z elementu informacji odpowiadaj±cego elementowi, komentarzowi, lub wêz³owi instrukcji przetwarzania wnabytym zbiorze informacji.

4.2.6 Atrybut i Deklaracja Przestrzeni NazwElementów Informacji

Jest to b³±d krytyczny dla celu inkluzji, by byæ wêz³em atrybutu lub wêz³em przestrzeni nazw.

4.2.7 Pêtle Inkluzyjne

Podczas przetwarzania elementu xi:include b³êdem krytycznym jest przetwarzanie innego elementu xi:include z zawart± lokalizacj± i warto¶ci± atrybutu xpointer, który ju¿ zosta³ przetworzony w ³añcuchu inkluzyjnym.

Innymi s³owy, nastêpuj±ce s± wszystkie zgodne z prawem:

  • Element xi:include mo¿e odwo³ywaæ siê do elementu zawartego, kiedy parse="text".

  • Element xi:include mo¿e zidentyfikowaæ ró¿ne czê¶ci tego samego lokalnego ¼ród³a (to samo href, inny xpointer).

  • Dwa nie zagnie¿d¿one elementy xi:include identyfikowaæ ¼ród³o, które samo zawiera element mog± xi:include element.

Nastêpuj±ce nie s± zgodne z prawem:

  • Element xi:include wskazuj±cy na siebie lub jakikolwiek przodek, kiedy parse="xml".

  • Element xi:include wskazuj±cy na jakikolwiek z zawartych elementów lub przodek, który zosta³ przetworzony na wy¿szym poziomie.

4.3 Elementy Zawarte kiedy parse="text"

Kiedy parse="text", zawarta lokalizacja jest usuniêta i ¼ród³o jest pobrana i przetworzona do zbioru znaków elementów informacji. Ta cecha u³atwia inkluzje dzia³ania przyk³adów XML, zarówno jak i innych formatów opartych na tek¶cie.

¬ród³a, które s± niedostêpne z jakiegokolwiek innego powodu (np. ¼ród³o nie istnieje, utrudnienia w ³±czno¶ci lub wymogi bezpieczeñstwa chroni± go przed pobraniem go, schemat URI nie jest pobieralny, lub ¼ród³o jest kodowaniem niewspomaganym), powoduj± b³±d ¼ród³a.

Kodowanie takiego ¼ród³a jest jest okre¶lone przez:

  • zewnetrzn± informacjê koduj±c±, je¶li jest dostêpna, w przeciwnym wypadku

  • je¿eli typ media ¼ród³a to text/xml, aplikacja/xml, lub odpowiada konwencjom text/*+xml lub aplikacja/*+xml jak opisano w Typach Media XML [IETF RFC 3023], kodowanie jest rozpoznawane tak, jak opisano w XML, w przeciwnym wypadku

  • warto¶æ atrybutuencoding je¶li taki istnieje to

  • UTF-8.

Sekwencja bajtów poza obszarem dozwolonym przez kodowanie to b³±d krytyczny. Znaki niedozwolone w dokumantach XML to równie¿ b³±d krytyczny.

Ka¿dy znak uzyskany z transformacji ¼ród³a jest przedstawiony w elementach zawartych najwy¿szego poziomu jako element informacji znaku ze zbiorem kodów znaku do kodów znaków w kodowaniu ISO 10646, oraz zbiorem odstêpów zawarto¶ci elementu , do b³êdnych.

[Model Znaków] omawia normalizacjê zawartego tekstu.

4.4 Zachowanie rezerwy awaryjnej

Procesory XInclude musz± wykonaæ zachowanie rezerwy awaryjnej w przypadku b³êdu ¼ród³a, w nastêpuj±cy sposób:

Je¿eli potomkowie elementu informacyjnego xi:include w ¼ród³owym zbiorze informacji zawieraj± dok³adnie jeden element xi:fallback, zawarte elementy najwy¿szego poziomu sk³adaj± siê z elementów informacyjnych odpowiadaj±cych wynikowi wykonania przetwarzania XInclude na potomkach elementu xi:fallback. Jest to b³±d krytyczny je¶li jest zero lub wiêcej ni¿ jeden element xi:fallback.

Uwaga:

Zawarto¶æ rezerwy awaryjnej nie jest zale¿na od warto¶ci atrybutu parse. Element xi:fallback mo¿e zawieraæ znaczniki nawet kiedy parse="text". Podobnie, mo¿e zawieraæ prosty ci±g znaków kiedy parse="xml".

4.5 Tworzenie wynikowego zbioru informacji

Wynikowy zbiór informacji jest kopi± ¼ród³owego zbioru informacji, z ka¿dym elementem xi:include przetworzonym nastêpuj±co:

Element informacyjny dla elementu xi:include jest znaleziony. [Definicja: W³asno¶æ parent (przodek) tego elementu odnosi siê do elementu informacyjnego zwanego include parent.] W³asno¶æ children (potomek) elementu include parent jest zmodyfikowana przez zast±pienie elementu informacyjnego xi:include przez zawartymi elementami najwy¿szego poziomu . W³asno¶ci± parent ka¿dego zawartego elementu jest ustawienie include parent.

B³êdem krytycznym jest próba zast±pienia elementu xi:include pojawiaj±cego siê jako element dokumentu (najwy¿szy poziom) w ¼ród³owym zbiorze informacji z czym¶ innym, ni¿ lista zero lub wiêcej komentarzy, zero lub wiêcej instrukcji przetwarzania, oraz jeden element.

Niektóre procesory mog± nie byæ w stanie przedstawiæ w³asno¶ci elementu przestrzeni± nazw in-scope je¿eli nie zawiera ona wi±zañ dla wszystkich prefiksów ograniczonych przez ich przodków przestrzenie nazw in-scope. Takie procesory mog± zatem zawieraæ dodatkowe wi±zania przestrzeni nazw odziedziczone po include parent w przestrzeniach nazw in-scope zawartych elementów.

Historia inkluzji takiego zawartego elementu najwy¿szego poziomu jest zarejestrowana we w³asno¶ci rozszerzenia zawarta historia (include history). W³asno¶æ zawarta historia to lista elementów informacyjnych, przedstawiaj±cych elementy xi:include dla rekursywnych poziomów inkluzji. Je¿eli w³asno¶æ zawarta historia ju¿ pojawia siê na zawartym elemencie najwy¿szego poziomu, to element informacyjny xi:include jest przy³±czony do listy. Je¶li nie istnieje ¿adna w³asno¶æ zawartej historii, to w³asno¶æ jest dodawana z pojedyncz± warto¶ci± elementu informacyjnego xi:include.

Wszystkie zawarte elementy bêd± pojawiaæ siê w wynikowym zbiorze informacji. Zawiera to nierozszerzone informacyjne elementy rekordu je¿eli s± obecne.

Odno¶niki wewn±trz dokumentu w obrêbie elementów xi:include s± rozwi±zane na ¼ród³owym zbiorze informacji. Efektem tego jest, ¿e porz±dek, w jakim elementy xi:include s± przetwarzane, nie wp³ywa na wynik.

W nastêpuj±cym przyk³±dzie, drugie w³±czenie zawsze wskazuje na pierwszy element xi:include, a nie na siebie, niezale¿nie od porz±dku, w jakim w³±czenia s± przetwarzane. W ten sposób wynikiem tej inkluzji s± dwie kopie something.xml (co¶.xml), i nie powstaje inkluzyjny b³±d pêtli.

<x xmlns:xi="http://www.w3.org/2001/XInclude">   <xi:include href="something.xml"/>
<xi:include xpointer="xmlns(xi=http://www.w3.org/2001/XInclude)xpointer(x/xi:include[1])"
parse="xml"/>
</x>

4.5.1 Niezanalizowane elementy rekordu

Jakikolwiek element informacyjny niezanalizowanego elementu rekordu pojawiaj±cy siê we w³asno¶ci atrybutu odno¶niki zawartych elementów lub jakikolwiek potomek jest dodany do w³asno¶ci niezanalizowanych elementów rekordu wynikowego zbioru informacji elementu informacyjnego dokumentu, je¿eli nie jest duplikatem istniej±cego cz³onka. Duplikaty nie pojawiaj± siê w wynikowym zbiorze informacji.

Niezanalizowane elementy rekordu z t± sam± nazw±, identyfikatorami systemowymi, publicznymi identyfikatorami, deklaracj± podstawowego URI, nazw± zapisu, oraz zapisem s± uwa¿ane za duplikaty. Aplikacja mo¿e równie¿ byæ w stanie wykryæ w inny sposób, ¿e niezanalizowane elementy rekordu s± duplikatem. Na przyk³ad URI wynikaj±cy z po³±czenia identyfikatora systemowego i deklaraji podstawowego URI s± tym samym.

B³êdem krytycznym jest w³±czenie elementów niezanalizowanego elementu rekordu z tak± sam± nazw±, ale które nie s± przeznaczone jako duplikaty.

4.5.2 Zapisy

Jakikolwiek element informacyjny zapisu pojawiaj±cy siê we w³asno¶ci odno¶nik atrybutu w zawatych elementach, lub jakimkolwiek potomku dodanym do w³asno¶ci zapisów wynikowego zbioru informacji elementu informacyjnego dokumentu, je¶li nie jest duplikatem istniej±cego cz³onka. Podobnie, jakikolwiek zapis, do którego odnosi siê niezanalizowany element rekordu dodany, jak opisano w 4.5.1 Niezanalizowane elementy rekordu, jest dodany, je¿eli nie jest duplikatem. Duplikaty nie pojawiaj± siê w wynikowym zbiorze informacji.

Elementy zapisów z t± sam± nazw±, identyfikatorem systemowym, identyfikatorem publicznym, oraz deklaracj± podstawowego URI s± uwa¿ane za duplikaty. Aplikacja mo¿e równie¿ byæ w stanie wykryæ w inny sposób, ¿e zapisy s± duplikatem.Na przyk³ad URI wynikaj±cy z po³±czenia identyfikatora systemowego i deklaraji podstawowego URI s± tym samym.

B³êdem krytycznym jest w³±czenie elementów zapisów ztak± sam± nazw±, ale które nie s± przeznaczone jako duplikaty.

4.5.3 odno¶niki Property Fixup

Podczas inkluzji, przedmiot informacji atrybutu, którego w³asno¶ci± typu atrybutu jest IDREF lub IDREFS, posiada w³asno¶æ odno¶niki z zero lub wiêcej warto¶ci elementów z zbiorów informacji ¼ród³owych lub zawartych. Te warto¶ci musz± byæ dostosowane, aby odpowiada³y warto¶ciom elementów wystêpuj±cych w wynikowym zbiorze informacji. W trakcie tego procesu XInclude równie¿ poprawia niezgodno¶ci pomiêdzy w³asno¶ci± odno¶niki i typ atrybutu, które mog± powstaæ w nastêpuj±cych okoliczno¶ciach:

  • Fragment dokumentu zawiera IDREF wskazuj±cy na element w zawartym dokumencie, ale poza za³±czan± czê¶ci±. W takim przypadku nie ma elementu w wynikowym zbiorze informacji, który odpowiada warto¶ci elementu w oryginalnej w³asno¶ci odno¶nika.

  • Dokument, lub fragment dokumentu nie za³±cza siê sam. To znaczy, ¿e zawiera IDREF, które nie odnosz± siê do elementu w obrêbie tamtego dokumentu, b±d¼ fragmentu dokumentu, z zamierzeniem, ¿e te odno¶niki bêd± zrealizowane po inkluzji. W tym przypadku warto¶æ w³asno¶ci odno¶niki (references) jest nieznana, lub nie ma warto¶ci.

  • Wynikowy zbiór informacji zawiera konflikty ID - tj. wiêcej ni¿ jeden atrybut z ID typu atrybutu z t± sam± znormalizowan± warto¶ci±. W takim przypadku atrybuty o typie atrybutu IDREF lub IDREFS z t± sam± znormalizowan± warto¶ci± mog± mieæ ró¿ne warto¶ci dla swoich w³asno¶ci odno¶ników.

W rozwi±zywaniu tych niezgodno¶ci, XInclude bierze w³asno¶æ typu atrybutu za ostateczn±. W wynikowym zbiorze informacji warto¶æ w³asno¶ci odno¶niki przedmiotu atrybutu informacyjnego , którego w³asno¶ci typu atrybutu to IDREF lub IDREFS, dostosowane nastêpuj±co:

Dla ka¿dego znacznika we w³asno¶ci znormalizowanej warto¶ci w³asno¶æ odno¶niki zawiera przedmiot informacyjny typu element z tymi samymi w³asno¶ciami, co przedmiot informacyjny typu element w wynikowym zbiorze informacji z atrybutem z ID typu atrybutu i znormalizowan± warto¶ci± równ± znacznikowi. Porz±dek elementów we w³asno¶ci odno¶niki jest taki sam, co porz±dek znaczników pojawiaj±cych siê w znormalizowanej warto¶ci. Je¿eli dla jakichkolwiek z warto¶ci znacznika ¿aden element lub wiêcej ni¿ jeden element jest znaleziony, to w³asno¶æ odno¶niki nie ma warto¶ci.

4.5.4 Fixup przestrzeni nazw

W³asno¶æ przestrzeni nazw in-scope zapewnia, ¿e zakres przestrzeni nazw jest zachowana poprzez inkluzjê. Jednak, po inkluzji, w³asno¶æ atrybutów przestrzeni nazw mo¿e nie zapewniæ pe³nej listy deklaracji przestrzeni nazw koniecznych do interpretacji nazw okre¶laj±cych w zawarto¶ci atrybutu lub elementu w wyniku. Nie jest to zatem polecane, by procesory XInclude nie ods³ania³y atrybutów przestrzeni nazw w wyniku. Je¿eli jest to nieuniknione, implementacja mo¿e dodaæ przedmioty informacyjne typu atrybut do w³asno¶ci atrybutów przestrzeni nazw w porz±dku, aby przybli¿yæ informacjê przekazan± przez przestrzenie nazw in-scope .

4.5.5 Podstawowy URI Fixup

Podstawowa w³asno¶æ URI uzyskanego zbioru informacji nie jest zmieniona jako wynik ³±czenia zbioru informacji i pozostaje niezmieniona po ³±czeniu. Tak wiêc wzglêdne odno¶niki URI w za³±czonym zbiorze informacji rozk³adaj± siê do takiego samego URI pomimo za³±czania do dokumentu z potencjonalnie ró¿nymi podstawowymi URI w efekcie. Atrybuty xml:base s± dodane do wynikowego zbioru informacji dla wskazania tego faktu.

Ka¿dy przedmiot informacyjny typu element w zawartych przedmiotach najwy¿szego poziomu , który ma inny podstawowy URI ni¿ jego zawarty przodek, ma przedmiot informacyjny typu atrybut dodany do jego w³asno¶ci atrybuty. Ten atrybut posiada nastêpuj±ce w³a¶ciwo¶ci:

  1. nazwa przestrzeni nazw http://www.w3.org/XML/1998/namespace.

  2. nazwê lokaln± podstawy.

  3. prefiks xml.

  4. znormalizowan± warto¶æ równ± zarówno do podstawowego URI elementu, lub równowa¿nemu odno¶nikowi URI wzglêdnego do podstawowego URI zawartego przodka. Okoliczno¶ci, w których jest po¿±dany wzglêdny URI i jak obliczyæ taki wzglêdny URI, s± zale¿ne od implementacji.

  5. Okre¶lony znacznik stanu wskazuj±cy, ¿e ten atrybut by³ faktycznie okre¶lony w pocz±tkowym znaczniku jego elementu.

  6. Typ atrybutu CDATA.

  7. W³asno¶æ odno¶niki bez warto¶ci.

  8. Element owner (w³a¶ciciel) przedmiotu informacyjnego elementu.

Je¿eli przedmiot informacyjny typu atrybut xml:base ju¿ jest obecny, jest zast±piony przez nowy atrybut.

4.5.6 Jêzyk Fixup

Kiedy atrybut xml:lang jest opisany jako odziedziczony przez XML, Zbiór informacyjny XML nie daje pewno¶ci, ¿e bêdzie zachowane dziedziczenie tej w³asno¶ci przez poprzez uk³ad dokumentu taki, jaki jest zapewniony przez XInclude Ta czê¶æ wprowadza w³asno¶æ jêzyk, która zapisuje zakres informacji xml:lang, aby zachowaæ j± podczas inkluzji.

Procesor XInclude powinien dowodziæ w³asno¶ci the ¼ród³owy zbiór informacji i nabyty zbiór informacji przez dodanie w³asno¶ci jêzyk do ka¿dego przedmiotu informacyjnego typu element. Warto¶ci± w³asno¶ci jest znormalizowana warto¶æ atrybutu xml:lang pojawiaj±cego siê na tamtym elemencie, je¿eli taki istnieje, z xml:lang="" wynikaj±cego w ¿adnej warto¶ci, w przeciwnym razie jest to warto¶æ w³asno¶ci jêzyk elementu przodka elementu je¿eli taki istnieje, w przeciwnym razie w³asno¶æ nie ma warto¶ci.

Ka¿dy przedmiot informacyjny typu element w zawartych przedmiotach najwy¿szego poziomu , który posiada inn± warto¶æ jêzyka, ni¿ jego zawarty przodek (rozwa¿aj±c niewra¿liwo¶æ przypadku przez [IETF RFC 3066]), lub, ¿e posiada warto¶æ je¶li jego zawarty przodek to przedmiot informacyjny typu dokument , posiada przedmiot informacyjny typu atrybut dodany do jego w³asno¶ci atrybuty . Ten atrybut posiada nastêpuj±ce w³asno¶ci:

  1. nazwa przestrzeni nazw http://www.w3.org/XML/1998/namespace.

  2. nazwa lokalna lang.

  3. prefiks xml.

  4. znormalizowana warto¶æ równa w³asno¶ci jêzyk elementu. Je¿eli w³asno¶æ jêzyk nie ma warto¶ci, znormalizowana warto¶æ to pusty ci±g znaków.

  5. okre¶lony znacznik stanu wskazuj±cy, ¿e ten atrybut by³ faktycznie okre¶lony w pocz±tkowym znaczniku jego elementu.

  6. typ atrybutu CDATA.

  7. w³asno¶æ odno¶niki bez warto¶ci.

  8. element owner przedmiotu informacyjnego elementu.

Je¿eli przedmiot informacyjny typu atrybut xml:lang jest ju¿ obecny, nie jest zast±piony przez nowy atrybut.

Uwaga:

Atrybut xml:space nie jest traktowany specjalnie przez XInclude.

4.5.7 W³asno¶ci zachowane przez zbiór informacji

Jako transformacja zbioru informacji, XInclude dzia³a na logicznej strukturze dokumentów XML, nie na ich serializacji tekstu. Wszystkie w³asno¶ci na przedmiocie informacyjnym opisanym w [Zbiorze Informacji XML] innym, ni¿ te szczególnie zmodyfikowane przez tê specyfikacje, s± zachowane podczas inkluzji. W³asno¶ci zawarta historia i jêzyk przedstawione w tej specyfikacji s± równie¿ zachowane. Rozszerzalne w³asno¶ci takie jak [Schematy XML] w³asno¶ci PSVI (poschematowy walidacyjny zbiór informacji) s± odrzucone przez warto¶æ domy¶ln±. Jednak procesor XInclude mo¿e, przy opcji u¿ytkownika, zachowaæ te w³asno¶ci w wynikowym zbiorze informacji, je¿eli s± poprawne w odniesieniu do specyfikacji opisuj±cej semantykê w³asno¶ci rozszerzenia.

Na przyk³ad w³asno¶æ w³asno¶ci PSVI opisuje warunki przodków i potomków. Modyfikacja przodków i potomków podczas procesu XInclude mo¿e niedok³adnie interpretowaæ warto¶æ tej w³asno¶ci, ale przez opcjê u¿ytkownika w³asno¶æ mog³aby byæ ponownie skalkulowana, aby uzyskaæ semantycznie dok³adn± warto¶æ. Poz zasiêgiem tej specyfikacji jest to, jak dok³adnie jest to dokonane.

5 Zgodno¶æ

5.1 Zgodno¶æ znaczników

przedmiot informacyjny typu element jest zgodny z t± specyfikacj± je¿eli spe³nia wymagania strukturalne dla zawartych elementów okre¶lonych w tej specyfikacji. Ta specyfikacja nie narzuca ¿adnych szczególnych ograniczeñ dla schematów DTD lub XML; zgodno¶æ ma zastosowanie wy³±cznie do elementów i atrybutów.

5.2 Zgodno¶æ zastosowania

Zastosowanie jest zgodne z XInclude je¿eli:

Wsparcie dla [Schematu XPointer xpointer()] nie jest obowi±zkowa dla pe³nej zgodno¶ci XInclude. Radzi siê autorom, by u¿ywali xpointer() i innych schematów implementacji XPointer.

5.3 Zgodno¶æ zbioru informacji XML

Ta specyfikacja jest zgodna ze [Zbiorem informacji XML]. Nastêpuj±ce przedmioty informacyjne musz± byæ obecne w wej¶ciowych zbiorach warto¶ci, aby umo¿liwiæ poprawne przetwarzanie:

  • przedmioty informacyjne typu dokument z w³asno¶ciami potomkowie i podstawowy URI.

  • Przedmioty informacyjne typu element z w³asno¶ciami nazwa przestrzeni nazw, nazwa lokaln±, potomkowie, atrybuty, podstawowy URI i przodek.

  • Przedmioty informacyjne typu atrybut z w³asno¶ciami nazwa przestrzeni nazw, nazwa lokalna i znormalizowana warto¶æ.

Dodatkowo przetwarzanie XInclude mo¿e generowaæ w wyniku nastêpuj±ce rodzaje przedmiotów informacyjnych:

  • przedmiot informacyjny typu znak z w³asno¶ciami kod znaku, odstêp zawarto¶ci elementu i przodek.

XInclude rozszerza zbiór informacji o w³asno¶æ zawarta historia, która w wyniku mo¿e pojawiæ siê na nastêpuj±cych typach przedmiotów informacyjnych:

  • przedmiot informacyjny typu element .

  • instrukcja przetwarzania przedmiotów informacyjnych.

  • przedmioty informacyjne typu komentarz.

  • przedmioty informacyjne typu znak.

XInclude równie¿ rozszerza zbiór informacji o w³asno¶æ jêzyk, która w wyniku mo¿e pojawiæ siê na przedmiotach informacyjnych typu element .

A Odno¶niki

IETF RFC 2119
RFC 2119: S³owa kluczowe dla u¿ycia RFC do wskazania Poziomów Wymagañ . Internet Engineering Task Force, 1997. (Patrz http://www.ietf.org/rfc/rfc2119.txt.)
IETF RFC 2279
RFC 2279: UTF-8, format transformacji ISO 10646. Internet Engineering Task Force, 1998. (Patrz http://www.ietf.org/rfc/rfc2279.txt.)
IETF RFC 2396
RFC 2396: Jednolite Identyfikacji ¬ród³a . In¿ynieria Internetowa Task Force, 1995. (Patrz http://www.ietf.org/rfc/rfc2396.txt.)
IETF RFC 2732
RFC 2732: Format dla Dos³ownych Adresów IPv6 w URL . Internet Engineering Task Force, 1999. (Patrz http://www.ietf.org/rfc/rfc2732.txt.)
IETF RFC 3023
RFC 3023: Typy Media XML . Internet Engineering Task Force, 2001. (Patrz http://www.ietf.org/rfc/rfc3023.txt.)
Unikod
The Unicode Consortium. Standard Unikod, Wersja 4.0. Reading, Mass.: Addison-Wesley, 2003, aktualizowany od czasu do czasu przez publikacje nowych wersji. (Patrz http://www.unicode.org/unicode/standard/versions/ w celu sprawdzenia najnowszych wersji i dodatkowych informacji wersji standardów i Bazy Danych Znaków Unikod).
XML 1.0
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, Eve Maler, François Yergeau, editors. Rozszerzalne Znaczniki Jêzyk (XML) 1.0 (Wydanie Trzecie), World Wide Web Consortium, 2004. (Patrz http://www.w3.org/TR/2004/REC-xml-20040204/.)
XML 1.1
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, Eve Maler, François Yergeau, John Cowan, edztoryz. Rozszerzalny Jêzyk Znaczników (XML) 1.1, World Wide Web Consortium, 2004. (Patrz http://www.w3.org/TR/2004/REC-xml11-20040204/.)
Podstawa XML
Jonathan Marsh, edytor. Podstawa XML . World Wide Web Consortium, 2001. (Patrz http://www.w3.org/TR/2001/REC-xmlbase-20010627/.)
Zbiór Informacji XML
John Cowan i Richard Tobin, edytorzy. Zbiór Informacji XML (Wydanie Drugie). World Wide Web Consortium, 2004. (Patrz http://www.w3.org/TR/2004/REC-xml-infoset-20040204/.)
Przestrzenie nazw w XML
Tim Bray, Dave Hollander i Andrew Layman, edytorzy. Przestrzenie nazw w XML. World Wide Web Consortium, 1999. (Patrz http://www.w3.org/TR/1999/REC-xml-names-19990114/.)
Przestrzenie nazw w XML 1.1
Tim Bray, Dave Hollander, Andrew Layman, Richard Tobin, edytorzy. Przestrzenie nazw w XML 1.1. World Wide Web Consortium, 2004. (Patrz http://www.w3.org/TR/2004/REC-xml-names11-20040204/.)
XPointer Framework
Paul Grosso, Eve Maler, Jonathan Marsh, Norman Walsh, editors. XPointer Framework. World Wide Web Consortium, 2003. (See http://www.w3.org/TR/2003/REC-xptr-framework-20030325/.)
XPointer element() scheme
Paul Grosso, Eve Maler, Jonathan Marsh, Norman Walsh, editors. XPointer element() Scheme. World Wide Web Consortium, 2003. (Patrz http://www.w3.org/TR/2003/REC-xptr-element-20030325/.)

B Odno¶niki (Nienormatywne)

IETF RFC 2616
RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1. Internet Engineering Task Force, 1999. (Patrz http://www.ietf.org/rfc/rfc2616.txt.)
IETF RFC 3066
RFC 3066: Znaczniki dla identyfikacji Jêzyka. Internet Engineering Task Force, 2001. (Patrz http://www.ietf.org/rfc/rfc3066.txt.)
XML Inclusion Proposal
Jonathan Marsh, David Orchard, edytorzy. XML Inclusion Proposal (XInclude). World Wide Web Consortium, 2004. (Patrz http://www.w3.org/TR/1999/NOTE-xinclude-19991123.)
XML Linking Language
Steve DeRose, Eve Maler, David Orchard i Ben Trafford, editors. Jêzyk £±cz±cy XMLe (XLink). World Wide Web Consortium, 2001. (Patrz http://www.w3.org/TR/2001/REC-xlink-20010627/.)
Schemat XPointer xpointer()
Steve DeRose, Ron Daniel, Eve Maler, edytorzy. Schemat XPointer xpointer() . World Wide Web Consortium, 2002. (Patrz http://www.w3.org/TR/2002/WD-xptr-xpointer-20021219/.)
XPath 1.0
James Clark, Steve DeRose, edytorzy. Jêzyk XML Path (XPath) Wersja 1.0. World Wide Web Consortium, 1999. (Patrz http://www.w3.org/TR/1999/REC-xpath-19991116.)
IRI draft
Miêdzynarodowe Identyfikatory ¬ród³a (IRI). (Patrz http://www.ietf.org/internet-drafts/draft-duerst-iri-11.txt.)
Model Znaku
Martin J. Dürst, François Yergeau, Misha Wolf, Asmus Freytag, Tex Texin. Model Znaków dla World Wide Web 1.0: Normalizacja. World Wide Web Consortium, 2001. (Patrz http://www.w3.org/TR/charmod-norm/.)
Schematy XML
Henry S. Thompson, David Beech, Murray Maloney, Noah Mendelsohn, edytorzy. Schemat XML Czê¶æ 1: Struktury. World Wide Web Consortium, 2001. (Patrz http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/.)
XSL-FO
Sharon Adler et al. Rozszerzalny Jêzyk Stylesheet (XSL). World Wide Web Consortium, 2001. (Patrz http://www.w3.org/TR/2001/REC-xsl-20011015/.)
XHTML
Steven Pemberton et al. XHTML 1.0 Rozszerzalny Jêzyk Znaczników HyperText (Drugie wydanie). World Wide Web Consortium, 2002. (Patrz http://www.w3.org/TR/2002/REC-xhtml1-20020801/.)

C Przyk³ady (Nienormatywne)

C.1 Przyk³ad Podstawowej Inkluzji

xi:include, który wskazuje na dokument zewnêtrzny. Zak³adaj±c, podstawowy URI tego dokumentu to http://www.example.org/document.xml.

<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>120 Mz is adequate for an average home user.</p>
  <xi:include href="disclaimer.xml"/>
</document>

disclaimer.xml zawiera:

<?xml version='1.0'?>
<disclaimer>
  <p>
  Opinie przedstawione tutaj przedstawiaj± te indywidualne i nie powinny byæ interpretowane jako oficjalna
  polityka poparta przez tê organizacjê.
</p>
</disclaimer>

Zbiór informacji wynikaj±cy z rozwi±zywanych inkluzji na tym dokumencie jest taka sama (z wyj±tkiem w³asno¶ci zawarta historia i jêzyk) jak ta z nastêpuj±cego dokumentu:

<?xml version='1.0'?>

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

  <p>120 Mz jest adekwatne dla przeciêtnego prywatnego u¿ytkownika.
</p>
  <disclaimer xml:base="http://www.example.org/disclaimer.xml">
  <p>
  Opinie przedstawione tutaj przedstawiaj± te indywidualne i nie powinny byæ interpretowane jako oficjalna
  polityka poparta przez tê organizacjê.</p>
</disclaimer>
</document>

C.2 Przyk³ad inkluzji tekstowej

Nastêpuj±cy dokument XML zawiera "przyk³±d roboczy" w dokumencie.

<?xml version='1.0'?>

<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>This document has been accessed
  <xi:include href="count.txt" parse="text"/> times.</p>
</document>

gdzie count.txt zawiera:

324387

Zbiór informacji wynikaj±cy z rozwi±zywanych inkluzji na tym dokumencie jest taka sama (z wyj±tkiem w³asno¶ci zawarta historia i jêzyk) jak ta z nastêpuj±cego dokumentu:

<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>Ten dokument zosta³ otwarty
  324387 razy.</p>
</document>

C.3 Inkluzja tekstowa przyk³adu XML

Nastêpuj±cy dokument XML zawiera "przyk³±d roboczy" w dokumencie.

<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source of the "data.xml" resource:</p>
  <example><xi:include href="data.xml" parse="text"/></example>
</document>

data.xml zawiera:

<?xml version='1.0'?>
<data>
  <item><![CDATA[Brooks & Shields]]></item>
</data>

Zbiór informacji wynikaj±cy z rozwi±zywanych inkluzji na tym dokumencie jest taka sama (z wyj±tkiem w³asno¶ci zawarta historia i jêzyk) jak ta z nastêpuj±cego dokumentu:

<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source of the "data.xml" resource:</p>
  <example>&lt;?xml version='1.0'?&gt;
&lt;data&gt;
  &lt;item&gt;&lt;![CDATA[Brooks &amp; Shields]]&gt;&lt;/item&gt;
&lt;/data&gt;</example>
</document>

C.4 Przyk³ad fragmentu inkluzji

Nastêpuj±co przedstawiaj± siê wyniki za³±czanych fragmentów innego dokumentu XML. Przyjmuj±c, ¿e podstawowy URI dokumentu to http://www.example.com/JoeSmithQuote.xml.

<?xml version='1.0'?>
<price-quote xmlns:xi="http://www.w3.org/2001/XInclude">
  <prepared-for>Joe Smith</prepared-for>
  <good-through>20040930</good-through>
  <xi:include href="price-list.xml" xpointer="w002-description"/>
  <volume>40</volume>
  <xi:include href="price-list.xml" xpointer="element(w002-prices/2)"/>
</price-quote>

price-list.xml odnosi siê do DTD, który deklaruje atrybut id jako typ ID, i zawiera:

<?xml version='1.0'?>
<!DOCTYPE price-list SYSTEM "price-list.dtd">
<price-list xml:lang="en-us">
  <item id="w001">
    <description id="w001-description">
      <p>Normal Widget</p>
    </description>
    <prices id="w001-prices">
      <price currency="USD" volume="1+">39.95</price>
      <price currency="USD" volume="10+">34.95</price>
      <price currency="USD" volume="100+">29.95</price>
    </prices>
  </item>
  <item id="w002">
    <description id="w002-description">
      <p>Super-sized widget with bells <i>and</i> whistles.</p>
    </description>
    <prices id="w002-prices">
      <price currency="USD" volume="1+">59.95</price>
      <price currency="USD" volume="10+">54.95</price>
      <price currency="USD" volume="100+">49.95</price>
    </prices>
  </item>
</price-list>

Zbiór informacji wynikaj±cy z rozwi±zywanych inkluzji na tym dokumencie jest taka sama (z wyj±tkiem w³asno¶ci zawarta historia i jêzyk) jak ta z nastêpuj±cego dokumentu:

<?xml version='1.0'?>
<price-quote xmlns:xi="http://www.w3.org/2001/XInclude">
  <prepared-for>Joe Smith</prepared-for>
  <good-through>20040930</good-through>
  <description id="w002-description" xml:lang="en-us"
               xml:base="http://www.example.com/price-list.xml">
    <p>Super-sized widget with bells <i>and</i> whistles.</p>
  </description>
  <volume>40</volume>
  <price currency="USD" volume="10+" xml:lang="en-us"
         xml:base="http://www.example.com/price-list.xml">54.95</price>
</price-quote>

C.5 Przyk³ad zakresu inkluzji

Nastêpuj±co przedstawiaj± siê wyniki za³±czanego zakresu okre¶lonego przez XPointer. Przyjmuj±c, ¿e podstawowy URI dokumentu to http://www.example.com/document.xml.

<?xml version='1.0'?>
<document>
  <p>The relevant excerpt is:</p>
  <quotation>
    <include xmlns="http://www.w3.org/2001/XInclude"
       href="source.xml" xpointer="xpointer(string-range(chapter/p[1],'Sentence 2')/
             range-to(string-range(/chapter/p[2]/i,'3.',1,2)))"/>
  </quotation>
</document>

source.xml zawiera:

<chapter>
  <p>Sentence 1.  Sentence 2.</p>
  <p><i>Sentence 3.  Sentence 4.</i>  Sentence 5.</p>
</chapter>

Zbiór informacji wynikaj±cy z rozwi±zywanych inkluzji na tym dokumencie jest taka sama (z wyj±tkiem w³asno¶ci zawarta historia i jêzyk) jak ta z nastêpuj±cego dokumentu:

<?xml version='1.0'?>

<document>
  <p>The relevant excerpt is:</p>
  <quotation>
    <p xml:base="http://www.example.com/source.xml">Sentence 2.</p>
  <p xml:base="http://www.example.com/source.xml"><i>Sentence 3.</i></p>
  </quotation>
</document>

C.6 Przyk³ad rezerwy awaryjnej

Nastêpuj±cy dokument XML polega na mechani¼mie rezerwy awaryjnej, aby powie¶æ siê w zdarzeniu, ¿eby odno¶niki example.txt i fallback-example.txt nie by³y dostêpne..

<?xml version='1.0'?>
<div>
  <xi:include href="example.txt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude">
    <xi:fallback><xi:include href="fallback-example.txt" parse="text">
        <xi:fallback><a href="mailto:bob@example.org">Report error</a></xi:fallback>
      </xi:include></xi:fallback>
  </xi:include>
</div>

Je¿eli ani example.txt ani fallback-example.txt nie s± dostêpne, zbiór informacji wynikaj±cy z roz³±czania inkluzji na tym dokumencie jest taki sam (z wyj±tkiem w³asno¶ci zawarta historia i jêzyk) jak ta z nastêpuj±cego dokumentu:

<?xml version='1.0'?>
<div>
  <a href="mailto:bob@example.org">Report error</a>
</div>