文档章节

Jasperreports的XSD翻译

素人派
 素人派
发布于 2016/12/31 20:48
字数 28877
阅读 88
收藏 0
  • 介绍

本文是jasperreports的xsd的翻译。 [codesyntax lang="xml"]
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://jasperreports.sourceforge.net/jasperreports" xmlns:jr="http://jasperreports.sourceforge.net/jasperreports" elementFormDefault="qualified">

 <element name="jasperReport">
  <annotation>
   <documentation>Root element representing the definition of a report.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:property" minOccurs="0" maxOccurs="unbounded"/>
    <element name="propertyExpression" type="jr:datasetPropertyExpressionType" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:import" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:template" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:reportFont" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:style" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:subDataset" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:scriptlet" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:parameter" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:queryString" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:field" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:sortField" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:variable" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:filterExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:group" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:background" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:title" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:pageHeader" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:columnHeader" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:detail" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:columnFooter" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:pageFooter" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:lastPageFooter" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:summary" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:noData" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="name" type="string" use="required">
   	<annotation>
   		<documentation>Name of the report.</documentation>
   	</annotation>
   </attribute>
   <attribute name="language" type="string" use="optional" default="java">
   	<annotation>
   		<documentation>Specifies the language used for the report expressions.</documentation>
   	</annotation>
   </attribute>
   <attribute name="columnCount" type="NMTOKEN" use="optional" default="1">
   	<annotation>
   		<documentation>Number of columns on the report.</documentation>
   	</annotation>
   </attribute>
   <attribute name="printOrder" use="optional" default="Vertical">
   	<annotation>
   		<documentation>Columns filling order.</documentation>
   	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Vertical">
	   	<annotation>
	   		<documentation>Columns on the report are filled vertically.</documentation>
	   	</annotation>
      </enumeration>
      <enumeration value="Horizontal">
	   	<annotation>
	   		<documentation>Columns on the report are filled horizontally.</documentation>
	   	</annotation>
      </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="columnDirection" use="optional" default="LTR">
   	<annotation>
   		<documentation>Columns filling direction.</documentation>
   	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="LTR">
	   	<annotation>
	   		<documentation>Columns on the report are filled from left to right.</documentation>
	   	</annotation>
      </enumeration>
      <enumeration value="RTL">
	   	<annotation>
	   		<documentation>Columns on the report are filled from right to left.</documentation>
	   	</annotation>
      </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="pageWidth" type="NMTOKEN" use="optional" default="595">
   	<annotation>
   		<documentation>Page width.</documentation>
   	</annotation>
   </attribute>
   <attribute name="pageHeight" type="NMTOKEN" use="optional" default="842">
   	<annotation>
   		<documentation>Page height.</documentation>
   	</annotation>
   </attribute>
   <attribute name="orientation" use="optional" default="Portrait">
   	<annotation>
   		<documentation>Page printing orientation.</documentation>
   	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Portrait">
	   	<annotation>
	   		<documentation>Portrait page layout.</documentation>
	   	</annotation>
      </enumeration>
      <enumeration value="Landscape">
	   	<annotation>
	   		<documentation>Landscape page layout.</documentation>
	   	</annotation>
      </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="whenNoDataType" use="optional">
   	<annotation>
   		<documentation>Allows users to customize the behavior of the reporting engine when there are now rows in the data source.</documentation>
   	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="NoPages">
	   	<annotation>
	   		<documentation>The generated document contains zero pages.</documentation>
	   	</annotation>
	  </enumeration>      
      <enumeration value="BlankPage">
	   	<annotation>
	   		<documentation>The generated document contains one blank page.</documentation>
	   	</annotation>
      </enumeration>
      <enumeration value="AllSectionsNoDetail">
	   	<annotation>
	   		<documentation>All the report sections except the detail section will get printed.</documentation>
	   	</annotation>
	  </enumeration>
      <enumeration value="NoDataSection">
	   	<annotation>
	   		<documentation>The generated document contains only the noData section.</documentation>
	   	</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="sectionType" use="optional" default="Band">
   	<annotation>
   		<documentation>Specifies if the report design is made of sections containing bands or containing parts.</documentation>
   	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Band">
	   	<annotation>
	   		<documentation>The report template is made of sections containing bands.</documentation>
	   	</annotation>
	  </enumeration>      
      <enumeration value="Part">
	   	<annotation>
	   		<documentation>The report template is made of sections containing parts.</documentation>
	   	</annotation>
      </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="columnWidth" type="NMTOKEN" use="optional" default="555">
   	<annotation>
   		<documentation>Column width.</documentation>
   	</annotation>
   </attribute>
   <attribute name="columnSpacing" type="NMTOKEN" use="optional" default="0">
   	<annotation>
   		<documentation>Space between columns.</documentation>
   	</annotation>
   </attribute>
   <attribute name="leftMargin" type="NMTOKEN" use="optional" default="20">
   	<annotation>
   		<documentation>Left margin.</documentation>
   	</annotation>
   </attribute>
   <attribute name="rightMargin" type="NMTOKEN" use="optional" default="20">
   	<annotation>
   		<documentation>Right margin.</documentation>
   	</annotation>
   </attribute>
   <attribute name="topMargin" type="NMTOKEN" use="optional" default="30">
   	<annotation>
   		<documentation>Top margin.</documentation>
   	</annotation>
   </attribute>
   <attribute name="bottomMargin" type="NMTOKEN" use="optional" default="30">
   	<annotation>
   		<documentation>Bottom margin.</documentation>
   	</annotation>
   </attribute>
   <attribute name="isTitleNewPage" use="optional" default="false">
   	<annotation>
   		<documentation>Flag used to specify if the title section should be printed on a separate initial page.</documentation>
   	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
	   	<annotation>
	   		<documentation>Title section will be printed on a separate initial page</documentation>
	   	</annotation>
      </enumeration>
      <enumeration value="false">
	   	<annotation>
	   		<documentation>Title section will be printed on the first page of the report, along with the other sections.</documentation>
	   	</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isSummaryNewPage" use="optional" default="false">
   	<annotation>
   		<documentation>Flag used to specify if the summary section should be printed on a separate last page.</documentation>
   	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
	   	<annotation>
	   		<documentation>Summary section will be printed on a separate last page.</documentation>
	   	</annotation>
      </enumeration>
      <enumeration value="false">
	   	<annotation>
	   		<documentation>Summary section will be printed on the last page of the report, along with the other sections, if there is enough space.</documentation>
	   	</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isSummaryWithPageHeaderAndFooter" use="optional" default="false">
   	<annotation>
   		<documentation>Flag used to specify if the summary section should be accompanied by the page header and footer.</documentation>
   	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
	   	<annotation>
	   		<documentation>Summary section will be printed along with the page header and footer.</documentation>
	   	</annotation>
      </enumeration>
      <enumeration value="false">
	   	<annotation>
	   		<documentation>Summary section will be printed without page header and footer.</documentation>
	   	</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isFloatColumnFooter" use="optional" default="false">
   	<annotation>
   		<documentation>Flag used to specify if the column footer section should be printed at the bottom of the column or if it should immediately follow the last detail or group footer printed on the current column.</documentation>
   	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
	   	<annotation>
	   		<documentation>The column footer section is printed immediately after the last detail or group footer printed on the current column.</documentation>
	   	</annotation>
      </enumeration>
      <enumeration value="false">
	   	<annotation>
	   		<documentation>The column footer section is printed at the bottom of the current column.</documentation>
	   	</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="scriptletClass" type="string" use="optional">
   	<annotation>
   		<documentation>Indicates which class implements the scriptlets functionality for this report. The specified class must be a subclass of <code>JRAbstractScriptlet</code> class. If omitted, an instance of <code>JRDefaultScriptlet</code> will be created.</documentation>
   	</annotation>
   </attribute>
   <attribute name="resourceBundle" type="string" use="optional">
   	<annotation>
   		<documentation>The base name of the report associated resource bundle.</documentation>
   	</annotation>
   </attribute>
   <attribute name="whenResourceMissingType" use="optional" default="Null">
   	<annotation>
   		<documentation>Allows customizing the way the engine deals with missing resources in the resource bundle.</documentation>
   	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Null">
	   	<annotation>
	   		<documentation>Null is returned for the missing resource.</documentation>
	   	</annotation>
	  </enumeration>
      <enumeration value="Empty">
	   	<annotation>
	   		<documentation>An empty string is returned for the missing resource.</documentation>
	   	</annotation>
	  </enumeration>
      <enumeration value="Key">
	   	<annotation>
	   		<documentation>The key is returned for the missing resources.</documentation>
	   	</annotation>
	  </enumeration>
      <enumeration value="Error">
	   	<annotation>
	   		<documentation>An exception is thrown when the resource with the specified key is missing.</documentation>
	   	</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isIgnorePagination" use="optional" default="false">
   	<annotation>
   		<documentation>Flag used to specify whether to use pagination.
	  <p/>
	  This attribute can be overridden at fill time by the IS_IGNORE_PAGINATION parameter.</documentation>
   	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
	   	<annotation>
	   		<documentation>The report will be generated on one long page.  The specified page height will still be used for report design.</documentation>
	   	</annotation>
      </enumeration>
      <enumeration value="false">
	   	<annotation>
	   		<documentation>The report will be paginated according to the pageHeight attribute.</documentation>
	   	</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="formatFactoryClass" type="string" use="optional">
	 <annotation>
	   <documentation>Specifies the name of the class implementing the <code>net.sf.jasperreports.engine.util.FormatFactory</code> interface to use with this report. If omitted, an instance of <code>net.sf.jasperreports.engine.util.DefaultFormatFactory</code> will be created.</documentation>
	 </annotation>
   </attribute>
   <attribute name="uuid" type="string" use="optional">
	<annotation>
	 <documentation>This attribute is auto-generated and is used to uniquely identify JRXMLs.</documentation>
	</annotation>
   </attribute>  
  </complexType>
 </element>

 <element name="property">
  <annotation>
   <documentation>Allows the creation of a name-value pair property for a report object (e.g. the report itself, a field, a parameter, etc).</documentation>
  </annotation>
  <complexType>
   <attribute name="name" type="string" use="required">
	<annotation>
	 <documentation>Name of the object property.</documentation>
	</annotation>
   </attribute>
   <attribute name="value" type="string" use="optional">
	<annotation>
	 <documentation>Value of the object property.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <complexType name="propertyExpressionType" mixed="true">
  <attribute name="name" type="string" use="required">
   <annotation>
	<documentation>Name of the object property.</documentation>
   </annotation>
  </attribute>
 </complexType>

 <element name="propertyExpression" type="jr:propertyExpressionType">
  <annotation>
   <documentation>Allows the creation of a dynamic name-value pair property for a report element.
  The contents of this element is interpreted as a <code>java.lang.String</code> expression,
  which will be evaluated at fill time, the result being used as property value.</documentation>
  </annotation>
 </element>

 <complexType name="datasetPropertyExpressionType" mixed="true">
  <complexContent>
    <extension base="jr:propertyExpressionType">
     <attribute name="evaluationTime" use="optional">
  	  <annotation>
   	   <documentation>Specifies when the default value expression of a parameter is evaluated.</documentation>
  	  </annotation>  
      <simpleType>
       <restriction base="string">
        <enumeration value="Early">
	     <annotation>
	   	  <documentation>Evaluate the property expression before parameter contributors.</documentation>
	  	 </annotation>  
        </enumeration>
        <enumeration value="Late">
	  	 <annotation>
	   	  <documentation>Evaluate the property expression after parameter contributors.</documentation>
	  	 </annotation>  
        </enumeration>
        <enumeration value="Report">
	  	 <annotation>
	   	  <documentation>Evaluate the property expression at the end of the report.</documentation>
	  	 </annotation>  
        </enumeration>
       </restriction>
      </simpleType>
     </attribute>
    </extension>
  </complexContent>
 </complexType>

 <element name="import">
  <annotation>
   <documentation>Translates into an import statement inside the expression class order to eliminate the need to use complete class names in the report expressions.</documentation>
  </annotation>
  <complexType>
   <attribute name="value" type="string" use="required">
	<annotation>
	 <documentation>Class name or package to import.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="template">
  <annotation>
   <documentation>A style template (*.jrtx file/<a href="http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/JRTemplate.html">JRTemplate</a> instance) included in a report.
    The contents of this element is interpreted as an expression which is resolved to a style template at fill time.
   </documentation>
  </annotation>
  <complexType mixed="true">
   <attribute name="class" use="optional" default="java.lang.String">
	<annotation>
	 <documentation>Class for the style template source expression.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="reportFont">
  <annotation>
   <documentation>Represents the definition of a report font. Report fonts are used as default or base font settings in other font definitions throughout the report.</documentation>
  </annotation>  
  <complexType>
   <attribute name="name" type="string" use="required">
	<annotation>
	 <documentation>Name of the report font definition.</documentation>
	</annotation>
   </attribute>
   <attribute name="isDefault" use="optional" default="false">
	<annotation>
	 <documentation>The default report font is used as base font for all the font definitions that do not explicitly reference a report font definition.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="fontName" type="string" use="optional">
	<annotation>
	 <documentation>Name of the font.</documentation>
	</annotation>
   </attribute>   
   <attribute name="size" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>Size of the font.</documentation>
	</annotation>
   </attribute>
   <attribute name="isBold" use="optional">
	<annotation>
	 <documentation>Flag indicating if the font weight is bold</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isItalic" use="optional">
	<annotation>
	 <documentation>Flag indicating if the font is italic</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isUnderline" use="optional">
	<annotation>
	 <documentation>Flag indicating if the font is underlined</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isStrikeThrough" use="optional">
	<annotation>
	 <documentation>Flag indicating if the font is strikethrough</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="pdfFontName" type="string" use="optional">
	<annotation>
	 <documentation>Name of the PDF font.</documentation>
	</annotation>
   </attribute>
   <attribute name="pdfEncoding" type="string" use="optional">
	<annotation>
	 <documentation>Encoding type to use with the PDF font.</documentation>
	</annotation>
   </attribute>   
   <attribute name="isPdfEmbedded" use="optional">
	<annotation>
	 <documentation>Specifies if the PDF font should be embedded in the document.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="style">
  <annotation>
   <documentation>Definition of a report style.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:pen" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:box" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:paragraph" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:conditionalStyle" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="name" type="string" use="optional">
	<annotation>
	 <documentation>Name of the report style definition.</documentation>
	</annotation>
   </attribute>
   <attribute name="isDefault" use="optional">
	<annotation>
	 <documentation>The default report style is used as base style for all the elements that do not explicitly reference a report style definition.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="style" type="string" use="optional">
	<annotation>
	 <documentation>Parent style reference.</documentation>
	</annotation>
   </attribute>
   <attribute name="mode" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="Opaque"/>
      <enumeration value="Transparent"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="forecolor" type="string" use="optional"/>
   <attribute name="backcolor" type="string" use="optional"/>
   <attribute name="pen" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>pen</elem>.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None"/>
      <enumeration value="Thin"/>
      <enumeration value="1Point"/>
      <enumeration value="2Point"/>
      <enumeration value="4Point"/>
      <enumeration value="Dotted"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="fill" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="Solid"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="radius" type="NMTOKEN" use="optional"/>
   <attribute name="scaleImage" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="Clip"/>
      <enumeration value="FillFrame"/>
      <enumeration value="RetainShape"/>
      <enumeration value="RealHeight"/>
      <enumeration value="RealSize"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="hAlign" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="Left"/>
      <enumeration value="Center"/>
      <enumeration value="Right"/>
      <enumeration value="Justified"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="hTextAlign" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="Left"/>
      <enumeration value="Center"/>
      <enumeration value="Right"/>
      <enumeration value="Justified"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="hImageAlign" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="Left"/>
      <enumeration value="Center"/>
      <enumeration value="Right"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="vAlign" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="Top"/>
      <enumeration value="Middle"/>
      <enumeration value="Bottom"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="vTextAlign" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="Top"/>
      <enumeration value="Middle"/>
      <enumeration value="Bottom"/>
      <enumeration value="Justified"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="vImageAlign" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="Top"/>
      <enumeration value="Middle"/>
      <enumeration value="Bottom"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="border" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None"/>
      <enumeration value="Thin"/>
      <enumeration value="1Point"/>
      <enumeration value="2Point"/>
      <enumeration value="4Point"/>
      <enumeration value="Dotted"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="borderColor" type="string" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
   </attribute>   
   <attribute name="padding" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
   </attribute>   
   <attribute name="topBorder" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None"/>
      <enumeration value="Thin"/>
      <enumeration value="1Point"/>
      <enumeration value="2Point"/>
      <enumeration value="4Point"/>
      <enumeration value="Dotted"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="topBorderColor" type="string" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
   </attribute>
   <attribute name="topPadding" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
   </attribute>
   <attribute name="leftBorder" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None"/>
      <enumeration value="Thin"/>
      <enumeration value="1Point"/>
      <enumeration value="2Point"/>
      <enumeration value="4Point"/>
      <enumeration value="Dotted"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="leftBorderColor" type="string" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
   </attribute>
   <attribute name="leftPadding" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
   </attribute>
   <attribute name="bottomBorder" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None"/>
      <enumeration value="Thin"/>
      <enumeration value="1Point"/>
      <enumeration value="2Point"/>
      <enumeration value="4Point"/>
      <enumeration value="Dotted"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="bottomBorderColor" type="string" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
   </attribute>
   <attribute name="bottomPadding" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
   </attribute>
   <attribute name="rightBorder" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None"/>
      <enumeration value="Thin"/>
      <enumeration value="1Point"/>
      <enumeration value="2Point"/>
      <enumeration value="4Point"/>
      <enumeration value="Dotted"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="rightBorderColor" type="string" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
   </attribute>
   <attribute name="rightPadding" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>box</elem>.</documentation>
	</annotation>
   </attribute>
   <attribute name="rotation" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="None"/>
      <enumeration value="Left"/>
      <enumeration value="Right"/>
      <enumeration value="UpsideDown"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="lineSpacing" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="Single"/>
      <enumeration value="1_1_2"/>
      <enumeration value="Double"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isStyledText" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by attribute <code>markup</code>.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="markup" type="string" use="optional"/>
   <attribute name="fontName" type="string" use="optional"/>
   <attribute name="fontSize" type="NMTOKEN" use="optional"/>
   <attribute name="isBold" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isItalic" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isUnderline" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isStrikeThrough" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="pdfFontName" type="string" use="optional"/>
   <attribute name="pdfEncoding" type="string" use="optional"/>
   <attribute name="isPdfEmbedded" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="pattern" type="string" use="optional"/>
   <attribute name="isBlankWhenNull" use="optional">
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="pen">
  <annotation>
   <documentation>Groups the properties of the pen used to draw lines or borders.</documentation>
  </annotation>  
  <complexType>
   <attribute name="lineWidth" type="NMTOKEN" use="optional">
  	<annotation>
   	 <documentation>The line width of the pen.</documentation>
  	</annotation>  
   </attribute>
   <attribute name="lineStyle" use="optional">
  	<annotation>
   	 <documentation>The line style of the pen.</documentation>
  	</annotation>  
    <simpleType>
     <restriction base="string">
      <enumeration value="Solid">
  		<annotation>
   	 	 <documentation>Solid line.</documentation>
  		</annotation>  
      </enumeration>
      <enumeration value="Dashed">
  		<annotation>
   	 	 <documentation>Dashed line.</documentation>
  		</annotation>  
      </enumeration>
      <enumeration value="Dotted">
  		<annotation>
   	 	 <documentation>Dotted line.</documentation>
  		</annotation>  
      </enumeration>
      <enumeration value="Double">
  		<annotation>
   	 	 <documentation>Double line.</documentation>
  		</annotation>  
      </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="lineColor" type="string" use="optional">
  	<annotation>
   	 <documentation>The line color of the pen.</documentation>
  	</annotation>  
   </attribute>
  </complexType>
 </element>

 <element name="paragraph">
  <annotation>
   <documentation>Paragraph properties for text elements.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:tabStop" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="lineSpacing" use="optional">
    <annotation>
     <documentation>Type of line spacing for the text object.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Single">
		<annotation>
		 <documentation>Normal line spacing</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="1_1_2">
		<annotation>
		 <documentation>Medium line spacing.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Double">
		<annotation>
		 <documentation>Double line spacing</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="AtLeast">
		<annotation>
		 <documentation>Line spacing is at least the amount specified by lineSpacingSize.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Fixed">
		<annotation>
		 <documentation>Line spacing is exactly as specified bye lineSpacingSize.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Proportional">
		<annotation>
		 <documentation>Line spacing is normal line spacing multiplied by lineSpacingSize.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="lineSpacingSize" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The line spacing size to be used in combination with the line spacing type.</documentation>
	</annotation>
   </attribute>
   <attribute name="firstLineIndent" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The indent of the first line of text.</documentation>
	</annotation>
   </attribute>
   <attribute name="leftIndent" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The left indent of text.</documentation>
	</annotation>
   </attribute>
   <attribute name="rightIndent" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The right indent of text.</documentation>
	</annotation>
   </attribute>
   <attribute name="spacingBefore" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The spacing before text.</documentation>
	</annotation>
   </attribute>
   <attribute name="spacingAfter" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The spacing after text.</documentation>
	</annotation>
   </attribute>
   <attribute name="tabStopWidth" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The tab stop width of the text.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="tabStop">
  <annotation>
   <documentation>Custom tab stop definition.</documentation>
  </annotation>
  <complexType>
   <attribute name="alignment" use="optional">
    <annotation>
	 <documentation>The alignment of the custom tab stop.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Left">
		<annotation>
		 <documentation>Left aligned tab stop.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Center">
		<annotation>
		 <documentation>Center aligned tab stop.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Right">
		<annotation>
		 <documentation>Right aligned tab stop.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="position" type="NMTOKEN" use="required">
	<annotation>
	 <documentation>The position of the custom tab stop.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="conditionalStyle">
  <annotation>
   <documentation>Used for adding conditions to a current style, to create dynamic styles.
	  <p/>
	   Modifies the properties of the parent style, based on various conditions evaluated at fill time. It must be placed inside a top level style.
   </documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:conditionExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:style"/>
   </sequence>
  </complexType>
 </element>

 <element name="conditionExpression">
  <annotation>
   <documentation>A boolean expression which indicates if the style properties associated with it should be applied to the parent style.</documentation>
  </annotation>  
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="subDataset">
  <annotation>
   <documentation>Definition of a dataset.  A dataset can be used to feed data not present in the report to charts and crosstabs without using subreports.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:property" minOccurs="0" maxOccurs="unbounded"/>
    <element name="propertyExpression" type="jr:datasetPropertyExpressionType" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:scriptlet" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:parameter" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:queryString" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:field" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:sortField" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:variable" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:filterExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:group" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="name" type="string" use="required">
  	<annotation>
   	 <documentation>Name of the dataset.</documentation>
  	</annotation>  
   </attribute>
   <attribute name="scriptletClass" type="string" use="optional">
  	<annotation>
   	 <documentation>Indicates which class implements the scriptlets functionality for this dataset. The specified class must be a subclass of <code>JRAbstractScriptlet</code> class. If omitted, an instance of <code>JRDefaultScriptlet</code> will be created.</documentation>
  	</annotation>  
   </attribute>
   <attribute name="resourceBundle" type="string" use="optional">
  	<annotation>
   	 <documentation>The base name of the dataset associated resource bundle.</documentation>
  	</annotation>  
   </attribute>
   <attribute name="whenResourceMissingType" use="optional" default="Null">
  	<annotation>
   	 <documentation>Allows customizing the way the engine deals with missing resources in the resource bundle.</documentation>
  	</annotation>  
    <simpleType>
     <restriction base="string">
      <enumeration value="Null">
	  	<annotation>
	   	 <documentation>Null is returned for the missing resource.</documentation>
	  	</annotation>  
      </enumeration>
      <enumeration value="Empty">
	  	<annotation>
	   	 <documentation>An empty string is returned for the missing resource.</documentation>
	  	</annotation>  
      </enumeration>
      <enumeration value="Key">
	  	<annotation>
	   	 <documentation>The key is returned for the missing resources.</documentation>
	  	</annotation>  
      </enumeration>
      <enumeration value="Error">
	  	<annotation>
	   	 <documentation>An exception is thrown when the resource with the specified key is missing.</documentation>
	  	</annotation>  
      </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="uuid" type="string" use="optional">
	<annotation>
	 <documentation>This attribute is auto-generated and is used to uniquely identify subdatasets.</documentation>
	</annotation>
   </attribute>  
  </complexType>
 </element>

 <element name="scriptlet">
  <complexType>
   <sequence>
    <element ref="jr:property" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:scriptletDescription" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="name" type="string" use="required"/>
   <attribute name="class" type="string" use="required"/>
  </complexType>
 </element>

 <element name="scriptletDescription">
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="parameter">
  <annotation>
   <documentation>Represents the definition of a report parameter. Parameters are very useful for passing data to the report engine and can be used in the expressions or in the query string of the report.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:property" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:parameterDescription" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:defaultValueExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="name" type="string" use="required">
  	<annotation>
   	 <documentation>Name of the parameter.</documentation>
  	</annotation>  
   </attribute>
   <attribute name="class" type="string" use="optional" default="java.lang.String">
  	<annotation>
   	 <documentation>Class of the parameter values.</documentation>
  	</annotation>  
   </attribute>
   <attribute name="nestedType" type="string" use="optional">
  	<annotation>
   	 <documentation>Type of the nested elements, if the parameter's value is a collection</documentation>
  	</annotation>  
   </attribute>
   <attribute name="isForPrompting" use="optional" default="true">
  	<annotation>
   	 <documentation>Optional flag that might be used by the parent application to prompt the user for the parameter value.</documentation>
  	</annotation>  
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="evaluationTime" use="optional">
  	<annotation>
   	 <documentation>Specifies when the default value expression of a parameter is evaluated.</documentation>
  	</annotation>  
    <simpleType>
     <restriction base="string">
      <enumeration value="Early">
	  	<annotation>
	   	 <documentation>Evaluate the parameter default value expression before parameter contributors.</documentation>
	  	</annotation>  
      </enumeration>
      <enumeration value="Late">
	  	<annotation>
	   	 <documentation>Evaluate the parameter default value expression after parameter contributors.</documentation>
	  	</annotation>  
      </enumeration>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="parameterDescription">
  <annotation>
   <documentation>Can be used to specify a short text description for the parameter and is useful especially when prompting for the user to supply a value for this parameter at runtime.</documentation>
  </annotation>  
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="defaultValueExpression">
  <annotation>
   <documentation>Specifies the parameter default value to use when not supplied by the parent application at runtime.</documentation>
  </annotation>  
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="queryString">
  <annotation>
   <documentation>Contains the SQL query that will be used to retrieve the data needed to fill the report.</documentation>
  </annotation>  
  <complexType mixed="true">
   <attribute name="language" type="string" use="optional" default="sql">
   	<annotation>
   	 <documentation>Specifies the query language.
	  <p/>
		Based on the query language, a corresponding
		<code>net.sf.jasperreports.engine.query.QueryExecuterFactory</code> is used to create
		<code>net.sf.jasperreports.engine.query.JRQueryExecuter</code> instance.
		The query executer is responsible for executing the query and creating a <code>JRDataSource</code> from the result.
	  <p/>
		A executer for a query language is registered using a JR propery named
		<code>net.sf.jasperreports.query.executer.factory.&lt;language&gt;</code></documentation>
   	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="field">
  <annotation>
   <documentation>Represents the definition of a data field that will store values retrieved from the data source of the report.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:property" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:propertyExpression" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:fieldDescription" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="name" type="string" use="required">
  	<annotation>
   	 <documentation>Name of the field.</documentation>
  	</annotation>  
   </attribute>   
   <attribute name="class" type="string" use="optional" default="java.lang.String">
  	<annotation>
   	 <documentation>Class of the field values.</documentation>
  	</annotation>  
   </attribute>   
  </complexType>
 </element>

 <element name="fieldDescription">
  <annotation>
   <documentation>Can be used to specify a short text description for the field and is useful especially when creating special designed data sources and an extra information is needed in order  to extract the value of the field.</documentation>
  </annotation>  
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="sortField">
  <annotation>
   <documentation>Introduces a field to use for sorting the data source.</documentation>
  </annotation>  
  <complexType>
   <attribute name="name" type="string" use="required">
  	<annotation>
   	 <documentation>Name of the report field to use for sorting.</documentation>
  	</annotation>  
   </attribute>   
   <attribute name="order" use="optional" default="Ascending">
  	<annotation>
   	 <documentation>The sort order for the field.</documentation>
  	</annotation>  
    <simpleType>
     <restriction base="string">
      <enumeration value="Ascending"/>
      <enumeration value="Descending"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="type" use="optional" default="Field">
  	<annotation>
   	 <documentation>The type of the sort field.</documentation>
  	</annotation>  
    <simpleType>
     <restriction base="string">
      <enumeration value="Field"/>
      <enumeration value="Variable"/>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="variable">
  <annotation>
   <documentation>Represents the definition of a report variable. Variables are objects that store the values of their associated expressions or perform various calculations on those expression values. Expressions are java expressions build on top of fields and variables declared in the report. They are evaluated at runtime, when filling the report.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:variableExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:initialValueExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="name" type="string" use="required">
  	<annotation>
   	 <documentation>Name of the variable.</documentation>
  	</annotation>  
   </attribute>   
   <attribute name="class" type="string" use="optional" default="java.lang.String">
  	<annotation>
   	 <documentation>Class of the variable values.</documentation>
  	</annotation>  
   </attribute>   
   <attribute name="resetType" use="optional" default="Report">
  	<annotation>
   	 <documentation>Reset level for variables that perform calculations.</documentation>
  	</annotation>  
    <simpleType>
     <restriction base="string">
      <enumeration value="None">
	  	<annotation>
	   	 <documentation>Variable is never initialized using the initial value expression and only holds the values obtained by evaluating its main expression.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Report">
	  	<annotation>
	   	 <documentation>Variable is initialized only once, at the beginning of the report.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Page">
	  	<annotation>
	   	 <documentation>Variable is initialized at the beginning of each page.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Column">
	  	<annotation>
	   	 <documentation>Variable is initialized at the beginning of each column.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Group">
	  	<annotation>
	   	 <documentation>Variable is initialized when the group specified by the <code>resetGroup</code> attribute changes.</documentation>
	  	</annotation>
	  </enumeration> 
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="resetGroup" type="string" use="optional">
  	<annotation>
   	 <documentation>Name of the group at which the variable is reinitialized, when <code>resetType</code> is "Group".</documentation>
  	</annotation>  
   </attribute>   
   <attribute name="incrementType" use="optional" default="None">
  	<annotation>
   	 <documentation>Increment level for variables that perform calculations.</documentation>
  	</annotation>  
    <simpleType>
     <restriction base="string">
      <enumeration value="None">
	  	<annotation>
	   	 <documentation>Variable is incremented with every record in the data source.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Report">
	  	<annotation>
	   	 <documentation>Variable is incremented only once, at the end of the report.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Page">
	  	<annotation>
	   	 <documentation>Variable is incremented at the end of each page.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Column">
	  	<annotation>
	   	 <documentation>Variable is incremented at the end of each column.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Group">
	  	<annotation>
	   	 <documentation>Variable is incremented when the group specified by the <code>incrementGroup</code> attribute changes.</documentation>
	  	</annotation>
	  </enumeration> 
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="incrementGroup" type="string" use="optional">
  	<annotation>
   	 <documentation>Name of the group at which the variable is incremented, when <code>incrementType</code> is "Group".</documentation>
  	</annotation>
   </attribute>  
   <attribute name="calculation" use="optional" default="Nothing">
  	<annotation>
   	 <documentation>Calculation to perform on the variable expression when filling the report.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Nothing">
	  	<annotation>
	   	 <documentation>No calculations are performed.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Count">
	  	<annotation>
	   	 <documentation>Variable stores the number of the not null values encountered for the variable expression.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="DistinctCount">
	  	<annotation>
	   	 <documentation>Variable stores the number of distinct not null values encountered for the variable expression.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Sum">
	  	<annotation>
	   	 <documentation>Variable stores the sum of the not null values encountered for the variable expression. Numeric variables only.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Average">
	  	<annotation>
	   	 <documentation>Variable stores the average of the not null values encountered for the variable expression. Numeric variables only.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Lowest">
	  	<annotation>
	   	 <documentation>Variable stores the lowest value encountered for the variable expression.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Highest">
	  	<annotation>
	   	 <documentation>Variable stores the highest value encountered for the variable expression.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="StandardDeviation">
	  	<annotation>
	   	 <documentation>Variable stores the standard deviation of the not null values encountered for the variable expression. Numeric variables only.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="Variance">
	  	<annotation>
	   	 <documentation>Variable stores the variance of the not null values encountered for the variable expression. Numeric variables only.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="System">
	  	<annotation>
	   	 <documentation>Variable stores a system (custom) calculated value.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="First">
	  	<annotation>
	   	 <documentation>Variable stores the first value encountered and ignores subsequent values.</documentation>
	  	</annotation>
	  </enumeration> 
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="incrementerFactoryClass" type="string" use="optional">
 	<annotation>
  	 <documentation>The name of a class that implements the <code>net.sf.jasperreports.engine.fill.JRIncrementerFactory</code> interface to use when creating the incrementer instance for this variable. Incrementers are objects that implement the <code>net.sf.jasperreports.engine.fill.JRIncrementer</code> interface and handle the incremental calculation performed on the variable's current value with every iteration in the data source.</documentation>
 	</annotation>
   </attribute> 
  </complexType>
 </element>

 <element name="variableExpression">
  <annotation>
   <documentation>Definition of the expression associated with the variable. The value of this expression will be calculated at runtime and will represent the value of the corresponding variable or it will be used in calculation to obtain the value of the calculated variable.</documentation>
  </annotation>  
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="initialValueExpression">
  <annotation>
   <documentation>Definition of the expression that will be used to calculate the initial value of the variable, before any calculations are made.</documentation>
  </annotation>  
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="filterExpression">
  <annotation>
   <documentation>Boolean expression used to filter the rows of a data source.
	 <p>
	 This expression is used to filter the rows of the data source that this dataset will iterate on.
	 </p>
	 <p><![CDATA[
	 This expression (if not null) is evaluated immediately after a new row is produced by the data source.
	 The evaluation is performed using field and variable values corresponding to the new row. 
	 When the result of the evaluation is <code>Boolean.TRUE</code> the row gets processed by the report filling engine.
	 When the result is null or <code>Boolean.FALSE</code>, the current row will be skipped and the datasource will be asked for the next row.
	 ]]></p></documentation>
  </annotation>  
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="group">
  <annotation>
   <documentation>Definition of a group on the report.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:groupExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:groupHeader" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:groupFooter" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="name" type="string" use="required">
 	<annotation>
  	 <documentation>Name of the group.</documentation>
 	</annotation>
   </attribute> 
   <attribute name="isStartNewColumn" use="optional" default="false">
 	<annotation>
  	 <documentation>Flag that signals if the group header should be printed always on a new column.</documentation>
 	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
	  	<annotation>
	   	 <documentation>Group header section is printed always on a new column.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="false">
	  	<annotation>
	   	 <documentation>Group header section is printed on the current column, if there is enough space.</documentation>
	  	</annotation>
	  </enumeration> 
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isStartNewPage" use="optional" default="false">
 	<annotation>
  	 <documentation>Flag that signals if the group header should be printed always on a new page.</documentation>
 	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
	  	<annotation>
	   	 <documentation>Group header section is printed always on a new page.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="false">
	  	<annotation>
	   	 <documentation>Group header section is printed on the current page, if there is enough space.</documentation>
	  	</annotation>
	  </enumeration> 
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isResetPageNumber" use="optional" default="false">
 	<annotation>
  	 <documentation>Flag that signals if the group header should be printed always on a new page, along with the re-initialization of the page number.</documentation>
 	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
	  	<annotation>
	   	 <documentation>Group header section is printed always on a new page and the page number is reinitialized.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="false">
	  	<annotation>
	   	 <documentation>Group header section is printed accordingly with the <code>isStartNewPage</code> attribute and the page number is not affected.</documentation>
	  	</annotation>
	  </enumeration> 
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isReprintHeaderOnEachPage" use="optional" default="false">
 	<annotation>
  	 <documentation>Flag that signals if the group header should be reprinted at the beginning of each page.</documentation>
 	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
	  	<annotation>
	   	 <documentation>Group header section is reprinted always at the beginning of a new page.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="false">
	  	<annotation>
	   	 <documentation>Group header section is not reprinted at the beginning of a new page.</documentation>
	  	</annotation>
	  </enumeration> 
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="minHeightToStartNewPage" type="NMTOKEN" use="optional" default="0">
 	<annotation>
  	 <documentation>Minimum amount of vertically space needed at the bottom of the column in order to place the group header on the current column.</documentation>
 	</annotation>
   </attribute>
   <attribute name="footerPosition" use="optional" default="Normal">
	<annotation>
	 <documentation>Specifies how the group footer section behaves with regards to its position on the current page.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Normal">
		<annotation>
		 <documentation>The group footer section is rendered at normal position, just right after the last detail or right after the nested group footer section.</documentation>
		</annotation>
	  </enumeration>  
      <enumeration value="StackAtBottom">
		<annotation>
		 <documentation>The group footer section is rendered at bottom of the current page, provided that an inner group having this value would force outer group footers to stack at the bottom of the current page, regardless of the outer group footer setting.</documentation>
		</annotation>
	  </enumeration>  
      <enumeration value="ForceAtBottom">
		<annotation>
		 <documentation>The group footer section is rendered at bottom of the current page, provided that an inner group having this value would render its footer right at the bottom of the page, forcing the outer group footers to render on the next page.</documentation>
		</annotation>
	  </enumeration>  
      <enumeration value="CollateAtBottom">
		<annotation>
		 <documentation>The group footer section is rendered at bottom of the current page, provided that the outer footers have a similar footer display option to render at the page bottom as well, because otherwise, they cannot be forced to change their behavior in any way.</documentation>
		</annotation>
	  </enumeration>  
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="keepTogether" use="optional" default="false">
 	<annotation>
  	 <documentation>Flag that prevents the group from splitting on two separate pages/columns, but only on the first break attempt.</documentation>
 	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
	  	<annotation>
	   	 <documentation>Group can split across two separate pages/column at any moment.</documentation>
	  	</annotation>
	  </enumeration> 
      <enumeration value="false">
	  	<annotation>
	   	 <documentation>Group is moved onto a new new page/column, before being split.</documentation>
	  	</annotation>
	  </enumeration> 
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="groupExpression">
  <annotation>
   <documentation>Specifies the expression that will be evaluated at runtime to determine the group ruptures.</documentation>
  </annotation>  
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="groupHeader">
  <annotation>
   <documentation>Contains the definition of the header section for this group.</documentation>
  </annotation>  
  <complexType>
   <choice minOccurs="0" maxOccurs="1">
    <element ref="jr:band" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:part" minOccurs="0" maxOccurs="unbounded"/>
   </choice>
  </complexType>
 </element>

 <element name="groupFooter">
  <annotation>
   <documentation>Contains the definition of the footer section for this group.</documentation>
  </annotation>  
  <complexType>
   <choice minOccurs="0" maxOccurs="1">
    <element ref="jr:band" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:part" minOccurs="0" maxOccurs="unbounded"/>
   </choice>
  </complexType>
 </element>

 <element name="background">
  <annotation>
   <documentation>Definition of the page background section for this report. The background section is displayed on every page and cannot overflow to the next page. Elements placed on this section are evaluated at page initialization time and are displayed in the back. All other page elements are displayed on top of the background elements. This section allows creating watermark or other similar effects in documents.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:band" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="title">
  <annotation>
   <documentation>Definition of the title section for this report. The title section appears only once at the beginning of the report.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:band" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="pageHeader">
  <annotation>
   <documentation>Definition of the page header section for this report. The page header is printed at the beginning of each page on the report.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:band" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="columnHeader">
  <annotation>
   <documentation>Definition of the column header section for this report. The column header is printed at the beginning of each column on the report. If the report's column count is 1, column  header and footer sections are ignored.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:band" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="detail">
  <annotation>
   <documentation>Definition of a detail band for this report. A detail band is repeated for each line of data supplied by the report's data source. There can be multiple detail bands in a report.</documentation>
  </annotation>  
  <complexType>
   <choice minOccurs="0" maxOccurs="1">
    <element ref="jr:band" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:part" minOccurs="0" maxOccurs="unbounded"/>
   </choice>
  </complexType>
 </element>

 <element name="columnFooter">
  <annotation>
   <documentation>Definition of the column footer section for this report. The column footer is printed at the bottom of each column on the report. If the report's column count is 1, column header   and footer sections are ignored.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:band" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="pageFooter">
  <annotation>
   <documentation>Definition of the page footer section for this report. The page footer is printed at the bottom of each page on the report.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:band" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="lastPageFooter">
  <annotation>
   <documentation>The page footer section to use on the last page instead of the normal page footer. This might not be the very last page of the document in case the summary section is also present. This section is sometimes useful when summary information has to be displayed at the bottom of the last page.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:band" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="summary">
  <annotation>
   <documentation>Definition of the summary section for this report. The summary section is printed only once at the end of the report.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:band" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="noData">
  <annotation>
   <documentation>Definition of the noData section for this report. The noData section is printed only if whenNoDataType attribute is set to "NoDataSection".</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:band" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="band">
  <annotation>
   <documentation>Generic definition of a report section.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:property" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:printWhenExpression" minOccurs="0" maxOccurs="1"/>
    <choice minOccurs="0" maxOccurs="unbounded">
     <element ref="jr:break"/>
     <element ref="jr:line"/>
     <element ref="jr:rectangle"/>
     <element ref="jr:ellipse"/>
     <element ref="jr:image"/>
     <element ref="jr:staticText"/>
     <element ref="jr:textField"/>
     <element ref="jr:subreport"/>
     <element ref="jr:pieChart"/>
     <element ref="jr:pie3DChart"/>
     <element ref="jr:barChart"/>
     <element ref="jr:bar3DChart"/>
     <element ref="jr:xyBarChart"/>
     <element ref="jr:stackedBarChart"/>
     <element ref="jr:stackedBar3DChart"/>
     <element ref="jr:lineChart"/>
     <element ref="jr:xyLineChart"/>
     <element ref="jr:areaChart"/>
     <element ref="jr:xyAreaChart"/>
     <element ref="jr:scatterChart"/>
     <element ref="jr:bubbleChart"/>
     <element ref="jr:timeSeriesChart"/>
     <element ref="jr:highLowChart"/>
     <element ref="jr:candlestickChart"/>
     <element ref="jr:meterChart"/>
     <element ref="jr:thermometerChart"/>
     <element ref="jr:multiAxisChart"/>
     <element ref="jr:stackedAreaChart"/>
     <element ref="jr:ganttChart"/>
     <element ref="jr:elementGroup"/>
     <element ref="jr:crosstab"/>
     <element ref="jr:frame"/>
     <element ref="jr:componentElement"/>
     <element ref="jr:genericElement"/>
    </choice>
    <element name="returnValue" type="jr:expressionReturnValue" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="height" type="NMTOKEN" use="optional" default="0">
	<annotation>
	 <documentation>Height of the band.</documentation>
	</annotation>  
   </attribute>
   <attribute name="isSplitAllowed" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by attribute <code>splitType</code>. Flag that indicates if the band is allowed to split when it stretches.</documentation>
	</annotation>  
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation>Page breaks are accepted within this band.</documentation>
		</annotation> 
	  </enumeration> 
      <enumeration value="false">
		<annotation>
		 <documentation>When the band stretches and it does not fit on the current page, the content of the band will be transferred on the next new page. On this new page the flag will be ignored since the band has to be displayed even there is not enough space to acquire the stretch.</documentation>
		</annotation> 
	  </enumeration> 
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="splitType" use="optional">
	<annotation>
	 <documentation>Specifies the band split behavior.</documentation>
	</annotation>  
    <simpleType>
     <restriction base="string">
      <enumeration value="Stretch">
		<annotation>
		 <documentation>The band is allowed to split, but never within its declared height. This means the band splits only when its content stretches.</documentation>
		</annotation> 
	  </enumeration> 
      <enumeration value="Prevent">
		<annotation>
		 <documentation>Prevents the band from splitting on first break attempt. On subsequent pages/columns, the band is allowed to split, to avoid infinite loops.</documentation>
		</annotation> 
	  </enumeration> 
      <enumeration value="Immediate">
		<annotation>
		 <documentation>The band is allowed to split anywhere, as early as needed, but not before at least one element being printed on the current page/column.</documentation>
		</annotation> 
	  </enumeration> 
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="part">
  <annotation>
   <documentation>Generic definition of a report part.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:property" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:printWhenExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:partNameExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:partComponent"/>
   </sequence>
   <attribute name="uuid" type="string" use="optional">
	<annotation>
	 <documentation>This attribute is auto-generated and is used to uniquely identify parts.</documentation>
	</annotation>
   </attribute>  
   <attribute name="evaluationTime" use="optional">
     <annotation>
       <documentation>Determines the time at which the part is to be evaluated.</documentation>
     </annotation>
     <simpleType>
       <restriction base="string">
         <enumeration value="Now">
           <annotation>
             <documentation>The part is to be evaluated immediately.</documentation>
           </annotation>
         </enumeration>
         <enumeration value="Report">
           <annotation>
             <documentation>The part is to be evaluated when the report ends.</documentation>
           </annotation>
         </enumeration>
         <enumeration value="Group">
           <annotation>
             <documentation>The part is to be evaluated when a group breaks.</documentation>
           </annotation>
         </enumeration>
       </restriction>
     </simpleType>
   </attribute>  
   <attribute name="evaluationGroup" type="string" use="optional">
     <annotation>
       <documentation>Specifies the group at which to evaluate the part when <code>evaluationTime</code> is Group.</documentation>
     </annotation>
   </attribute>  
  </complexType>
 </element>

 <element name="partNameExpression">
  <annotation>
   <documentation>An expression that will provide a name for a report part.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="partComponent" type="jr:partComponentType" abstract="true">
  <annotation>
   <documentation/>
  </annotation>
 </element>
  
 <complexType name="partComponentType" abstract="true">
  <annotation>
   <documentation/>
  </annotation>
 </complexType>

 <element name="break">
  <annotation>
   <documentation>Introduces a page break or column break</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:reportElement"/>
   </sequence>
   <attribute name="type" use="optional" default="Page">
	<annotation>
	 <documentation>Specifies the type of the break element.</documentation>
	</annotation>  
    <simpleType>
     <restriction base="string">
      <enumeration value="Page">
		<annotation>
		 <documentation>Page break.</documentation>
		</annotation> 
	  </enumeration> 
      <enumeration value="Column">
		<annotation>
		 <documentation>Column break.</documentation>
		</annotation> 
	  </enumeration> 
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="line">
  <annotation>
   <documentation>Definition of a line object.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:reportElement"/>
    <element ref="jr:graphicElement" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="direction" use="optional" default="TopDown">
	<annotation>
	 <documentation>Lines are drawn as diagonals of the rectangle defined by the report element properties. This attribute specifies which of the two diagonals should be drawn.</documentation>
	</annotation>  
    <simpleType>
     <restriction base="string">
      <enumeration value="TopDown">
		<annotation>
		 <documentation>The diagonal that starts in the top-left corner of the rectangle will be drawn.</documentation>
		</annotation> 
	  </enumeration> 
      <enumeration value="BottomUp">
		<annotation>
		 <documentation>The diagonal that starts in the bottom-left corner of the rectangle will be drawn.</documentation>
		</annotation> 
	  </enumeration> 
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="reportElement">
  <annotation>
   <documentation>Element used to specify the common properties of an object on the report.</documentation>
  </annotation>  
  <complexType>
   <sequence>
    <element ref="jr:property" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:propertyExpression" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:printWhenExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="uuid" type="string" use="optional">
	<annotation>
	 <documentation>This attribute is auto-generated and is used to uniquely identify elements across multiple report templates.</documentation>
	</annotation>
   </attribute>  
   <attribute name="key" type="string" use="optional">
	<annotation>
	 <documentation>This attribute is used to identify band elements by their "key" when wanting to alter their settings at runtime. The key value must be unique for elements within report band.</documentation>
	</annotation>
   </attribute>  
   <attribute name="style" type="string" use="optional">
	<annotation>
	 <documentation>Name of the report level style to use as base style (see <elem>style</elem> element).</documentation>
	</annotation>
   </attribute>  
   <attribute name="positionType" use="optional" default="FixRelativeToTop">
	<annotation>
	 <documentation>Specifies the object position when the report section is affected by stretch.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Float">
		<annotation>
		 <documentation>The element moves relative to the size of the surrounding elements.</documentation>
		</annotation>
	  </enumeration>  
      <enumeration value="FixRelativeToTop">
		<annotation>
		 <documentation>The element maintains its position relative to the top of the band.</documentation>
		</annotation>
	  </enumeration>  
      <enumeration value="FixRelativeToBottom">
		<annotation>
		 <documentation>The element maintains its position relative to the bottom of the band.</documentation>
		</annotation>
	  </enumeration>  
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="stretchType" use="optional" default="NoStretch">
	<annotation>
	 <documentation>Specifies the element stretch behavior relative to its element group siblings or element container stretch.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="NoStretch">
		<annotation>
		 <documentation>The element won't stretch vertically beyond its natural stretch height, when the container stretches to display other elements.</documentation>
		</annotation>
	  </enumeration>  
      <enumeration value="RelativeToTallestObject">
		<annotation>
		 <documentation><i>Deprecated</i>. Replaced by ElementGroupHeight value.</documentation>
		</annotation>
	  </enumeration>  
      <enumeration value="RelativeToBandHeight">
		<annotation>
		 <documentation><i>Deprecated</i>. Replaced by ContainerHeight value.</documentation>
		</annotation>
	  </enumeration>  
      <enumeration value="ElementGroupBottom">
		<annotation>
		 <documentation>The element will stretch to accommodate the overall natural growth of its group, but also taking into account the shifting Y position of the element within its group. See the <elem>elementGroup</elem> element, to see how to group elements.</documentation>
		</annotation>
	  </enumeration>  
      <enumeration value="ElementGroupHeight">
		<annotation>
		 <documentation>The element will stretch to accommodate the overall natural growth of its group, without taking into account the shifting Y position of the element within its group. See the <elem>elementGroup</elem> element, to see how to group elements.</documentation>
		</annotation>
	  </enumeration>  
      <enumeration value="ContainerBottom">
		<annotation>
		 <documentation>The element will stretch to fit the container height, while taking into account its new Y position. This results in the element preserving its distance to the container's bottom edge.</documentation>
		</annotation>
	  </enumeration>  
      <enumeration value="ContainerHeight">
		<annotation>
		 <documentation>The element will stretch to fit the container height, but without taking into account its new Y position. This might results in the element being shifted up (due to collapsing elements above) or down (due to stretching elements above that push it downards) relative to the container bottom edge. In case the element its already pushed downwards, the additional stretch imposed by the container might actually throw it beyond the container's bottom edge, in which case the element will not render at all.</documentation>
		</annotation>
	  </enumeration>  
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isPrintRepeatedValues" use="optional" default="true">
	<annotation>
	 <documentation>This flag allows suppressing the repeating values for the dynamic elements such as text fields and image fields and to fully customize the behavior of the static elements like rectangles, lines, ellipses and static texts.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation>Dynamic elements will print even if their values repeat. Static elements will appear every time the band that contains them is started.</documentation>
		</annotation>
	  </enumeration>  
      <enumeration value="false">
		<annotation>
		 <documentation>Suppresses the repeated values for the dynamic elements. The static elements will print only according to the other 3 attributes: <code>isPrintInFirstWholeBand</code>, <code>isPrintWhenDetailOverflows</code>, <code>printWhenGroupChanges</code>.</documentation>
		</annotation>
	  </enumeration>  
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="mode" use="optional">
	<annotation>
	 <documentation>Specifies whether the background of an object is transparent or opaque.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Opaque">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>  
      <enumeration value="Transparent">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>  
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="x" type="NMTOKEN" use="required">
	<annotation>
	 <documentation>Specifies the x coordinate for the object within the band.</documentation>
	</annotation>
   </attribute>  
   <attribute name="y" type="NMTOKEN" use="required">
	<annotation>
	 <documentation>Specifies the y coordinate for the object within the band.</documentation>
	</annotation>
   </attribute>  
   <attribute name="width" type="NMTOKEN" use="required">
	<annotation>
	 <documentation>Width of the object.</documentation>
	</annotation>
   </attribute>  
   <attribute name="height" type="NMTOKEN" use="required">
	<annotation>
	 <documentation>Height of the object.</documentation>
	</annotation>
   </attribute>  
   <attribute name="isRemoveLineWhenBlank" use="optional" default="false">
	<annotation>
	 <documentation>Collapses the band if the element is not printing and no other element is occupying the same horizontal space.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>  
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>  
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isPrintInFirstWholeBand" use="optional" default="false">
	<annotation>
	 <documentation>The element gets printed in the first band of a new page or column that is not an overflow from a previous page or column.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>  
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>  
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isPrintWhenDetailOverflows" use="optional" default="false">
	<annotation>
	 <documentation>The element will be printed when the band overflows to a new page or a new column.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>  
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>  
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="printWhenGroupChanges" type="string" use="optional">
	<annotation>
	 <documentation>The element will be printed when the specified group changes.</documentation>
	</annotation>
   </attribute>  
   <attribute name="forecolor" type="string" use="optional">
	<annotation>
	 <documentation>Fore color to use when drawing the object. Hexadecimal formatted values preceded by the # character or decimal values are accepted along with the following predefined color values: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, yellow, white.</documentation>
	</annotation>
   </attribute>  
   <attribute name="backcolor" type="string" use="optional">
	<annotation>
	 <documentation>Back color to use when drawing the object. Hexadecimal formatted values preceded by the # character or decimal values are accepted along with the following predefined color values: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, yellow, white.</documentation>
	</annotation>
   </attribute>  
  </complexType>
 </element>

 <element name="printWhenExpression">
  <annotation>
   <documentation>Definition of a Boolean expression that will determine if the element or the band should be printed or not.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="graphicElement">
  <annotation>
   <documentation>Element used to specify the common properties of a graphic object on the report (line, rectangle, ellipse or image).</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:pen" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="stretchType" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by attribute with the same name in tag <elem>reportElement</elem>.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="NoStretch"/>
      <enumeration value="RelativeToTallestObject"/>
      <enumeration value="RelativeToBandHeight"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="pen" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>pen</elem>.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None">
		<annotation>
		 <documentation>No line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Thin">
		<annotation>
		 <documentation>Thin line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="1Point">
		<annotation>
		 <documentation>Normal line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="2Point">
		<annotation>
		 <documentation>Medium line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="4Point">
		<annotation>
		 <documentation>Thick line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dotted">
		<annotation>
		 <documentation>Dotted line.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="fill" use="optional">
	<annotation>
	 <documentation>Type of the fill pattern used to fill objects.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Solid">
		<annotation>
		 <documentation>Solid fill.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="rectangle">
  <annotation>
   <documentation>Definition of a rectangle object.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:reportElement"/>
    <element ref="jr:graphicElement" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="radius" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The radius of the arc corner.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="ellipse">
  <annotation>
   <documentation>Definition of an ellipse object.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:reportElement"/>
    <element ref="jr:graphicElement" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="image">
  <annotation>
   <documentation>Definition of an image object.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:reportElement"/>
    <element ref="jr:box" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:graphicElement" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:imageExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:anchorNameExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkReferenceExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkWhenExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkAnchorExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkPageExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkTooltipExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkParameter" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="scaleImage" use="optional">
	<annotation>
	 <documentation>Image displaying type.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Clip">
		<annotation>
		 <documentation>Only the portion of the image that fits the specified object width and height will be printed. Image is not stretched.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="FillFrame">
		<annotation>
		 <documentation>Image will be stretched to adapt to the specified object width and height.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="RetainShape">
		<annotation>
		 <documentation>Image will adapt to the specified object width or height keeping its original shape.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="RealHeight">
		<annotation>
		 <documentation>A scale image type that instructs the engine to stretch the image height to fit the actual height of the image.
