Modularizáció

A modularizáció alapvető feladat nagy dokumentumállományok kezelésének esetében. Fontos cél a külön ellenőrizhetőség és a párhuzamos fejlesztés.

Az első ötlet az entitások külső definiálhatóságán alapul:


<!ENTITY name SYSTEM "filename">

Azaz az entitás definíviója egy külső fájlban helyezkedik el. Ezt kihasználba:


<!DOCTYPE book [
<!ENTITY chap1 SYSTEM "chap1.xml">
<!ENTITY chap2 SYSTEM "chap2.xml">
<!ENTITY chap3 SYSTEM "chap3.xml">
<!ENTITY appa SYSTEM "appa.xml">
<!ENTITY appb SYSTEM "appb.xml">
]>
<book xmlns="http://docbook.org/ns/docbook">
<title>My First Book</title>
&chap1;
&chap2;
&chap3;
&appa;
&appb;
</book>

Ebben az esetben külön validálhatóak az egyes fejezetek. Viszont a külső parszolt entitások által meghivatkozott entitások tilosak.

Egy másik kontrukciós lehetőség az XInclude használata.


<book xmlns="http://docbook.org/ns/docbook"
      xmlns:xi="http://www.w3.org/2001/XInclude">
<title>My First Book</title>
<xi:include href="chap1.xml"/>
<xi:include href="chap2.xml"/>
<xi:include href="chap3.xml"/>
<xi:include href="appa.xml"/>
<xi:include href="appb.xml"/>
</book>