<!--

   Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
  
   Sun grants you ("Licensee") a non-exclusive, royalty free, license to use,
   modify and redistribute this software in source and binary code form,
   provided that i) this copyright notice and license appear on all copies of
   the software; and ii) Licensee does not utilize the software in a manner
   which is disparaging to Sun.
  
   This software is provided "AS IS," without a warranty of any kind. ALL
   EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
   IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
   NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
   LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
   OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
   LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
   INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
   CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
   OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
   POSSIBILITY OF SUCH DAMAGES.
  
   This software is not designed or intended for use in on-line control of
   aircraft, air traffic, aircraft navigation or aircraft communications; or in
   the design, construction, operation or maintenance of any nuclear
   facility. Licensee represents and warrants that it will not use or
   redistribute the Software for such purposes.

-->

<!--

   This is the DTD defining the JavaServer Pages 1.1 Tag Library
   descriptor (.tld) (XML) file format/syntax.

   A Tag Library is a JAR file containing a valid instance of a Tag Library
   Descriptor (taglib.tld) file in the META-INF subdirectory, along with the
   appropriate implementing classes, and other resources required to
   implement the tags defined therein.

  -->

<!NOTATION JSPTAGLIB.1_1 PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN">

<!--

	The taglib tag is the document root, it defines:

	tlibversion	the version of the tag library implementation
	jspversion	the version of JSP the tag library depends upon

	shortname	a simple default short name that could be used by
			a JSP authoring tool to create names with a mnemonic
			value; for example, the it may be used as the prefered
			prefix value in taglib directives
	uri		a uri uniquely identifying this taglib
	info		a simple string describing the "use" of this taglib,
			should be user discernable
	
  -->

<!ELEMENT taglib (tlibversion, jspversion?, shortname, uri?, info?, tag+) >
	<!ATTLIST taglib id	    ID    #IMPLIED
	 xmlns CDATA #FIXED    "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"
	>

<!--

	Describes this version (number) of the taglibrary (dewey decimal)

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

<!ELEMENT tlibversion (#PCDATA) >

<!--

	Describes the JSP version (number) this taglibrary requires in order to function (dewey decimal)

	The default is 1.1

	#PCDATA ::= [0-9]*{ "."[0-9] }0..3

  -->

<!ELEMENT jspversion  (#PCDATA) >

<!--
	Defines a short (default) shortname to be used for tags and variable names used/created by this tag library.
	Do not use white space, and do not start with digits or underscore.

	#PCDATA ::= NMTOKEN
  -->

<!ELEMENT shortname      (#PCDATA) >

<!--

	Defines a public URI that uniquely identifies this version of the taglibrary
	Leave it empty if it does not apply.
  -->

<!ELEMENT uri	 (#PCDATA) >

<!--

	Defines an arbitrary text string descirbing the tag library
  -->

<!ELEMENT info	(#PCDATA) >

<!--

	The tag defines a unique tag in this tag library, defining:
	
	- the unique tag/element name
	- the subclass of javax.servlet.jsp.tagext.Tag implementation class
	- an optional subclass of javax.servlet.jsp.tagext.TagExtraInfo
	- the body content type (hint)
	- optional tag-specific information
	- any attributes
	
  -->

<!ELEMENT tag (name, tagclass, teiclass?, bodycontent?, info?, attribute*) >
	<!ATTLIST tag id ID #IMPLIED >

<!--

	Defines the subclass of javax.serlvet.jsp.tagext.Tag that implements
	the request time semantics for this tag. (required)

	#PCDATA ::= fully qualified Java class name
  -->

<!ELEMENT tagclass (#PCDATA) >

<!--

	Defines the subclass of javax.servlet.jsp.tagext.TagExtraInfo for
	this tag. (optional)

	The default is javax.servlet.jsp.tagext.TagExtraInfo

	#PCDATA ::= fully qualified Java class name
  -->

<!ELEMENT teiclass (#PCDATA) >

<!--
	Provides a hint as to the content of the body of this tag. Primarily
	intended for use by page composition tools.

	There are currently three values specified:

	tagdependent	The body of the tag is interpreted by the tag 
			implementation itself, and is most likely in a
			different "langage", e.g embedded SQL statements.

	JSP		The body of the tag contains nested JSP syntax
	
	empty		The body must be empty

	The default (if not defined) is JSP

	#PCDATA ::=  tagdependent | JSP | empty

  -->

<!ELEMENT bodycontent (#PCDATA) >

<!--

	The attribute tag defines an attribute for the nesting tag

	An attribute definition is composed of:
	
	- the attributes name (required)
	- if the attribute is required or optional (optional)
	- if the attributes value may be dynamically calculated at runtime
	  by a scriptlet expression (optional)

  -->

<!ELEMENT attribute (name, required? , rtexprvalue?) >
	<!ATTLIST attribute     id     ID       #IMPLIED>

<!--

	Defines the canonical name of a tag or attribute being defined

	#PCDATA ::= NMTOKEN
  -->

<!ELEMENT name	(#PCDATA) >

<!--

	Defines if the nesting attribute is required or optional.

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

	If not present then the default is "false", i.e the attribute is optional
  -->

<!ELEMENT required    (#PCDATA) >

<!--

	Defines if the nesting attribute can have scriptlet expressions as
	a value, i.e the value of the attribute may be dynamically calculated
	at request time, as opposed to a static value determined at translation
	time.

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

	If not present then the default is "false", i.e the attribute has a static value
  -->

<!ELEMENT rtexprvalue (#PCDATA) >

