Модуляризация XHTML



Использование модуля как отдельного (stand-alone) ОТД


Иногда необходимо, чтобы модуль XHTML использовался также в качестве отдельного ОТД (Определения Типа Документа). Хорошим примером может служить вышеприведённый модуль Inventory. Его объекты должны быть внедряемы в документ XHTML и доступны как отдельные самостоятельные документы, извлечённые из базы данных (к примеру). Проще всего сделать это путём определения файла ОТД, который устанавливает компоненты Вашего модуля.

Подобное ОТД могло бы иметь такую структуру:

  • Включить модуль XHTML Datatypes (Ваш модуль qnames скорее всего использует некоторые из этих типов данных - он обычно использует тип данных URI для атрибута xmlns).
  • Включить модуль Qnames для Вашего модуля.
  • Определить объект параметра NS.decl.attrib как %MODULE.xmlns.extra.attrib;.
  • Включить модуль(и) Declaration для Вашего модуля.
  • Пример этого для нашего модуля Inventory приведён здесь:

    <!-- ...................................................................... --> <!-- Inventory Elements DTD ............................................... --> <!-- file: inventory-1.dtd

    PUBLIC "-//MY COMPANY//DTD XHTML Inventory 1.0//EN" SYSTEM "http://www.example.com/DTDs/inventory-1.dtd"

    xmlns:inventory="http://www.example.com/xmlns/inventory" ...................................................................... -->

    <!-- Inventory Module

    shelf item sku desc price

    Этот модуль определяет простую структуру инвентаризации -->

    <!-- Вставляет типы данных --> <!ENTITY % xhtml-datatypes.mod PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN" "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-datatypes-1.mod" > %xhtml-datatypes.mod;

    <!-- Вставляет квалифицированные имена --> <!ENTITY % Inventory-qname.mod SYSTEM "inventory-qname-1.mod" > %Inventory-qname.mod;

    <!ENTITY % NS.decl.attrib "%Inventory.xmlns.extra.attrib;">

    <!ENTITY % Inventory.mod SYSTEM "inventory-1.mod" > %Inventory.mod;




    Содержание  Назад  Вперед