<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE taglib
    PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
    "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<taglib>
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>BIRT Tag Library</short-name>
    <uri>http://www.eclipse.org/birt/taglibs/birt.tld</uri>
    <description>
        This Tag Library makes user develope JSP with BIRT Viewer component easily.
    </description>
    
    <!--**********************************************-->
    <!--             Viewer Tag                       -->
    <!--**********************************************-->
    <tag>
        <name>viewer</name>
        <tag-class>org.eclipse.birt.report.taglib.ViewerTag</tag-class>
        <body-content>JSP</body-content>
        <description>
            The viewer tag is to specify how to import and control BIRT Report Viewer into JSP page.
            This tag will use Ajax framework to retrieve report content.
        </description>

        <attribute>
            <name>id</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the current viewer id. It should be unique.
                It can contain number,letter or underline.
            </description>            
        </attribute>    

        <attribute>
            <name>pattern</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies which servlet pattern to be used to preview report.
                Default value is frameset.
                ( frameset or run )
            </description>
        </attribute>
                        
        <attribute>
            <name>baseURL</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies base URL of BIRT viewer.
                Default to the current context.
            </description>
        </attribute>
        
        <attribute>
            <name>title</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report title displayed at the top.
            </description>
        </attribute>

        <attribute>
            <name>isHostPage</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether the viewer occupies the whole page.
                Default to false.
            </description>
        </attribute>

       <attribute>
            <name>scrolling </name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the IFrame style "scrolling ".
                If isHostPage is true, ignore this attribute.
                ( auto | yes | no )
            </description>
        </attribute>

       <attribute>
            <name>position</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the style "position" of report container.
                If isHostPage is true, ignore this attribute.
                ( static | absolute | fixed | relative )
            </description>
        </attribute>

       <attribute>
            <name>style</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the style of report container.
                If isHostPage is true, ignore this attribute.
            </description>
        </attribute>
                        
        <attribute>
            <name>height</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the height of report container in pixels.
                If isHostPage is true, ignore this attribute.
            </description>
        </attribute>

        <attribute>
            <name>width</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the width of report container in pixels.
                If isHostPage is true, ignore this attribute.
            </description>
        </attribute>

        <attribute>
            <name>top</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the top of report container in pixels.
                If isHostPage is true, ignore this attribute.
            </description>
        </attribute>

        <attribute>
            <name>left</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                 Sets the left of report container in pixels.
                 If isHostPage is true, ignore this attribute.
            </description>
        </attribute>

        <attribute>
            <name>frameborder</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                 Specifies whether displays the iframe border.
                Default to no. 
                If isHostPage is true, ignore this attribute.
                ( Yes | No )
            </description>
        </attribute>
                        
        <attribute>
            <name>reportDesign</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report design file name.
                ( Absolute path, relative path or URL )
            </description>    
        </attribute>        

        <attribute>
            <name>reportDocument</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report document file name. 
                Noted: only support "file:" URL format.
                ( Absolute path, relative path or URL ) 
            </description>    
        </attribute>        

        <attribute>
            <name>reportletId</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the instance id of reportlet.
                The "reportDocument" attribute should be required.
                Noted: frameset pattern doesn't support reportlet.
            </description>    
        </attribute>
                
        <attribute>
            <name>bookmark</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the targeted bookmark name.
            </description>            
        </attribute>
        
        <attribute>
            <name>locale</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the Locale information.
            </description>            
        </attribute>

        <attribute>
            <name>timeZone</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies a time zone id. For example: "America/Los_Angeles" or "GMT+1" or "GMT+01:00".
            </description>            
        </attribute>

        <attribute>
            <name>svg</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether supports the SVG output format or not.
            </description>            
        </attribute>

        <attribute>
            <name>format</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the output format of report.
            </description>            
        </attribute>

        <attribute>
            <name>emitterId</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the emitter id for the report output.
            </description>            
        </attribute>
        
        <attribute>
            <name>pageOverflow</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the page overflow setting for the PDF format.
                One of the following values:
                0 for "auto", 1 for "actual size", 2 for "fit to page". 
            </description>            
        </attribute>
        
        <attribute>
            <name>rtl</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether supports rtl page or not.
            </description>            
        </attribute>
                
        <attribute>
            <name>pageNum</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies output page number when render document file.
            </description>            
        </attribute>

        <attribute>
            <name>pageRange</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies page range when render document file.
            </description>            
        </attribute>
                                
        <attribute>
            <name>resourceFolder</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the referenced resource folder.
                Default value is defined in web.xml.
            </description>            
        </attribute>
                                            
        <attribute>
            <name>forceOverwriteDocument</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether forces to overwrite the generated document.
                If allowPageBreak is false,ignore this attribute.
                Default value is defined in web.xml.
            </description>            
        </attribute>

        <attribute>
            <name>showTitle</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether shows the report title.
                Default to true.
            </description>            
        </attribute>
        
        <attribute>
            <name>showToolBar</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether shows the toolbar.
                Default to true.
            </description>            
        </attribute>

        <attribute>
            <name>showNavigationBar</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether shows the Navigation Bar.
                If allowPageBreak is false,ignore this attribute.
                Default to true.
            </description>            
        </attribute>

        <attribute>
            <name>showParameterPage</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether show the parameter dialog or not.
                Default to true.
            </description>            
        </attribute>

        <attribute>
            <name>isReportlet</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether render reportlet by bookmark.
                Default to false.
            </description>            
        </attribute>
        
    </tag>

     <!--**********************************************-->
    <!--             Report Tag                       -->
    <!--**********************************************-->
    <tag>
        <name>report</name>
        <tag-class>org.eclipse.birt.report.taglib.ReportTag</tag-class>
        <body-content>JSP</body-content>
        <description>
            The report tag can provide fast report preview without Ajax framework. 
            The report content can be output to web browser directly.
        </description>

        <attribute>
            <name>id</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the current viewer id. It should be unique.
                It can contain number,letter or underline.
            </description>            
        </attribute>    
                
        <attribute>
            <name>baseURL</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies base URL of BIRT viewer.
                Default to the current context.
                If report container is DIV, ignore this attribute.
            </description>
        </attribute>
        
        <attribute>
            <name>isHostPage</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether the viewer occupies the whole page.
                Default to false.
            </description>
        </attribute>

       <attribute>
            <name>scrolling </name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the DIV/IFrame style "scrolling ".
                If isHostPage is true, ignore this attribute.
                ( auto | yes | no )
            </description>
        </attribute>

       <attribute>
            <name>position</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the style "position" of report container.
                If isHostPage is true, ignore this attribute.
                ( static | absolute | fixed | relative )
            </description>
        </attribute>

       <attribute>
            <name>style</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the style of report container.
                If isHostPage is true, ignore this attribute.
            </description>
        </attribute>
                        
        <attribute>
            <name>height</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the height of report container in pixels.
                If isHostPage is true, ignore this attribute.
            </description>
        </attribute>

        <attribute>
            <name>width</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the width of report container in pixels.
                If isHostPage is true, ignore this attribute.
            </description>
        </attribute>

        <attribute>
            <name>top</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the top of report container in pixels.
                If isHostPage is true, ignore this attribute.
            </description>
        </attribute>

        <attribute>
            <name>left</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                 Sets the left of report container in pixels.
                 If isHostPage is true, ignore this attribute.
            </description>
        </attribute>

        <attribute>
            <name>frameborder</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                 Specifies whether displays the iframe border.
                 Available when user IFrame.
                Default to no.
                ( Yes | No )
            </description>
        </attribute>

        <attribute>
            <name>reportDesign</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report design file name.
                ( Absolute path, relative path or URL )
            </description>    
        </attribute>        

        <attribute>
            <name>reportDocument</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report document file name. 
                Noted: only support "file:" URL format.
                ( Absolute path, relative path or URL ) 
            </description>    
        </attribute>

        <attribute>
            <name>reportletId</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the instance id of reportlet.
                The "reportDocument" attribute should be required.
            </description>    
        </attribute>
                            
        <attribute>
            <name>bookmark</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the targeted bookmark name.
            </description>            
        </attribute>
        
        <attribute>
            <name>locale</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the Locale information.
            </description>            
        </attribute>

        <attribute>
            <name>timeZone</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies a time zone id. For example: "America/Los_Angeles" or "GMT+1" or "GMT+01:00".
            </description>            
        </attribute>

        <attribute>
            <name>svg</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether supports the SVG output format or not.
            </description>            
        </attribute>

        <attribute>
            <name>format</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the output format of report.
            </description>            
        </attribute>
        
        <attribute>
            <name>emitterId</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the emitter id for the report output.
            </description>            
        </attribute>

        <attribute>
            <name>pageOverflow</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the page overflow setting for the PDF format.
                One of the following values:
                0 for "auto", 1 for "actual size", 2 for "fit to page". 
            </description>            
        </attribute>
        
        <attribute>
            <name>rtl</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether supports rtl page or not.
            </description>            
        </attribute>

        <attribute>
            <name>showParameterPage</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether show the parameter dialog or not.
                Default to true.
                If report container is DIV, ignore this attribute.
            </description>            
        </attribute>
                                                
        <attribute>
            <name>resourceFolder</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the referenced resource folder.
                Default value is defined in web.xml.
            </description>            
        </attribute>            
                                    
        <attribute>
            <name>reportContainer</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies iframe or div as report container.
                Default to iframe.
                ( iframe | div )
            </description>            
        </attribute>

        <attribute>
            <name>pageNum</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies output page number when render document file.
            </description>            
        </attribute>

        <attribute>
            <name>pageRange</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies page range when render document file.
            </description>            
        </attribute>

        <attribute>
            <name>isReportlet</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether render reportlet by bookmark.
                Default to false.
            </description>            
        </attribute>
                
    </tag>    
    
    <!--**********************************************-->
    <!--             Report Parameter Tag             -->
    <!--**********************************************-->
     <tag>
        <name>param</name>
        <tag-class>org.eclipse.birt.report.taglib.ParamTag</tag-class>
        <body-content>JSP</body-content>
        <description>
            The param tag specifies the parameters defined in report design file.
        </description>
        <attribute>
            <name>name</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report parameter name.
            </description>
        </attribute>
        <attribute>
            <name>pattern</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report parameter pattern format.
            </description>
        </attribute>     
        <attribute>
            <name>value</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report parameter value. If doesn't set, value is null.
            </description>
        </attribute>
        <attribute>
            <name>displayText</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report parameter display text.
            </description>
        </attribute>
        <attribute>
            <name>delim</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the delimiter for multiple values.
                Defaults to pipe "|".
            </description>
        </attribute>
        <attribute>
            <name>isLocale</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether the report parameter value is a locale/format related string.
            </description>
        </attribute>
     </tag>   

    <!--**********************************************-->
    <!--             Report Parameter Value Tag       -->
    <!--**********************************************-->
     <tag>
        <name>value</name>
        <tag-class>org.eclipse.birt.report.taglib.ParamValueTag</tag-class>        
        <body-content>JSP</body-content>
        <description>
            The param value tag specifies multiple values for a given param tag.
        </description>
        <attribute>
            <name>value</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report parameter value. If doesn't set, value is null.
            </description>
        </attribute>
        <attribute>
            <name>displayText</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report parameter display text.
            </description>
        </attribute>
     </tag>   
     
    <!--**********************************************-->
    <!--             ParameterPage Tag                -->
    <!--**********************************************-->
    <tag>
        <name>parameterPage</name>
        <tag-class>org.eclipse.birt.report.taglib.RequesterTag</tag-class>
        <body-content>JSP</body-content>
        <description>
            The parameterPage tag can help developers to display BIRT parameter page or create a user-defined parameter page.
            This tag can collect these parameters and submit to BIRT servlet to handle request.
        </description>
        
        <attribute>
            <name>id</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the parameter page id.It should be unique.
                It can contain number,letter or underline.                
            </description>            
        </attribute>    
        
        <attribute>
            <name>name</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the parameter page name. 
                If attribute 'isCustom' is true, this name should be required and unique.
            </description>
        </attribute>

        <attribute>
            <name>isCustom</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether uses the user-defined parameter page.
                If false, use the BIRT parameter dialog.
                Default to false.
            </description>
        </attribute>

        <attribute>
            <name>title</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report title displayed at the top.
            </description>
        </attribute>
                        
          <attribute>
            <name>baseURL</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies base URL of BIRT viewer. 
                Default to the current context.
            </description>
        </attribute>
        
        <attribute>
            <name>scrolling </name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the DIV/IFrame style "scrolling ".
                ( auto | yes | no )
            </description>
        </attribute>
        
       <attribute>
            <name>position</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the style "position" of parameter page.
                ( static | absolute | fixed | relative )
            </description>
        </attribute>

       <attribute>
            <name>style</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the style of parameter page.
            </description>
        </attribute>
                        
        <attribute>
            <name>height</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the height of parameter page in pixels.
            </description>
        </attribute>

        <attribute>
            <name>width</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the width of parameter page in pixels.
            </description>
        </attribute>

        <attribute>
            <name>top</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Sets the top of parameter page in pixels.
            </description>
        </attribute>

        <attribute>
            <name>left</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                 Sets the left of parameter page in pixels.
            </description>
        </attribute>

        <attribute>
            <name>frameborder</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                 Specifies whether displays the iframe border.
                Default to no.
                If set "isCustom" to true, ignore this attribute.
                ( Yes | No )
            </description>
        </attribute>
                        
        <attribute>
            <name>reportDesign</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report design file name.
                ( Absolute path, relative path or URL )
            </description>    
        </attribute>        

        <attribute>
            <name>reportDocument</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report document file name. 
                Noted: only support "file:" URL format.
                ( Absolute path, relative path or URL ) 
            </description>    
        </attribute>        

        <attribute>
            <name>reportletId</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the instance id of reportlet.
                The "reportDocument" attribute should be required.
                Noted: frameset pattern doesn't support reportlet.
            </description>    
        </attribute>

        <attribute>
            <name>pattern</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the servlet pattern for request submit. 
                BIRT supports three patterns: frameset, run and preview. 
                Can refer to the user-defined servlet pattern.
                Default to frameset.
            </description>            
        </attribute>

        <attribute>
            <name>target</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the target window for request submit.
            </description>            
        </attribute>
                        
        <attribute>
            <name>bookmark</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the targeted bookmark name.
            </description>            
        </attribute>
        
        <attribute>
            <name>locale</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the Locale information.
            </description>            
        </attribute>

        <attribute>
            <name>timeZone</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies a time zone id. For example: "America/Los_Angeles" or "GMT+1" or "GMT+01:00".
            </description>            
        </attribute>

        <attribute>
            <name>svg</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether supports the SVG output format or not.
            </description>            
        </attribute>

        <attribute>
            <name>format</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the output format of report.
            </description>            
        </attribute>
        
        <attribute>
            <name>emitterId</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the emitter id for the report output.
            </description>            
        </attribute>
        
        <attribute>
            <name>pageOverflow</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the page overflow setting for the PDF format.
                One of the following values:
                0 for "auto", 1 for "actual size", 2 for "fit to page". 
            </description>            
        </attribute>

        <attribute>
            <name>rtl</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether supports rtl page or not.
            </description>            
        </attribute>
                            
        <attribute>
            <name>resourceFolder</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the referenced resource folder.
                Default value is defined in web.xml.
            </description>            
        </attribute>            
                                
        <attribute>
            <name>forceOverwriteDocument</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether forces to overwrite the generated document.
                If allowPageBreak is false,ignore this attribute.
                Default value is defined in web.xml.
            </description>            
        </attribute>

        <attribute>
            <name>showTitle</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether shows the report title.
                Default to true.
            </description>            
        </attribute>
        
        <attribute>
            <name>showToolBar</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether shows the toolbar.
                Default to true.
            </description>            
        </attribute>

        <attribute>
            <name>showNavigationBar</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether shows the Navigation Bar.
                If allowPageBreak is false,ignore this attribute.
                Default to true.
            </description>            
        </attribute>

        <attribute>
            <name>isReportlet</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether render reportlet by bookmark.
                Default to false.
            </description>            
        </attribute>
                        
    </tag>

    <!--**********************************************-->
    <!--      Report Parameter Definition Tag         -->
    <!--**********************************************-->
     <tag>
        <name>paramDef</name>
        <tag-class>org.eclipse.birt.report.taglib.ParamDefTag</tag-class>
        <body-content>JSP</body-content>
        <description>
            The param tag is used to generate html code for defined parameter in ParameterPage tag.
        </description>
        <attribute>
            <name>id</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the id of parameter control.It should be unique.
                It can contain number,letter or underline.
            </description>
        </attribute>
        <attribute>
            <name>name</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report parameter name.
            </description>
        </attribute>
        <attribute>
            <name>pattern</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report parameter pattern format.
                It is used to parse defined parameter value string.
            </description>
        </attribute>     
        <attribute>
            <name>value</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report parameter value. If doesn't set, use default value.
            </description>
        </attribute>
        <attribute>
            <name>displayText</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the report parameter display text.
            </description>
        </attribute>
        <attribute>
            <name>isLocale</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies whether the report parameter value is a locale/format related string.
                It is used to parse defined parameter value string.
            </description>
        </attribute>
        <attribute>
            <name>title</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the title attribute of parameter control.
            </description>
        </attribute>        
        <attribute>
            <name>cssClass</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the css class attribute of parameter control.
            </description>
        </attribute>
        <attribute>
            <name>style</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
            <description>
                Specifies the parameter control style.
            </description>
        </attribute>        
     </tag>                
</taglib>