<p>
Several restrictions apply to the image stretching mechanism:
<ul>
  <li>It only works when the image renderer implements <a href="http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/JRRenderable.html#getDimension()">JRRenderable.getDimension()</a>.</li>
  <li>If the actual image width exceeds the declared image element width, the image is proportionally stretched to fit the declared width.</li>
  <li>Images with delayed evaluation (see the <code>evaluationTime</code> attribute) do not stretch and is proportionally shrunk to fit the declared height/width.</li>
  <li>An image overflows (to the next page/column) only once, after this the image gets rendered on the available space by proportionally shrinking its size.</li>
</ul>
</p>
         </documentation>
		</annotation>
	  </enumeration>
      <enumeration value="RealSize">
		<annotation>
		 <documentation>A scale image type that stretches the images height in the same way as <code>RealHeight</code>, and in addition it changes the image width to the actual with of the image.

This can be useful when, for instance, a border has to be drawn around the image, respecting its actual size.
		 </documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="hAlign" use="optional">
	<annotation>
	 <documentation>Horizontal image alignment.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Left">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="Center">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="Right">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="vAlign" use="optional">
	<annotation>
	 <documentation>Vertical image alignment.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Top">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="Middle">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="Bottom">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isUsingCache" use="optional">
	<annotation>
	 <documentation>If true, tells the report engine to cache the images that are loaded from the same location.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isLazy" use="optional" default="false">
	<annotation>
	 <documentation>Gives control over when the images are retrieved from their specified location.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation>The image is loaded from the specified location only when the document is viewed or exported to other formats.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation>The image is loaded during the report filling process and stored in the resulting document.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="onErrorType" use="optional" default="Error">
	<annotation>
	 <documentation>Controls the behavior of the engine in case the image is not available.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Error">
		<annotation>
		 <documentation>An exception is raised when loading the image.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Blank">
		<annotation>
		 <documentation>The exception is ignored and the image displays as blank.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Icon">
		<annotation>
		 <documentation>The exception is ignored and an image replacement icon is displayed.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="evaluationTime" use="optional" default="Now" type="jr:complexEvaluationTime">
	<annotation>
	 <documentation>The image to be printed is supplied by the associated expression. This expression can be evaluated at a specified moment. This could be useful, for example, when we want to have on the first page a chart that will be generated only after fetching all the data source rows.</documentation>
	</annotation>
   </attribute>
   <attribute name="evaluationGroup" type="string" use="optional">
	<annotation>
	 <documentation>Used to specify the group at which to evaluate the image expression value, when <code>evaluationTime</code> is "Group".</documentation>
	</annotation>
   </attribute>
   <attribute name="hyperlinkType" type="string" use="optional">
	<annotation>
	 <documentation>
      Indicates the type of the hyperlink element.
      <p>
      The type can be:
      <ul>
        <li>
          One of the built-in types:
          <dl>
            <dt><code>None</code></dt>
            <dd>The current element doesn't represent a hyperlink.</dd>
            <dt><code>Reference</code></dt>
            <dd>The current hyperlink points to an external resource specified by the corresponding <elem>hyperlinkReferenceExpression</elem> element, usually an URL.</dd>
            <dt><code>LocalAnchor</code></dt>
            <dd>The current hyperlink points to a local anchor specified by the corresponding <elem>hyperlinkAnchorExpression</elem> element.</dd>
            <dt><code>LocalPage</code></dt>
            <dd>The current hyperlink points to a 1 based page index within the current document specified by the corresponding <elem>hyperlinkPageExpression</elem> element.</dd>
            <dt><code>RemoteAnchor</code></dt>
            <dd>The current hyperlink points to an anchor specified by the <elem>hyperlinkAnchorExpression</elem> element, within an external document indicated by the corresponding <elem>hyperlinkReferenceExpression</elem> element.</dd>
            <dt><code>RemotePage</code></dt>
            <dd>The current hyperlink points to a 1 based page index specified by the <elem>hyperlinkPageExpression</elem> element, within an external document indicated by the corresponding <elem>hyperlinkReferenceExpression</elem> element.</dd>
          </dl>
        </li>
        <li>
          A custom (arbitrary) type.
        </li>
      </ul>
      </p></documentation>
	</annotation>
   </attribute>
   <attribute name="hyperlinkTarget" type="string" use="optional">
	<annotation>
	 <documentation>Indicates the target of the hyperlink.</documentation>
	</annotation>
   </attribute>
   <attribute name="bookmarkLevel" type="NMTOKEN" use="optional" default="0">
	<annotation>
	 <documentation>The level of the bookmark corresponding to the anchor.
	  <p/>
	  The PDF exporter can create a bookmark tree using anchors defined in the report.
	  This attribute specifies the level of the tree entry corresponding to this element's anchor.
	  If set to "0" (the default), no bookmark will be created for the anchor.
	 </documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="imageExpression">
  <annotation>
   <documentation>Definition of the expression that will be used to determine the image to be displayed.</documentation>
  </annotation>
  <complexType mixed="true">
   <attribute name="class" use="optional" default="java.lang.String">
	<annotation>
	 <documentation>Class of the image source.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="box">
  <annotation>
   <documentation>Tag used to specify the border and padding properties of a report element.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:pen" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:topPen" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:leftPen" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:bottomPen" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rightPen" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="border" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>pen</elem></documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None">
		<annotation>
		 <documentation>No border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Thin">
		<annotation>
		 <documentation>Thin border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="1Point">
		<annotation>
		 <documentation>Normal border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="2Point">
		<annotation>
		 <documentation>Medium border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="4Point">
		<annotation>
		 <documentation>Thick border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dotted">
		<annotation>
		 <documentation>Dotted border.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="borderColor" type="string" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>pen</elem></documentation>
	</annotation>
   </attribute>
   <attribute name="padding" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The amount of empty space between the border and the element's content.</documentation>
	</annotation>
   </attribute>
   <attribute name="topBorder" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>topPen</elem></documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None">
		<annotation>
		 <documentation>No top border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Thin">
		<annotation>
		 <documentation>Thin top border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="1Point">
		<annotation>
		 <documentation>Normal top border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="2Point">
		<annotation>
		 <documentation>Medium top border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="4Point">
		<annotation>
		 <documentation>Thick top border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dotted">
		<annotation>
		 <documentation>Dotted top border.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="topBorderColor" type="string" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>topPen</elem></documentation>
	</annotation>
   </attribute>
   <attribute name="topPadding" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The amount of empty space between the top border and the element's content.</documentation>
	</annotation>
   </attribute>
   <attribute name="leftBorder" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>leftPen</elem></documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None">
		<annotation>
		 <documentation>No left border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Thin">
		<annotation>
		 <documentation>Thin left border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="1Point">
		<annotation>
		 <documentation>Normal left border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="2Point">
		<annotation>
		 <documentation>Medium left border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="4Point">
		<annotation>
		 <documentation>Thick left border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dotted">
		<annotation>
		 <documentation>Dotted left border.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="leftBorderColor" type="string" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>leftPen</elem></documentation>
	</annotation>
   </attribute>
   <attribute name="leftPadding" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The amount of empty space between the left border and the element's content.</documentation>
	</annotation>
   </attribute>
   <attribute name="bottomBorder" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>bottomPen</elem></documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None">
		<annotation>
		 <documentation>No bottom border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Thin">
		<annotation>
		 <documentation>Thin bottom border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="1Point">
		<annotation>
		 <documentation>Normal bottom border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="2Point">
		<annotation>
		 <documentation>Medium bottom border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="4Point">
		<annotation>
		 <documentation>Thick bottom border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dotted">
		<annotation>
		 <documentation>Dotted bottom border.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="bottomBorderColor" type="string" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>bottomPen</elem></documentation>
	</annotation>
   </attribute>
   <attribute name="bottomPadding" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The amount of empty space between the bottom border and the element's content.</documentation>
	</annotation>
   </attribute>
   <attribute name="rightBorder" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>rightPen</elem></documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None">
		<annotation>
		 <documentation>No right border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Thin">
		<annotation>
		 <documentation>Thin right border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="1Point">
		<annotation>
		 <documentation>Normal right border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="2Point">
		<annotation>
		 <documentation>Medium right border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="4Point">
		<annotation>
		 <documentation>Thick right border.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dotted">
		<annotation>
		 <documentation>Dotted right border.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="rightBorderColor" type="string" use="optional">
	<annotation>
	 <documentation><i>Deprecated</i>. Replaced by tag <elem>rightPen</elem></documentation>
	</annotation>
   </attribute>
   <attribute name="rightPadding" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The amount of empty space between the right border and the element's content.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="topPen">
  <annotation>
   <documentation>Groups the properties of the pen used to draw top lines or borders.</documentation>
  </annotation>
  <complexType>
   <attribute name="lineWidth" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The line width of the pen.</documentation>
	</annotation>
   </attribute>
   <attribute name="lineStyle" use="optional">
	<annotation>
	 <documentation>The line style of the pen.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Solid">
		<annotation>
		 <documentation>Solid line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dashed">
		<annotation>
		 <documentation>Dashed line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dotted">
		<annotation>
		 <documentation>Dotted line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Double">
		<annotation>
		 <documentation>Double line.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="lineColor" type="string" use="optional">
	<annotation>
	 <documentation>Line color for the pen. Hexadecimal formatted values preceded by the # character or decimal values are accepted along with the following predefined color values: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, yellow, white.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="leftPen">
  <annotation>
   <documentation>Groups the properties of the pen used to draw left lines or borders.</documentation>
  </annotation>
  <complexType>
   <attribute name="lineWidth" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The line width of the pen.</documentation>
	</annotation>
   </attribute>
   <attribute name="lineStyle" use="optional">
	<annotation>
	 <documentation>The line style of the pen.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Solid">
		<annotation>
		 <documentation>Solid line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dashed">
		<annotation>
		 <documentation>Dashed line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dotted">
		<annotation>
		 <documentation>Dotted line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Double">
		<annotation>
		 <documentation>Double line.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="lineColor" type="string" use="optional">
	<annotation>
	 <documentation>Line color for the pen. Hexadecimal formatted values preceded by the # character or decimal values are accepted along with the following predefined color values: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, yellow, white.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="bottomPen">
  <annotation>
   <documentation>Groups the properties of the pen used to draw bottom lines or borders.</documentation>
  </annotation>
  <complexType>
   <attribute name="lineWidth" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The line width of the pen.</documentation>
	</annotation>
   </attribute>
   <attribute name="lineStyle" use="optional">
	<annotation>
	 <documentation>The line style of the pen.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Solid">
		<annotation>
		 <documentation>Solid line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dashed">
		<annotation>
		 <documentation>Dashed line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dotted">
		<annotation>
		 <documentation>Dotted line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Double">
		<annotation>
		 <documentation>Double line.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="lineColor" type="string" use="optional">
	<annotation>
	 <documentation>Line color for the pen. Hexadecimal formatted values preceded by the # character or decimal values are accepted along with the following predefined color values: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, yellow, white.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="rightPen">
  <annotation>
   <documentation>Groups the properties of the pen used to draw right lines or borders.</documentation>
  </annotation>
  <complexType>
   <attribute name="lineWidth" type="NMTOKEN" use="optional">
	<annotation>
	 <documentation>The line width of the pen.</documentation>
	</annotation>
   </attribute>
   <attribute name="lineStyle" use="optional">
	<annotation>
	 <documentation>The line style of the pen.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Solid">
		<annotation>
		 <documentation>Solid line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dashed">
		<annotation>
		 <documentation>Dashed line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Dotted">
		<annotation>
		 <documentation>Dotted line.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Double">
		<annotation>
		 <documentation>Double line.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="lineColor" type="string" use="optional">
	<annotation>
	 <documentation>Line color for the pen. Hexadecimal formatted values preceded by the # character or decimal values are accepted along with the following predefined color values: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, yellow, white.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="anchorNameExpression">
  <annotation>
   <documentation>If specified, it will supply the name of the local anchor that will mark to the corresponding element.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="hyperlinkReferenceExpression">
  <annotation>
   <documentation>Used in hyperlink elements to point to external documents and resources.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="hyperlinkWhenExpression">
  <annotation>
   <documentation>Used in hyperlink elements to specify whether the hyperlink is to be displayed or not.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="hyperlinkAnchorExpression">
  <annotation>
   <documentation>Used in hyperlink elements to point to document anchors.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="hyperlinkPageExpression">
  <annotation>
   <documentation>Used in hyperlink elements to point to document pages.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="hyperlinkTooltipExpression">
  <annotation>
   <documentation>Used in hyperlink elements to generate a tooltip for the hyperlink.  The type of the expression should be <code>java.lang.String</code>.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="hyperlinkParameter">
  <annotation>
   <documentation>Definition of a hyperlink parameter.  Hyperlink parameters can be used to parametrize hyperlinks of custom types.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:hyperlinkParameterExpression"/>
   </sequence>
   <attribute name="name" type="string" use="required">
    <annotation>
     <documentation>The name of the hyperlink parameter.</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="hyperlinkParameterExpression">
  <annotation>
   <documentation>Expression that will produce the value for a hyperlink parameter.</documentation>
  </annotation>
  <complexType mixed="true">
   <attribute name="class" type="string" use="optional" default="java.lang.String">
    <annotation>
     <documentation>Type of the parameter value.</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="staticText">
  <annotation>
   <documentation>Definition of a static text object.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:reportElement"/>
    <element ref="jr:box" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:textElement" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:text" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="text">
  <annotation>
   <documentation>Specifies the text to print for a static text object.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="textElement">
  <annotation>
   <documentation>Element used to specify the common properties of a text object on the report (<elem>staticText</elem> or <elem>textField</elem>).</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:font" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:paragraph" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="textAlignment" use="optional">
    <annotation>
     <documentation>Type of alignment for the text object.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Left">
		<annotation>
		 <documentation>Text is aligned to the left.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Center">
		<annotation>
		 <documentation>Text is centered.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Right">
		<annotation>
		 <documentation>Text is aligned to the right.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Justified">
		<annotation>
		 <documentation>Text is justified.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="verticalAlignment" use="optional">
    <annotation>
     <documentation>Type of vertical alignment for the text object.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Top">
		<annotation>
		 <documentation>Text is aligned to the top.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Middle">
		<annotation>
		 <documentation>Text is vertically centered.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Bottom">
		<annotation>
		 <documentation>Text is aligned to the bottom.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Justified">
		<annotation>
		 <documentation>Text is justified.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="rotation" use="optional">
    <annotation>
     <documentation>Type of rotation for the text object.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None">
		<annotation>
		 <documentation>Text runs horizontally from left to right and from top to bottom.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Left">
		<annotation>
		 <documentation>Text runs vertically from bottom to top and from left to right.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Right">
		<annotation>
		 <documentation>Text runs vertically from top to bottom and from right to left.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="UpsideDown">
		<annotation>
		 <documentation>Text is rotated with 180 degrees.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="lineSpacing" use="optional">
    <annotation>
     <documentation>Type of line spacing for the text object.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Single">
		<annotation>
		 <documentation>Normal line spacing</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="1_1_2">
		<annotation>
		 <documentation>Medium line spacing.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Double">
		<annotation>
		 <documentation>Double line spacing</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isStyledText" use="optional">
    <annotation>
     <documentation><i>Deprecated</i>. Replaced by attribute <code>markup</code>.
     <p/>
     When set to <code>true</code>, this attribute signals to the rendering engine that the text element contains preformatted text. Style information can be introduced in the text content using nested <code>&lt;style&gt;</code> tags that support the folowing attributes : <code>fontName, size, isBold, isItalic, isUnderline, isStrikeThrough, pdfFontName, pdfEncoding, isPdfEmbedded, forecolor, backcolor</code>.
     </documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation>The text element contains text formatted using nested <code>&lt;style&gt;</code> tags.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation>The text element has a pure text content, without style information.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="markup" type="string" use="optional">
    <annotation>
     <documentation>Specifies the name of the markup language used to embed style information into the text content. Supported values are <code>none</code> (plain text), <code>styled</code> (styled text), <code>rtf</code> (RTF format) and <code>html</code> (HTML format), but any custom made markup language can be used as long as there is a <code>net.sf.jasperreports.engine.util.MarkupProcessorFactory</code> implementation specified using a <code>net.sf.jasperreports.markup.processor.factory.{markup}</code> configuration property.</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="font">
  <annotation>
   <documentation>Defines the font to use with the text element.</documentation>
  </annotation>
  <complexType>
   <attribute name="reportFont" type="string" use="optional">
    <annotation>
     <documentation>Name of the report level font to use as base font (see <elem>reportFont</elem> element).</documentation>
    </annotation>
   </attribute>
   <attribute name="fontName" type="string" use="optional">
    <annotation>
     <documentation>Name of the font.</documentation>
    </annotation>
   </attribute>
   <attribute name="size" type="NMTOKEN" use="optional">
    <annotation>
     <documentation>Size of the font.</documentation>
    </annotation>
   </attribute>
   <attribute name="isBold" use="optional">
    <annotation>
     <documentation/>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isItalic" use="optional">
    <annotation>
     <documentation/>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isUnderline" use="optional">
    <annotation>
     <documentation/>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isStrikeThrough" use="optional">
    <annotation>
     <documentation/>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="pdfFontName" type="string" use="optional">
    <annotation>
     <documentation>Name of the PDF font.</documentation>
    </annotation>
   </attribute>
   <attribute name="pdfEncoding" type="string" use="optional">
    <annotation>
     <documentation>Encoding type to use with the PDF font.</documentation>
    </annotation>
   </attribute>
   <attribute name="isPdfEmbedded" use="optional">
    <annotation>
     <documentation>Specifies if the PDF font should be embedded in the document.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="textField">
  <annotation>
   <documentation>Definition of a text field object.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:reportElement"/>
    <element ref="jr:box" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:textElement" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:textFieldExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:patternExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:anchorNameExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkReferenceExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkWhenExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkAnchorExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkPageExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkTooltipExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkParameter" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="isStretchWithOverflow" use="optional" default="false">
    <annotation>
     <documentation>Instructs the report engine to allow the text field to stretch downwards in order to display all its text when it doesn't fit in the defined text field height.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="evaluationTime" use="optional" default="Now" type="jr:complexEvaluationTime">
    <annotation>
     <documentation>Text to be printed is supplied by the text field associated expression. This expression can be evaluated at a specified moment. This could be useful, for example, when we want to have on the first page the total number of pages. The total number of pages is known only after filling the entire report, so we can specify that the text filed that will represent the total number of pages placed at the beginning of the report should be evaluated only when reaching the end of the report.</documentation>
    </annotation>
   </attribute>
   <attribute name="evaluationGroup" type="string" use="optional">
    <annotation>
     <documentation>Used to specify the group at which to evaluate the text field value, when <code>evaluationTime</code> is "Group".</documentation>
    </annotation>
   </attribute>
   <attribute name="pattern" type="string" use="optional">
    <annotation>
     <documentation>Pattern to use when formatting the output of the text field expression.</documentation>
    </annotation>
   </attribute>
   <attribute name="isBlankWhenNull" use="optional">
    <annotation>
     <documentation>Specifies that the text field should display a blank character instead of "null" when the text field expression evaluates to <code>null</code>.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="hyperlinkType" type="string" use="optional">
    <annotation>
     <documentation>Indicates the type of the hyperlink element.
      <p>
      The type can be:
      <ul>
        <li>
          One of the built-in types:
          <dl>
            <dt><code>None</code></dt>
            <dd>The current element doesn't represent a hyperlink.</dd>
            <dt><code>Reference</code></dt>
            <dd>The current hyperlink points to an external resource specified by the corresponding <elem>hyperlinkReferenceExpression</elem> element, usually an URL.</dd>
            <dt><code>LocalAnchor</code></dt>
            <dd>The current hyperlink points to a local anchor specified by the corresponding <elem>hyperlinkAnchorExpression</elem> element.</dd>
            <dt><code>LocalPage</code></dt>
            <dd>The current hyperlink points to a 1 based page index within the current document specified by the corresponding <elem>hyperlinkPageExpression</elem> element.</dd>
            <dt><code>RemoteAnchor</code></dt>
            <dd>The current hyperlink points to an anchor specified by the <elem>hyperlinkAnchorExpression</elem> element, within an external document indicated by the corresponding <elem>hyperlinkReferenceExpression</elem> element.</dd>
            <dt><code>RemotePage</code></dt>
            <dd>The current hyperlink points to a 1 based page index specified by the <elem>hyperlinkPageExpression</elem> element, within an external document indicated by the corresponding <elem>hyperlinkReferenceExpression</elem> element.</dd>
          </dl>
        </li>
        <li>
          A custom (arbitrary) type.
        </li>
      </ul>
      </p>
     </documentation>
    </annotation>
   </attribute>
   <attribute name="hyperlinkTarget" type="string" use="optional">
    <annotation>
     <documentation>Indicates the target of the hyperlink.</documentation>
    </annotation>
   </attribute>
   <attribute name="bookmarkLevel" type="NMTOKEN" use="optional" default="0">
    <annotation>
     <documentation>The level of the bookmark corresponding to the anchor.
	  <p/>
	  The PDF exporter can create a bookmark tree using anchors defined in the report.
	  This attribute specifies the level of the tree entry corresponding to this element's anchor.
	  If set to "0" (the default), no bookmark will be created for the anchor.
	 </documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="textFieldExpression">
  <annotation>
   <documentation>Defines the expression to use for this textField.</documentation>
  </annotation>
  <complexType mixed="true">
   <attribute name="class" use="optional">
    <annotation>
     <documentation>Class for the text field values.</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="patternExpression">
  <annotation>
   <documentation>Defines the pattern expression to use for this textField.</documentation>
  </annotation>
 </element>

 <element name="subreport">
  <annotation>
   <documentation>Definition of a subreport object.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:reportElement"/>
    <element ref="jr:parametersMapExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:subreportParameter" minOccurs="0" maxOccurs="unbounded"/>
    <choice minOccurs="0" maxOccurs="1">
     <element ref="jr:connectionExpression"/>
     <element ref="jr:dataSourceExpression"/>
    </choice>
    <element ref="jr:returnValue" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:subreportExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="isUsingCache" use="optional">
    <annotation>
     <documentation>If true, tells the report engine to cache the report definition objects that are loaded from the same location.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="runToBottom" use="optional">
    <annotation>
     <documentation>Flag to specify if the subreport should consume all the available space on the current page. When this flag is set, the subreport would consume the entire vertical space available on the master page, and its column and page footers will be printed at the bottom of this space.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="overflowType" use="optional">
    <annotation>
     <documentation>Determines what happens when the subreport contents overflows the element height.  If not specified, the subreport will stretch to accomodate the contents.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Stretch">
		<annotation>
		 <documentation>The subreport stretches to to accomodate the overflown contents.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="NoStretch">
		<annotation>
		 <documentation>The contents do not stretch beyond the subreport element height.  The band on which the subreport is placed overflows to a new page if allowed, and the subreport contents continues there.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="parametersMapExpression">
  <annotation>
   <documentation>Allows bulk passing the parameters to the subreport/subdataset into a <code>java.lang.Map</code> object. There are cases when we want to pass to the subreport/subdataset the same parameters that the master report has received. This can be achieved by passing the system-defined parameter called REPORT_PARAMETERS_MAP and maybe adding to or overriding those parameters using additional <elem>subreportParameter</elem> elements.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="subreportParameter">
  <annotation>
   <documentation>Definition of a subreport parameter.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:subreportParameterExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="name" type="string" use="required">
    <annotation>
     <documentation>The name of the parameter that will be passed when filling the subreport.</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="subreportParameterExpression">
  <annotation>
   <documentation>Definition of the expression associated with the subreport parameter.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="returnValue">
  <annotation>
   <documentation>Maps a subreport variable to a master report variable in order to allow returning values from subreport to the master report.</documentation>
  </annotation>
  <complexType>
   <attribute name="subreportVariable" type="string" use="optional">
    <annotation>
     <documentation>Name of the subreport variable whose value will be returned to the master report.</documentation>
    </annotation>
   </attribute>
   <attribute name="toVariable" type="string" use="optional">
    <annotation>
     <documentation>Name of the master report variable to which the value is returned. This should be a variable with <code>calculation="System"</code></documentation>
    </annotation>
   </attribute>
   <attribute name="calculation" use="optional" default="Nothing">
    <annotation>
     <documentation>Calculation to perform on the master report variable when returning the value from the subreport.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Nothing">
		<annotation>
		 <documentation>No calculations are performed.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Count">
		<annotation>
		 <documentation>Variable stores the number of the not null values returned from the subreport.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="DistinctCount">
		<annotation>
		 <documentation>Variable stores the number of distinct not null values returned from the subreport.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Sum">
		<annotation>
		 <documentation>Variable stores the sum of the not null values returned from the subreport. Numeric variables only.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Average">
		<annotation>
		 <documentation>Variable stores the average of the not null values returned from the subreport. Numeric variables only.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Lowest">
		<annotation>
		 <documentation>Variable stores the lowest value returned from the subreport.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Highest">
		<annotation>
		 <documentation>Variable stores the highest value returned from the subreport.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="StandardDeviation">
		<annotation>
		 <documentation>Variable stores the standard deviation of the not null values returned from the subreport. Numeric variables only.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Variance">
		<annotation>
		 <documentation>Variable stores the variance of the not null values returned from the subreport. Numeric variables only.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="First">
		<annotation>
		 <documentation>Variable stores the first value encountered and ignores subsequent values.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="incrementerFactoryClass" type="string" use="optional">
    <annotation>
     <documentation>The name of a class that implements the <code>net.sf.jasperreports.engine.fill.JRIncrementerFactory</code> interface to use when creating the incrementer instance to handle the value returned from the subreport.</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="connectionExpression">
  <annotation>
   <documentation>If present, it is used to pass the <code>java.sql.Connection</code> object to the subreport filling or subdataset iteration routines.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="dataSourceExpression">
  <annotation>
   <documentation>If present, it is used to pass the <code>net.sf.jasperreports.engine.JRDataSource</code> object to the subreport filling or subdataset iteration routines.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="subreportExpression">
  <annotation>
   <documentation>Definition of the expression that will be used to determine the report object that will be loaded as a subreport.</documentation>
  </annotation>
  <complexType mixed="true">
   <attribute name="class" use="optional">
    <annotation>
     <documentation>Class of the image source.</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="elementGroup">
  <annotation>
   <documentation>Element for grouping objects on the report.</documentation>
  </annotation>
  <complexType>
   <choice minOccurs="0" maxOccurs="unbounded">
    <element ref="jr:break"/>
    <element ref="jr:line"/>
    <element ref="jr:rectangle"/>
    <element ref="jr:ellipse"/>
    <element ref="jr:image"/>
    <element ref="jr:staticText"/>
    <element ref="jr:textField"/>
    <element ref="jr:subreport"/>
    <element ref="jr:pieChart"/>
    <element ref="jr:pie3DChart"/>
    <element ref="jr:barChart"/>
    <element ref="jr:bar3DChart"/>
    <element ref="jr:xyBarChart"/>
    <element ref="jr:stackedBarChart"/>
    <element ref="jr:stackedBar3DChart"/>
    <element ref="jr:lineChart"/>
    <element ref="jr:xyLineChart"/>
    <element ref="jr:areaChart"/>
    <element ref="jr:xyAreaChart"/>
    <element ref="jr:scatterChart"/>
    <element ref="jr:bubbleChart"/>
    <element ref="jr:timeSeriesChart"/>
    <element ref="jr:highLowChart"/>
    <element ref="jr:candlestickChart"/>
    <element ref="jr:meterChart"/>
    <element ref="jr:thermometerChart"/>
    <element ref="jr:multiAxisChart"/>
    <element ref="jr:stackedAreaChart"/>
    <element ref="jr:ganttChart"/>
    <element ref="jr:elementGroup"/>
    <element ref="jr:crosstab"/>
    <element ref="jr:frame"/>
    <element ref="jr:componentElement"/>
    <element ref="jr:genericElement"/>
   </choice>
  </complexType>
 </element>

 <element name="chart">
  <annotation>
   <documentation>Defines a chart report element</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:reportElement"/>
    <element ref="jr:box" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:chartTitle" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:chartSubtitle" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:chartLegend" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:anchorNameExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkReferenceExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkWhenExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkAnchorExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkPageExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkTooltipExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkParameter" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="isShowLegend" use="optional">
    <annotation>
     <documentation>Show legend flag</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="evaluationTime" use="optional" default="Now" type="jr:basicEvaluationTime">
    <annotation>
     <documentation>The chart can be rendered at a specified moment. This could be useful, for example, when we want to have on the first page a chart that will be generated only after fetching all the data source rows.</documentation>
    </annotation>
   </attribute>
   <attribute name="evaluationGroup" type="string" use="optional">
    <annotation>
     <documentation>Used to specify the group at which to render the chart, when <code>evaluationTime</code> is "Group".</documentation>
    </annotation>
   </attribute>
   <attribute name="hyperlinkType" type="string" use="optional">
    <annotation>
     <documentation>Indicates the type of the hyperlink element.
      <p>
      The type can be:
      <ul>
        <li>
          One of the built-in types:
          <dl>
            <dt><code>None</code></dt>
            <dd>The current element doesn't represent a hyperlink.</dd>
            <dt><code>Reference</code></dt>
            <dd>The current hyperlink points to an external resource specified by the corresponding <elem>hyperlinkReferenceExpression</elem> element, usually an URL.</dd>
            <dt><code>LocalAnchor</code></dt>
            <dd>The current hyperlink points to a local anchor specified by the corresponding <elem>hyperlinkAnchorExpression</elem> element.</dd>
            <dt><code>LocalPage</code></dt>
            <dd>The current hyperlink points to a 1 based page index within the current document specified by the corresponding <elem>hyperlinkPageExpression</elem> element.</dd>
            <dt><code>RemoteAnchor</code></dt>
            <dd>The current hyperlink points to an anchor specified by the <elem>hyperlinkAnchorExpression</elem> element, within an external document indicated by the corresponding <elem>hyperlinkReferenceExpression</elem> element.</dd>
            <dt><code>RemotePage</code></dt>
            <dd>The current hyperlink points to a 1 based page index specified by the <elem>hyperlinkPageExpression</elem> element, within an external document indicated by the corresponding <elem>hyperlinkReferenceExpression</elem> element.</dd>
          </dl>
        </li>
        <li>
          A custom (arbitrary) type.
        </li>
      </ul>
      </p>
     </documentation>
    </annotation>
   </attribute>
   <attribute name="hyperlinkTarget" type="string" use="optional">
    <annotation>
     <documentation>Indicates the target of the hyperlink.</documentation>
    </annotation>
   </attribute>
   <attribute name="bookmarkLevel" type="NMTOKEN" use="optional" default="0">
    <annotation>
     <documentation>The level of the bookmark corresponding to the anchor.
	  <p/>
	  The PDF exporter can create a bookmark tree using anchors defined in the report.
	  This attribute specifies the level of the tree entry corresponding to this element's anchor.
	  If set to "0" (the default), no bookmark will be created for the anchor.
	 </documentation>
    </annotation>
   </attribute>
   <attribute name="customizerClass" type="string" use="optional">
    <annotation>
     <documentation>The name of the chart customizer class.
	  <p/>
	  A chart can have an associated customizer class to perform customizations that are not directly supported by JRXML.
	  The customizer class should implement <code>net.sf.jasperreports.engine.JRChartCustomizer</code>.
	  At fill time, the <code>customize()</code> method of this class will be called before the chart is rendered.
	  <p/>
	  If values of report parameters, variables or fields are needed in the customization, the customizer implementation
