В этом приложении содержится ОТД/DTD для дескриптора библиотеки тэгов (TLD) с использованием JSP 1.2.
Все JSP 1.2-контейнеры должны принимать такой TLD.
Это то же самое ОТД, что и "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd", исключая некоторые изменения форматирования текста для извлечения комментариев и для того, чтобы сделать его более читабельным.
Это ОТД, описывающее файл Tag Library Descriptor/Дескриптора Библиотеки Тэгов в формате JSP 1.2.
<!--Это ОТД, определяющее формат/синтаксис файла Дескриптора Библиотеки Тэгов (.tld)
(XML) JavaServer Pages 1.2.
Tag Library/Библиотека Тэгов это JAR-файл (архив), содержащий верный экземпляр
файла Дескриптора Библиотеки Тэгов (taglib.tld)
в субдиректории META-INF, а также соответствующие классы реализации и другие
ресурсы, необходимые для выполнения определённых в нём акций.
Использование является субъектом лицензирования.
-->
<!NOTATION WEB-JSPTAGLIB.1_2 PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN">
<!--Все ДБТ JSP 1.2 обязаны включать DOCTYPE в следующей форме:
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library
1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-->
<!--Элемент
taglib является корнем документа, он определяет:
tlib-version - версию данной реализации библиотеки тэгов;
jsp-version - версию JSP, на которой основана библиотека тэгов;
short-name - простое имя по умолчанию, которое может использоваться JSP-утилитами
авторизации для создания имён с мнемоническим значением; например, it
может быть использовано как значение префикса в директивах taglib, uri
как uri, уникально идентифицирующий эту taglib;
display-name - элемент display-name содержит краткое имя, предназначенное для отображения утилитами;
small-icon - необязательная маленькая иконка, которая может использоваться утилитами;
large-icon необязательная большая иконка, которая может использоваться утилитами;
description - обычная строка, описывающая "use/использование" этой taglib,
должна быть понятна пользователю;
validator - информация по выбору/optional TagLibraryValidator'а;
listener - по выбору, спецификация прослушивателя событий.
-->
<!ELEMENT taglib
(tlib-version, jsp-version, short-name, uri?, display-name?, small-icon?,
large-icon?, description?, validator?, listener*, tag+)>
<!ATTLIST taglib
id ID #IMPLIED
xmlns CDATA #FIXED "http://java.sun.com/JSP/TagLibraryDescriptor">
<!-- Значение элемента
tlib-version описывает версию (номер) этой библиотеки тэгов.
Этот элемент является мандатным/обязательным.
#PCDATA ::=
[0-9]*{ "."[0-9] }0..3
-->
<!ELEMENT
tlib-version (#PCDATA)
<!-- Значение элемента
jsp-version описывает JSP-версию (номер), который необходим данной
библиотеке тэгов для правильного функционирования. Этот элемент является
мандатным. Для JSP 1.2 значение будет "1.2" (без кавычек).
#PCDATA ::= [0-9]*{ "."[0-9] }0..3
-->
<!ELEMENT jsp-version (#PCDATA)>
<!-- Значением элемента
short-name является имя, которое может использоваться утилитами авторизации JSP
для создания имён с мнемоническим значением; например, оно может быть
использовано предпочтительное значение префикса в директивах taglib.
Не используйте пробелы и не начинайте имя с цифры или символа подчёркивания.
#PCDATA ::= NMTOKEN
-->
<!ELEMENT short-name (#PCDATA)>
<!-- Значением элемента
uri является публичный URI, уникально идентифицирующий точную семантику этой библиотеки тэгов.
-->
<!ELEMENT uri (#PCDATA)>
<!-- Значением элемента
description является произвольная текстовая строка, описывающая библиотеку тэгов.
-->
<!ELEMENT description(#PCDATA)>
<!-- Элемент validator
предоставляет информацию о необязательном проверщике, который можно
использовать для проверки соответствия использования JSP-страницей данной библиотеки тэгов.
-->
<!ELEMENT validator (validator-class, init-param*, description?)>
<!-- Элемент
validator-class
определяет класс TagLibraryValidator, который может использоваться для проверки
соответствия использования JSP-страницей данной библиотеки тэгов.
-->
<!ELEMENT validator-class (#PCDATA)>
<!-- Элемент init-param
содержит пару имя/значение как параметр инициализации.
-->
<!ELEMENT init-param (param-name, param-value, description?)>
<!-- Элемент param-name
содержит имя параметра.
-->
<!ELEMENT param-name (#PCDATA)>
<!-- Элемент param-value
содержит значение параметра.
-->
<!ELEMENT param-value (#PCDATA)>
<!-- Элемент listener
определяет возможный/optional объект прослушивателя событий, инстанциируемый
и регистрируемый автоматически.
-->
<!ELEMENT listener (listener-class)>
<!-- Элемент listener-class
объявляет класс приложения, который обязан быть зарегистрирован как компонент/bean
прослушивателя web-приложения.
См. детали в спецификации Servlet 2.3.
-->
<!ELEMENT listener-class (#PCDATA)>
<!-- Элемент tag определяет акцию в данной библиотеке тэгов. Элемент tag имеет один атрибут,id.
Элемент tag может иметь несколько субэлементов, определяющих:
name - уникальное имя акции
tag-class - класс обработчика тэга, реализующий javax.servlet.jsp.tagext.Tag
tei-class - необязательный подкласс класса javax.servlet.jsp.tagext.TagExtraInfo
body-content - тип содержимого тела
display-name - краткое имя, предназначенное для отображения утилитами
small-icon - необязательная небольшая иконка, которая может использоваться утилитами
large-icon - необязательная большая иконка, которая может использоваться утилитами
description - необязательная специфическая информация о тэге
variable - необязательная информация о переменной скриптинга
attribute - все атрибуты данной акции
example - необязательное неформальное описание примера использования данной акции.
-->
<!ELEMENT tag (name, tag-class, tei-class?, body-content?, display-name?, small-icon?,
large-icon?, description?, variable*, attribute*, example?)>
<!-- Элемент
tag-class указывает подкласс класса javax.serlvet.jsp.tagext.Tag, реализующий
семантику времени запроса для данного тэга. Этот элемент необходим.
#PCDATA ::= полное квалифицированное имя Java-класса
-->
<!ELEMENT tag-class (#PCDATA)>
<!-- Элемент tei-class
указывает подкласс класса javax.serlvet.jsp.tagext.TagExtraInfo для данного тэга.
Этот класс инстанциируется на этапе трансляции. Это элемент по выбору/optional.
#PCDATA ::= полное квалифицированное имя Java-класса
-->
<!ELEMENT tei-class (#PCDATA)>
<!-- Элемент body-content
предоставляет информацию о содержимом тела данного тэга. Этот элемент
предназначается прежде всего для утилитами компоновки страниц.
В настоящее время специфицировано 3 значения:
tagdependent - тело тэга интерпретируется самой реализацией тэга и как правило
на другом "langage", например, встроенные операторы SQL
JSP - тело тэга содержит вложенный JSP-синтаксис
empty - тело тэга обязано быть пустым
Это необязательный для использования элемент; значение по умолчанию - JSP.
#PCDATA ::= tagdependent | JSP | empty
-->
<!ELEMENT body-content (#PCDATA)>
<!-- Элемент display-name
содержит краткое имя, которое предназначено для отображения утилитами.
-->
<!ELEMENT
display-name (#PCDATA)>
<!-- Элемент large-icon
содержит имя файла, содержащего большое (32 x 32) изображение-иконку. Эта иконка может использоваться утилитами.
Имя файла задано в относительном пути библиотеки тэгов. Изображение обязано
иметь формат JPEG или GIF, а имя файла обязано заканчиваться суффиксом ".jpg" или ".gif", соответственно.
-->
<!ELEMENT large-icon (#PCDATA)>
<!-- Элемент small-icon
содержит имя файла, содержащего маленькое (16 x 16) изображение-иконку. Эта
иконка может использоваться утилитами.
Имя файла задано в относительном пути библиотеки тэгов. Изображение обязано
иметь формат JPEG или GIF, а имя файла обязано заканчиваться суффиксом
".jpg" или ".gif", соответственно.
-->
<!ELEMENT small-icon (#PCDATA)>
<!-- Элемент example предоставляет неформальное описание примера использования тэга.
-->
<!ELEMENT example (#PCDATA)>
<!-- Элемент variable
предоставляет информацию о переменных скриптинга, определённых данным тэгом.
Ошибкой (времени трансляции) для данной акции будет считаться, если одна или более
субэлементов переменной будут иметь класс TagExtraInfo, который возвращает не-null объект.
Субэлементы в variable имеют форму:
name-given - имя переменной - константа
name-from-attribute - имя атрибут. чьё значение (времени трансляции) даст имя переменной.
Необходимо наличие одного из элементов: name-given или name-from-attribute.
variable-class - имя класса переменной. java.lang.String - имя по умолчанию.
declare - объявляется переменная, или нет. "True" - значение по умолчанию.
scope - область видимости определённой переменной скриптинга. NESTED - по умолчанию.
-->
<!ELEMENT variable ( (name-given | name-from-attribute), variable-class?, de-clare?, scope?,
description?)>
<!-- Элемент name-given
предоставляет имя переменной скриптинга. Необходимо наличие одного из элементов:
name-given или name-from-attribute.
-->
<!ELEMENT name-given (#PCDATA)>
<!-- Значением элемента name-from-attribute является имя атрибута, чьё значение
(времени трансляции) даст имя переменной. Необходимо наличие одного из элементов:
name-given или name-from-attribute.
-->
<!ELEMENT name-from-attribute
(#PCDATA)>
<!-- Элемент variable-class
это имя класса для переменной скриптинга. Это элемент по выбору/optional; по умолчанию - java.lang.String.
-->
<!ELEMENT variable-class (#PCDATA)>
<!-- Значение элемента
declare указывает, определяется переменная скриптинга, или нет.
См. детали в TagExtraInfo.
Это необязательный элемент/optional и по умолчанию - true.
-->
<!ELEMENT
declare (#PCDATA)>
<!-- Значение элемента
scope описывает область видимости переменной скриптинга.
См. детали в TagExtraInfo.
Это необязательный элемент/optional и значение по умолчанию - строка "NESTED".
Другими допустимыми значениями являются "AT_BEGIN" и "AT_END".
-->
<!ELEMENT scope (#PCDATA)>
<!-- Элемент attribute
определяет атрибут для вкладывающего/содержащего тэга.
Элемент attributre может иметь несколько субэлементов:
name - имя атрибута
attribute - необходим/required атрибут, или необязателен/optional
rtexpravalue - является ли этот атрибут атрибутом времени выполнения/runtime
type - тип атрибута
description - описание атрибута
-->
<!ELEMENT
attribute (name, required? , rtexprvalue?, type?, description?)>
<!-- Элемент name
определяет каноническое имя определяемых тэга или атрибута
#PCDATA ::= NMTOKEN
-->
<!ELEMENT name(#PCDATA)>
<!-- Значение элемента
required указывает, обязателен или необязателен вкладывающий атрибут. Этот
элемент необязателен, и значение по умолчанию - "false".
#PCDATA ::= true | false | yes | no
-->
<!ELEMENT required (#PCDATA)>
<!-- Значение элемента
rtexpvalue указывает, может ли значение атрибута динамически вычисляться на
этапе запроса, что противоположно static-значению, определяемому на этапе
трансляции. Этот элемент необязателен, и значение по умолчанию - "false".
#PCDATA ::= true | false | yes | no
-->
<!ELEMENT rtexprvalue (#PCDATA)>
<!-- Значение элемента type описывает Java-тип значения атрибута.
Для static-значений (которые определяются на этапе трансляции) тип всегда java.lang.String.
-->
<!ELEMENT type (#PCDATA)>
<!-- ID-атрибуты -->
<!ATTLIST tlib-version id ID #IMPLIED>
<!ATTLIST jsp-version id ID #IMPLIED>
<!ATTLIST short-name id ID #IMPLIED>
<!ATTLIST uri id ID #IMPLIED>
<!ATTLIST description id ID #IMPLIED>
<!ATTLIST example id ID #IMPLIED>
<!ATTLIST tag id ID #IMPLIED>
<!ATTLIST tag-class id ID #IMPLIED>
<!ATTLIST tei-class id ID #IMPLIED>
<!ATTLIST body-content id ID #IMPLIED>
<!ATTLIST attribute id ID #IMPLIED>
<!ATTLIST name id ID #IMPLIED>
<!ATTLIST required id ID #IMPLIED>
<!ATTLIST rtexprvalue id ID #IMPLIED>
<!ATTLIST param-name id ID #IMPLIED>
<!ATTLIST param-value id ID #IMPLIED>
<!ATTLIST listener id ID #IMPLIED>
<!ATTLIST listener-class id ID #IMPLIED>