JSP TLD Relax-NG SchemaResin 3.0
Resin 3.0

Features
Installation
Configuration
Web Applications
IOC/AOP
Resources
JSP
Quercus
Servlets and Filters
Databases
Admin (JMX)
CMP
EJB
Amber
EJB 3.0
Security
XML and XSLT
XTP
JMS
Performance
Protocols
Third-party
Troubleshooting/FAQ

Introduction
JSP Compilation
Reference
Tutorials
Articles
FAQ

JSP EL
JSTL
Directives
Variables
Actions
Applications
Velocity
Schema for JSP-2.0 .tld files
Velocity
Reference
Tutorials

The formal definition for the *.tld file

  1. Example taglib
  2. Relax-NG Schema

Example taglib

test.tld
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" version="2.0">
  <tlib-version>1.0</tlib-version>
  <short-name>x</short-name>
  <uri>foo/zippee</uri>

  <tag>
    <name>foo</name>
    <tag-class>test.MyTag</tag-class>

    <attribute>
      <name>var</name>
    </attribute>
  </tag>
</taglib>

Relax-NG Schema

default namespace j2ee = "http://java.sun.com/xml/ns/j2ee"
namespace local = ""

namespace xsi = "http://www.w3.org/2001/XMLSchema-instance"

include "../../server/resin/j2ee.rnc"

j2ee_dewey-version = string
j2ee_generic-boolean = string
j2ee_java-identifier = string
j2ee_path = string
j2ee_variable = string

jsp20_attribute = element attribute {
  attribute id { string }?,

  jsp20_description*,

  element name { j2ee_java-identifier },

  element required { j2ee_generic-boolean }?,

  ((element rtexprvalue { j2ee_generic-boolean }?,
     element type { j2ee_fully-qualified-class }?)

   | element fragment { j2ee_generic-boolean }?)
}

jsp20_body-content = element body-content {
  "tagdependent"
  | "JSP"
  | "empty"
  | "scriptless"
}

jsp20_description = element description { string }*

jsp20_display-name = element display-name { string }*

jsp20_extension-Type =
  (attribute id { string }?,

   attribute namespace { string },

   jsp20_extension-element+)

jsp20_extension-element = element extension-element {
  attribute id { string }?
}

jsp20_function = element function {
  attribute id { string }?,

  j2ee_description-Group,

  element name { string },

  element function-class { j2ee_fully-qualified-class },

  element function-signature { string },

  element example { string }?,

  element function-extension { jsp20_extension-Type }*
}

jsp20_icon = element icon { string }*

jsp20_init-param = element init-param {
  element param-name { string },

  element param-value { string }
}

jsp20_listener = element listener {
  attribute id { string }?,

  element listener-class { j2ee_fully-qualified-class }
}

jsp20_tag = element tag {
  attribute id { string }?,

  j2ee_description-Group,

  element name { string },

  element tag-class { j2ee_fully-qualified-class },

  element tei-class { j2ee_fully-qualified-class }?,

  jsp20_body-content?,

  jsp20_variable*,

  jsp20_attribute*,

  element dynamic-attributes { j2ee_generic-boolean }?,

  element example { string }?,

  element tag-extension { jsp20_extension-Type }*
}

jsp20_tag-file = element tag-file {
  attribute id { string }?,

  j2ee_description-Group,

  element name { string },

  element path { j2ee_path },

  element example { string }?,

  element tag-extension { jsp20_extension-Type }*
}

jsp20_taglib = element taglib {
  attribute version { "2.0" },

  attribute xsi:schemaLocation { string }?,

  j2ee_description-Group,

  element tlib-version { j2ee_dewey-version },

  element short-name { string },

  element uri { string }?,

  jsp20_validator?,

  jsp20_listener?,

  jsp20_tag*,

  jsp20_tag-file*,

  jsp20_function*,

  element taglib-extension { jsp20_extension-Type }*
}

jsp20_validator = element validator {
  attribute id { string }?,

  jsp20_description*,

  element validator-class { j2ee_fully-qualified-class },

  jsp20_init-param*
}

jsp20_variable = element variable {
  attribute id { string }?,

  jsp20_description*,

  ( element name-given { j2ee_java-identifier }
  | element name-from-attribute { j2ee_java-identifier }),

  element variable-class { j2ee_fully-qualified-class }?,

  element declare { j2ee_generic-boolean }?,

  element scope { "AT_BEGIN" | "NESTED" | "AT_END" }?
}


Velocity
Reference
Tutorials
Copyright © 1998-2006 Caucho Technology, Inc. All rights reserved.
Resin® is a registered trademark, and HardCoretm and Quercustm are trademarks of Caucho Technology, Inc.