<?xml version="1.0" encoding="UTF-8"?>

<schema xmlns="http://www.w3.org/2001/XMLSchema"
	targetNamespace="http://jasperreports.sourceforge.net/jasperreports/components"
	xmlns:c="http://jasperreports.sourceforge.net/jasperreports/components"
	xmlns:jr="http://jasperreports.sourceforge.net/jasperreports"
	elementFormDefault="qualified">

	<import namespace="http://jasperreports.sourceforge.net/jasperreports" />

	<element name="list" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="jr:componentType">
					<sequence>
						<element ref="jr:datasetRun" minOccurs="1" maxOccurs="1" />
						<element ref="c:listContents" />
					</sequence>
					<attribute name="printOrder" use="optional" default="Vertical">
						<simpleType>
							<restriction base="string">
								<enumeration value="Vertical" />
								<enumeration value="Horizontal" />
							</restriction>
						</simpleType>
					</attribute>
					<attribute name="ignoreWidth" type="boolean" use="optional"/>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="listContents">
		<complexType>
			<sequence>
				<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="height" use="required" type="unsignedInt"/>
			<attribute name="width" use="optional" type="unsignedInt"/>
		</complexType>
	</element>
	
	<element name="barbecue" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="jr:componentType">
					<sequence>
						<element name="codeExpression">
							<complexType mixed="true"/>
						</element>
						<element name="applicationIdentifierExpression" minOccurs="0">
							<complexType mixed="true"/>
						</element>
					</sequence>
					<attribute name="type" use="required">
						<simpleType>
							<restriction base="string">
								<enumeration value="2of7"/>
								<enumeration value="3of9"/>
								<enumeration value="Bookland"/>
								<enumeration value="Codabar"/>
								<enumeration value="Code128"/>
								<enumeration value="Code128A"/>
								<enumeration value="Code128B"/>
								<enumeration value="Code128C"/>
								<enumeration value="Code39"/>
								<enumeration value="Code39 (Extended)"/>
								<enumeration value="EAN128"/>
								<enumeration value="EAN13"/>
								<enumeration value="GlobalTradeItemNumber"/>
								<enumeration value="Int2of5"/>
								<enumeration value="Monarch"/>
								<enumeration value="NW7"/>
								<enumeration value="PDF417"/>
								<enumeration value="PostNet"/>
								<enumeration value="RandomWeightUPCA"/>
								<enumeration value="PDF417"/>
								<enumeration value="SCC14ShippingCode"/>
								<enumeration value="ShipmentIdentificationNumber"/>
								<enumeration value="SSCC18"/>
								<enumeration value="Std2of5"/>
								<enumeration value="UCC128"/>
								<enumeration value="UPCA"/>
								<enumeration value="USD3"/>
								<enumeration value="USD4"/>
								<enumeration value="USPS"/>
							</restriction>
						</simpleType>
					</attribute>
					<attribute name="drawText" type="boolean" use="optional" default="false"/>
					<attribute name="checksumRequired" type="boolean" use="optional" default="false"/>
					<attribute name="barWidth" use="optional" type="unsignedInt"/>
					<attribute name="barHeight" use="optional" type="unsignedInt"/>
					<attribute name="evaluationTime" type="jr:basicEvaluationTime" use="optional" default="Now"/>
					<attribute name="evaluationGroup" type="string" use="optional"/>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name="Barcode4j">
		<complexContent>
			<extension base="jr:componentType">
				<sequence>
					<element name="codeExpression">
						<complexType mixed="true"/>
					</element>
					<element name="patternExpression" minOccurs="0">
						<complexType mixed="true"/>
					</element>
				</sequence>
				<attribute name="evaluationTime" type="jr:basicEvaluationTime" use="optional" default="Now"/>
				<attribute name="evaluationGroup" type="string" use="optional"/>
				<attribute name="orientation" use="optional" default="0">
					<simpleType>
						<restriction base="int">
							<enumeration value="0"/>
							<enumeration value="90"/>
							<enumeration value="180"/>
							<enumeration value="270"/>
						</restriction>
					</simpleType>
				</attribute>
				<attribute name="moduleWidth" use="optional" type="double"/>
				<attribute name="textPosition" use="optional">
					<simpleType>
						<restriction base="string">
							<enumeration value="none"/>
							<enumeration value="bottom"/>
							<enumeration value="top"/>
						</restriction>
					</simpleType>
				</attribute>
				<attribute name="quietZone" use="optional" type="double"/>
				<attribute name="verticalQuietZone" use="optional" type="double"/>
			</extension>
		</complexContent>
	</complexType>

	<simpleType name="ChecksumMode4j">
		<restriction base="string">
			<enumeration value="auto"/>
			<enumeration value="ignore"/>
			<enumeration value="add"/>
			<enumeration value="check"/>
		</restriction>
	</simpleType>

	<element name="Codabar" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="c:Barcode4j">
					<attribute name="wideFactor" use="optional" type="double"/>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name="Barcode4JCode128">
		<complexContent>
			<extension base="c:Barcode4j">
			</extension>
		</complexContent>
	</complexType>

	<element name="Code128" substitutionGroup="jr:component" type="c:Barcode4JCode128">
	</element>

	<element name="EAN128" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="c:Barcode4JCode128">
					<attribute name="checksumMode" use="optional" type="c:ChecksumMode4j"/>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="DataMatrix" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="c:Barcode4j">
					<attribute name="shape" use="optional">
						<simpleType>
							<restriction base="string">
								<enumeration value="force-none"/>
								<enumeration value="force-square"/>
								<enumeration value="force-rectangle"/>
							</restriction>
						</simpleType>
					</attribute>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="Code39" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="c:Barcode4j">
					<attribute name="checksumMode" use="optional" type="c:ChecksumMode4j"/>
					<attribute name="displayChecksum" use="optional" type="boolean"/>
					<attribute name="displayStartStop" use="optional" type="boolean"/>
					<attribute name="extendedCharSetEnabled" use="optional" type="boolean"/>
					<attribute name="intercharGapWidth" use="optional" type="double"/>
					<attribute name="wideFactor" use="optional" type="double"/>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="Interleaved2Of5" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="c:Barcode4j">
					<attribute name="checksumMode" use="optional" type="c:ChecksumMode4j"/>
					<attribute name="displayChecksum" use="optional" type="boolean"/>
					<attribute name="wideFactor" use="optional" type="double"/>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="UPCA" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="c:Barcode4j">
					<attribute name="checksumMode" use="optional" type="c:ChecksumMode4j"/>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="UPCE" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="c:Barcode4j">
					<attribute name="checksumMode" use="optional" type="c:ChecksumMode4j"/>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="EAN13" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="c:Barcode4j">
					<attribute name="checksumMode" use="optional" type="c:ChecksumMode4j"/>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="EAN8" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="c:Barcode4j">
					<attribute name="checksumMode" use="optional" type="c:ChecksumMode4j"/>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name="Barcode4JFourState">
		<complexContent>
			<extension base="c:Barcode4j">
				<attribute name="ascenderHeight" use="optional" type="double"/>
				<attribute name="checksumMode" use="optional" type="c:ChecksumMode4j"/>
				<attribute name="intercharGapWidth" use="optional" type="double"/>
				<attribute name="trackHeight" use="optional" type="double"/>
			</extension>
		</complexContent>
	</complexType>
	
	<element name="RoyalMailCustomer" substitutionGroup="jr:component" type="c:Barcode4JFourState">
	</element>
	
	<element name="USPSIntelligentMail" substitutionGroup="jr:component" type="c:Barcode4JFourState">
	</element>
	
	<element name="POSTNET" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="c:Barcode4j">
					<attribute name="shortBarHeight" use="optional" type="double"/>
					<attribute name="baselinePosition" use="optional">
						<simpleType>
							<restriction base="string">
								<enumeration value="top"/>
								<enumeration value="bottom"/>
							</restriction>
						</simpleType>
					</attribute>
					<attribute name="checksumMode" use="optional" type="c:ChecksumMode4j"/>
					<attribute name="displayChecksum" use="optional" type="boolean"/>
					<attribute name="intercharGapWidth" use="optional" type="double"/>
				</extension>
			</complexContent>
		</complexType>
	</element>
	
	<element name="PDF417" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="c:Barcode4j">
					<attribute name="minColumns" use="optional">
						<simpleType>
							<restriction base="unsignedInt">
								<minInclusive value="1"/>
								<maxInclusive value="30"/>
							</restriction>
						</simpleType>
					</attribute>
					<attribute name="maxColumns" use="optional">
						<simpleType>
							<restriction base="unsignedInt">
								<minInclusive value="1"/>
								<maxInclusive value="30"/>
							</restriction>
						</simpleType>
					</attribute>
					<attribute name="minRows" use="optional">
						<simpleType>
							<restriction base="unsignedInt">
								<minInclusive value="3"/>
								<maxInclusive value="90"/>
							</restriction>
						</simpleType>
					</attribute>
					<attribute name="maxRows" use="optional">
						<simpleType>
							<restriction base="unsignedInt">
								<minInclusive value="3"/>
								<maxInclusive value="90"/>
							</restriction>
						</simpleType>
					</attribute>
					<attribute name="widthToHeightRatio" use="optional" type="double"/>
					<attribute name="errorCorrectionLevel" use="optional">
						<simpleType>
							<restriction base="unsignedInt">
								<minInclusive value="0"/>
								<maxInclusive value="8"/>
							</restriction>
						</simpleType>
					</attribute>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="table" substitutionGroup="jr:component">
		<complexType>
			<complexContent>
				<extension base="jr:componentType">
					<sequence>
						<element ref="jr:datasetRun" minOccurs="1" maxOccurs="1" />
						<choice minOccurs="1" maxOccurs="unbounded">
							<element ref="c:columnGroup"/>
							<element ref="c:column"/>
						</choice>
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name="BaseColumn">
		<sequence>
			<element ref="jr:printWhenExpression" minOccurs="0" maxOccurs="1"/>
			<element name="tableHeader" type="c:TableCell" minOccurs="0"/>
			<element name="tableFooter" type="c:TableCell" minOccurs="0"/>
			<element name="groupHeader" type="c:TableGroupCell" minOccurs="0" maxOccurs="unbounded"/>
			<element name="groupFooter" type="c:TableGroupCell" minOccurs="0" maxOccurs="unbounded"/>
			<element name="columnHeader" type="c:TableCell" minOccurs="0"/>
			<element name="columnFooter" type="c:TableCell" minOccurs="0"/>
		</sequence>
		<attribute name="width" use="required" type="unsignedInt"/>
	</complexType>
	
	<element name="columnGroup">
		<complexType>
			<complexContent>
				<extension base="c:BaseColumn">
					<sequence>
						<choice minOccurs="1" maxOccurs="unbounded">
							<element ref="c:columnGroup"/>
							<element ref="c:column"/>
						</choice>
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>
	
	<element name="column">
		<complexType>
			<complexContent>
				<extension base="c:BaseColumn">
					<sequence>
						<element name="detailCell" type="c:TableCell"/>
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>
	
	<complexType name="TableGroupCell">
		<sequence>
			<element name="cell" type="c:TableCell"/>
		</sequence>
		<attribute name="groupName" use="required" type="string"/>
	</complexType>
	
	<complexType name="TableCell">
		<sequence>
			<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="style" use="optional" type="string"/>
		<attribute name="height" use="required" type="unsignedInt"/>
		<attribute name="rowSpan" use="optional" type="unsignedInt"/>
	</complexType>

</schema>
