Приложение JSP.D

ОТД для Файлов
TagLibrary-Дескриптора, JSP 1.1


В этом приложении содержится DTD/ОТД (Определение Типа Данных) для Дескриптора Библиотеки Тэгов (TLD) с использованием JSP 1.1.


Все JSP 1.2-контейнеры должны принимать такие TLD.


Это то же самое ОТД, что и  "http://java.sun.com/dtd/web-jsptaglibrary_1_1.dtd", исключая некоторые изменения форматирования для извлечения комментариев, чтобы сделать их более читабельными.

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>