Преимущество XHTML-модулей заключается в относительной простоте их объединения в любое количество новых языков. Web-дизайнер редко нуждается в создании новых модулей, однако при добавлении и исключении уже определенных модулей такая возможность не покажется излишней (см. главу 16).
Драйверы DTD - средство связывания модулей
Специалистами консорциума W3C разработан шаблон новых типов документов DTD, основанный на модулях XHTML (см. листинг 14.2).
Примечание Полное описание этого шаблона можно получить по адресу http:// www.w3.org/TR/2000/WD-xhtml-building-20000105/template.dtd.
ЛИСТИНГ 14.2. Шаблон описания типов данных - TEMPLATE.dtd
<!-- -->
<!-- Шаблон правил описания типов документа (DTD) --> <!-- Файл: TEMPLATE.dtd —> <!-- Шаблон (DTD) -->
<!-- Это шаблон для управления структурой документа.
Вы можете изменять его по своему желанию, но обратите внимание на комментарии относительно порядка следования описаний.
Пожалуйста, используйте для ссылки на этот документ следующий публичный идентификатор: "-//W3C//DTD XHTML-MYDTD//EN"
-->
<!ENTITY % XHTML.version "-//W3C//DTD XHTML-MYDTD//EN">
<!— Зарезервировано для применения с пространством имен XLink -->
<! ENTITY % XLmk.ns " " >
<!ENTITY % XLink.attrib " " >
<!-- Зарезервировано для будущего применения с профилями документов -->
<!ENTITY % XHTML.profile " " >
<!-- Возможности интернационализации документа.
Этот компонент используется для объявления элементов и атрибутов, которые служат для поддержки
интернационализации. Выберите ключевое слово (INCLUDE либо IGNORE) в соответствии с требованиями собственного проекта языка разметки
-->
<!ENTITY % XHTML.I18n "IGNORE" > < ! -->
<!-- Описание модели содержания.
Помните о возможности модификации данной модели или ее замены путем внесения изменений в следующее объявление ENTITY
-->
<!ENTITY %xhtml-model.mod
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN" SYSTEM "http://www.w3.org/TR/xhtmlll/DTD/xhtmlll-model-1.mod" >
<!-- Место для переопределения созданного ранее каркаса документа -->
<!-- Этот сегмент служит для размещения объявлений элементов разметки в описании правил DTD, перед объявлением каркаса -->
<!ENTITY % xhtml-prefw-redecl.module "IGNORE" > <![%xhtml-prefw-redecl.module;[ %xhtml-prefw-redecl.mod
<!-- Завершение описания модуля xhtml-prefw-redecl.module -->]]>
<!-- Если в вашем проекте необходим модуль событий, его следует описывать здесь. В этом шаблоне он исключен — >
<!ENTITY % xhtml-events.module "IGNORE" >
<!-- Модульное построение каркаса -->
<!ENTITY % xhtml-framework.module "INCLUDE" >
<! [%xhtml- framework.module; [
<!ENTITY % xhtml-framework.mod
PUBLIC "-//W3С//ENTITIES XHTML 1.1 Modular Framework 1.0//EN" "xhtmlll-framework-1.mod" > %xhtml- framework.mod;]]>
<!-- Место для переопределения описаний, следующих за построением каркаса -->
<!-- Этот сегмент служит для размещения объявлений элементов разметки в описании правил DTD, после объявления каркаса -->
<!ENTITY % xhtml-postfw-redecl.module "IGNORE" >
<![%xhtml-postfw-redecl.module;[ %xhtml-postfw-redecl.mod
<!-- Завершение описания модуля xhtml-postfw-redecl.module -->]]>
<!-- Basic Text Module (Базовый текстовый модуль) - обязательный -->
<!ENTITY % xhtml-text.module "INCLUDE" > <![%xhtml-text.module;[ <!ENTITY % xhtml-text.mod
PUBLIC "-//W3С//ELEMENTS XHTML 1.1 Basic Text 1.0//EN" "xhtmlll-text-1.mod" > %xhtml-text.mod;]]>
<!-- Hypertext Module (Модуль гипертекста)- обязательный --> <!ENTITY % xhtml-hypertext.module "INCLUDE" > <![%xhtml-hypertext.module;[ <!ENTITY % xhtml-hypertext.mod
PUBLIC "-//W3С//ELEMENTS XHTML 1.1 Hypertext 1.0//EN" "xhtmlll-hypertext-1.mod" > %xhtml-hypertext.mod;]]>
<!-- Lists Module (Модуль списков) - обязательный --> <[ENTITY % xhtml-list.module "INCLUDE" > <![%xhtml-list.module;[ <!ENTITY % xhtml-list.mod
PUBLIC "-//W3С//ELEMENTS XHTML 1.1 Lists 1.0//EN" "xhtmlll-list-l.mod" > %xhtml-list.mod;]]>
<!-- Здесь можно размещать ваши собственные модули. Применяйте
базовые формы описаний, представленные выше. Обратите внимание на включение в файл каталога для каждого задействованного вами модуля открытого FPI (public FPI). В этом месте разрешается также использовать модули, определенные стандартами W3C
-->
<!-- Document Structure Module (Модуль структуры документа) -обязательный -->
<[ENTITY % xhtml-struct.module "INCLUDE" > <![%xhtml-struct.module;[ <!ENTITY % xhtml-struct.mod
PUBLIC "-//W3С//ELEMENTS XHTML 1.1 Lists 1.0//EN" "xhtmlll-struct-1.mod" > %xhtml-struct.mod;]]>
<!-- Завершение описания шаблона DTD -->
<!-- -->
Используя файл с шаблоном DTD, можно рассмотреть механизм связывания различных модулей для создания нового XHTML-семейства языков разметки.
В следующем примере мы объединим базовые модули, обязательные для любого члена XHTML-семейства языков, и добавим предписанный стандартом W3C базовый модуль таблиц (Basic Tables Module).
Первые изменения, которые необходимо внести, касаются наименования файла, формального публичного идентификатора нового языка и пространства имен, связанного с данным языком:
<!-- -->
<!-- Шаблон правил описания типов документа (DTD) --> <!-- Файл: TableML.dtd -->
<!-- Каркас для правил описания типов (DTD) -->
<!-- Здесь представлен шаблон для управления структурой
документа.
Вы можете изменять его по своему желанию, но обратите внимание на комментарии относительно порядка следования описаний.
Пожалуйста, используйте для регистрации следующий открытый идентификатор:
"-//WEBGEEK//DTD XHTML-TABLEML//EN"
— >
<!ENTITY % XHTML.version "-//WEBGEEK//DTD XHTML-TABLEML//EN" >
В данном примере мы не станем вводить новые модули в структуру языка разметки: секция для внесения изменений в модель документа остается прежней. Добавим в описание DTD базовый модуль таблиц. Это необходимо сделать сразу после комментария: «Здесь можно размещать ваши собственные модули»:
<!-- Здесь можно размещать ваши собственные модули.
Применяйте базовые формы описаний, представленные выше. Обратите внимание на включение в файл каталога для каждого задействованного вами модуля открытого FPI (public FPI). В этом месте разрешается также использовать модули, определенные стандартами W3C
-->
Начало описания базового модуля по форме не отличается от описаний остальных модулей.
Примечание Специфические отличия, связанные с реализацией базового модуля, представлены в документе по модулям (Modularization document), который можно получить по адресу http://www.w3.org/TR/2000/PR-xhtml-modularization-20000705/dtd module defs.html#sec ?.35.
<!-- Базовый модуль таблиц -->
<!ENTITY % xhtml-basic-table-1.module "INCLUDE" >
<![%xhtml-basic-table-l.module;[
<!ENTITY % xhtml-basic-table-1.mod;
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Basic Tables 1.0//EN" "xhtml-basic-table-1.mod" %xhtml-basic-table-l.mod;]]>
Окончательный вариант описания правил DTD представлен в листинге 14.3.
Листинг 14.3. Правила типов языка разметки таблиц - TableML.DTD
<!-- -->
<!-- Правила описания типов (DTD) языка разметки таблиц -->
<!-- Файл: TableML.dtd
-->
<!-- Шаблон правил описания типов (DTD) -->
<!-- Здесь представлен файл управления структурой.
Вы можете изменять его по своему желанию, но обратите внимание на комментарии относительно порядка следования описаний
Пожалуйста, используйте для регистрации следующий публичный идентификатор:
"-//WEBGEEK//DTD XHTML-TABLEML 1.0//EN"
-->
<!ENTITY % XHTML.version "-//WEBGEEK//DTD XHTML-TABLEML 1.0//EN" >
<!— Зарезервировано для применения с пространством имен XLink -->
<!ENTITY % XLink.ns " " >
<!ENTITY % XLinkns.attrib " " >
<!-- Зарезервировано для будущего применения с профилями документов -->
<!ENTITY % XHTML.profile " " >
<!-- Возможности интернационализации документа.
Этот компонент используется для объявления элементов и атрибутов, которые служат для поддержки
интернационализации. Выберите ключевое слово (INCLUDE либо IGNORE) в соответствии с требованиями собственного проекта языка разметки
-->
<!ENTITY % XHTML.II8n "IGNORE" >
<!-- Описание модели содержания.
Помните о возможности модификации данной модели или ее замены путем внесения изменений в следующее объявление ENTITY
-->
<!ENTITY %xhtml-model.mod
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN" SYSTEM "http://www.w3/org/TR/xhtmlll/DTD/xhtmlll-model-l.mod" >
<!-- Место для переопределения созданного ранее каркаса документа -->
<!-- Этот сегмент служит для размещения объявлений элементов разметки в описании правил DTD, перед объявлением каркаса
-->
<!ENTITY % xhtml-prefw-redecl.module "IGNORE" > <![%xhtml-prefw-redecl.module;[ %xhtml-prefw-redecl.mod
<!-- Завершение описания модуля xhtml-prefw-redecl.module -->]]>
<!-- Если в вашем проекте необходим модуль событий,
его следует описывать здесь. В этом шаблоне он исключен
-->
<!ENTITY % xhtml-events.module "IGNORE" >
<!-- Модульное построение каркаса -->
<!ENTITY % xhtml-framework.module "INCLUDE" >
<! [%xhtml- framework.module; [
<!ENTITY % xhtml-framework.mod
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Modular Framework 1.0//EN" "xhtmlll-framework-1.mod" > %xhtml- framework.mod;]]>
<!-- Место для переопределения описаний, следующих за построением каркаса -->
<!-- Этот сегмент служит для размещения объявлений элементов разметки в описании правил DTD, после объявления каркаса
-->
<!ENTITY % xhtml-postfw-redecl.module "IGNORE" > <![%xhtml-postfw-redecl.module;[ %xhtml-postfw-redecl.mod
<!-- Завершение описания модуля xhtml-postfw-redecl.module -->]]>
<!-- Базовый текстовый модуль (обязательный) --> <!ENTITY % xhtml-text.module "INCLUDE" > <![%xhtml-text.module;[ <!ENTITY % xhtml-text.mod
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Basic Text 1.0//EN" "xhtmlll-text-1.mod" > %xhtml-text.mod;]]>
<!-- Модуль гипертекста (обязательный) --> <!ENTITY % xhtml-hypertext.module "INCLUDE" > <![%xhtml-hypertext.module;[ <!ENTITY % xhtml-hypertext.mod
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Hypertext 1.0//EN" "xhtml11-hypert ext-1.mod" > %xhtml-hypertext.mod;]]>
<!-- Модуль списков (обязательный) --> <!ENTITY % xhtml-list.module "INCLUDE" >
<![%xhtml-1ist.module;[ <!ENTITY % xhtml-list.mod
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Lists 1.0//EN" "xhtmlll-list-1.mod" > %xhtml-list.mod; ] ]>
<!-- Здесь можно размещать ваши собственные модули.
Применяйте базовые формы описаний, представленные выше. Обратите внимание на включение в файл каталога для каждого задействованного вами модуля открытого FPI (public FPI). В этом месте разрешается также использовать модули, определенные стандартами W3C
-->
<!-- Базовый модуль таблиц -->
<!ENTITY % xhtml-basic-table-1.module "INCLUDE" > <![%xhtml-basic-table-l.module;[ <!ENTITY % xhtml-basic-table-1.mod
PUBLIC "-//W3С//ELEMENTS XHTML 1.1 Basic Tables 1.0//EN" "xhtml-basic-table-1.mod" > %xhtml-basic-table-l.mod;]]>
<!-- Модуль структуры документа (обязательный) -->
<!ENTITY % xhtml-struct.module "INCLUDE" >
<![%xhtml-list.module;[
<!ENTITY % xhtml-struct.mod
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Document Structure 1.0//EN" "xhtmlll-struct-1.mod" > %xhtml-struct.mod;]]>
<!-- Завершение описания правил DTD языка разметки страниц -->
<!-- -->
Опубликовал vovan666
April 09 2013 22:31:32 ·
0 Комментариев ·
3296 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.