XInclude
XML Inclusions (XInclude) — рекомендация Консорциума Всемирной паутины, которая описывает механизм включений в XML-документы текстовых файлов или других XML-документов (а также их частей).
Общие сведения
Версия 1.0 спецификации XInclude описывает пространство имён http://www.w3.org/2001/XInclude и два XML-элемента внутри этого пространства имён: include и fallback.
Элемент include определяет включение:
<include xmlns="http://www.w3.org/2001/XInclude" href="included_document.xml"/>
Можно также включить текстовый файл:
<include xmlns="http://www.w3.org/2001/XInclude" href="my_text.txt" parse="text"/>
Элемент fallback позволяет задать альтернативное содержимое для случаев, когда ресурс, указанный в include, недоступен. Возможно использование элементов include внутри fallback, например:
<div xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="contents.xml">
<xi:fallback>
<xi:include href="alternative_contents.xml">
<xi:fallback><strong>ошибка: </strong>оба ресурса недоступны</xi:fallback>
</xi:include>
</xi:fallback>
</xi:include>
</div>
Семантика XInclude отличается от XLink тем, что XInclude описывает включение (слияние) документов, подобно #include препроцессора языка Си, в то время как XLink определяет ссылку из одного документа на другой.
Механизм XInclude обрабатывается на низком уровне (обычно отдельным XInclude-процессором), но не на уровне синтаксического анализатора XML.
Пример использования XInclude
Исходный документ:
<?xml version='1.0' encoding="UTF-8"?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
<p>Текст моего документа</p>
<xi:include href="copyright.xml"/>
</document>
Если copyright.xml содержит следующие строки:
<?xml version='1.0' encoding="UTF-8"?>
<copyright>Все права защищены © 2001-2010</copyright>
то после обработки исходного документа процессором XInclude результатом является следующий документ:
<?xml version='1.0' encoding="UTF-8"?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
<p>Текст моего документа</p>
<copyright>Все права защищены © 2001-2010</copyright>
</document>