Да, это возможно, просто добавьте их в документ, вы их используете.Но я настоятельно не рекомендую использовать юридические лица для включения других документов (частей)!Как только рано или поздно вы столкнетесь с трудностями, один или несколько документов (частей) будут недоступны.Ваш документ не будет отображаться, и поиск проблемы вызывает его довольно неприятно.Гораздо лучшим решением является использование XInclude для включения документов.
Решение с записями ENTITY
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY section1 SYSTEM "../fragments/section1.xml">
<!ENTITY section2 SYSTEM "../fragments/section2.xml">
<!ENTITY section3 SYSTEM "../fragments/section3.xml">
]>
<book>
<chapter>
<title>Chapter 1</title>
§ion1;
§ion2;
§ion3;
</chapter>
</book>
И другой файл документа:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY section3_a SYSTEM "../fragments/section3_a.xml">
<!ENTITY section3_b SYSTEM "../fragments/section3_b.xml">
<!ENTITY section3_c SYSTEM "../fragments/section3_c.xml">
]>
<section id="Section3">
<title>Section 3</title>
§ion3_a;
§ion3_b;
§ion3_c;
</section>
СОВЕТ: Вы даже можете переместить все сущности вместе из ваших документов, см. Ответ, который я написал на этот вопрос Макросы DocBook?
Решение с XInclude
Вот пример использования документов с XInclude.Записи сущностей используются для небольших строк.И использование XInclude для включения файла.
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY maven.project.version "(not set)">
<!ENTITY % entities SYSTEM "entities.ent" >
%entities;
]>
<book>
<title>&product.name;</title>
<subtitle>Release Notes</subtitle>
<bookinfo>
<date>&product.release.date;</date>
<releaseinfo><?eval ${project.version}?></releaseinfo>
</bookinfo>
<!-- Include chapters -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="changes/chapter-release-2.0.xml" />
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="changes/chapter-release-2.1.xml" />
</book>
Файл главы (помещенный в каталог changes
), который включен в предыдущий документ.Если xi:include
используется, как указано выше, он прекратит рендеринг, если атрибут href
не может быть решен.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"[
<!ENTITY section-changes "section-changes-v2.0.xml">
<!ENTITY % entities SYSTEM "../entities.ent">
%entities;
]>
<chapter id="release-2.0">
<title>Release 2.0</title>
<para>
Information given in this chapter applies for <emphasis>&product.name; v2.0</emphasis>.
</para>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="§ion-changes;">
<xi:fallback><para>FIXME File not found: "§ion-changes;"</para></xi:fallback>
</xi:include>
</chapter>
Здесь xi:include
используется с отступлением, поэтому, если href
атрибут xi:include
не может быть решен, запасной вариант отображается в документе (Это покажет абзац с FIXME в нем. Здесь используется фактически сущность для ссылки на документ (местоположение). Это здорово, что эта ссылказатем может использоваться в разделах href
и FIXME!
Будьте осторожны при обращении к файлу сущностей ../entities.ent
Это снова может привести к неприятным ошибкам, когда их невозможно устранить.