<?xml version="1.0" encoding="UTF-8"?>
<!-- ALTO: Analyzed Layout and Text Object -->
<!-- Copyright © 2004 CCS Content Conversion Specialists GmbH, Germany -->
<!-- Prepared for docWORKS/METAe by Ralph Tiede, CCS GmbH,
with the assistance of Gregor Retti (Unisversity of Innsbruck), Alexander Egger (University of Graz).
-->
<!-- December 02, 2004 -->
<!-- Version 1.0-02 -->
<!-- December 10, 2004 -->
<!-- Version 1.0-03 -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/TR/xlink" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:import namespace="http://www.w3.org/TR/xlink" schemaLocation="http://schema.ccs-gmbh.com/METAe/xlink.xsd"/>
	<xsd:element name="alto">
		<xsd:annotation>
			<xsd:documentation>alto (analyzed layout and text object) stores layout information and OCR recognized text of books an journals.     </xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Styles" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Styles define properties of layout elements. A style defined in a parent element is used as the default for all its children. </xsd:documentation>
					</xsd:annotation>
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="TextStyle" minOccurs="0" maxOccurs="unbounded">
								<xsd:annotation>
									<xsd:documentation>A text style defines font properties of text. </xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:attribute name="ID" type="xsd:ID"/>
									<xsd:attribute name="FONTFAMILY" type="xsd:string"/>
									<xsd:attribute name="FONTSIZE" type="xsd:string"/>
									<xsd:attribute name="FONTCOLOR" type="xsd:string"/>
									<xsd:attribute name="FONTWEIGHT" type="xsd:string"/>
									<xsd:attribute name="FONTSTYLE" type="xsd:string"/>
									<xsd:attribute name="FONTPITCH" type="xsd:string"/>
									<xsd:attribute name="FONTCHARSET" type="xsd:string"/>
									<xsd:attribute name="UNDERLINED" type="xsd:string"/>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="ParagraphStyle" minOccurs="0" maxOccurs="unbounded">
								<xsd:annotation>
									<xsd:documentation>A paragraph style defines formatting properties of text blocks.</xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:attribute name="ID" type="xsd:ID" use="required"/>
									<xsd:attribute name="ALIGN" use="optional">
										<xsd:simpleType>
											<xsd:restriction base="xsd:string">
												<xsd:enumeration value="Left"/>
												<xsd:enumeration value="Right"/>
												<xsd:enumeration value="Center"/>
												<xsd:enumeration value="Block"/>
											</xsd:restriction>
										</xsd:simpleType>
									</xsd:attribute>
									<xsd:attribute name="LEFT" type="xsd:float" use="optional"/>
									<xsd:attribute name="RIGHT" type="xsd:float" use="optional"/>
									<xsd:attribute name="LINESPACE" type="xsd:float" use="optional"/>
									<xsd:attribute name="FIRSTLINE" type="xsd:float" use="optional"/>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="Layout">
					<xsd:annotation>
						<xsd:documentation>The root layout element.</xsd:documentation>
					</xsd:annotation>
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="Page" maxOccurs="unbounded">
								<xsd:annotation>
									<xsd:documentation>One page of a book or journal.</xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="TopMargin" type="PageSpaceType" minOccurs="0">
											<xsd:annotation>
												<xsd:documentation>The area between the top line of print and the upper edge of the leaf. It may contain page number or running title.</xsd:documentation>
											</xsd:annotation>
										</xsd:element>
										<xsd:element name="InnerMargin" type="PageSpaceType" minOccurs="0">
											<xsd:annotation>
												<xsd:documentation>That margin of a page adjacent to the binding edge of a book. </xsd:documentation>
											</xsd:annotation>
										</xsd:element>
										<xsd:element name="OuterMargin" type="PageSpaceType" minOccurs="0">
											<xsd:annotation>
												<xsd:documentation>The space between the text and the outer extremity of the leaf of a book. May contain margin notes.</xsd:documentation>
											</xsd:annotation>
										</xsd:element>
										<xsd:element name="BottomMargin" type="PageSpaceType" minOccurs="0">
											<xsd:annotation>
												<xsd:documentation>The area between the bottom line of letterpress or writing and the bottom edge of the leaf. It may contain a page number, a signature number or a catch word.</xsd:documentation>
											</xsd:annotation>
										</xsd:element>
										<xsd:element name="PrintSpace" type="PageSpaceType" minOccurs="0">
											<xsd:annotation>
												<xsd:documentation>Rectangle surrounding the printed area of a page. Page number and running title are not part of the print space. </xsd:documentation>
											</xsd:annotation>
										</xsd:element>
									</xsd:sequence>
									<xsd:attribute name="ID" type="xsd:ID" use="required"/>
									<xsd:attribute name="PAGECLASS" type="xsd:string" use="optional"/>
									<xsd:attribute name="STYLEREFS" type="xsd:IDREFS" use="optional"/>
									<xsd:attribute name="HEIGHT" type="xsd:int" use="optional"/>
									<xsd:attribute name="WIDTH" type="xsd:int" use="optional"/>
									<xsd:attribute name="PHYSICAL_IMG_NR" type="xsd:int" use="required"/>
									<xsd:attribute name="PRINTED_IMG_NR" type="xsd:string" use="optional"/>
									<xsd:attribute name="QUALITY" use="optional">
										<xsd:simpleType>
											<xsd:restriction base="xsd:string">
												<xsd:enumeration value="Missing"/>
												<xsd:enumeration value="Damaged"/>
												<xsd:enumeration value="OK"/>
											</xsd:restriction>
										</xsd:simpleType>
									</xsd:attribute>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
						<xsd:attribute name="STYLEREFS" type="xsd:IDREFS"/>
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:group name="BlockGroup">
		<xsd:annotation>
			<xsd:documentation>Group of available block types</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element name="TextBlock" type="TextBlockType">
				<xsd:annotation>
					<xsd:documentation>A block of text.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Illustration" type="IllustrationType">
				<xsd:annotation>
					<xsd:documentation>A picture or image.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="GraphicalElement" type="GraphicalElementType">
				<xsd:annotation>
					<xsd:documentation>A graphic used to separate blocks. Usually a line or rectangle.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ComposedBlock" type="ComposedBlockType">
				<xsd:annotation>
					<xsd:documentation>A block that consists of other blocks</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:choice>
	</xsd:group>
	<xsd:complexType name="BlockType">
		<xsd:annotation>
			<xsd:documentation>Base type for any kind of block on the page.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence minOccurs="0">
			<xsd:element name="Shape" type="ShapeType"/>
		</xsd:sequence>
		<xsd:attribute name="ID" type="xsd:ID" use="required"/>
		<xsd:attribute name="STYLEREFS" type="xsd:IDREFS"/>
		<xsd:attribute name="HEIGHT" type="xsd:int" use="required"/>
		<xsd:attribute name="WIDTH" type="xsd:int" use="required"/>
		<xsd:attribute name="HPOS" type="xsd:int" use="required"/>
		<xsd:attribute name="VPOS" type="xsd:int" use="required"/>
		<xsd:attribute name="ROTATION" type="xsd:float" use="optional">
			<xsd:annotation>
				<xsd:documentation>Tells the rotation of the block e.g. text or illustration. The value is in degree counterclockwise.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="ZORDER" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation>The reading sequence of blocks on the page.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attributeGroup ref="xlink:simpleLink"/>
	</xsd:complexType>
	<xsd:complexType name="StringType" mixed="false">
		<xsd:attribute name="ID" type="xsd:ID"/>
		<xsd:attribute name="STYLEREFS" type="xsd:IDREFS"/>
		<xsd:attribute name="HEIGHT"/>
		<xsd:attribute name="WIDTH"/>
		<xsd:attribute name="HPOS"/>
		<xsd:attribute name="VPOS"/>
		<xsd:attribute name="CONTENT" use="required">
			<xsd:simpleType>
				<xsd:restriction base="xsd:string">
					<xsd:whiteSpace value="preserve"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="STYLE" use="optional"/>
		<xsd:attribute name="SUBS_TYPE">
			<xsd:annotation>
				<xsd:documentation>Type of the substitution (if any). May be something like hyphenation, or ocr correction</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="SUBS_CONTENT">
			<xsd:annotation>
				<xsd:documentation>Content of the substiutrion. Something like the corrected ocr text or the un hyphenated word</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="WC">
			<xsd:annotation>
				<xsd:documentation>Word Confidence: Confidence level of the ocr for this string. A value between 0 and 9 </xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="CC">
			<xsd:annotation>
				<xsd:documentation>Confidence level of each character in that string. A list of numbers, one number between 0 and 9 for each character</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="PageSpaceType">
		<xsd:annotation>
			<xsd:documentation>A region on a page</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence minOccurs="0" maxOccurs="unbounded">
			<xsd:group ref="BlockGroup"/>
		</xsd:sequence>
		<xsd:attribute name="ID" type="xsd:ID"/>
		<xsd:attribute name="STYLEREFS" type="xsd:IDREFS"/>
		<xsd:attribute name="HEIGHT"/>
		<xsd:attribute name="WIDTH"/>
		<xsd:attribute name="HPOS"/>
		<xsd:attribute name="VPOS"/>
	</xsd:complexType>
	<xsd:simpleType name="PointsType">
		<xsd:annotation>
			<xsd:documentation>A list of points</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType>
	<xsd:complexType name="ShapeType">
		<xsd:annotation>
			<xsd:documentation>Describes the bounding shape of a block, if it is not rectangular.</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element name="Polygon" type="PolygonType"/>
			<xsd:element name="Ellipse" type="EllipseType"/>
			<xsd:element name="Circle" type="CircleType"/>
		</xsd:choice>
	</xsd:complexType>
	<xsd:complexType name="PolygonType">
		<xsd:annotation>
			<xsd:documentation>A polygon shape.</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="POINTS" type="PointsType" use="required"/>
	</xsd:complexType>
	<xsd:complexType name="EllipseType">
		<xsd:annotation>
			<xsd:documentation>An ellipse shape.</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="HPOS"/>
		<xsd:attribute name="VPOS"/>
		<xsd:attribute name="HLENGTH"/>
		<xsd:attribute name="VLENGTH"/>
	</xsd:complexType>
	<xsd:complexType name="CircleType">
		<xsd:annotation>
			<xsd:documentation>A circle shape.</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="HPOS"/>
		<xsd:attribute name="VPOS"/>
		<xsd:attribute name="RADIUS"/>
	</xsd:complexType>
	<xsd:complexType name="ComposedBlockType">
		<xsd:annotation>
			<xsd:documentation>A block that consists of other blocks</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="BlockType">
				<xsd:sequence minOccurs="0" maxOccurs="unbounded">
					<xsd:group ref="BlockGroup"/>
				</xsd:sequence>
				<xsd:attribute name="TYPE" type="xsd:string" use="optional">
					<xsd:annotation>
						<xsd:documentation>A user defined string to identify the type of composed block (e.g. table, advertisement, ...)</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="FILEID" type="xsd:string" use="optional">
					<xsd:annotation>
						<xsd:documentation>A link to an image which contains only the composed block.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="IllustrationType">
		<xsd:annotation>
			<xsd:documentation>A picture or image.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="BlockType">
				<xsd:attribute name="TYPE" type="xsd:string" use="optional">
					<xsd:annotation>
						<xsd:documentation>A user defined string to identify the type of illustration like photo, map, drawing, chart, ...</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="FILEID" type="xsd:string" use="optional">
					<xsd:annotation>
						<xsd:documentation>A link to an image which contains only the illustration.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="GraphicalElementType">
		<xsd:annotation>
			<xsd:documentation>A graphic used to separate blocks. Usually a line or rectangle. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="BlockType"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="TextBlockType">
		<xsd:annotation>
			<xsd:documentation>A block of text.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="BlockType">
				<xsd:sequence minOccurs="0">
					<xsd:element name="TextLine" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>A single line of text.</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:sequence maxOccurs="unbounded">
									<xsd:element name="String" type="StringType"/>
									<xsd:element name="SP" minOccurs="0">
										<xsd:annotation>
											<xsd:documentation>A white space.</xsd:documentation>
										</xsd:annotation>
										<xsd:complexType>
											<xsd:attribute name="ID" type="xsd:ID" use="optional"/>
											<xsd:attribute name="WIDTH" type="xsd:float" use="optional"/>
											<xsd:attribute name="HPOS" type="xsd:float" use="optional"/>
											<xsd:attribute name="VPOS" type="xsd:float" use="optional"/>
										</xsd:complexType>
									</xsd:element>
								</xsd:sequence>
								<xsd:element name="HYP" minOccurs="0">
									<xsd:annotation>
										<xsd:documentation>A hyphenation char. Can appear only at the end of a line.</xsd:documentation>
									</xsd:annotation>
									<xsd:complexType>
										<xsd:attribute name="WIDTH" type="xsd:float" use="optional"/>
										<xsd:attribute name="HPOS" type="xsd:float" use="optional"/>
										<xsd:attribute name="VPOS" type="xsd:float" use="optional"/>
										<xsd:attribute name="CONTENT" use="required"/>
									</xsd:complexType>
								</xsd:element>
							</xsd:sequence>
							<xsd:attribute name="ID" type="xsd:ID"/>
							<xsd:attribute name="STYLEREFS" type="xsd:IDREFS" use="optional"/>
							<xsd:attribute name="HEIGHT" type="xsd:float" use="required"/>
							<xsd:attribute name="WIDTH" type="xsd:float" use="required"/>
							<xsd:attribute name="HPOS" type="xsd:float" use="required"/>
							<xsd:attribute name="VPOS" type="xsd:float" use="required"/>
							<xsd:attribute name="BASELINE" type="xsd:float" use="optional"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="language" type="xsd:language" use="optional"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
</xsd:schema>
