Fallbacks
Documents that reference resources on other sites are subject to all the usual
problems of the Web: documents are deleted, documents move, servers
crash, DNS records aren’t updated fast enough, and more. The examples
so far all fail completely if the resource at the end of an href attribute can’t be found. However,
XInclude offers authors a means to provide alternate content in the
face of a missing document. Each XInclude element can contain a single
xi:fallback child element. If the remote document can’t be loaded,
the contents of the xi:fallback
element replace the xi:include element
instead of the contents of the remote resource. For example:
<xi:include href="AlanTuring.xml">
<xi:fallback>
Oops! Could not find Alan Turing!
</xi:fallback>
</xi:include>There’s no limit to what an xi:fallback element can contain. It can hold
plain text, a child element, mixed content, or even another xi:include element to be resolved if the top
one can’t be. For example, this xi:include element tries to load the same
document from three different sites:
<xi:include href="http://www.example.us/data.xml">
<xi:fallback>
<xi:include href="http://www.example.fr/data.xml">
<xi:fallback>
<xi:include href="http://www.example.cn/data.xml">
<xi:fallback>
Could not find the document in the U.S., France, or China.
</xi:fallback>
</xi:include>
</xi:fallback>
</xi:include>
</xi:fallback>
</xi:include>An xi:include element may not
contain more than one xi:fallback
child, and may not contain any