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>
Az XInclude használható olyan esetekben is, amikor nincsen DTD.
Az XInclue által hivatkozott dokumentum egy teljes XML állomány. Deklarálhat saját DTD-beli entitásokat.