<?xml version = "1.0" ?>
 
<xsd:schema  
	xmlns:xsd="http://www.w3.org/2001/XMLSchema">

	<xsd:include schemaLocation="DIG.xsd"/>
 
						<!-- documentation of schema file --> 
	<xsd:annotation> 
		<xsd:documentation xml:lang="en"> 
			This is the general application schema file, 
			which outlines the specifics of a DIG data file of an application.
			See either PRJFIL.xml or RECFIL.xml for instances of such files.
			Version:  2.1
			Last Updated:  2/3/04
		</xsd:documentation> 
	</xsd:annotation> 
 
 						<!-- type definitions for DIG schema -->
	<xsd:complexType name="dimensionType">
		<xsd:attribute name="x" type="xsd:positiveInteger" use="required"/> 
		<xsd:attribute name="y" type="xsd:positiveInteger" use="required"/> 
		<xsd:attribute name="z" type="xsd:positiveInteger" use="required"/> 
	</xsd:complexType> 
 
	<xsd:complexType name="samplingXType">
		<xsd:attribute name="x" type="nonNegativeReal" use="required"/> 
		<xsd:attribute name="y" type="nonNegativeReal" use="required"/> 
		<xsd:attribute name="z" type="nonNegativeReal" use="required"/> 
	</xsd:complexType> 

	<xsd:complexType name="samplingYType">
		<xsd:attribute name="x" type="nonNegativeReal" use="required"/> 
		<xsd:attribute name="y" type="nonNegativeReal" use="required"/> 
		<xsd:attribute name="z" type="nonNegativeReal" use="required"/> 
	</xsd:complexType> 

	<xsd:complexType name="samplingZType">
		<xsd:attribute name="x" type="nonNegativeReal" use="required"/> 
		<xsd:attribute name="y" type="nonNegativeReal" use="required"/> 
		<xsd:attribute name="z" type="nonNegativeReal" use="required"/> 
	</xsd:complexType> 

	<xsd:simpleType name="mainType">
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType>

	<xsd:simpleType name="mainTitle">
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType>

	<xsd:simpleType name="channelType">
		<xsd:restriction base="xsd:positiveInteger"/>
	</xsd:simpleType>

	<xsd:simpleType name="endianType">
		<xsd:restriction base="xsd:string"> 
			<xsd:pattern value="little|big"/> 
		</xsd:restriction> 
	</xsd:simpleType> 

	<xsd:simpleType name="valueType"> 
		<xsd:restriction base="xsd:string"> 
			<xsd:pattern value="real|complex"/> 
		</xsd:restriction> 
	</xsd:simpleType> 
	
	<xsd:simpleType name="dataType"> 
		<xsd:restriction base="xsd:string"> 
			<xsd:pattern value="bool|unsigned char|char|unsigned short|short|unsigned int|int|float|double"/> 
		</xsd:restriction> 
	</xsd:simpleType> 

	<xsd:simpleType name="dataFormatType">
		<xsd:restriction base="xsd:string"> 
			<xsd:pattern value="ASCII|binary"/> 
		</xsd:restriction> 
	</xsd:simpleType> 

	<xsd:simpleType name="gridType">
		<xsd:restriction base="xsd:string"> 
			<xsd:pattern value="SC|FCC1|FCC2|BCC1|BCC2|BCC3|BCC4|HEX1|HEX2"/> 
		</xsd:restriction> 
	</xsd:simpleType> 

	<xsd:simpleType name="basisType"> 
		<xsd:restriction base="xsd:string"> 
			<xsd:pattern value="voronoi|blob"/> 
		</xsd:restriction> 
	</xsd:simpleType> 

	<xsd:simpleType name="unitType">
		<xsd:restriction base="xsd:string"> 
			<xsd:pattern value="unspecified|m|cm|mm|nm|micron|A|other"/> 
		</xsd:restriction> 
	</xsd:simpleType> 
	
	<xsd:simpleType name="otherUnitType">
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType>

	<xsd:complexType name="applicationType">
		<xsd:sequence>
			<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:simpleType name="setType">
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType>

	<xsd:simpleType name="setTitle">
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType>

	<xsd:simpleType name="parametersType">
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType> 

 						<!-- type definitions for APPLICATION schema -->
	<xsd:simpleType name="nonNegativeReal"> 
		<xsd:restriction base="xsd:decimal"> 
			<xsd:minInclusive value="0"/> 
		</xsd:restriction> 
	</xsd:simpleType>  
 

</xsd:schema>
