Интегрирование отдельных модулей в XHTML
Если модуль (помните, что модуль может быть коллекцией других модулей) содержит элементы, которые только ссылаются один на другой в своей модели содержимого, то говорят, что модуль "внутренне завершён". В связи с этим модуль может использоваться как таковой; (например, Вы можете определить ОТД, которое является этим модулем, и использовать один из его элементов в качестве корневого элемента). Интеграция такого модуля в XHTML - это процесс из трёх этапов:
Рассмотрим подключение элементов, определённых .
Элемент myelement является корневым. Чтобы подключить этот элемент под элементом img, и только элементом img , в XHTML может сработать следующее:
<!ENTITY % img.content "( %MyModule.myelement.qname; )*">
ОТД, определённое с этой моделью содержимого, позволяет создать документ, подобный следующему фрагменту:
<img src="..."> <myml:myelement >Это содержимое локально определённого элемента</myml:myelement> </img>
Важно отметить, что обычно элемент img имеет модель содержимого EMPTY. Путём добавления myelement к этой модели содержимого мы в действительности просто заместили
EMPTY на myelement.
В случае с элементами, которые уже имеют определённые модели содержимого, добавление элемента может потребовать переобъявления существующей модели содержимого в дополнение к myelement.