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

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


Следующее ОТД описывает файл Tag Library Descriptor в формате JSP 1.1.

<!--Это ОТД, определяющее файл (.tld) (XML) формата/синтаксиса JavaServer Pages 1.1 Tag Library descriptor'а.

Tag Library/Библиотека Тэгов это JAR-файл, содержащий файл верных экземпляров Tag Library Descriptor'а (taglib.tld) в субдиректории META-INF вместе с с соответствующими реализующими классами и другими ресурсами, необходимыми для реализации тэгов, определённых в ней.

Использование является субъектом лицензирования.
-->
<!-- Тэг taglib является корнем документа, он определяет:

tlibversion  - версия реализации библиотеки тэгов

jspversion - версия JSP, на которой основана библиотека тэгов

shortname - простое краткое имя по умолчанию, которое может использоваться утилитами авторизации JSP для создания имён с мнемоническим значением; например, it может использоваться как предпочтительное значение префикса в директивах taglib

uri - uri, уникально идентифицирующий эту taglib

info - простая строка, описывающая “использование” этой taglib, должна различаться пользователем
-->
<!ELEMENT taglib (tlibversion, jspversion?, shortname, uri?, info?, tag+)>

<!ATTLIST taglib id ID #IMPLIED
xmlns CDATA #FIXED

“http://java.sun.com/dtd/web-jsptaglibrary_1_1.dtd”
>

<!-- Описывает версию (номер) библиотеки тэгов (dewey decimal) #PCDATA ::= [0-9]*{ “.”[0-9] }0..3
-->

<!ELEMENT tlibversion (#PCDATA)>



<!--Описывает версию (номер), наличия которой требует эта библиотеки тэгов для правильного функционирования (dewey decimal)
По умолчанию 1.1

#PCDATA ::= [0-9]*{ “.”[0-9] }0..3
-->

<!ELEMENT jspversion (#PCDATA)>

<!-- Определяет краткое (по умолчанию) shortname, используемое для имён тэгов и переменных, используемых/созданных этой библиотекой тэгов. Не используйте пробелы и не начинайте с цифры или символа подчёркивания.

#PCDATA ::= NMTOKEN
-->
<!ELEMENT shortname (#PCDATA)>

<!-- Определяет публичный URI, который уникально идентифицирует эту версию библиотеки тэгов. оставьте его пустым, если он не применяется.
-->


<!ELEMENT uri (#PCDATA)>

<!-- Определяет произвольную текстовую строку - описание библиотеки.
-->

<!ELEMENT info(#PCDATA)>

<!-- Этот тэг определяет уникальный tag в данной библиотеке тэгов, определяя:

- уникальное имя тэга/элемента

- подкласс класса реализации javax.servlet.jsp.tagext.Tag

- необязательный/optional подкласс от javax.servlet.jsp.tagext.TagExtraInfo

- тип содержимого тела (hint/подсказка)

- необязательную специфическую информацию тэга

- любые атрибуты
-->

<!ELEMENT tag (name, tagclass, teiclass?, bodycontent?, info?, attribute*)>

<!-- Определяет подкласс от javax.serlvet.jsp.tagext.Tag, реализующий семантику времени запросадля данного тэга. (необходим)
#PCDATA ::= полное квалифицированное имя Java-класса
-->

<!ELEMENT tagclass (#PCDATA)>

<!-- Определяет подкласс от javax.servlet.jsp.tagext.TagExtraInfo для данного тэга (необязательный). Если не задан, к классу не обращаются на этапе трансляции.
#PCDATA ::= полное квалифицированное имя Java-класса

-->
<!ELEMENT teiclass (#PCDATA)>

<!-- Предоставляет подсказку о содержимом тела тэга. Предназначен прежде всего для использования утилитами компоновки страниц.

В настоящий момент специфицированы три значения:

tagdependent - Тело тэга интерпретируется реализацией самого тэга и вероятнее всего - на другом “language/языке”, например, встроенные операторы SQL.

JSP - Тело тэга содержит вложенный синтаксис JSP

empty - Тело тэга обязано быть пустым. По умолчанию (если не определено) - JSP.

#PCDATA ::= tagdependent | JSP | empty
-->
<!ELEMENT bodycontent (#PCDATA)>

<!-- Тэгattribute определяет атрибут вкладывающих/содержащих тэгов.

Определение атрибута состоит из:

- имени атрибута (необходимо)

- необходим атрибут, или по выбору (optional)

- может ли значение атрибута динамически вычисляться на этапе прогона выражением скриптлета (optional)

-->
<!ELEMENT attribute (name, required? , rtexprvalue?)>

<!-- Определяет каноническое имя определяемого тэга или атрибута.



#PCDATA ::= NMTOKEN
-->
<!ELEMENT name(#PCDATA)>

<!-- Определяет необходим/ required вкладывающий атрибут, или по выбору/optional.

#PCDATA ::= true | false | yes | no

Если отсутствует, тогда по умолчанию - “false”, то есть атрибут по выбору/optional.

-->
<!ELEMENT required (#PCDATA)>

<!-- Определяет, может ли вкладывающий атрибут иметь в качестве значения выражения скриптлета, т.е. может ли значение атрибута динамически рассчитываться во время запроса, что противоположно static/статическому значению, определяемому на  этапе трансляции.
#PCDATA ::= true | false | yes | no

Если отсутствует, тогда по умолчанию - “false”, то есть атрибут имеет статическое значение.

-->
<!ELEMENT rtexprvalue (#PCDATA)>

<!ATTLIST tlibversion id ID #IMPLIED>
<!ATTLIST jspversion id ID #IMPLIED>

<!ATTLIST shortname id ID #IMPLIED>
<!ATTLIST uri id ID #IMPLIED>

<!ATTLIST info id ID #IMPLIED>
<!ATTLIST tag id ID #IMPLIED>

<!ATTLIST tagclass id ID #IMPLIED>
<!ATTLIST teiclass id ID #IMPLIED>

<!ATTLIST bodycontent id ID #IMPLIED>
<!ATTLIST attribute id ID #IMPLIED>

<!ATTLIST name id ID #IMPLIED>
<!ATTLIST required id ID #IMPLIED>

<!ATTLIST rtexprvalue id ID #IMPLIED>


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