should extend <code>net.sf.jasperreports.engine.JRAbstractChartCustomizer</code> to gain access to such values.
	 </documentation>
    </annotation>
   </attribute>
   <attribute name="renderType" type="string" use="optional">
    <annotation>
     <documentation>Represents the specified format used to render the chart.</documentation>
    </annotation>
   </attribute>
   <attribute name="theme" type="string" use="optional">
    <annotation>
     <documentation>The chart theme used to draw the chart.</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="chartTitle">
  <annotation>
   <documentation>Title text of the chart.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:font" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:titleExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="position" use="optional">
    <annotation>
     <documentation>Position of the title</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Top"/>
      <enumeration value="Bottom"/>
      <enumeration value="Left"/>
      <enumeration value="Right"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="color" type="string" use="optional">
    <annotation>
     <documentation>Color of the title text</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="titleExpression">
  <annotation>
   <documentation>Title expression of the chart</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="chartSubtitle">
  <annotation>
   <documentation>Subtitle of the chart</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:font" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:subtitleExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="color" type="string" use="optional">
    <annotation>
     <documentation>Color of the subtitle text</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="subtitleExpression">
  <annotation>
   <documentation>Defines the expression for the chart subtitle</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="chartLegend">
  <annotation>
   <documentation>Specifies layout options for the legend of a chart.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:font" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="textColor" type="string" use="optional">
    <annotation>
     <documentation>The color of the text in the legend.</documentation>
    </annotation>
   </attribute>
   <attribute name="backgroundColor" type="string" use="optional">
    <annotation>
     <documentation>The color of the background of the legend.</documentation>
    </annotation>
   </attribute>
   <attribute name="position" use="optional">
    <annotation>
     <documentation>Position of the legend.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Top"/>
      <enumeration value="Bottom"/>
      <enumeration value="Left"/>
      <enumeration value="Right"/>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>
 
 <element name="itemLabel">
  <annotation>
   <documentation>Configures settings for item labels in a category plot.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:font" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="color" type="string" use="optional">
    <annotation>
     <documentation>The color of the label's text.</documentation>
    </annotation>
   </attribute>
   <attribute name="backgroundColor" type="string" use="optional">
    <annotation>
     <documentation>The background color of the label's text.</documentation>
    </annotation>
   </attribute>
   <!-- attribute name="mask" type="string" use="optional">
  	<annotation>
   	 <documentation>The formatting mask to use to display the value.  This mask must follow the rules
            specified for a <code>java.text.DecimalFormat</code> pattern.
            <p/>
            This attribute is currently ignored for a <elem>meterChart</elem>.
     </documentation>
  	</annotation>
   </attribute-->
  </complexType>
 </element>

 <element name="pieChart">
  <annotation>
   <documentation>Defines a pie type chart</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:pieDataset"/>
    <element ref="jr:piePlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="pieDataset">
  <annotation>
   <documentation>Defines a dataset to be used with <elem>pieChart</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataset" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:pieSeries" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:keyExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:labelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:sectionHyperlink" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:otherKeyExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:otherLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:otherSectionHyperlink" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="minPercentage" type="NMTOKEN" use="optional">
    <annotation>
     <documentation/>
    </annotation>
   </attribute>
   <attribute name="maxCount" type="NMTOKEN" use="optional">
    <annotation>
     <documentation/>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="pieSeries">
  <annotation>
   <documentation/>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:keyExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:labelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:sectionHyperlink" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="keyExpression">
  <annotation>
   <documentation>Defines a key in a <elem>pieDataset</elem> or <elem>pieSeries</elem></documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="valueExpression">
  <annotation>
   <documentation>Defines the expression for the value of a point in a chart.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="labelExpression">
  <annotation>
   <documentation>Defines a label in a <elem>pieDataset</elem> or <elem>pieSeries</elem>.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="otherKeyExpression">
  <annotation>
   <documentation/>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="otherLabelExpression">
  <annotation>
   <documentation/>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="sectionHyperlink">
  <annotation>
   <documentation>Hyperlink specification for pie chart sections.  This hyperlink definition will be evaluated for every chart section and a image map will be created for the chart.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:hyperlinkReferenceExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkWhenExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkAnchorExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkPageExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkTooltipExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkParameter" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="hyperlinkType" type="string" use="optional">
    <annotation>
     <documentation>Indicates the type of the hyperlink element.
      <p>
      The type can be:
      <ul>
        <li>
          One of the built-in types:
          <dl>
            <dt><code>None</code></dt>
            <dd>The current element doesn't represent a hyperlink.</dd>
            <dt><code>Reference</code></dt>
            <dd>The current hyperlink points to an external resource specified by the corresponding <elem>hyperlinkReferenceExpression</elem> element, usually an URL.</dd>
            <dt><code>LocalAnchor</code></dt>
            <dd>The current hyperlink points to a local anchor specified by the corresponding <elem>hyperlinkAnchorExpression</elem> element.</dd>
            <dt><code>LocalPage</code></dt>
            <dd>The current hyperlink points to a 1 based page index within the current document specified by the corresponding <elem>hyperlinkPageExpression</elem> element.</dd>
            <dt><code>RemoteAnchor</code></dt>
            <dd>The current hyperlink points to an anchor specified by the <elem>hyperlinkAnchorExpression</elem> element, within an external document indicated by the corresponding <elem>hyperlinkReferenceExpression</elem> element.</dd>
            <dt><code>RemotePage</code></dt>
            <dd>The current hyperlink points to a 1 based page index specified by the <elem>hyperlinkPageExpression</elem> element, within an external document indicated by the corresponding <elem>hyperlinkReferenceExpression</elem> element.</dd>
          </dl>
        </li>
        <li>
          A custom (arbitrary) type.
        </li>
      </ul>
      </p>
     </documentation>
    </annotation>
   </attribute>
   <attribute name="hyperlinkTarget" type="string" use="optional">
    <annotation>
     <documentation>Indicates the target of the hyperlink.</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="otherSectionHyperlink"><!-- FIXME extend some common type -->
  <annotation>
   <documentation/>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:hyperlinkReferenceExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkWhenExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkAnchorExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkPageExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkTooltipExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkParameter" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="hyperlinkType" type="string" use="optional">
    <annotation>
     <documentation>Indicates the type of the hyperlink element.
      <p>
      The type can be:
      <ul>
        <li>
          One of the built-in types:
          <dl>
            <dt><code>None</code></dt>
            <dd>The current element doesn't represent a hyperlink.</dd>
            <dt><code>Reference</code></dt>
            <dd>The current hyperlink points to an external resource specified by the corresponding <elem>hyperlinkReferenceExpression</elem> element, usually an URL.</dd>
            <dt><code>LocalAnchor</code></dt>
            <dd>The current hyperlink points to a local anchor specified by the corresponding <elem>hyperlinkAnchorExpression</elem> element.</dd>
            <dt><code>LocalPage</code></dt>
            <dd>The current hyperlink points to a 1 based page index within the current document specified by the corresponding <elem>hyperlinkPageExpression</elem> element.</dd>
            <dt><code>RemoteAnchor</code></dt>
            <dd>The current hyperlink points to an anchor specified by the <elem>hyperlinkAnchorExpression</elem> element, within an external document indicated by the corresponding <elem>hyperlinkReferenceExpression</elem> element.</dd>
            <dt><code>RemotePage</code></dt>
            <dd>The current hyperlink points to a 1 based page index specified by the <elem>hyperlinkPageExpression</elem> element, within an external document indicated by the corresponding <elem>hyperlinkReferenceExpression</elem> element.</dd>
          </dl>
        </li>
        <li>
          A custom (arbitrary) type.
        </li>
      </ul>
      </p>
     </documentation>
    </annotation>
   </attribute>
   <attribute name="hyperlinkTarget" type="string" use="optional">
    <annotation>
     <documentation>Indicates the target of the hyperlink.</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="piePlot">
  <annotation>
   <documentation>Plot options for a <elem>pieChart</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
    <element ref="jr:itemLabel" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="isShowLabels" use="optional">
    <annotation>
     <documentation>Show labels flag.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isCircular" use="optional">
    <annotation>
     <documentation>Indicates whether the pie chart is circular, or stretched into an elliptical shape</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="labelFormat" type="string" use="optional">
    <annotation>
     <documentation/>
    </annotation>
   </attribute>
   <attribute name="legendLabelFormat" type="string" use="optional">
    <annotation>
     <documentation/>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="dataset">
  <annotation>
   <documentation>Dataset definition for a chart or crosstab.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:incrementWhenExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:datasetRun" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="resetType" use="optional">
    <annotation>
     <documentation>Reset type for the dataset</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None"/>
      <enumeration value="Report"/>
      <enumeration value="Page"/>
      <enumeration value="Column"/>
      <enumeration value="Group"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="resetGroup" type="string" use="optional">
    <annotation>
     <documentation>Reset group name</documentation>
    </annotation>
   </attribute>
   <attribute name="incrementType" use="optional" default="None">
    <annotation>
     <documentation>Increment type of the dataset.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None"/>
      <enumeration value="Report"/>
      <enumeration value="Page"/>
      <enumeration value="Column"/>
      <enumeration value="Group"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="incrementGroup" type="string" use="optional">
    <annotation>
     <documentation>Increment group of the dataset</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="incrementWhenExpression">
  <annotation>
   <documentation>Boolean expression that determines whether a chart or crosstab dataset will be incremented or not.
	  <p><![CDATA[
		  The expression is evaluated before each increment of the dataset.
		  The increment will be carried on only when the result of the evaluation is <code>Boolean.TRUE</code>; if the result is <code>null</code> or <code>Boolean.FALSE</code>, the dataset will not be incremented.
	  ]]></p>
   </documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="datasetRun">
  <annotation>
   <documentation>Subdataset instantiation information for a chart/crosstab dataset.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:property" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:parametersMapExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:datasetParameter" minOccurs="0" maxOccurs="unbounded"/>
    <choice minOccurs="0" maxOccurs="1">
     <element ref="jr:connectionExpression"/>
     <element ref="jr:dataSourceExpression"/>
    </choice>
   <element name="returnValue" type="jr:variableReturnValue" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="subDataset" type="string" use="required">
	<annotation>
 	 <documentation>The name of the <elem>subdataset</elem> to instantiate.</documentation>
	</annotation>
   </attribute>
   <attribute name="uuid" type="string" use="optional">
	<annotation>
	 <documentation>This attribute is auto-generated and is used to uniquely identify dataset runs.</documentation>
	</annotation>
   </attribute>  
  </complexType>
 </element>
 
 <complexType name="commonReturnValue" abstract="true">
  <attribute name="toVariable" type="string" use="optional">
   <annotation>
    <documentation>Name of the variable to which the value is returned. This should be a variable with<code>calculation="System"</code></documentation>
   </annotation>
  </attribute>
  <attribute name="calculation" use="optional" default="Nothing">
   <annotation>
    <documentation>Calculation to perform on the destination variable when returning the value.</documentation>
   </annotation>
   <simpleType>
    <restriction base="string">
     <enumeration value="Nothing">
		<annotation>
		<documentation>No calculations are performed.</documentation>
		</annotation>
	 </enumeration>
     <enumeration value="Count">
		<annotation>
		<documentation>Variable stores the number of the not null returned values.</documentation>
		</annotation>
	 </enumeration>
     <enumeration value="DistinctCount">
		<annotation>
		<documentation>Variable stores the number of distinct not null returned values.</documentation>
		</annotation>
	 </enumeration>
     <enumeration value="Sum">
		<annotation>
		<documentation>Variable stores the sum of the not null returned values. Numeric variables only.</documentation>
		</annotation>
	 </enumeration>
     <enumeration value="Average">
		<annotation>
		<documentation>Variable stores the average of the not null returned values. Numeric variables only.</documentation>
		</annotation>
	 </enumeration>
     <enumeration value="Lowest">
		<annotation>
		<documentation>Variable stores the lowest returned value.</documentation>
		</annotation>
	 </enumeration>
     <enumeration value="Highest">
		<annotation>
		<documentation>Variable stores the highest returned value.</documentation>
		</annotation>
	 </enumeration>
     <enumeration value="StandardDeviation">
		<annotation>
		<documentation>Variable stores the standard deviation of the not null values. Numeric variables only.</documentation>
		</annotation>
	 </enumeration>
     <enumeration value="Variance">
		<annotation>
		<documentation>Variable stores the variance of the not null values. Numeric variables only.</documentation>
		</annotation>
	 </enumeration>
     <enumeration value="First">
		<annotation>
		<documentation>Variable stores the first value encountered and ignores subsequent values.</documentation>
		</annotation>
	 </enumeration>
    </restriction>
   </simpleType>
  </attribute>
  <attribute name="incrementerFactoryClass" type="string" use="optional">
   <annotation>
    <documentation>The name of a class that implements the<code>net.sf.jasperreports.engine.fill.JRIncrementerFactory</code> interface to use when creating the incrementer instance to handle the returned value.</documentation>
   </annotation>
  </attribute>
 </complexType>
 
 <complexType name="variableReturnValue">
  <complexContent>
   <extension base="jr:commonReturnValue">
    <attribute name="fromVariable" type="string" use="optional">
     <annotation>
      <documentation>Name of the source variable whose value will be returned.</documentation>
     </annotation>
    </attribute>
   </extension>
  </complexContent>
 </complexType>

 <complexType name="expressionReturnValue">
  <complexContent>
   <extension base="jr:commonReturnValue">
    <sequence>
     <element name="expression">
      <annotation>
       <documentation>Allows bulk passing the parameters to the subreport/subdataset into a <code>java.lang.Map</code> object. There are cases when we want to pass to the subreport/subdataset the same parameters that the master report has received. This can be achieved by passing the system-defined parameter called REPORT_PARAMETERS_MAP and maybe adding to or overriding those parameters using additional <elem>subreportParameter</elem> elements.</documentation>
      </annotation>
      <complexType mixed="true">
      </complexType>
     </element>
    </sequence>
   </extension>
  </complexContent>
 </complexType>

 <element name="datasetParameter">
  <annotation>
   <documentation>Definition of a subdataset parameter.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:datasetParameterExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="name" type="string" use="required">
	<annotation>
 	 <documentation>The name of the parameter that will be passed when iterating the subdataset.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="datasetParameterExpression">
  <annotation>
   <documentation>Definition of the expression associated with the subdataset parameter.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="plot">
  <annotation>
   <documentation>Defines generic plot options for charts</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:seriesColor" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="backcolor" type="string" use="optional">
	<annotation>
 	 <documentation>Background color of the chart</documentation>
	</annotation>
   </attribute>
   <attribute name="orientation" use="optional">
	<annotation>
 	 <documentation>Orientation of the chart</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Horizontal"/>
      <enumeration value="Vertical"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="backgroundAlpha" type="NMTOKEN" use="optional">
	<annotation>
 	 <documentation>Alpha (transparency) parameter for the background.</documentation>
	</annotation>
   </attribute>
   <attribute name="foregroundAlpha" type="NMTOKEN" use="optional">
	<annotation>
 	 <documentation>Alpha (transparency) parameter for the foreground.</documentation>
	</annotation>
   </attribute>
   <attribute name="labelRotation" type="string" use="optional">
	<annotation>
 	 <documentation><i>Deprecated</i>. Replaced by attribute <code>labelRotation</code> of tag <elem>categoryAxisFormat</elem>. Degrees to rotate the text labels for the x axis of the chart.  Positive
            values rotate the text clockwise and negative values rotate it counterclockwise.
            This attribute has no effect on charts where the x axis is either numeric or a
            date.
     </documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="seriesColor">
  <annotation>
   <documentation>Defines the color to use for  a  series in the report.  If only one seriesColor
  is specified it becomes the color of the first series.  If more than one seriesColor is
  specified the chart will cycle through the supplied colors.  Meter and Thermometer charts
  do not have series and
  will ignore any seriesColor settings.
  <br/><br/>
  When used in a chart that part of a multi-axis chart series color is treated a bit
  differently.  The default color series to cycle through is defined in the plot of the
  multi axis chart, and the color series for the nested charts define series colors
  for that chart only.  This is useful when a multiple axis chart contains several
  line charts, each with one series.  By default every line will be the first in its
  plot and will have the first color defined in the multi axis plot, so every line will
  be the same color.  To solve this you can set a seriesColor for each nested chart to
  override the default colors.
   </documentation>
  </annotation>
  <complexType>
   <attribute name="seriesOrder" type="string" use="required">
	<annotation>
 	 <documentation>The relative order of this color.  All seriesColors are sorted
      by the value of this attribute, and appear in that order when coloring the
      series.
      <br/><br/>
      When the chart is nested inside a multiple axis chart the seriesOrder is
      the actual series number to apply the color to.  Series use zero-based indexing.
     </documentation>
	</annotation>
   </attribute>
   <attribute name="color" type="string" use="required">
	<annotation>
 	 <documentation>The color to use for the series</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="pie3DChart">
  <annotation>
   <documentation>Defines a pie chart with 3D effect</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:pieDataset"/>
    <element ref="jr:pie3DPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="pie3DPlot">
  <annotation>
   <documentation>Defines plot options for a <elem>pie3DChart</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
    <element ref="jr:itemLabel" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="isShowLabels" use="optional">
    <annotation>
     <documentation>Show labels flag.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="depthFactor" type="string" use="optional">
	<annotation>
 	 <documentation>Depth factor for a pie chart plot.</documentation>
	</annotation>
   </attribute>
   <attribute name="isCircular" use="optional">
	<annotation>
 	 <documentation>Indicates whether the pie chart is circular, or stretched into an elliptical shape</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="labelFormat" type="string" use="optional">
	<annotation>
 	 <documentation/>
	</annotation>
   </attribute>
   <attribute name="legendLabelFormat" type="string" use="optional">
	<annotation>
 	 <documentation/>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="barChart">
  <annotation>
   <documentation>Defines a bar chart. Dataset used with this chart is <elem>categoryDataset</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:categoryDataset"/>
    <element ref="jr:barPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="categoryDataset">
  <annotation>
   <documentation>Creates a dataset with one or more series and values associated with categories</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataset" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:categorySeries" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
  </complexType>
 </element>

 <element name="categorySeries">
  <annotation>
   <documentation>Defines a series that will be mapped on the category axis.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:seriesExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:categoryExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:labelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:itemHyperlink" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="seriesExpression">
  <annotation>
   <documentation>Defines a series expression in a dataset</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="categoryExpression">
  <annotation>
   <documentation>Defines a category expression in a dataset.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="itemHyperlink">
  <annotation>
   <documentation>Hyperlink specification for chart items.  This hyperlink definition will be evaluated for every chart item and an image map will be created for the chart.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:hyperlinkReferenceExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkWhenExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkAnchorExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkPageExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkTooltipExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:hyperlinkParameter" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="hyperlinkType" type="string" use="optional">
    <annotation>
     <documentation>Indicates the type of the hyperlink element.
      <p>
      The type can be:
      <ul>
        <li>
          One of the built-in types:
          <dl>
            <dt><code>None</code></dt>
            <dd>The current element doesn't represent a hyperlink.</dd>
            <dt><code>Reference</code></dt>
            <dd>The current hyperlink points to an external resource specified by the corresponding <elem>hyperlinkReferenceExpression</elem> element, usually an URL.</dd>
            <dt><code>LocalAnchor</code></dt>
            <dd>The current hyperlink points to a local anchor specified by the corresponding <elem>hyperlinkAnchorExpression</elem> element.</dd>
            <dt><code>LocalPage</code></dt>
            <dd>The current hyperlink points to a 1 based page index within the current document specified by the corresponding <elem>hyperlinkPageExpression</elem> element.</dd>
            <dt><code>RemoteAnchor</code></dt>
            <dd>The current hyperlink points to an anchor specified by the <elem>hyperlinkAnchorExpression</elem> element, within an external document indicated by the corresponding <elem>hyperlinkReferenceExpression</elem> element.</dd>
            <dt><code>RemotePage</code></dt>
            <dd>The current hyperlink points to a 1 based page index specified by the <elem>hyperlinkPageExpression</elem> element, within an external document indicated by the corresponding <elem>hyperlinkReferenceExpression</elem> element.</dd>
          </dl>
        </li>
        <li>
          A custom (arbitrary) type.
        </li>
      </ul>
      </p>
     </documentation>
    </annotation>
   </attribute>
   <attribute name="hyperlinkTarget" type="string" use="optional">
    <annotation>
     <documentation>Indicates the target of the hyperlink.</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="barPlot">
  <annotation>
   <documentation>Plot options for a <elem>barChart</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
    <element ref="jr:itemLabel" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:categoryAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:categoryAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="isShowLabels" use="optional">
    <annotation>
     <documentation>Show labels flag.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isShowTickMarks" use="optional">
    <annotation>
     <documentation>Show tick marks on the value axis</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isShowTickLabels" use="optional">
    <annotation>
     <documentation>Show tick labels on the value axis</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="categoryAxisLabelExpression">
  <annotation>
   <documentation>Expression that will be displayed on category axis</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="valueAxisLabelExpression">
  <annotation>
   <documentation>Defines the expression for the value axis of the chart</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="domainAxisMinValueExpression">
  <annotation>
   <documentation>Defines the expression for the minimum value on the domain axis.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="domainAxisMaxValueExpression">
  <annotation>
   <documentation>Defines the expression for the maximum value on the domain axis.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="rangeAxisMinValueExpression">
  <annotation>
   <documentation>Defines the expression for the minimum value on the range axis.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="rangeAxisMaxValueExpression">
  <annotation>
   <documentation>Defines the expression for the maximum value on the range axis.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="categoryAxisFormat">
  <annotation>
   <documentation>Specifies the formatting of a category axis, including how to
    draw the axis line, its label and tick mark labels.  Any tick label mask
    specified will be ignored.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:axisFormat"/>
   </sequence>
   <attribute name="labelRotation" type="string" use="optional">
	<annotation>
 	 <documentation>Degrees to rotate the text labels for the category axis of the chart. Positive
            values rotate the text clockwise and negative values rotate it counterclockwise.
     </documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="valueAxisFormat">
  <annotation>
   <documentation>Specifies the formatting of a value axis, including how to
    draw the axis line, its label and tick mark labels.  If a tick label mask
    is specified it will be treated as a numeric mask.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:axisFormat"/>
   </sequence>
  </complexType>
 </element>

 <element name="axisFormat">
  <annotation>
   <documentation>Specifies the general formatting settings for an axis.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:labelFont" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:tickLabelFont" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="labelColor" type="string" use="optional">
    <annotation>
     <documentation>The color to use for the caption of the axis.</documentation>
    </annotation>
   </attribute>
   <attribute name="tickLabelColor" type="string" use="optional">
    <annotation>
     <documentation>The color to use for the label of each tick mark on the axis.</documentation>
    </annotation>
   </attribute>
   <attribute name="tickLabelMask" type="string" use="optional">
    <annotation>
     <documentation>A formatting mask to use for the label of each tick mark on the
            axis.  Only used if the axis is time based or numeric based.  For numeric
            axes the format of the mask is described in documentation for
            <code>java.text.DecimalFormat</code>.  For a date axis the
            format used is described in <code>java.text.SimpleDateFormat</code>.
            Finally, for date axes the values "SHORT", "MEDIUM", "LONG" and
            "FULL" can be used as described in <code>java.text.DateFormat</code>.
     </documentation>
    </annotation>
   </attribute>
   <attribute name="verticalTickLabels" type="boolean" use="optional">
    <annotation>
     <documentation>Flag to force rendering the tick labels rotated 90 degrees.</documentation>
    </annotation>
   </attribute>
   <attribute name="axisLineColor" type="string" use="optional">
    <annotation>
     <documentation>The color to use when drawing the line showing the axis.</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="labelFont">
  <annotation>
   <documentation>Specifies the font to use when drawing the label of an axis
    in a chart.  The label of an axis is the text that describes the axis.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:font" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="tickLabelFont">
  <annotation>
   <documentation>Specifies the font to use when drawing the label for each tick
    mark on an axis in a chart.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:font" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="bar3DChart">
  <annotation>
   <documentation>Defines a bar chart with 3D effect</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:categoryDataset"/>
    <element ref="jr:bar3DPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="bar3DPlot">
  <annotation>
   <documentation>Defines plot options for a bar chart with 3D effect</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
    <element ref="jr:itemLabel" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:categoryAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:categoryAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="isShowLabels" use="optional">
    <annotation>
     <documentation>Show labels flag.</documentation>
    </annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="xOffset" type="string" use="optional">
    <annotation>
     <documentation>Offset on the x axis.</documentation>
    </annotation>
   </attribute>
   <attribute name="yOffset" type="string" use="optional">
    <annotation>
     <documentation>Offset on the y axis.</documentation>
    </annotation>
   </attribute>
  </complexType>
 </element>

 <element name="xyBarChart">
  <annotation>
   <documentation>Defines a bar chart that uses an <elem>xyDataset</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <choice>
     <element ref="jr:timePeriodDataset"/>
     <element ref="jr:timeSeriesDataset"/>
     <element ref="jr:xyDataset"/>
    </choice>
    <element ref="jr:barPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="timePeriodDataset">
  <annotation>
   <documentation>Defines a time period dataset</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataset" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:timePeriodSeries" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
  </complexType>
 </element>

 <element name="timePeriodSeries">
  <annotation>
   <documentation>Defines a time period series for a <elem>timePeriodDataset</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:seriesExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:startDateExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:endDateExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:labelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:itemHyperlink" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="startDateExpression">
  <annotation>
   <documentation/>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="endDateExpression">
  <annotation>
   <documentation/>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="stackedBarChart">
  <annotation>
   <documentation>Defines a stacked bar chart</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:categoryDataset"/>
    <element ref="jr:barPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="stackedAreaChart">
  <annotation>
   <documentation>Defines a stacked area chart</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:categoryDataset"/>
    <element ref="jr:areaPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="stackedBar3DChart">
  <annotation>
   <documentation>Defines a stacked bar chart with 3D effect</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:categoryDataset"/>
    <element ref="jr:bar3DPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="lineChart">
  <annotation>
   <documentation>Defines a line chart</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:categoryDataset"/>
    <element ref="jr:linePlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="linePlot">
  <annotation>
   <documentation>Defines plot options for a <elem>lineChart</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
    <element ref="jr:categoryAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:categoryAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="isShowLines" use="optional">
	<annotation>
 	 <documentation>Show lines flag.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isShowShapes" use="optional">
	<annotation>
 	 <documentation>Show shapes flag.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="xyLineChart">
  <annotation>
   <documentation>Defines a line chart that uses an <elem>xyzDataset</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:xyDataset"/>
    <element ref="jr:linePlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="xyDataset">
  <annotation>
   <documentation>Defines an XY type dataset</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataset" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:xySeries" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
  </complexType>
 </element>

 <element name="xySeries">
  <annotation>
   <documentation>Defines a series used in an <elem>xyDataset</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:seriesExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:xValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:yValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:labelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:itemHyperlink" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="autoSort" use="optional">
	<annotation>
 	 <documentation>Auto sort values on x-axis.</documentation>
	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="xValueExpression">
  <annotation>
   <documentation>Defines the expression for the value of the X axis of the chart.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="yValueExpression">
  <annotation>
   <documentation>Defines the value for the Y axis.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="areaChart">
  <annotation>
   <documentation>Defines an area chart.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:categoryDataset"/>
    <element ref="jr:areaPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="areaPlot">
  <annotation>
   <documentation>Defines rendering options for an <elem>areaChart</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
    <element ref="jr:categoryAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:categoryAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="xyAreaChart">
  <annotation>
   <documentation>Defines a area chart that uses an <elem>xyDataset</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:xyDataset"/>
    <element ref="jr:areaPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="scatterChart">
  <annotation>
   <documentation>Defines a scatter chart</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:xyDataset"/>
    <element ref="jr:scatterPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="scatterPlot">
  <annotation>
   <documentation>Specifies the plot options for a <elem>scatterChart</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
    <element ref="jr:xAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:xAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:yAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:yAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="isShowLines" use="optional">
  	<annotation>
   	 <documentation>Show lines flag</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isShowShapes" use="optional">
  	<annotation>
   	 <documentation>Show shapes flag</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="xAxisLabelExpression">
  <annotation>
   <documentation>Defines the expression for the label of the  X axis of the chart</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="yAxisLabelExpression">
  <annotation>
   <documentation>Defines the expression for the Y axis label of the chart</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="xAxisFormat">
  <annotation>
   <documentation>Specifies the formatting of an x axis, including how to
    draw the axis line, its label and tick mark labels.  If a tick label mask
    is specified it will be treated as a numeric mask.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:axisFormat"/>
   </sequence>
  </complexType>
 </element>

 <element name="yAxisFormat">
  <annotation>
   <documentation>Specifies the formatting of a y axis, including how to
    draw the axis line, its label and tick mark labels.  If a tick label mask
    is specified it will be treated as a numeric mask.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:axisFormat"/>
   </sequence>
  </complexType>
 </element>

 <element name="bubbleChart">
  <annotation>
   <documentation>Creates a bubble chart</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:xyzDataset"/>
    <element ref="jr:bubblePlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="xyzDataset">
  <annotation>
   <documentation>Defines a dataaset used for <elem>bubbleChart</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataset" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:xyzSeries" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
  </complexType>
 </element>

 <element name="xyzSeries">
  <annotation>
   <documentation>Defines a series in an <elem>xyzDataset</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:seriesExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:xValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:yValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:zValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:itemHyperlink" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="bubblePlot">
  <annotation>
   <documentation>Plot options for a <elem>bubbleChart</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
    <element ref="jr:xAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:xAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:yAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:yAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="scaleType" use="optional">
  	<annotation>
   	 <documentation>Scale options for the bubble chart items</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="BothAxes"/>
      <enumeration value="DomainAxis"/>
      <enumeration value="RangeAxis"/>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="zValueExpression">
  <annotation>
   <documentation>Expression that defines the value for the Z axis in an <elem>xyzSeries</elem></documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="timeSeriesDataset">
  <annotation>
   <documentation>Defines a time series dataset</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataset" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:timeSeries" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="timePeriod" use="optional" default="Day">
  	<annotation>
   	 <documentation>Time period for the dataset.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Year"/>
      <enumeration value="Quarter"/>
      <enumeration value="Month"/>
      <enumeration value="Week"/>
      <enumeration value="Day"/>
      <enumeration value="Hour"/>
      <enumeration value="Minute"/>
      <enumeration value="Second"/>
      <enumeration value="Milisecond"/>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="timeSeries">
  <annotation>
   <documentation>Defines a time series for <elem>timeSeriesDataset</elem>.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:seriesExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:timePeriodExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:labelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:itemHyperlink" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="timePeriodExpression">
  <annotation>
   <documentation>Defines the expression used for a time period</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="timeSeriesChart">
  <annotation>
   <documentation>Defines a time series chart.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:timeSeriesDataset"/>
    <element ref="jr:timeSeriesPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="timeSeriesPlot">
  <annotation>
   <documentation>Defines plot options for a <elem>timeSeriesChart</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
    <element ref="jr:timeAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:timeAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="isShowLines" use="optional">
  	<annotation>
   	 <documentation>Show lines flag.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isShowShapes" use="optional">
  	<annotation>
   	 <documentation>Show shapes flag.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="timeAxisLabelExpression">
  <annotation>
   <documentation>Defines the expression used for the time axis label</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="timeAxisFormat">
  <annotation>
   <documentation>Specifies the formatting of a time axis, including how to
    draw the axis line, its label and tick mark labels.  If a tick label mask
    is specified it will be treated as a date mask.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:axisFormat"/>
   </sequence>
  </complexType>
 </element>

 <element name="highLowChart">
  <annotation>
   <documentation>Defines a high-low type chart</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:highLowDataset"/>
    <element ref="jr:highLowPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="highLowDataset">
  <annotation>
   <documentation>Defines a dataset that can be used with a <elem>highLowChart</elem>.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataset" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:seriesExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:dateExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:highExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:lowExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:openExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:closeExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:volumeExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:itemHyperlink" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="highLowPlot">
  <annotation>
   <documentation>Plot options for a <elem>highLowChart</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
    <element ref="jr:timeAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:timeAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="isShowCloseTicks" use="optional">
  	<annotation>
   	 <documentation>Show close tick flag.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isShowOpenTicks" use="optional">
  	<annotation>
   	 <documentation>Show open tick flag.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="dateExpression">
  <annotation>
   <documentation>Represents a date expression used in <elem>timeSeriesChart</elem></documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="highExpression">
  <annotation>
   <documentation>High expresion in a <elem>highLowchart</elem>.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="lowExpression">
  <annotation>
   <documentation>Low expresion in a <elem>highLowchart</elem>.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="openExpression">
  <annotation>
   <documentation>Open expression for a <elem>candlestickChart</elem></documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="closeExpression">
  <annotation>
   <documentation>Expression for the close value for <elem>candlestickChart</elem></documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="volumeExpression">
  <annotation>
   <documentation>Defines the volumeExpression for a <elem>highLowDataset</elem></documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="candlestickChart">
  <annotation>
   <documentation>Creates a candlestick chart</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:highLowDataset"/>
    <element ref="jr:candlestickPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="candlestickPlot">
  <annotation>
   <documentation>Plot options for a <elem>candlestickChart</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
    <element ref="jr:timeAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:timeAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisLabelExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueAxisFormat" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:domainAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMinValueExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rangeAxisMaxValueExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="isShowVolume" use="optional">
  	<annotation>
   	 <documentation>Flag that enables showing volume values for a <elem>candlestickChart</elem>.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="meterChart">
  <annotation>
   <documentation>Defines a meter chart.  A meter chart plots a single value on a dial.  In addition to the value being
               plotted multiple ranges can be specified to help interpret the value.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:valueDataset"/>
    <element ref="jr:meterPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="valueDataset">
  <annotation>
   <documentation>Defines a dataset that contains a single value.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataset" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueExpression"/>
   </sequence>
  </complexType>
 </element>

 <element name="meterPlot">
  <annotation>
   <documentation>Plot options for a <elem>meterChart</elem>.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
   	<element ref="jr:tickLabelFont" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:valueDisplay" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:dataRange"/>
    <element ref="jr:meterInterval" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="shape" use="optional">
  	<annotation>
   	 <documentation>Defines the shape of the meter.  The final appearance is determined by the combination of
      this attribute and the <code>angle</code> attribute.  This attribute only matters when the meter
      is using an angle over 180 degrees.
      <p>
      When a meter is over 180 degrees wide the space between the start and end of the meter can be filled
      in several different ways.  The best way to visualize this is to think of a twelve hour clock.  If the angle of the meter is 240 degrees the
      meter will start at 8, sweep up past 12 and down to 4.  This attribute specifies how to fill the area
      between 4 o'clock and 8 o'clock.
      </p>
     </documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="chord">
		<annotation>
		 <documentation>A straight line is drawn between the start point and the end point, and the area bounded by
          the meter and this line is shaded with the background color.
         </documentation>
		</annotation>
	  </enumeration>
      <enumeration value="circle">
		<annotation>
		 <documentation>The unused portion of the circle that describes the meter is shaded with the background color.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="pie">
		<annotation>
		 <documentation>The unused portion of the circle that describes the meter is not shaded at all.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="dial">
		<annotation>
		 <documentation>The unused portion of the circle that describes the meter is shaded with the background color and handled with specific dial objects.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="angle" type="string" use="optional">
  	<annotation>
   	 <documentation>The extent of the meter in degrees.  Use 180 for a semicircle.</documentation>
  	</annotation>
   </attribute>
   <attribute name="units" type="string" use="optional">
  	<annotation>
   	 <documentation>An optional string that describes the unit that the meter is displaying.  This string will
            be appended to the value.
     </documentation>
  	</annotation>
   </attribute>
   <attribute name="tickInterval" type="string" use="optional">
  	<annotation>
   	 <documentation>The amount of space between values to mark as "ticks" on the face of the meter.  If the meter has a data
        range of 0-100 and the tick interval is 20, there will be 4 ticks at 20, 40, 60 and 80.
     </documentation>
  	</annotation>
   </attribute>
   <attribute name="meterColor" type="string" use="optional">
  	<annotation>
   	 <documentation>The color of meter.  If <elem>meterIntervals</elem> are defined they may
        mask this color.
     </documentation>
  	</annotation>
   </attribute>
   <attribute name="needleColor" type="string" use="optional">
  	<annotation>
   	 <documentation>The color used to draw the needle in the meter.</documentation>
  	</annotation>
   </attribute>
   <attribute name="tickColor" type="string" use="optional">
  	<annotation>
   	 <documentation>The color of the meter ticks, if any.</documentation>
  	</annotation>
   </attribute>
   <attribute name="tickCount" type="string" use="optional">
  	<annotation>
   	 <documentation>The number of major ticks on the meter scale.</documentation>
  	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="valueDisplay">
  <annotation>
   <documentation>Controls how the single data value is displayed in a <elem>meterChart</elem> or
        <elem>thermometerChart</elem>.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:font" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="color" type="string" use="optional">
  	<annotation>
   	 <documentation>The color to use when displaying the value.</documentation>
  	</annotation>
   </attribute>
   <attribute name="mask" type="string" use="optional">
  	<annotation>
   	 <documentation>The formatting mask to use to display the value.  This mask must follow the rules
            specified for a <code>java.text.DecimalFormat</code> pattern.
            <p/>
            This attribute is currently ignored for a <elem>meterChart</elem>.
     </documentation>
  	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="dataRange">
  <annotation>
   <documentation>Defines a numeric range, such as the bounds of chart or a section of a chart.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:lowExpression"/>
    <element ref="jr:highExpression"/>
   </sequence>
  </complexType>
 </element>

 <element name="meterInterval">
  <annotation>
   <documentation>Describes a range of a <elem>meterChart</elem> to highlight.  A typical use is to
  divide a meter up into sections such as "normal", "warning" and "critical" and color code them.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataRange"/>
   </sequence>
   <attribute name="label" type="string" use="optional">
  	<annotation>
   	 <documentation>The name of this region.  The name will appear in the meter's legend if the legend
            is being displayed.
     </documentation>
  	</annotation>
   </attribute>
   <attribute name="color" type="string" use="optional">
  	<annotation>
   	 <documentation>The color used to shade the region in the meter.  If not set the region will have no
         visual indicator.
     </documentation>
  	</annotation>
   </attribute>
   <attribute name="alpha" type="string" use="optional">
  	<annotation>
   	 <documentation>The alpha (transparency) of the shading for the region.  The values range from 0.0
            (completely transparent) to 1.0 (completely opaque).
     </documentation>
  	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="thermometerChart">
  <annotation>
   <documentation>Defines a thermometer chart.  A thermometer chart plots a single value on a thermometer.
        In addition to the value being plotted three ranges can be specified to help interpret the value.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:valueDataset"/>
    <element ref="jr:thermometerPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="thermometerPlot">
  <annotation>
   <documentation>Plot options for a <elem>thermometerChart</elem>.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
    <element ref="jr:valueDisplay" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:dataRange"/>
    <element ref="jr:lowRange" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:mediumRange" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:highRange" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="valueLocation" use="optional" default="bulb">
  	<annotation>
   	 <documentation>Defines where to display the textual representation of the value being displayed,
                relative to the thermometer outline.
     </documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="none">
		<annotation>
		 <documentation>The textual value is not displayed.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="left">
		<annotation>
		 <documentation>The text value is displayed to the left of the thermometer outline.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="right">
		<annotation>
		 <documentation>The text value is displayed to the right of the thermometer outline.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="bulb">
		<annotation>
		 <documentation>The text value is displayed in the bulb at the bottom of the thermometer.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isShowValueLines" use="optional" default="false">
  	<annotation>
   	 <documentation><i>Deprecated</i>. No longer used. Defines whether or not lines are drawn showing values on the thermometer.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation>Value lines are drawn.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation>Value lines are not drawn.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="mercuryColor" type="string" use="optional">
  	<annotation>
   	 <documentation>The color used to fill the thermometer.
            <p/>
            If the value of the thermometer falls in one of the defined ranges the color specified in that range
            will be used instead of this color.
     </documentation>
  	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="lowRange">
  <annotation>
   <documentation>Defines the low range in a <elem>thermometerChart</elem>.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataRange"/>
   </sequence>
  </complexType>
 </element>

 <element name="mediumRange">
  <annotation>
   <documentation>Defines the medium range in a <elem>thermometerChart</elem>.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataRange"/>
   </sequence>
  </complexType>
 </element>

 <element name="highRange">
  <annotation>
   <documentation>Defines the high range in a <elem>thermometerChart</elem>.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataRange"/>
   </sequence>
  </complexType>
 </element>

 <element name="multiAxisChart">
  <annotation>
   <documentation>Definition of chart with multiple range axis, all sharing a common
    domain axis.  The domain is determined by the dataset of each nested report, and
    they must all use the same type of dataset.  The time period datasets (highLowDataset,
    candlestickDataset and timeSeriesDataset) are considered the same and can be
    mixed.
    <br/><br/>
    Each nested chart has its own range, so you can combine charts with significantly
    different scales.  Each chart will have its own axis showing its range, and it is
    highly recommended to color the data series and the axis to match.
    <br/><br/>
    The plot options of the nested reports are ignored - the plot is configured via the
    multiAxisPlot.  The only exception to this is any seriesColors specified in the
    plot of a nested report, which will be used to color a specific series in that
    report.  In this case the seriesOrder in the seriesColor is an absolute specification
    of a series to color, not a relative ordering.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:multiAxisPlot"/>
   </sequence>
  </complexType>
 </element>

 <element name="multiAxisPlot">
  <annotation>
   <documentation>Plot options for a <elem>multiAxisChart</elem>.
    The set plot options will be shared by all the charts inside this plot, and the
    nested charts are specified via the <elem>axis</elem> tags.
    All nested charts must share the same type of domain axis - a category, a numeric (xy)
    or a time based axis.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:plot"/>
    <element ref="jr:axis" maxOccurs="unbounded"/>
   </sequence>
  </complexType>
 </element>

 <element name="axis">
  <annotation>
   <documentation>Describes a range axis to use in a <elem>multiAxisChart</elem>. Each axis has its own range indicator and a data plot.
   </documentation>
  </annotation>
  <complexType>
   <choice>
    <element ref="jr:barChart"/>
    <element ref="jr:bar3DChart"/>
    <element ref="jr:xyBarChart"/>
    <element ref="jr:stackedBarChart"/>
    <element ref="jr:stackedBar3DChart"/>
    <element ref="jr:lineChart"/>
    <element ref="jr:xyLineChart"/>
    <element ref="jr:areaChart"/>
    <element ref="jr:xyAreaChart"/>
    <element ref="jr:scatterChart"/>
    <element ref="jr:bubbleChart"/>
    <element ref="jr:timeSeriesChart"/>
    <element ref="jr:highLowChart"/>
    <element ref="jr:candlestickChart"/>
    <element ref="jr:stackedAreaChart"/>
    <element ref="jr:ganttChart"/>
   </choice>
   <attribute name="position" use="optional">
  	<annotation>
   	 <documentation>Indicates where relative to the chart to display the range axis for this chart</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="leftOrTop">
		<annotation>
		 <documentation>Display the axis to the left (for charts with
                    a Vertical orientation) or top (for charts with a
                    Horizontal orientation.)
         </documentation>
		</annotation>
	  </enumeration>
      <enumeration value="rightOrBottom">
		<annotation>
		 <documentation>Display the axis to the right (for charts with
                    a Vertical orientation) or bottom (for charts with a
                    Horizontal orientation.)
         </documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="crosstab">
  <annotation>
   <documentation>Crosstab definition.
	  <p/>
	  To be noted that the crosstab will stretch downwards to fit the data but it will not exceed its report element width.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:reportElement"/>
    <element ref="jr:box" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:crosstabParameter" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:parametersMapExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:crosstabDataset" minOccurs="0" maxOccurs="1"/>
    <element name="titleCell" type="jr:CrosstabColumnCell" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:crosstabHeaderCell" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:rowGroup" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:columnGroup" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:measure" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:crosstabCell" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:whenNoDataCell" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="isRepeatColumnHeaders" use="optional" default="true">
  	<annotation>
   	 <documentation>Flag that indicates whether the column headers will be reprinted after a page break.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation>The column headers will be reprinted after a page break.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation>The column headers will be printed only on the page where the crosstab starts.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="isRepeatRowHeaders" use="optional" default="true">
  	<annotation>
   	 <documentation>Flag that indicates whether the row headers will be reprinted after a crosstab column break.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation>The row headers will be reprinted after a crosstab column break.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation>The column headers will be printed for all rows only for the first set of columns and not after a column break.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="columnBreakOffset" type="NMTOKEN" use="optional" default="10">
  	<annotation>
   	 <documentation>Offset used when a column break occurs and the filling is continued on the same page.
    <p/>
     When the crosstab columns do not fit the width, the crosstab breaks the columns and prints the ones that don't fit after printing the first set of columns for all rows.
     This attribute is the offset to be used when continuing the printing after a column break.
     </documentation>
  	</annotation>
   </attribute>
   <attribute name="runDirection" use="optional" default="LTR">
  	<annotation>
   	 <documentation>The crosstab run direction.
    <p/>
	 Crosstabs can either be filled from left to right (the default) or from right to left (mainly for reports in RTL languages).
    <p/>
	 When a crosstab is filled from right to left, the crosstab contents will start from the right extremity of the crosstab element area and grow towards the left.
     </documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="LTR">
		<annotation>
		 <documentation>Left to right run direction.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="RTL">
		<annotation>
		 <documentation>Right to left run direction.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="ignoreWidth" type="boolean" use="optional">
  	<annotation>
   	 <documentation>
