To define a tag, you declare it in a tag library descriptor (TLD), which is an XML document that describes a tag library. A TLD contains information about a library and each tag contained in it. See Tag Library Descriptors for more information about TLDs.
The custom validator tag is defined in bookstore.tld, located in the tut-install/javaeetutorial5/examples/web/bookstore6/web/WEB-INF/ directory. It contains a tag definition for formatValidator:
<tag>
<name>formatValidator</name>
...
<tag-class>
com.sun.bookstore6.taglib.FormatValidatorTag</tag-class>
<attribute>
<name>formatPatterns</name>
<required>true</required>
<deferred-value>
<type>String</type>
</deferred-value>
</attribute>
</tag>
The name element defines the name of the tag as it must be used in the page. The tag-class element defines the tag handler class. The attribute elements define each of the tag’s attributes. The formatPatterns attribute is the only attribute that the tag supports. The deferred-value element indicates that the formatPatterns attribute accepts deferred value expressions. The type element says that the expression resolves to a property of type String.