Advanced Customization > Info*Engine User’s Guide > Custom Tag Libraries > About the Custom Tag Library
  
About the Custom Tag Library
The Info*Engine task compiler supports the concept of custom tag libraries. Custom tag libraries for Info*Engine tasks are similar to those supported by JSP. When you implement a custom tag library, you are using sets of Info*Engine tasks, which can be organized in two ways: either within a common subdirectory, or organized as federated task delegates associated with a type identifier. This allows you to easily write reusable tag functionality without requiring you to write or compile Java code. If more advanced functionality is necessary, then you can implement your custom tag library as a set of Java classes instead. These Java classes are described by an XML document called a Tag Library Descriptor (TLD), which associates the classes with the appropriate tags for use by Info*Engine tasks.
Both task and Java tag library implementations allow you to specify whether an attribute is required, and whether or not a given attribute supports expressions or not. It is important to consider what is appropriate for each attribute exposed when writing a tag library. If an attribute is marked as required, then your tag implementation does not need to spend time validating its presence. Info*Engine does not compile a task that uses a tag which does not supply a required attribute value.
If an attribute supports expressions, the value supplied can still be a value other than null. More importantly, however, is whether or not an attribute should support embedded expressions. While expression evaluation is not overly expensive, logically you should mark attributes that are hard-coded to not support expressions. Even where an attribute is marked as supporting expressions, the Info*Engine task compiler examines the attribute value to decide whether or not it needs to evaluate expressions at runtime to avoid unnecessary overhead. For more information, see Expression Language Support.