This attribute determines whether the crosstab will break at the width set for
the crosstab element, or whether the crosstab is to expand over this width
(and over the page width as well).
<p>
If this attribute is set to <code>true</code>, the crosstab will expand towards
the right (or towards the left if the crosstab direction is RTL) as long
as it needs to.  This would result in crosstab cells being rendered over
the page boundary; such elements will be exported by certain grid-based
exporters such as the HTML or XLS ones, but will not be visible in export
formats that observe the page width, such as the PDF exporter.
</p>
<p>
The default value of this flag is given by the
<a href="http://jasperreports.sourceforge.net/api/net/sf/jasperreports/crosstabs/JRCrosstab.html#PROPERTY_IGNORE_WIDTH">net.sf.jasperreports.crosstab.ignore.width</a>
property.
</p>
   	 </documentation>
  	</annotation>
   </attribute>
   <attribute name="horizontalPosition" use="optional">
  	<annotation>
   	 <documentation>The position of the crosstab within its element box.
    <p/>
	 By default LTR crosstabs are positions at the left of the element box, and RTL crosstabs at the right of the box.
     </documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Left">
		<annotation>
		 <documentation>The crosstab is positioned at the left of the element box.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Right">
		<annotation>
		 <documentation>The crosstab is positioned at the right of the element box.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Center">
		<annotation>
		 <documentation>The crosstab is centered withing the element box.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="crosstabParameter">
  <annotation>
   <documentation>Crosstab parameter definition and value.  Values from the report can only be accessed inside crosstab elements by passing them as parameters.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:parameterValueExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="name" type="string" use="required">
  	<annotation>
   	 <documentation>Name of the parameter.</documentation>
  	</annotation>
   </attribute>
   <attribute name="class" type="string" use="optional" default="java.lang.String">
  	<annotation>
   	 <documentation>Class of the parameter values.</documentation>
  	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="parameterValueExpression">
  <annotation>
   <documentation>Crosstab parameter value expression.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="crosstabDataset">
  <annotation>
   <documentation>Crosstab dataset definition.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataset" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="isDataPreSorted" use="optional" default="false">
  	<annotation>
   	 <documentation>Flag that indicates whether the crosstab data is already sorted according to the row bucket expressions and group bucket expressions (in this order).
      <p/>
      The crosstab calculation engine can optimize the calculations if the data is sorted by the row groups and column groups.
      For example, if there are two row groups R1 and R2 (subgroup of R1) and three column groups C1, C2 and C3 the data should be sorted  by R1, R2, C1, C2, C3.
     </documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="true">
		<annotation>
		 <documentation>The calculation engine will assume that the data is presorted.  If the data is not presorted, the outcome is undefined.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="false">
		<annotation>
		 <documentation>The crosstab dataset data is not presorted.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="crosstabHeaderCell">
  <annotation>
   <documentation>Crosstab cell that will be rendered at the upper-left corner of the crosstab.
     <p/>
     The cell size will be calculated based on the row/column header cell widths/heights.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:cellContents"/>
   </sequence>
  </complexType>
 </element>

 <element name="rowGroup">
  <annotation>
   <documentation>Crosstab row group definition.
      <p/>
   Each group in the crosstab has a variable that can be used inside the group header or inside the crosstab cells as the current group value.
   The variable has the same name as the group and the same type as the bucket expression of the group.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:bucket"/>
    <element ref="jr:crosstabRowHeader" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:crosstabTotalRowHeader" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="name" type="string" use="required">
  	<annotation>
   	 <documentation>Group name.</documentation>
  	</annotation>
   </attribute>
   <attribute name="width" type="NMTOKEN" use="required">
  	<annotation>
   	 <documentation>The width of the row group header.</documentation>
  	</annotation>
   </attribute>
   <attribute name="totalPosition" use="optional" default="None">
  	<annotation>
   	 <documentation>The position of the total row for this group.
      <p/>
      A group can have a total row summing the values for all the entries in the group.
      E.g. if there is a Year group having Month as a subgroup, the total row for the Year group would sum the values for all the years and the total row for the Month group would sum the values for all the months of an year.
  	 </documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Start">
		<annotation>
		 <documentation>The total row will be displayed before the group rows.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="End">
		<annotation>
		 <documentation>The total row will be displayed after the group rows.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="None">
		<annotation>
		 <documentation>The total row will not be displayed.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="headerPosition" use="optional" default="Top">
  	<annotation>
   	 <documentation>The position of the header contents on header span.
      <p/>
      The row group headers stretch vertically by spanning when there are multiple sub group entries.
      This attribute determines the way the header contents will be adjusted to the new height.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Top">
		<annotation>
		 <documentation>The contents will be rendered at the top of the header</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Middle">
		<annotation>
		 <documentation>The contents will be rendered on the center of the header</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Bottom">
		<annotation>
		 <documentation>The contents will be rendered at the bottom of the header</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Stretch">
		<annotation>
		 <documentation>The contents will be proportionally stretched to the new header height</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="mergeHeaderCells" type="boolean" use="optional">
  	<annotation>
   	 <documentation>
   	 Determines whether the header cell of this group spans across all rows in the group,
   	 or whether the header cell repeats for each sub group entry.
   	 <p>
   	 If the header cell is set to repeat, the sub group should not have a total row.
   	 </p>
   	 <p>
   	 By default the header cell spans across all rows that are part of the group.
   	 </p>
   	 </documentation>
  	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="crosstabRowHeader">
  <annotation>
   <documentation>Crosstab row header definition.
    <p/>
    The size of the row header cell is computed based on the following rules:
    <ul>
      <li>the width of the header is given by the <span class="attr">width</span> attribute of <elem>rowGroup</elem></li>
      <li>the height of the last row group header is given by the height of the base cell</li>
      <li>the height of a non-last row group header is the sum of the next group header's height and
        the next group total header's height (0 if the next group doesn't have a total header)</li>
    </ul>
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:cellContents" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="crosstabTotalRowHeader">
  <annotation>
   <documentation>Crosstab total row header definition.
    <p/>
    The size of a row group total header is computed based on the following rules:
    <ul>
      <li>the width is the sum the widths of this and subsequent row groups</li>
      <li>the height is the height of the base cell for this total row</li>
    </ul>
    <p/>
    The total row is only printed if the <span class="attr">totalPosition</span> attribute of the group is different than <span class="val">None</span>.
  </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:cellContents" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="columnGroup">
  <annotation>
   <documentation>Crosstab column group definition.
    <p/>
   Each group in the crosstab has a variable that can be used inside the group header or inside the crosstab cells as the current group value.
   The variable has the same name as the group and the same type as the bucket expression of the group.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:bucket"/>
    <element ref="jr:crosstabHeader" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:crosstabColumnHeader" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:crosstabTotalColumnHeader" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="name" type="string" use="required">
  	<annotation>
   	 <documentation>Group name.</documentation>
  	</annotation>
   </attribute>
   <attribute name="height" type="NMTOKEN" use="required">
  	<annotation>
   	 <documentation>The height of the column group header.</documentation>
  	</annotation>
   </attribute>
   <attribute name="totalPosition" use="optional" default="None">
  	<annotation>
   	 <documentation>The position of the total column for this group.
    <p/>
    A group can have a total column summing the values for all the entries in the group.
    E.g. if there is a Year group having Month as a subgroup, the total column for the Year group would sum the values for all the years and the total column for the Month group would sum the values for all the months of an year.
  	 </documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Start">
		<annotation>
		 <documentation>The total column will be displayed before the group column.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="End">
		<annotation>
		 <documentation>The total column will be displayed after the group column.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="None">
		<annotation>
		 <documentation>The total column will not be displayed.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="headerPosition" use="optional" default="Left">
  	<annotation>
   	 <documentation>The position of the header contents on header span.
    <p/>
    The column group headers stretch horizontally by spanning when there are multiple sub group entries.
    This attribute determines the way the header contents will be adjusted to the new width.
     </documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Left">
		<annotation>
		 <documentation>The contents will be rendered on the left side of the header</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Center">
		<annotation>
		 <documentation>The contents will be rendered on the center of the header</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Right">
		<annotation>
		 <documentation>The contents will be rendered on the right side of the header</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Stretch">
		<annotation>
		 <documentation>The contents will be proportionally stretched to the new header width</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="mergeHeaderCells" type="boolean" use="optional">
  	<annotation>
   	 <documentation>
   	 Determines whether the header cell of this group spans across all columns in the group,
   	 or whether the header cell repeats for each sub group entry.
   	 <p>
   	 If the header cell is set to repeat, the sub group should not have a total column.
   	 </p>
   	 <p>
   	 By default the header cell spans across all columns that are part of the group.
   	 </p>
   	 </documentation>
  	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="crosstabColumnHeader">
  <annotation>
   <documentation>Crosstab column header definition.
    <p/>
    The size of the column header cell is computed based on the following rules:
    <ul>
      <li>the height of the header is given by the <span class="attr">height</span> attribute of <elem>columnGroup</elem></li>
      <li>the width of the last column group header is given by the width of the base cell</li>
      <li>the width of a non-last column group header is the sum of the next group header's width and
        the next group total header's width (0 if the next group doesn't have a total header)</li>
    </ul>
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:cellContents" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="crosstabTotalColumnHeader">
  <annotation>
   <documentation>Crosstab total column header definition.
    <p/>
    The size of a column group total header is computed based on the following rules:
    <ul>
      <li>the height is the sum the heights of this and subsequent column groups</li>
      <li>the width is the width of the base cell for this total column</li>
    </ul>
    <p/>
    The total column is only printed if the <span class="attr">totalPosition</span> attribute of the group is different than <span class="val">None</span>.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:cellContents" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>

 <element name="crosstabHeader">
  <annotation>
   <documentation>Per column group cell that will be rendered at the left of the corresponding row of column headers, potentially overlapping the crosstab header cell.
     <p/>
     The width of the cell is the total width of row group headers, and the height is the height of the corresponding column header.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:cellContents"/>
   </sequence>
  </complexType>
 </element>

 <element name="bucket">
  <annotation>
   <documentation>Crosstab group bucketing information.</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:bucketExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:orderByExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:comparatorExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="class" type="string" use="optional" default="java.lang.String">
  	<annotation>
   	 <documentation>Class of the bucket values.</documentation>
  	</annotation>  
   </attribute>   
   <attribute name="order" use="optional" default="Ascending">
  	<annotation>
   	 <documentation>The bucket order type.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Ascending">
		<annotation>
		 <documentation>The buckets will be sorted in ascending order by using the specified comparator or by the natural order if no comparator specified.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Descending">
		<annotation>
		 <documentation>The buckets will be sorted in descending order by using the specified comparator or by the natural order if no comparator specified.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="None">
		<annotation>
		 <documentation>The buckets will preserve the order in which the data is fed to the crosstab.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="bucketExpression">
  <annotation>
   <documentation>Crosstab group bucketing expression.</documentation>
  </annotation>
  <complexType mixed="true">
   <attribute name="class" type="string" use="optional"/>
  </complexType>
 </element>

 <element name="orderByExpression">
  <annotation>
   <documentation>
   Expression that provides order by values for group buckets.
   If not set, the bucket values as returned by bucketExpression are used to order the buckets.
   <p>
   The expression is evaluated in the context of the crosstab group and can reference measure variables, which evaluate to group totals.
   </p>
   </documentation>
  </annotation>
  <complexType mixed="true">
   <attribute name="class" type="string" use="optional"/>
  </complexType>
 </element>

 <element name="comparatorExpression">
  <annotation>
   <documentation>Crosstab group bucket comparator expression.
    <p>
     The result of this expression is used to sort the buckets, in ascending or descending order.
     If the bucket has an order by expression, the comparator will be used to compare values as produced by that expression.
     If no comparator expression is specified, the natural order will be used.
    </p>
   </documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="measure">
  <annotation>
   <documentation>Crosstab measure definition.
      <p/>
      A measure is a value accumulated by the crosstab calculation engine and displayed in the crosstab data cells.
      <p/>
      Each measure in the crosstab has a variable that can be used inside the data cells as the current measure value.
      The variable has the same name and type as the measure.
	  <p/>
	  Variables representing totals at different levels are also available.  The names of these variables are:
	  <ul>
		  <li>&lt;Measure&gt;_&lt;Row/Column Group&gt;_ALL - the total for the column/row group</li>
		  <li>&lt;Measure&gt;_&lt;Row Group&gt;_&lt;Column Group&gt;_ALL - the combined total for the column and row groups</li>
	  </ul>
	  <p/>
	  For instance, if one defines "Year" and "Month" column groups, a "City" row group and a "Sales" measure, then:
	  <ul>
		  <li>Sales_Month_ALL will hold the total for all months (i.e. for one year)</li>
		  <li>Sales_City_Month_ALL will hold the total for all months (one year) and all cities</li>
		  <li>Sales_City_Year_ALL will hold the grand total</li>
	  </ul>
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:measureExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="name" type="string" use="required">
  	<annotation>
   	 <documentation>Measure name.</documentation>
  	</annotation>
   </attribute>
   <attribute name="class" type="string" use="optional">
  	<annotation>
   	 <documentation>The measure values class.</documentation>
  	</annotation>
   </attribute>
   <attribute name="calculation" type="jr:aggregationCalculationType" use="optional" default="Nothing">
  	<annotation>
   	 <documentation>The calculation type to be performed on the measure values.</documentation>
  	</annotation>
   </attribute>
   <attribute name="incrementerFactoryClass" type="string" use="optional">
  	<annotation>
   	 <documentation>The name of a class that implements the <code>net.sf.jasperreports.engine.fill.JRIncrementerFactory</code> interface to use when creating the incrementer instance for this measure. Incrementers are objects that implement the <code>net.sf.jasperreports.engine.fill.JRIncrementer</code> interface and handle the incremental calculation performed on the measure's current value with every entry in the crosstab dataset.</documentation>
  	</annotation>
   </attribute>
   <attribute name="percentageOf" use="optional" default="None">
  	<annotation>
   	 <documentation>The percentage calculation type performed on this measure.
      <p/>
      If percentage calculation is required, the value class should be one of the built-in supported percentage types or the percentage calculator class should be specified.
      The classes with built-in support are <code>java.lang.Float</code>, <code>java.lang.Double</code>, <code>java.lang.Byte</code>, <code>java.lang.Short</code>, <code>java.lang.Integer</code>, <code>java.lang.Long</code>, <code>java.math.BigDecimal</code> and <code>java.math.BigInteger</code>.
     </documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="None">
		<annotation>
		 <documentation>The value will not be calculated as a percentage</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="GrandTotal">
		<annotation>
		 <documentation>The value will be calculated as percentage of the grand total value</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="percentageCalculatorClass" type="string" use="optional">
  	<annotation>
   	 <documentation>The percentage calcualtor class name.
      <p/>
      The class should implement the <code>net.sf.jasperreports.crosstabs.fill.JRPercentageCalculator</code> interface.
     </documentation>
  	</annotation>
   </attribute>
  </complexType>
 </element>

 <simpleType name="aggregationCalculationType">
  <restriction base="string">
   <enumeration value="Nothing">
    <annotation>
     <documentation>No calculations are performed.</documentation>
    </annotation>
   </enumeration>
   <enumeration value="Count">
    <annotation>
     <documentation>The measure stores the number of the not null
      values.</documentation>
    </annotation>
   </enumeration>
   <enumeration value="DistinctCount">
    <annotation>
     <documentation>The measure stores the number of distinct not null
      values.</documentation>
    </annotation>
   </enumeration>
   <enumeration value="Sum">
    <annotation>
     <documentation>The measure stores the sum of the not null values.
      Numeric measures only.</documentation>
    </annotation>
   </enumeration>
   <enumeration value="Average">
    <annotation>
     <documentation>The measure stores the average of the not null
      values. Numeric measures only.</documentation>
    </annotation>
   </enumeration>
   <enumeration value="Lowest">
    <annotation>
     <documentation>The measure stores the lowest value.</documentation>
    </annotation>
   </enumeration>
   <enumeration value="Highest">
    <annotation>
     <documentation>The measure stores the highest value.
     </documentation>
    </annotation>
   </enumeration>
   <enumeration value="StandardDeviation">
    <annotation>
     <documentation>The measure stores the standard deviation of the not
      null values. Numeric measures only.</documentation>
    </annotation>
   </enumeration>
   <enumeration value="Variance">
    <annotation>
     <documentation>The measure stores the variance of the not null
      values. Numeric measures only.</documentation>
    </annotation>
   </enumeration>
   <enumeration value="First">
    <annotation>
     <documentation>The measure stores the first value encountered and
      ignores subsequent values.</documentation>
    </annotation>
   </enumeration>
  </restriction>
 </simpleType>

 <element name="measureExpression">
  <annotation>
   <documentation>Crosstab measure expression.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="crosstabCell">
  <annotation>
   <documentation>Crosstab data cell definition.
    <p/>
     A crosstab can have multiple data cells for row/groups totals.  Attributes <span class="attr">rowTotalGroup</span> and <span class="attr">columnTotalGroup</span> are used to specify that the cell corresponds to a total row/column.
    <p/>
      E.g. if the crosstab has Country and City (subgroup of Country) row groups and Year and Month column groups, one can specify the following cells:
      <ul>
        <li>no rowTotalGroup and columnTotalGroup - the crosstab base cell (total for a city and a year)</li>
        <li>columnTotalGroup="Month" - total for a city and a year</li>
        <li>columnTotalGroup="Year" - total for a city and all years</li>
        <li>rowTotalGroup="City" - total for all cities of a country and a month</li>
        <li>rowTotalGroup="City" columnTotalGroup="Month" - total for all cities of a country and a year</li>
        <li>rowTotalGroup="City" columnTotalGroup="Year" - total for all cities of a country and all years</li>
        <li>rowTotalGroup="Country" - total for all countries and a month</li>
        <li>rowTotalGroup="Country" columnTotalGroup="Month" - total for all countries and a year</li>
        <li>rowTotalGroup="Country" columnTotalGroup="Year" - grand total</li>
      </ul>
    <p/>
    If the data cell for a total row/column is not specified, the cell will be inherited from lower level cells, if possible.
    For example, if the "total for all countries and a year" cell is not specified, the "total for a country and a year" or "total for a city and a year" cell will be used (in this order).
    <p/>
    The data cell sizes are calculated from the base data cell sizes, i.e. the height of all data cells for a row will be the height of the base cell of that row.
    The base cell sizes are also inherited, e.g. if the height of a total row is not specified the height of the base row will be used.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:cellContents" minOccurs="0" maxOccurs="1"/>
   </sequence>
   <attribute name="width" type="NMTOKEN" use="optional">
  	<annotation>
   	 <documentation>Crosstab cell width.
    <p/>
    The width should be specified only for the base cell of a column (the one with no rowTotalGroup).
     </documentation>
  	</annotation>
   </attribute>
   <attribute name="height" type="NMTOKEN" use="optional">
  	<annotation>
   	 <documentation>Crosstab cell height.
    <p/>
    The height should be specified only for the base cell of a row (the one with no columnTotalGroup).
     </documentation>
  	</annotation>
   </attribute>
   <attribute name="rowTotalGroup" type="string" use="optional">
  	<annotation>
   	 <documentation>If this cell corresponds to a total row, this attribute should specify the name of the corresponding row group.
    The attribute should not be specified if the cell corresponds to a base (not total) row.
     </documentation>
  	</annotation>
   </attribute>
   <attribute name="columnTotalGroup" type="string" use="optional">
  	<annotation>
   	 <documentation>If this cell corresponds to a total column, this attribute should specify the name of the corresponding column group.
    The attribute should not be specified if the cell corresponds to a base (not total) column.
     </documentation>
  	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="cellContents">
  <annotation>
   <documentation>Crosstab header or data cell contents.
    <p/>
     There are some restrictions/rules regarding crosstab cells:
     <ul>
       <li>Subreports, crosstabs and charts are not allowed.</li>
       <li>Delayed evaluation for text fields and images is not allowed.</li>
       <li>Cells cannot split on multiple pages.</li>
     </ul>
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:property" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="jr:box" minOccurs="0" maxOccurs="1"/>
    <choice minOccurs="0" maxOccurs="unbounded">
     <element ref="jr:line"/>
     <element ref="jr:rectangle"/>
     <element ref="jr:ellipse"/>
     <element ref="jr:image"/>
     <element ref="jr:staticText"/>
     <element ref="jr:textField"/>
     <element ref="jr:subreport"/>
     <element ref="jr:elementGroup"/>
     <element ref="jr:frame"/>
     <element ref="jr:componentElement"/>
     <element ref="jr:genericElement"/>
    </choice>
   </sequence>
   <attribute name="backcolor" type="string" use="optional">
  	<annotation>
   	 <documentation>Crosstab cell background color.
    <p/>
     The cell is filled with the background color only if the cell has opaque mode.
     </documentation>
  	</annotation>
   </attribute>
   <attribute name="mode" use="optional">
  	<annotation>
   	 <documentation>Crosstab cell transparency mode.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Opaque">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
      <enumeration value="Transparent">
		<annotation>
		 <documentation/>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
   <attribute name="style" type="string" use="optional">
  	<annotation>
   	 <documentation>Name of the report level style to use (see <elem>style</elem> element).
	 <p/>
	 The style is only used for cell background and borders and is not inherited by elements inside the cell.
	 </documentation>
  	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="whenNoDataCell">
  <annotation>
   <documentation>Crosstab cell that will be rendered when no data was fed to the crosstab.
     <p/>
     If this cell is not specified for a crosstab, nothing will be rendered for an empty crosstab.
     <p/>
     The cell size is the same as the crosstab element size.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:cellContents"/>
   </sequence>
  </complexType>
 </element>

 <element name="frame">
  <annotation>
   <documentation>A frame is a report element that contains sub elements.  It has a backgroud, a border and it stretches to accommodate its content.
    <p/>
    For the Graphics2D and PDF exporters, a frame is equivalent to a rectangle placed behind a group of elements.
    The HTML exporter creates sub-tables for frames and the XLS exporter includes the frame sub elements into the grid.
    <p/>
    For elements inside a frame, the coordinates, positionType and stretchType properties and relative to the frame instead of the band.
   </documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:reportElement"/>
    <element ref="jr:box" minOccurs="0" maxOccurs="1"/>
    <choice minOccurs="0" maxOccurs="unbounded">
     <element ref="jr:break"/>
     <element ref="jr:line"/>
     <element ref="jr:rectangle"/>
     <element ref="jr:ellipse"/>
     <element ref="jr:image"/>
     <element ref="jr:staticText"/>
     <element ref="jr:textField"/>
     <element ref="jr:subreport"/>
     <element ref="jr:pieChart"/>
     <element ref="jr:pie3DChart"/>
     <element ref="jr:barChart"/>
     <element ref="jr:bar3DChart"/>
     <element ref="jr:xyBarChart"/>
     <element ref="jr:stackedBarChart"/>
     <element ref="jr:stackedBar3DChart"/>
     <element ref="jr:lineChart"/>
     <element ref="jr:xyLineChart"/>
     <element ref="jr:areaChart"/>
     <element ref="jr:xyAreaChart"/>
     <element ref="jr:scatterChart"/>
     <element ref="jr:bubbleChart"/>
     <element ref="jr:timeSeriesChart"/>
     <element ref="jr:highLowChart"/>
     <element ref="jr:candlestickChart"/>
     <element ref="jr:meterChart"/>
     <element ref="jr:thermometerChart"/>
     <element ref="jr:multiAxisChart"/>
     <element ref="jr:stackedAreaChart"/>
     <element ref="jr:ganttChart"/>
     <element ref="jr:elementGroup"/>
     <element ref="jr:crosstab"/>
     <element ref="jr:frame"/>
     <element ref="jr:componentElement"/>
     <element ref="jr:genericElement"/>
    </choice>
   </sequence>
   <attribute name="borderSplitType" use="optional">
	<annotation>
	 <documentation>Specifies the way the frame border is to be drawn when the frame element splits.</documentation>
	</annotation>  
    <simpleType>
     <restriction base="string">
      <enumeration value="NoBorders">
		<annotation>
		 <documentation>When the frame splits, the bottom border of the first fragment and the top border of the second fragment are not drawn.</documentation>
		</annotation> 
	  </enumeration> 
      <enumeration value="DrawBorders">
		<annotation>
		 <documentation>When the frame splits, both fragments are drawn will borders and paddings on all sides.</documentation>
		</annotation> 
	  </enumeration> 
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>
 
 <element name="ganttChart">
  <annotation>
   <documentation>Defines a gantt chart</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:chart"/>
    <element ref="jr:ganttDataset"/>
    <element ref="jr:barPlot"/>
   </sequence>
  </complexType>
 </element>
 
 <element name="ganttDataset">
  <annotation>
   <documentation>Defines an gantt type dataset</documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:dataset" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:ganttSeries" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
  </complexType>
 </element>
 
 <element name="ganttSeries">
  <annotation>
   <documentation>Defines a gantt series for a <elem>ganttDataset</elem></documentation>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:seriesExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:taskExpression"/>
    <element ref="jr:subtaskExpression"/>
    <element ref="jr:startDateExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:endDateExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:percentExpression" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>
 
 <element name="taskExpression">
  <annotation>
   <documentation>Specifies the expression used to determine tasks in a <elem>ganttSeries</elem>.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="subtaskExpression">
  <annotation>
   <documentation>Specifies the expression used to determine subtasks in a <elem>ganttSeries</elem>.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="percentExpression">
  <annotation>
   <documentation>Specifies the expression used to determine the percent in a <elem>ganttSeries</elem>.</documentation>
  </annotation>
  <complexType mixed="true">
  </complexType>
 </element>

 <element name="componentElement">
  <annotation>
   <documentation/>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:reportElement"/>
    <element ref="jr:component"/>
   </sequence>
  </complexType>
 </element>

 <element name="component" type="jr:componentType" abstract="true">
  <annotation>
   <documentation/>
  </annotation>
 </element>
  
 <complexType name="componentType" abstract="true">
  <annotation>
   <documentation/>
  </annotation>
 </complexType>
 
 <simpleType name="basicEvaluationTime">
  <annotation>
   <documentation/>
  </annotation>
  <restriction base="string">
   <enumeration value="Now"/>
   <enumeration value="Report"/>
   <enumeration value="Page"/>
   <enumeration value="Column"/>
   <enumeration value="Group"/>
   <enumeration value="Band"/>
   <enumeration value="Master"/>
  </restriction>
 </simpleType>

 <simpleType name="complexEvaluationTime">
  <annotation>
   <documentation/>
  </annotation>
  <restriction base="string">
   <enumeration value="Now"/>
   <enumeration value="Report"/>
   <enumeration value="Page"/>
   <enumeration value="Column"/>
   <enumeration value="Group"/>
   <enumeration value="Band"/>
   <enumeration value="Auto"/>
   <enumeration value="Master"/>
  </restriction>
 </simpleType>

 <element name="genericElement">
  <annotation>
   <documentation/>
  </annotation>
  <complexType>
   <sequence>
    <element ref="jr:reportElement"/>
    <element ref="jr:genericElementType"/>
    <element ref="jr:genericElementParameter" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="evaluationTime" use="optional" default="Now" type="jr:complexEvaluationTime">
	<annotation>
	 <documentation/>
	</annotation>
   </attribute>
   <attribute name="evaluationGroup" type="string" use="optional">
	<annotation>
	 <documentation/>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="genericElementType">
  <annotation>
   <documentation/>
  </annotation>
  <complexType>
   <attribute name="namespace" type="string" use="required">
	<annotation>
	 <documentation/>
	</annotation>
   </attribute>
   <attribute name="name" type="string" use="required">
	<annotation>
	 <documentation/>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="genericElementParameter">
  <annotation>
   <documentation/>
  </annotation>
  <complexType>
   <sequence>
    <element name="valueExpression" minOccurs="0" maxOccurs="1">
     <annotation>
      <documentation>Indicates the specific <code>&lt;valueExpression&gt;</code> tag for generic element parameters. Unlike other <code>&lt;valueExpression&gt;</code> elements, it contains a <code>class</code> attribute.</documentation>
     </annotation>
     <complexType mixed="true">
      <attribute name="class" type="string" use="optional" default="java.lang.Object">
	   <annotation>
		<documentation/>
	   </annotation>
	  </attribute>
     </complexType>
    </element>
   </sequence>
   <attribute name="name" type="string" use="required">
	<annotation>
	 <documentation/>
	</annotation>
   </attribute>
   <attribute name="skipWhenNull" type="boolean" use="optional" default="false">
	<annotation>
	 <documentation/>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="multiAxisData">
  <complexType>
   <sequence>
    <element ref="jr:multiAxisDataset" minOccurs="1" maxOccurs="1"/>
    <element ref="jr:dataAxis" minOccurs="1" maxOccurs="unbounded"/>
    <element ref="jr:multiAxisMeasure" minOccurs="1" maxOccurs="unbounded"/>
   </sequence>
  </complexType>
 </element>

 <element name="multiAxisDataset">
  <complexType>
   <sequence>
    <element ref="jr:dataset" minOccurs="0" maxOccurs="1"/>
   </sequence>
  </complexType>
 </element>
 
 <element name="dataAxis">
  <complexType>
   <sequence>
    <element ref="jr:axisLevel" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="axis" use="required">
   	<simpleType>
   	 <restriction base="string">
   	  <enumeration value="Rows"/>
   	  <enumeration value="Columns"/>
   	 </restriction>
   	</simpleType>
   </attribute>
  </complexType>
 </element>

 <element name="axisLevel">
  <complexType>
   <sequence>
    <element name="labelExpression">
     <complexType mixed="true"/>
    </element>
    <element ref="jr:axisLevelBucket"/>
   </sequence>
   <attribute name="name" type="string" use="required">
   </attribute>
  </complexType>
 </element>
 
 <element name="axisLevelBucket">
  <complexType>
   <sequence>
    <element ref="jr:bucketExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:comparatorExpression" minOccurs="0" maxOccurs="1"/>
    <element ref="jr:bucketProperty" minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
   <attribute name="class" type="string" use="optional" default="java.lang.String">
  	<annotation>
   	 <documentation>Class of the bucket values.</documentation>
  	</annotation>  
   </attribute>   
   <attribute name="order" use="optional" default="Ascending">
  	<annotation>
   	 <documentation>The bucket order type.</documentation>
  	</annotation>
    <simpleType>
     <restriction base="string">
      <enumeration value="Ascending">
		<annotation>
		 <documentation>The buckets will be sorted in ascending order by using the specified comparator or by the natural order if no comparator specified.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="Descending">
		<annotation>
		 <documentation>The buckets will be sorted in descending order by using the specified comparator or by the natural order if no comparator specified.</documentation>
		</annotation>
	  </enumeration>
      <enumeration value="None">
		<annotation>
		 <documentation>No sorting of bucket values will be performed, the buckets will show in the order the values come from the dataset.</documentation>
		</annotation>
	  </enumeration>
     </restriction>
    </simpleType>
   </attribute>
  </complexType>
 </element>
 
 <element name="bucketProperty">
  <complexType mixed="true">
   <attribute name="name" type="string" use="required">
	<annotation>
	 <documentation>Name of the bucket property.</documentation>
	</annotation>
   </attribute>
  </complexType>
 </element>

 <element name="multiAxisMeasure">
  <complexType>
   <sequence>
    <element name="labelExpression">
     <complexType mixed="true"/>
    </element>
    <element name="valueExpression" minOccurs="0" maxOccurs="1">
     <complexType mixed="true"/>
    </element>
   </sequence>
   <attribute name="name" type="string" use="required">
   </attribute>
   <attribute name="class" type="string" use="optional">
   </attribute>
   <attribute name="calculation" type="jr:aggregationCalculationType" use="optional" default="Nothing">
   </attribute>
   <attribute name="incrementerFactoryClass" type="string" use="optional">
   </attribute>
  </complexType>
 </element>
 
 <complexType name="CrosstabColumnCell">
  <sequence>
   <element ref="jr:cellContents"/>
  </sequence>
  <attribute name="height" type="NMTOKEN" use="required">
  </attribute>
  <attribute name="contentsPosition" use="optional" default="Left">
   <simpleType>
    <restriction base="string">
     <enumeration value="Left">
	 </enumeration>
     <enumeration value="Center">
	 </enumeration>
     <enumeration value="Right">
	 </enumeration>
     <enumeration value="Stretch">
	 </enumeration>
    </restriction>
   </simpleType>
  </attribute>
 </complexType>

