<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="print-config">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="scale" maxOccurs="unbounded"/>
				<xs:element ref="resolution" maxOccurs="unbounded"/>
				<xs:element ref="template" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
		<xs:key name="UNIQUE_RESOLUTION_DESCRIPTION_CHECK">
			<xs:selector xpath="./resolution"/>
			<xs:field xpath="@description"/>
		</xs:key>
		<xs:key name="UNIQUE_RESOLUTION_VALUE_CHECK">
			<xs:selector xpath="./resolution"/>
			<xs:field xpath="@value"/>
		</xs:key>
		<xs:key name="UNIQUE_SCALE_DESCRIPTION_CHECK">
			<xs:selector xpath="./scale"/>
			<xs:field xpath="@description"/>
		</xs:key>
		<xs:key name="UNIQUE_SCALE_VALUE_CHECK">
			<xs:selector xpath="./scale"/>
			<xs:field xpath="@value"/>
		</xs:key>
		<xs:key name="UNIQUE_TEMPLATE_NAME_CHECK">
			<xs:selector xpath="./template"/>
			<xs:field xpath="@name"/>
		</xs:key>
	</xs:element>
	<xs:element name="box">
		<xs:complexType>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="size" type="TYPE_XY" use="required"/>
			<xs:attribute name="fill-color" type="TYPE_COLOR" use="optional"/>
			<xs:attribute name="outline-color" type="TYPE_COLOR" use="optional" default="0,0,0"/>
			<xs:attribute name="outline-width" type="TYPE_POSITIVE_DECIMAL" use="optional" default="1"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="centercoordinatetext">
		<xs:complexType>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="alignment" type="TYPE_ALIGNMENT" use="required"/>
			<xs:attribute name="font" type="TYPE_FONT" use="optional" default="helvetica_bold"/>
			<xs:attribute name="font-size" type="xs:positiveInteger" use="optional" default="18"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="datetext">
		<xs:complexType>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="alignment" type="TYPE_ALIGNMENT" use="required"/>
			<xs:attribute name="format" type="TYPE_DATE" use="optional" default="date_medium"/>
			<xs:attribute name="font" type="TYPE_FONT" use="optional" default="helvetica"/>
			<xs:attribute name="font-size" type="xs:positiveInteger" use="optional" default="9"/>
			<xs:attribute name="prefix" type="xs:string" use="optional"/>
			<xs:attribute name="suffix" type="xs:string" use="optional"/>
			<xs:attribute name="locale-language" type="xs:string" use="optional" default="en"/>
			<xs:attribute name="locale-country" type="xs:string" use="optional" default="US"/>
			<xs:attribute name="locale-variant" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="image">
		<xs:complexType>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="size" type="TYPE_XY" use="optional"/>
			<xs:attribute name="url" type="xs:token" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="indexmap">
		<xs:complexType>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="size" type="TYPE_XY" use="required"/>
			<xs:attribute name="type" type="TYPE_INDEXMAP" use="optional" default="crosshair"/>
			<xs:attribute name="dpi" type="xs:positiveInteger" use="optional" default="72"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="latlongraticule">
		<xs:complexType>
			<xs:attribute name="maximum-intervals" type="xs:positiveInteger" use="optional" default="6"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="legend">
		<xs:complexType>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="size" type="TYPE_XY" use="required"/>
			<xs:attribute name="dpi" type="xs:positiveInteger" use="optional" default="72"/>
			<xs:attribute name="columns" type="xs:positiveInteger" use="optional" default="1"/>
			<xs:attribute name="layer-font-size" type="xs:positiveInteger" use="optional" default="10"/>
			<xs:attribute name="value-font-size" type="xs:positiveInteger" use="optional" default="9"/>
			<xs:attribute name="swatch-width" type="xs:decimal" use="optional"/>
			<xs:attribute name="swatch-height" type="xs:decimal" use="optional"/>
			<xs:attribute name="cell-spacing" type="xs:positiveInteger" use="optional" default="3"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="line">
		<xs:complexType>
			<xs:attribute name="from" type="TYPE_XY" use="required"/>
			<xs:attribute name="to" type="TYPE_XY" use="required"/>
			<xs:attribute name="width" type="TYPE_POSITIVE_DECIMAL" use="optional" default="1"/>
			<xs:attribute name="color" type="TYPE_COLOR" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="map">
		<xs:complexType>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="size" type="TYPE_XY" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="northarrow">
		<xs:complexType>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="size" type="TYPE_XY" use="optional"/>
			<xs:attribute name="url" type="xs:token" use="required"/>
			<xs:attribute name="maximum-scale" type="xs:decimal" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="paragraph">
		<xs:complexType>
			<xs:attribute name="alignment" type="TYPE_ALIGNMENT" use="optional" default="left"/>
			<xs:attribute name="font" type="TYPE_FONT" use="optional" default="helvetica"/>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="size" type="TYPE_XY" use="required"/>
			<xs:attribute name="font-size" type="xs:positiveInteger" use="optional" default="9"/>
			<xs:attribute name="line-height" type="xs:positiveInteger" use="optional" default="12"/>
			<xs:attribute name="text" type="xs:string" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="prompt">
		<xs:complexType>
			<xs:attribute name="alignment" type="TYPE_ALIGNMENT" use="optional" default="left"/>
			<xs:attribute name="font" type="TYPE_FONT" use="optional" default="helvetica"/>
			<xs:attribute name="font-size" type="xs:positiveInteger" use="optional" default="9"/>
			<xs:attribute name="line-height" type="xs:positiveInteger" use="optional" default="12"/>
			<xs:attribute name="method" type="TYPE_PROMPT_METHOD" use="optional" default="input"/>
			<xs:attribute name="select-options" type="xs:string" use="optional"/>
			<xs:attribute name="name" type="xs:token" use="required"/>
			<xs:attribute name="type" type="TYPE_PROMPT_TYPE" use="optional" default="text"/>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="size" type="TYPE_XY" use="optional"/>
			<xs:attribute name="prefix" type="xs:string" use="optional"/>
			<xs:attribute name="suffix" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="resolution">
		<xs:complexType>
			<xs:attribute name="description" type="xs:token" use="required"/>
			<xs:attribute name="value" type="xs:integer" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="scale">
		<xs:complexType>
			<xs:attribute name="description" type="xs:token" use="required"/>
			<xs:attribute name="value" type="xs:integer" use="required"/>
			<xs:attribute name="default" type="TYPE_BOOLEAN" use="optional" default="false"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="scalebar">
		<xs:complexType>
			<xs:attribute name="divisions" type="xs:positiveInteger" use="optional" default="4"/>
			<xs:attribute name="font" type="TYPE_FONT" use="optional" default="helvetica"/>
			<xs:attribute name="font-size" type="xs:positiveInteger" use="optional" default="9"/>
			<xs:attribute name="length" type="TYPE_POSITIVE_DECIMAL" use="required"/>
			<xs:attribute name="locale-language" type="xs:string" use="optional" default="en"/>
			<xs:attribute name="locale-country" type="xs:string" use="optional" default="US"/>
			<xs:attribute name="locale-variant" type="xs:string" use="optional"/>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="text-position" type="TYPE_SCALEBAR_TEXT_POSITION" use="optional" default="top"/>
			<xs:attribute name="units" type="TYPE_SCALEBAR_UNITS" use="optional" default="metric"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="scaletext">
		<xs:complexType>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="alignment" type="TYPE_ALIGNMENT" use="required"/>
			<xs:attribute name="font" type="TYPE_FONT" use="optional" default="helvetica"/>
			<xs:attribute name="font-size" type="xs:positiveInteger" use="optional" default="9"/>
			<xs:attribute name="prefix" type="xs:string" use="optional"/>
			<xs:attribute name="suffix" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="template">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
				<xs:element ref="box"/>
				<xs:element ref="centercoordinatetext"/>
				<xs:element ref="datetext"/>
				<xs:element ref="image"/>
				<xs:element ref="indexmap"/>
				<xs:element ref="latlongraticule"/>
				<xs:element ref="legend"/>
				<xs:element ref="line"/>
				<xs:element ref="map"/>
				<xs:element ref="northarrow"/>
				<xs:element ref="paragraph"/>
				<xs:element ref="prompt"/>
				<xs:element ref="scalebar"/>
				<xs:element ref="scaletext"/>
				<xs:element ref="text"/>
				<xs:element ref="titletext"/>
			</xs:choice>
			<xs:attribute name="name" type="xs:token" use="required"/>
			<xs:attribute name="units" type="TYPE_UNITS" use="optional" default="points"/>
			<xs:attribute name="page-size" type="TYPE_XY" use="required"/>
			<xs:attribute name="border-width" type="xs:decimal" use="optional" default="36"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="text">
		<xs:complexType>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="alignment" type="TYPE_ALIGNMENT" use="required"/>
			<xs:attribute name="font" type="TYPE_FONT" use="optional" default="helvetica"/>
			<xs:attribute name="font-size" type="xs:positiveInteger" use="optional" default="9"/>
			<xs:attribute name="text" type="xs:string" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="titletext">
		<xs:complexType>
			<xs:attribute name="position" type="TYPE_XY" use="required"/>
			<xs:attribute name="alignment" type="TYPE_ALIGNMENT" use="required"/>
			<xs:attribute name="font" type="TYPE_FONT" use="optional" default="helvetica_bold"/>
			<xs:attribute name="font-size" type="xs:positiveInteger" use="optional" default="18"/>
			<xs:attribute name="default" type="xs:token" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="TYPE_ALIGNMENT">
		<xs:restriction base="xs:token">
			<xs:enumeration value="left"/>
			<xs:enumeration value="right"/>
			<xs:enumeration value="center"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TYPE_BOOLEAN">
		<xs:restriction base="xs:token">
			<xs:enumeration value="true"/>
			<xs:enumeration value="false"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TYPE_COLOR">
		<xs:restriction base="xs:token">
			<xs:pattern value="\d{1,3},\d{1,3},\d{1,3}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TYPE_DATE">
		<xs:restriction base="xs:token">
			<xs:enumeration value="date_long"/>
			<xs:enumeration value="date_medium"/>
			<xs:enumeration value="date_short"/>
			<xs:enumeration value="datetime_long"/>
			<xs:enumeration value="datetime_medium"/>
			<xs:enumeration value="datetime_short"/>
			<xs:enumeration value="time_long"/>
			<xs:enumeration value="time_medium"/>
			<xs:enumeration value="time_short"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TYPE_FONT">
		<xs:restriction base="xs:token">
			<xs:enumeration value="helvetica"/>
			<xs:enumeration value="helvetica_bold"/>
			<xs:enumeration value="helvetica_boldoblique"/>
			<xs:enumeration value="helvetica_oblique"/>
			<xs:enumeration value="times_roman"/>
			<xs:enumeration value="times_bold"/>
			<xs:enumeration value="times_bolditalic"/>
			<xs:enumeration value="times_italic"/>
			<xs:enumeration value="courier"/>
			<xs:enumeration value="courier_bold"/>
			<xs:enumeration value="courier_boldoblique"/>
			<xs:enumeration value="courier_oblique"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TYPE_INDEXMAP">
		<xs:restriction base="xs:token">
			<xs:enumeration value="box"/>
			<xs:enumeration value="crosshair"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TYPE_POSITIVE_DECIMAL">
		<xs:restriction base="xs:decimal">
			<xs:minExclusive value="0"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TYPE_PROMPT_METHOD">
		<xs:restriction base="xs:token">
			<xs:enumeration value="input"/>
			<xs:enumeration value="select"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TYPE_PROMPT_TYPE">
		<xs:restriction base="xs:token">
			<xs:enumeration value="text"/>
			<xs:enumeration value="paragraph"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TYPE_SCALEBAR_TEXT_POSITION">
		<xs:restriction base="xs:token">
			<xs:enumeration value="top"/>
			<xs:enumeration value="bottom"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TYPE_SCALEBAR_UNITS">
		<xs:restriction base="xs:token">
			<xs:enumeration value="imperial"/>
			<xs:enumeration value="metric"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TYPE_UNITS">
		<xs:restriction base="xs:token">
			<xs:enumeration value="points"/>
			<xs:enumeration value="inches"/>
			<xs:enumeration value="centimeters"/>
			<xs:enumeration value="millimeters"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TYPE_XY">
		<xs:restriction base="xs:token">
			<xs:pattern value="\d*(\.{0,1}\d{1,4})?,\d*(\.{0,1}\d{1,4})?"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
