<?xml version="1.0" encoding="UTF-8" ?>
<document>
 <properties>
  <title>&lt;${faceletTag.name}&gt;</title>
 </properties>
 <body>
  <section name="Summary">
  <p>
   <b>Facelet Tag name:</b> &lt;${faceletTag.name}&gt;
   <br/>
#set ($javadocPath = "../apidocs/" + $faceletTag.getClassName().replace('.', '/') )
   <b>Facelet Tag class:</b> <a href="${tagdocUtils.platformAgnosticPath( $javadocPath )}.html">${faceletTag.className}</a>
   <br/>
${faceletTag.longDescription}   
  </p>
  </section>
#if ($baseContent)
$baseContent
#end
#set ($attributeList = ${tagdocUtils.getSortedAttributeList($faceletTag)})
#if ($attributeList.size() != 0)  
  <section name="Attributes">
<table>
 <tr>
  <th>Name</th>
  <th>Type</th>
  <th>Required</th>
  <th>Description</th>
 </tr>
#foreach( $attribute in $attributeList )
#if (!$attribute.isTagExcluded())
 <tr>
  <td>$attribute.name</td>
#set ($type = ${tagdocUtils.getDisplayType($faceletTag.className,$attribute.name,$attribute.className)})
  <td>$type</td>
  <td>$attribute.isRequired()</td>
#if ($attribute.longDescription)
  <td>$attribute.longDescription</td>
#else
  <td></td>
#end
 </tr>
#end
#end
</table>
  </section>
#end
 </body> 
</document>