</schema>
[/codesyntax]  

本文转载自:http://surenpi.com/2016/10/17/jasperreports_xsd_zh/

共有 人打赏支持
素人派
粉丝 25
博文 1907
码字总数 10223
作品 6
东城
程序员
私信 提问
JasperReports 3.7.0 发布

JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。 JasperReports 支持PDF、HTML、XLS、CSV和XML文件输出格式。JasperReports是当前Java开发...

红薯
2009/12/09
706
0
Aspose.Words for JasperReports 2.7.1 发布

Aspose.Words for JasperReports 2.7.1 发布了,Aspose.Words是一款先进的类库,使您可以直接在各个应用程序中执行各种文档处理任务。Aspose.Words支持 DOC,OOXML,RTF,HTML,OpenDocumen...

oschina
2016/06/18
582
0
iReport+jasperReports制作WEB报表

JasperReports介绍 JasperReports是一个强大的,灵活的报表生成工具,能够生成 PDF,WORD,EXCEL,HTML,XML格式的报表。JasperReports的开发是由一份XML格式的报表模板文件开始的,设计好这个 ...

hchen1982
2011/08/01
0
1
Aspose.Words for JasperReports 2.3.0 发布

Aspose.Words for JasperReports 2.3.0 发布,修复了一些 Bug,发布了几个重要的库,这些库包括: for JasperReports 5.6.0 … 6.0.1 (aspose.words.jasperreports-6.0.1.jar) for JasperRep......

