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



Подмодуль Qualified Names/Квалифицированные Имена - часть 2


Если модуль добавляет атрибуты к элементам, определённым в модуле, не разделяющем (share) ПИ данного модуля, объявите эти атрибуты так, чтобы они использовали префикс %MODULE.pfx. Например:

<ENTITY % MODULE.img.myattr.qname "%MODULE.pfx;myattr" >

Пример подмодуля qname для гипотетического Inventory Module приведён ниже:

<!-- ...................................................................... --> <!-- Inventory Qname Module ................................................... --> <!-- file: inventory-qname-1.mod

PUBLIC "-//MY COMPANY//ELEMENTS XHTML Inventory Qnames 1.0//EN" SYSTEM "http://www.example.com/DTDs/inventory-qname-1.mod"

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

<!-- Объявляется значение по умолчанию для префиксирования элементов этого модуля --> <!-- Заметьте, штаа NS.prefixed будет переопределён в XHTML Framework или объектом документа. --> <!ENTITY % NS.prefixed "IGNORE" > <!ENTITY % Inventory.prefixed "%NS.prefixed;" >

<!-- Объявляется действующее ПИ данного модуля --> <!ENTITY % Inventory.xmlns "http://www.example.com/xmlns/inventory" >

<!-- Объявляется префикс по умолчанию для данного модуля --> <!ENTITY % Inventory.prefix "inventory" >

<!-- Объявляется префикс для данного модуля --> <![%Inventory.prefixed;[ <!ENTITY % Inventory.pfx "%Inventory.prefix;:" > ]]> <!ENTITY % Inventory.pfx "" >

<!-- Объявляется атрибут ПИ xml для данного модуля --> <![%Inventory.prefixed;[ <!ENTITY % Inventory.xmlns.extra.attrib "xmlns:%Inventory.prefix; %URI.datatype; #FIXED '%Inventory.xmlns;'" > ]]> <!ENTITY % Inventory.xmlns.extra.attrib "" >

<!-- Объявляется дополнительное ПИ. которое должно быть включено в элементы XHTML --> <!ENTITY % XHTML.xmlns.extra.attrib %Inventory.xmlns.extra.attrib; >

<!-- Теперь определяются квалифицированные имена для всех элементов модуля --> <!ENTITY % Inventory.shelf.qname "%Inventory.pfx;shelf" > <!ENTITY % Inventory.item.qname "%Inventory.pfx;item" > <!ENTITY % Inventory.desc.qname "%Inventory.pfx;desc" > <!ENTITY % Inventory.sku.qname "%Inventory.pfx;sku" > <!ENTITY % Inventory.price.qname "%Inventory.pfx;price" >




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