Спецификация Java Server Pages 1.2

       

C.1 ОТД для Файлов TagLibrary-Дескриптора


Это ОТД, описывающее файл 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>


Содержание раздела