oschina
2015/04/24
580
0
JasperReports 5.0.4 发布,Java 报表工具

JasperReports 5.0.4 增强了 HTML 和 ODS 导出器,更好的控制超链接渲染和高级可视化实现,修复了一些 bug。 JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工...

oschina
2013/04/06
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

C++ vector和list的区别

1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造...

shzwork
今天
3
0
Spring之invokeBeanFactoryPostProcessors详解

Spring的refresh的invokeBeanFactoryPostProcessors,就是调用所有注册的、原始的BeanFactoryPostProcessor。 相关源码 public static void invokeBeanFactoryPostProcessors(Configu......

cregu
昨天
4
0
ibmcom/db2express-c_docker官方使用文档

(DEPRECIATED) Please check DB2 Developer-C Edition for the replacement. What is IBM DB2 Express-C ? ``IBM DB2 Express-C``` is the no-charge community edition of DB2 server, a si......

BG2KNT
昨天
3
0
Ubuntu 18.04.2 LTS nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic)

平台:Ubuntu 18.04.2 LTS nvidia-docker2 版本:2.0.3 错误描述:在安装nvidia-docker2的时候报dpkg依赖错误 nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic) 先看一下依......

Pulsar-V
昨天
4
0
学习笔记1-goland结构体(struct)

写在前面:若有侵权,请发邮件by.su@qq.com告知。 转载者告知:如果本文被转载,但凡涉及到侵权相关事宜,转载者需负责。请知悉! 本文永久更新地址:https://my.oschina.net/bysu/blog/3036...

不最醉不龟归
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部