<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified" version="6.2" 
	xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.chemaxon.com" 
	xmlns:cxn="http://www.chemaxon.com">

	<!-- definition of types -->

	<!-- cml and its subtypes -->
	<xs:complexType name="cmlType">
		<xs:annotation>
			<xs:documentation>
				Main tag for multiple documents: if more marvin
				documents are contained in one mrv file then this
				element should embed the documents.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="MHead" type="cxn:MHeadType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Header containing global properties. (optional)
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:choice minOccurs="0">
				<xs:element name="MDocument" type="cxn:MDocumentType"
					maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>
							Main marvin document element containing
							molecules, graphical objects, reactions,
							etc.
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="molecule" type="cxn:moleculeType"
					maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>
							Element containing the description of a
							molecule.
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="reaction" type="cxn:reactionType"
					maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>
							Element containing the description of a
							reaction.
						</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="version" type="cxn:versionInfo">
			<xs:annotation>
				<xs:documentation>
					Version information (file format version number and
					generation version number).
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:simpleType name="versionInfo">
		<xs:annotation>
			<xs:documentation>
				Version information (file format version number and
				generation version number).
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern
				value="ChemAxon file format v([0-9]+\.)+[0-9]+, generated by v(([0-9]+\.)+[0-9]+|unknown)" />
		</xs:restriction>
	</xs:simpleType>

	<!-- MDocument and its subtypes -->
	<xs:complexType name="MDocumentType">
		<xs:annotation>
			<xs:documentation>
				Main marvin document element containing molecules,
				graphical objects,
				reactions, etc.
			</xs:documentation>
		</xs:annotation>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="propertyList" type="cxn:MDocumentPropertyListType" >
			<xs:annotation>
				<xs:documentation>
					 List containing Marvin GUI attributes.
				</xs:documentation>
			</xs:annotation>	
			</xs:element>
					<xs:element name="MChemicalStruct" type="cxn:MChemicalStructType" >
					<xs:annotation>
				<xs:documentation>
						Description of a chemical Structure.
				</xs:documentation>
			</xs:annotation>	
			</xs:element>
			<xs:element name="MMoleculeMovie" type="cxn:MMoleculeMovieType" >
			<xs:annotation>
				<xs:documentation>
					Animation of a chemical process.
				</xs:documentation>
			</xs:annotation>	
			</xs:element>
			<xs:element name="MBracket" type="cxn:MBracketType" >
			<xs:annotation>
				<xs:documentation>
					Bracket graphical object.
				</xs:documentation>
			</xs:annotation>	
			</xs:element>
			<xs:element name="MEFlow" type="cxn:MEFlowType" >
			<xs:annotation>
				<xs:documentation>
						Curved electron flow arrow. MEFlow is a subclass
						of MPolyline thus it
						has
						the same attributes, but it can only
						contain two points.
				</xs:documentation>
			</xs:annotation>	
			</xs:element>
			<xs:element name="MEllipse" type="cxn:MRectangleType" >
			<xs:annotation>
				<xs:documentation>
					Ellipse graphical object,
						it is derived from
						MRectangle, inheriting its attributes.
				</xs:documentation>
			</xs:annotation>	
			</xs:element>
			<xs:element name="MElectron" type="cxn:MElectronType" >
			<xs:annotation>
				<xs:documentation>
						Represents the electrons of the atom, 
						it has an atom reference, and a location 
						difference to the location of the referenced
						atom.
				</xs:documentation>
			</xs:annotation>	
			</xs:element><xs:element name="MElectronContainer" type="cxn:MElectronContainerType" >
			<xs:annotation>
				<xs:documentation>
						This element holds information about electrons
						of atom, this know whether the electron is free,
						or occiupied with an MEflowArrow.
				</xs:documentation>
			</xs:annotation>	
			</xs:element>
			<xs:element name="MPolyline" type="cxn:MPolylineType" >
			<xs:annotation>
				<xs:documentation>
					Line, arc, polyline and/or graphical arrow.
				</xs:documentation>
			</xs:annotation>	
			</xs:element>
			<xs:element name="MRectangle" type="cxn:MRectangleType" >
			<xs:annotation>
				<xs:documentation>
					Rectangle graphical Object.
				</xs:documentation>
			</xs:annotation>	
			</xs:element>
			<xs:element name="MRoundedRectangle" type="cxn:MRoundedRectangleType" >
			<xs:annotation>
				<xs:documentation>
					Rounded cornered rectangle graphical object.
				</xs:documentation>
			</xs:annotation>	
			</xs:element>
			<xs:element name="MTextBox" type="cxn:MTextBoxType" >
			<xs:annotation>
				<xs:documentation>
					Text box.
				</xs:documentation>
			</xs:annotation>	
			</xs:element>
			<xs:element name="MNameTextBox" type="cxn:MNameTextBoxType" >
			<xs:annotation>
				<xs:documentation>
					Text object that contains molecule name;
						it is
						derived from MTextBox, thus it inherits its attributes.
				</xs:documentation>
			</xs:annotation>	
			</xs:element>
		</xs:choice>
		<xs:attribute name="atomSetFont" type="xs:string" >
		<xs:annotation>
				<xs:documentation>
					Font type of atom sets.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="atomSetRGB" type="cxn:colorNameList" >
		<xs:annotation>
				<xs:documentation>
					Atom set colors:
	Comma separated list of entries in
					&quot;
					<i>k:color</i>
					&quot; format, where
					<i>k</i>
					is the set sequence number and
					<i>color</i>
					is the color specification
					(in one of the following forms:
					&quot;#RRGGBB&quot; - RGB components
					as a 6-digit hexadecimal
					number, &quot;D&quot; - default set color,
					&quot;N&quot; - no set
					color (normal atom/bond coloring is used).
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="bondSetLineThickness" type="cxn:intAndDoubleList" >
		<xs:annotation>
				<xs:documentation>
					Thickness of bonds in the bond sets.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="bondSetRGB" type="cxn:colorNameList" >
		<xs:annotation>
				<xs:documentation>
					Bond set colors:
	Comma separated list of entries in
					&quot;
					<i>k:color</i>
					&quot; format, where
					<i>k</i>
					is the set sequence number and
					<i>color</i>
					is the color specification
					(in one of the following forms:
					&quot;#RRGGBB&quot; - RGB components
					as a 6-digit hexadecimal
					number, &quot;D&quot; - default set color,
					&quot;N&quot; - no set
					color (normal atom/bond coloring is used).
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="extraLabelSetRGB" type="cxn:colorNameList" >
		<xs:annotation>
				<xs:documentation>
					Color setting of the extra label.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="multipageBottom" type="xs:double" >
		<xs:annotation>
				<xs:documentation>
					Bottom margin of a page in multipage molecular
					document. Its value is "d" where d is a floating point number.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="multipageColumnCount" type="xs:positiveInteger">
			<xs:annotation>
				<xs:documentation>
					Number of columns in multipage molecular document.
					Its value is "k" where
					k is a positive integer.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="multipageEnabled" type="xs:boolean">
			<xs:annotation>
				<xs:documentation>
					Enables the multipage molecular document. Its
					value is "true" or "false".
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="multipageHeight" type="xs:double">
			<xs:annotation>
				<xs:documentation>
					Height of a page in multipage molecular document.
					Its value is "d" where
					d is a floating point number.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="multipageLeft" type="xs:double">
			<xs:annotation>
				<xs:documentation>
					Left margin of a page in multipage molecular
					document. Its value is "d"
					where d is a floating point number.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="multipageRight" type="xs:double">
			<xs:annotation>
				<xs:documentation>
					Right margin of a page in multipage molecular
					document. Its value is "d" where
					d is a floating point number.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="multipageRowCount" type="xs:positiveInteger">
			<xs:annotation>
				<xs:documentation>
					Number of rows in multipage molecular document.
					Its value is "k" where k
					is a positive integer.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="multipageSelectedPage" type="xs:positiveInteger">
			<xs:annotation>
				<xs:documentation>
					The selected page in multipage molecular document.
					Its value is "k"
					where k is a positive integer.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="multipageTop" type="xs:double">
			<xs:annotation>
				<xs:documentation>
					Top margin of a page in multipage molecular
					document. Its value is "d"
					where d is a floating point number.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="multipageWidth" type="xs:double">
			<xs:annotation>
				<xs:documentation>
					Width of a page in multipage molecular document.
					Its value is "d" where
					d is a floating point number.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:simpleType name="colorNameList">
		<xs:annotation>
			<xs:documentation>
				List of Color names.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="(([0-9]+:(#[0-9A-Fa-f]{6}|N|D))|,)+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="colorName">
		<xs:annotation>
			<xs:documentation>
				Color name type.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="#[0-9A-Fa-f]{6}" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="intAndDoubleList">
		<xs:annotation>
			<xs:documentation>
				List containing integer and double elements in the following format: 
				<i>i1:d1, i2:d2....,</i>
				where "
				<i>i</i>
				" denotes an integer number and
				"
				<i>d</i>
				" indicates a double type number.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="(([0-9])+:([0-9\.])+|,)+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="MHeadType">
		<xs:annotation>
			<xs:documentation>
				Marvin document header storing GUI setting.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="MarvinGUI" type="cxn:MarvinGUIType" >
			   <xs:annotation>
			      <xs:documentation>
			          Description of Marvin GUI properties
			      </xs:documentation>
			   </xs:annotation>
			</xs:element>   
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="MarvinGUIType">
		<xs:annotation>
			<xs:documentation>
				Description of Marvin GUI properties. (optional)
				Can not be empty. If present, at least one mprop should be defined in it.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="mprop" type="cxn:mpropType" maxOccurs="unbounded" >
			   <xs:annotation>
			       <xs:documentation>
			          Marvin GUI property type. 
			       </xs:documentation>
			   </xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="mpropType">
		<xs:annotation>
			<xs:documentation>
				Marvin GUI property type.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="dataType" type="cxn:mpropDataTypeName" >
		   <xs:annotation>
		      <xs:documentation>
		         Type name of marvin GUI dat
		      </xs:documentation>
		   </xs:annotation>
		</xs:attribute>
		<xs:attribute name="name" use="required" type="cxn:mpropName" >
		    <xs:annotation>
		      <xs:documentation>
		        Name tag of the marvin GUI properties.
		      </xs:documentation>
		    </xs:annotation>
		 </xs:attribute>   
		<xs:attribute name="value" use="required" type="xs:string" >
		   <xs:annotation>
		     <xs:documentation>
		        Value of Marvin GUI property
		     </xs:documentation>
		   </xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:simpleType name="mpropDataTypeName">
		<xs:annotation>
			<xs:documentation>
				Type name of marvin GUI data.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="xsd:integer" />
			<xs:enumeration value="xsd:double" />
			<xs:enumeration value="xsd:boolean" />
			<xs:enumeration value="xsd:mfont" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="mpropName">
		<xs:annotation>
			<xs:documentation>
				Name tag of the marvin GUI properties, possible values
				are listed in the enumeration.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="saveproperties" />
			<xs:enumeration value="setColoringEnabled" />
			<xs:enumeration value="atomNumbersVisible" />
			<xs:enumeration value="atomPropertiesVisible" />
			<xs:enumeration value="atomMappingVisible" />
			<xs:enumeration value="grinvVisible" />
			<xs:enumeration value="ezVisible" />
			<xs:enumeration value="bondLengthVisible" />
			<xs:enumeration value="bondDraggedAlong" />
			<xs:enumeration value="valenceErrorVisible" />
			<xs:enumeration value="valenceErrorVisibleInView" />
			<xs:enumeration value="atomSymbolVisible3D" />
			<xs:enumeration value="rgroupsVisible" />
			<xs:enumeration value="lonePairsAutoCalc" />
			<xs:enumeration value="molbg" />
			<xs:enumeration value="dispQuality" />
			<xs:enumeration value="chiralitySupport" />
			<xs:enumeration value="invisibleSets" />
			<xs:enumeration value="atomsize" />
			<xs:enumeration value="bondSpacing" />
			<xs:enumeration value="wireThickness" />
			<xs:enumeration value="stickThickness" />
			<xs:enumeration value="ballRadius" />
			<xs:enumeration value="rendering" />
			<xs:enumeration value="downWedge" />
			<xs:enumeration value="coordinateBondStyle" />
			<xs:enumeration value="coordinateBondStyleAtMulticenter" />
			<xs:enumeration value="anybond" />
			<xs:enumeration value="atomFont" />
			<xs:enumeration value="implicitH" />
			<xs:enumeration value="lonePairsVisible" />
			<xs:enumeration value="viewNavMode2d" />
			<xs:enumeration value="viewNavMode3d" />
			<xs:enumeration value="autoscale" />
			<xs:enumeration value="absLabelVisible" />
			<xs:enumeration value="colorScheme" />
			<xs:enumeration value="viewCarbonVisibility" />
			<xs:enumeration value="sketchCarbonVisibility" />
			<xs:enumeration value="viewLigandOrderVisibility" />
			<xs:enumeration value="sketchLigandOrderVisibility" />
			<xs:enumeration value="rLogicVisible" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="MDocumentPropertyListType">
		<xs:annotation>
			<xs:documentation>
				List containing Marvin attributes.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="property" type="cxn:MDocumentPropertyType"
				maxOccurs="unbounded" >
				<xs:annotation>
					<xs:documentation>
				        Marvin document properties.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="MDocumentPropertyType">
		<xs:annotation>
			<xs:documentation>
				Marvin document property type.
			</xs:documentation>
		</xs:annotation>
		<xs:choice>
			<xs:element name="scalar" type="cxn:MDocumentScalarPropertyType" >
				<xs:annotation>
					<xs:documentation>
						Scalar Marvin document property: it contains a
						single data value.
					</xs:documentation>
				</xs:annotation>
			</xs:element>	
			<xs:element name="array" type="cxn:MDocumentArrayPropertyType" >
			<xs:annotation>
					<xs:documentation>
						Array Marvin document property: it contains an
						array of double values.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:choice>
		<xs:attribute name="dictRef" use="required" type="cxn:dictRefName" >
				<xs:annotation>
					<xs:documentation>
						Key of the properties related to the document.
					</xs:documentation>
				</xs:annotation>
		</xs:attribute>
		<xs:attribute name="title" type="xs:string" >
		<xs:annotation>
					<xs:documentation>
						Title of a Marvin document.
					</xs:documentation>
				</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:simpleType name="dictRefName">
		<xs:annotation>
			<xs:documentation>
				Marvin document property keys. Allowed values are
				listed in
				the enumeration.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="viewEulerAngles" />
			<xs:enumeration value="scale" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="MDocumentScalarPropertyType">
		<xs:annotation>
			<xs:documentation>
				Scalar property type of the Marvin document.
			</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:double">
				<xs:attribute name="dataType" type="cxn:dataTypeName" >
				<xs:annotation>
					<xs:documentation>
				        Data type of the scalar tag value.
					</xs:documentation>
				</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:simpleType name="dataTypeName">
		<xs:annotation>
			<xs:documentation>
		        Data type of the scalar tag value.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="xsd:[A-Za-z]+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="MDocumentArrayPropertyType">
		<xs:annotation>
			<xs:documentation>
				Array property type of the Marvin document.
			</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="cxn:doubleList">
				<xs:attribute name="dataType" use="required" type="cxn:dataTypeName" >
				<xs:annotation>
					<xs:documentation>
						Data type of the array tag values.
					</xs:documentation>
				</xs:annotation>
				</xs:attribute>
				<xs:attribute name="size" use="required" type="xs:nonNegativeInteger" >
				<xs:annotation>
					<xs:documentation>
						Size of the array.
					</xs:documentation>
				</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:simpleType name="doubleList">
		<xs:annotation>
			<xs:documentation>
				List containing double elements separated by
				spaces.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="xs:double" />
	</xs:simpleType>

	<xs:complexType name="MChemicalStructType">
		<xs:annotation>
			<xs:documentation>
				Element containing the description of a chemical
				structure.
			</xs:documentation>
		</xs:annotation>
		<xs:choice minOccurs="0">
			<xs:sequence>
				<xs:choice minOccurs="1">
					<xs:element name="molecule" type="cxn:moleculeType" >
					<xs:annotation>
					<xs:documentation>
								Element containing the description of a
								molecule.
					</xs:documentation>
					</xs:annotation>
					</xs:element>
					<xs:element name="reaction" type="cxn:reactionType" >
					<xs:annotation>
						<xs:documentation>
								Element containing the description of a
								reaction.
						</xs:documentation>
					</xs:annotation>
					</xs:element>
				</xs:choice>
				<xs:element name="Rgroup" type="cxn:RgroupType" minOccurs="0"
							maxOccurs="unbounded" >
					<xs:annotation>
						<xs:documentation>
							Element containing the description of an
							R-group.
						</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="RgroupType">
		<xs:annotation>
			<xs:documentation>
				Element containing the description of an R-group.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="molecule" type="cxn:moleculeType" minOccurs="0"
				maxOccurs="unbounded" >
				<xs:annotation>
					<xs:documentation>
						Element containing the description of a molecule.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="restH" type="cxn:booleanString" >
		<xs:annotation>
			<xs:documentation>
					It is a condition for an R-group: If it is set for
					an R-group, the
					hit molecules do not contain ligands on that atom
					other than
					hydrogen or those specified as R-group. If RestH
					condition is
					false, then R-group sites can contain any additional
					non-hydrogen
					ligands as well.
			</xs:documentation>
		</xs:annotation>
		</xs:attribute>
		<xs:attribute name="rgroupID" use="required" type="xs:nonNegativeInteger" >
		<xs:annotation>
			<xs:documentation>
				ID of the R-group.
			</xs:documentation>
		</xs:annotation>
		</xs:attribute>
		<xs:attribute name="rlogicRange" type="cxn:rlogicList" >
		<xs:annotation>
			<xs:documentation>
					It shows that the given R-group how many times can
					occur in the
					target. (For example: 1-3,6 means the R-group can occur
					one, two
					three or six time in the target.).
			</xs:documentation>
		</xs:annotation>
		</xs:attribute>
		<xs:attribute name="thenR" type="xs:integer" >
		<xs:annotation>
			<xs:documentation>
					It is a condition for an R-group:R-group has to be
					satisfied only
					when conditions of another R-group are satisfied.
			</xs:documentation>
		</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:simpleType name="booleanString">
		<xs:annotation>
			<xs:documentation>
				String containing different boolean value
				descriptions. Enumeration
				contains possible values. 
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="on" />
			<xs:enumeration value="1" />
			<xs:enumeration value="true" />
			<xs:enumeration value="off" />
			<xs:enumeration value="0" />
			<xs:enumeration value="false" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="rlogicList">
		<xs:annotation>
			<xs:documentation>
				A list containing rlogic ranges as elements.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="(,|&gt;|&lt;|>|[0-9])*" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="MMoleculeMovieType">
		<xs:annotation>
			<xs:documentation>
				Animation of a chemical process.
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="MChemicalStruct" type="cxn:MChemicalStructType"
				maxOccurs="unbounded" >
				<xs:annotation>
				<xs:documentation>
						Element containing the description of a chemical
						structure.
				</xs:documentation>
			</xs:annotation>	
			</xs:element>
				
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="MObjectType">
		<xs:annotation>
			<xs:documentation>
				Marvin graphical object type.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="lineColor" type="cxn:colorName" >
		<xs:annotation>
			<xs:documentation>
				Line color.
			</xs:documentation>
		</xs:annotation>
		</xs:attribute>
		<xs:attribute name="id" use="required" type="xs:NCName" >
		<xs:annotation>
			<xs:documentation>
				ID of the graphical object.
			</xs:documentation>
		</xs:annotation>
		</xs:attribute>
		<xs:attribute name="isSelected" type="xs:boolean" >
		<xs:annotation>
			<xs:documentation>
					Boolean type variable which shows that the object
					is selected or not.
			</xs:documentation>
		</xs:annotation>
		</xs:attribute>
		<xs:attribute name="thickness" type="xs:double" >
		<xs:annotation>
			<xs:documentation>
				Line thickness of the graphical object.
			</xs:documentation>
		</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="MGraphicalObjectType">
		<xs:annotation>
			<xs:documentation>
				Marvin graphical object type.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="cxn:MObjectType">
				<xs:attribute name="headFlags" type="xs:integer" >
					<xs:annotation>
						<xs:documentation>
							Flag containing information about the head of
							the object,
							e.g. its orientation.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="headLength" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
							The length of the arrow head.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="headSkip" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
							Length of skipped space from head to the
							head-end of the object.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="headWidth" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
							The width of the arrow head.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="tailFlags" type="xs:integer" >
				<xs:annotation>
						<xs:documentation>
							Flag containing information about the tail of
							the object,
							e.g. its orientation.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="tailLength" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
							The length of the arrow tail.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="tailWidth" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
							The width of the arrow tail.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="tailSkip" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
							Length of skipped space from the tail-end of the
							object to its tail.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="MBracketType">
		<xs:annotation>
			<xs:documentation>
				Marvin Bracket Type.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="cxn:MObjectType">
				<xs:sequence>
					<xs:element name="MPoint" type="cxn:MPointType" minOccurs="4"
						maxOccurs="4" />
				</xs:sequence>
				<xs:attribute name="orientation" type="cxn:bracketOrientationName" >
				<xs:annotation>
					<xs:documentation>
							Determines whether bracket is in pairs or a
							standalone
							bracket. "Single" means that the bracket can be moved
							or
							resized alone, "double" means that the pair of brackets
							are
							treated as one entity, can be moved and resiyed only
							together.
					</xs:documentation>
				</xs:annotation>
				</xs:attribute>
				<xs:attribute name="tcenter" type="cxn:tCenter" >
				<xs:annotation>
					<xs:documentation>
							Geometric center of the object for
							transformations like
							rotation. Identifies corners and
							middle-points with
							points of the compass, e.g. NW (North West)
							identifies
							the top right corner. Possible values are the eight
							points of the compass or center.
					</xs:documentation>
				</xs:annotation>
				</xs:attribute>
				<xs:attribute name="toption" type="cxn:tOption" >
				<xs:annotation>
					<xs:documentation>
				It shows that the object can be rotated or not.
					</xs:documentation>
				</xs:annotation>
				</xs:attribute>
				<xs:attribute name="type" type="cxn:bracketName" >
					<xs:annotation>
						<xs:documentation>
				Type of the bracket.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="SgroupMBracketType">
		<xs:annotation>
			<xs:documentation>
				Sgroup bracket type.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="MPoint" type="cxn:MPointType" minOccurs="4"
				maxOccurs="4" >
				<xs:annotation>
					<xs:documentation>
				Basic Point of a polyline object.
					</xs:documentation>
				</xs:annotation>
		</xs:element>
		</xs:sequence>
		<xs:attribute name="isSelected" type="xs:boolean" >
					<xs:annotation>
						<xs:documentation>
					Boolean type variable which shows that the object
					is selected or not.
						</xs:documentation>
					</xs:annotation>
		</xs:attribute>
		<xs:attribute name="lineColor" type="cxn:colorName" >
					<xs:annotation>
						<xs:documentation>
				Line color.
						</xs:documentation>
					</xs:annotation>
		</xs:attribute>
		<xs:attribute name="orientation" type="cxn:bracketOrientationName" >
					<xs:annotation>
						<xs:documentation>
					Determines whether bracket is in pairs or a
					standalone
					bracket. "Single" means that the bracket can be moved
					or
					resized alone, "double" means that the pair of brackets
					are treated
					as one entity, can be moved and resiyed only together.
						</xs:documentation>
					</xs:annotation>
		</xs:attribute>
		<xs:attribute name="tcenter" type="cxn:tCenter" >
		<xs:annotation>
						<xs:documentation>
					Geometric center of the object for transformations
					like
					rotation. Identifies corners and middle-points with
					points of
					the compass, e.g. NW (North West) identifies
					the top right corner.
					Possible values are the eight
					points of the compass or center.
						</xs:documentation>
					</xs:annotation>
		</xs:attribute>
		<xs:attribute name="thickness" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
				Thickness.
						</xs:documentation>
					</xs:annotation>
		</xs:attribute>
		<xs:attribute name="toption" type="cxn:tOption" >
					<xs:annotation>
						<xs:documentation>
				It shows that the object can be rotated or not.
						</xs:documentation>
					</xs:annotation>
		</xs:attribute>
		<xs:attribute name="type" type="cxn:bracketName" >
					<xs:annotation>
						<xs:documentation>
				Type of the bracket.
						</xs:documentation>
					</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:simpleType name="bracketName">
		<xs:annotation>
			<xs:documentation>
				Bracket name.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="ROUND" />
			<xs:enumeration value="SQUARE" />
			<xs:enumeration value="BRACES" />
			<xs:enumeration value="CHEVRONS" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="bracketOrientationName">
		<xs:annotation>
			<xs:documentation>
				Determines whether bracket is in pairs or a
				standalone
				bracket. "Single" means that the bracket can be moved or
				resized alone, "double" means that the pair of brackets
				are treated
				as one entity, can be moved and resiyed only
				together.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="SINGLE" />
			<xs:enumeration value="DOUBLE" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="MPointType">
		<xs:annotation>
			<xs:documentation>
				Basic Point of a polyline object.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="x" use="required" type="xs:double" >
					<xs:annotation>
						<xs:documentation>
				X coordinate.
						</xs:documentation>
					</xs:annotation>
		</xs:attribute>
		<xs:attribute name="y" use="required" type="xs:double" >
			<xs:annotation>
						<xs:documentation>
				Y coordinate.
						</xs:documentation>
					</xs:annotation>
		</xs:attribute>
		<xs:attribute name="z" type="xs:double" >
					<xs:annotation>
						<xs:documentation>
				Z coordinate.
						</xs:documentation>
					</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="MEFlowType">
		<xs:annotation>
			<xs:documentation>
				Curved electron flow arrow. MEFlow is a subclass of
				MPolyline thus it has
				the same attributes, but it can only contain
				two points.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="cxn:MGraphicalObjectType">
				<xs:sequence>
					<xs:choice>
						<xs:element name="MEFlowBasePoint" type="cxn:MEFlowBasePointType" >
							<xs:annotation>
								<xs:documentation>
									Starting point of the electron flow arrow if
									the source is an atom.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="MAtomSetPoint" type="cxn:MAtomSetPointType" >
						<xs:annotation>
							<xs:documentation>
							It represents an atom or atom pair
									(bond or
									incipient bond).
							</xs:documentation>
						</xs:annotation>
						</xs:element>
					</xs:choice>
					<xs:element name="MAtomSetPoint" type="cxn:MAtomSetPointType" >
						<xs:annotation>
							<xs:documentation>
				It represents an atom or atom pair
								(bond or
								incipient bond).
							</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="arcAngle" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
				Angle of the electron flow arrow arc.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="baseElectronContainerIndex" type="xs:integer" >
				<xs:annotation>
						<xs:documentation>
							Describes which electroncontainer
							holds electron.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="baseElectronIndexInContainer" type="xs:integer" >
				<xs:annotation>
						<xs:documentation>
							Describes which electron is base electron.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="MEFlowBasePointType">
		<xs:annotation>
			<xs:documentation>
				Starting point of the electron flow arrow if the
				source is an atom.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="atomRef" use="required" type="cxn:moleculeAndAtomRef" />
	</xs:complexType>

	<xs:complexType name="MElectronType">
		<xs:annotation>
			<xs:documentation>
				Represents an electron of the atom.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="atomRef" use="required" type="cxn:moleculeAndAtomRef" />
		<xs:attribute name="difLoc" use="required" type="cxn:listOf3Doubles" />
	</xs:complexType>
	
	<xs:complexType name="MElectronContainerType">
		<xs:annotation>
			<xs:documentation>
				Represents a group of electrons of an atom.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="occupation" use="required" type="cxn:booleanList" />
		<xs:attribute name="radical" use="required" type="xs:boolean" />
	</xs:complexType>

	<xs:complexType name="MAtomSetPointType">
		<xs:annotation>
			<xs:documentation>
				It represents an atom or atom pair (bond or
				incipient bond).
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="atomRefs" use="required"
			type="cxn:listOfMax2AtomSetPointAtomRefs" />
		<xs:attribute name="weights" type="cxn:listOf2Doubles" />
	</xs:complexType>

	<xs:simpleType name="listOfMax2AtomSetPointAtomRefs">
		<xs:annotation>
			<xs:documentation>
				List containing one or two atom Set Point.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="cxn:atomSetPointAtomRefList">
			<xs:minLength value="1" />
			<xs:maxLength value="2" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="listOf3Doubles">
		<xs:annotation>
			<xs:documentation>
				List of x y and z coordinates
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="cxn:doubleList">
			<xs:length value='3' />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="atomSetPointAtomRefList">
		<xs:annotation>
			<xs:documentation>
				List that define atom set points:
				list of molecule
				and atom referencies.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:moleculeAndAtomRef" />
	</xs:simpleType>

	<xs:simpleType name="moleculeAndAtomRef">
		<xs:annotation>
			<xs:documentation>
				Reference corresponding to the molecule and atoms
				of that.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:pattern value="m([0-9])+\.a([0-9])+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="listOf2Doubles">
		<xs:annotation>
			<xs:documentation>
				Two element list containing double variables.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="cxn:doubleList">
			<xs:length value='2' />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="MPolylineType">
		<xs:annotation>
			<xs:documentation>
				Line, arc, polyline and/or arrow.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="cxn:MGraphicalObjectType">
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element name="MPoint" type="cxn:MPointType">
						<xs:annotation>
							<xs:documentation>
								Basic Point of a polyline object.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="MRectanglePoint"
						type="cxn:MRectanglePointType">
						<xs:annotation>
							<xs:documentation>
								Point of an object connected to a point
								of another graphical object which is a
								polyline.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="MMidPoint" type="cxn:MMidPointType">
						<xs:annotation>
							<xs:documentation>
								Point of an object connected to a middle
								point of another graphical object which
								is a polyline.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="MAtomSetPoint"
						type="cxn:MAtomSetPointType">
						<xs:annotation>
							<xs:documentation>
								It represents an atom or atom pair (bond
								or incipient bond).
							</xs:documentation>
						</xs:annotation>
					</xs:element>


					
				</xs:choice>
				<xs:attribute name="arcAngle" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
				Angle of arc.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="MRectanglePointType">
		<xs:annotation>
			<xs:documentation>
				Point of an object connected to a point of another
				graphical object
				which is a polyline.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="pos" use="required" type="xs:integer" >
		<xs:annotation>
						<xs:documentation>
					Identifies to which point of a rectangle this
					point is
					connected.
						</xs:documentation>
					</xs:annotation>
		</xs:attribute>
		<xs:attribute name="rectRef" use="required" type="xs:NCName" >
		<xs:annotation>
						<xs:documentation>
					Reference name of the rectangle to which this
					point of the
					object is connected.
						</xs:documentation>
					</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="MMidPointType">
		<xs:annotation>
			<xs:documentation>
				Point of an object connected to a middle point of
				another
				graphical object which is a polyline.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="pos" type="xs:integer" >
					<xs:annotation>
						<xs:documentation>
					Identifies to which point of a polyline this point
					is
					connected.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
		<xs:attribute name="lineRef" use="required" type="xs:NCName" >
					<xs:annotation>
						<xs:documentation>
					Reference name of the line to which this point of
					the
					object is connected.
						</xs:documentation>
					</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="MRectangleType">
		<xs:annotation>
			<xs:documentation>
				Marvin rectangle object type.
			</xs:documentation>
		</xs:annotation>

		<xs:complexContent>
			<xs:extension base="cxn:MGraphicalObjectType">
				<xs:sequence>
					<xs:element name="MPoint" type="cxn:MPointType" minOccurs="4"
						maxOccurs="4" >
					<xs:annotation>
						<xs:documentation>
								Basic point of a polyline object.
						</xs:documentation>
					</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="background" type="cxn:colorName" >
				<xs:annotation>
						<xs:documentation>
				Background color.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="tcenter" type="cxn:tCenter" >
				<xs:annotation>
						<xs:documentation>
							Geometric center of the object for
							transformations like
							rotation. Identifies corners and
							middle-points with
							points of the compass, e.g. NW (North West)
							identifies
							the top right corner. Possible values are the eight
							points of the compass or center.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="toption" type="cxn:tOption" >
				<xs:annotation>
						<xs:documentation>
				It shows that the object can be rotated or not.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="MRoundedRectangleType">
		<xs:annotation>
			<xs:documentation>
				Rounded cornered rectangle object type.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="cxn:MRectangleType">
				<xs:attribute name="arcHeight" type="xs:double" >
				<xs:annotation>
					<xs:documentation>
				The height of the arc of the rounded corner.
					</xs:documentation>
				</xs:annotation>
				</xs:attribute>
				<xs:attribute name="arcWidth" type="xs:double" >
				<xs:annotation>
					<xs:documentation>
				The width of the arc of the rounded corner.
					</xs:documentation>
				</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="MTextBoxType">
		<xs:annotation>
			<xs:documentation>
				Text box type.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="cxn:MGraphicalObjectType">
				<xs:sequence>
					<xs:element name="Field" type="cxn:FieldType" >
					<xs:annotation>
						<xs:documentation>
								Element containing the text of the text box.
						</xs:documentation>
					</xs:annotation>
					</xs:element>
					<xs:element name="MPoint" type="cxn:MPointType" minOccurs="4"
						maxOccurs="4" >
						<xs:annotation>
						<xs:documentation>
				Basic Point of a polyline object.
						</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="autoSize" type="xs:boolean" >
				<xs:annotation>
						<xs:documentation>
							It aranges the text box size to the size
							automatically.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="background" type="cxn:colorName" >
				<xs:annotation>
						<xs:documentation>
				Background color.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="color" type="cxn:colorName" >
				<xs:annotation>
						<xs:documentation>
				Color.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="fontScale" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
				The size of the font.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="halign" type="cxn:textBoxHAlignName" >
				<xs:annotation>
						<xs:documentation>
							Horizontal alignment of the text box.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="tcenter" type="cxn:tCenter" >
				<xs:annotation>
						<xs:documentation>
							Geometric center of the object for
							transformations like
							rotation. Identifies corners and
							middle-points with
							points of the compass, e.g. NW (North West)
							identifies
							the top right corner. Possible values are the eight
							points of the compass or center.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="toption" type="cxn:tOption" >
				<xs:annotation>
						<xs:documentation>
				It shows that the object can be rotated or not.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="valign" type="cxn:textBoxVAlignName" >
				<xs:annotation>
						<xs:documentation>
							Vertical alignment of the text Box.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:simpleType name="tOption">
		<xs:annotation>
			<xs:documentation>
				It shows that the object can be rotated or not.
		    </xs:documentation>
		</xs:annotation>

		<xs:restriction base="xs:string">
			<xs:enumeration value="ALLOW_ALL" />
			<xs:enumeration value="NOROT" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tCenter">
		<xs:annotation>
			<xs:documentation>
				Geometric center of the object for transformations
				like
				rotation. Identifies corners and middle-points with
				points of the
				compass, e.g. NW (North West) identifies
				the top right corner.
				Possible values are the eight
				points of the compass or center.
		    </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="NE" />
			<xs:enumeration value="NW" />
			<xs:enumeration value="SE" />
			<xs:enumeration value="SW" />
			<xs:enumeration value="CENTER" />
			<xs:enumeration value="E" />
			<xs:enumeration value="W" />
			<xs:enumeration value="N" />
			<xs:enumeration value="S" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="textBoxHAlignName">
		<xs:annotation>
			<xs:documentation>
				Possible string values of the horizoltal alignment
				of the text box.
		    </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="LEFT" />
			<xs:enumeration value="RIGHT" />
			<xs:enumeration value="CENTER" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="textBoxVAlignName">
		<xs:annotation>
			<xs:documentation>
				Possible string values of the horizoltal alignment
				of the text box.
		    </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="TOP" />
			<xs:enumeration value="BOTTOM" />
			<xs:enumeration value="CENTER" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="FieldType">
		<xs:annotation>
			<xs:documentation>
				Element containing the text of the text box.
			</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="name" use="required" type="xs:NCName" >
					<xs:annotation>
						<xs:documentation>
							Name of the text field, usually has value
							"text".
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:complexType name="MNameTextBoxType">
		<xs:annotation>
			<xs:documentation>
				Text object that contains molecule name; 
				it is
				derived from MTextBox, thus it inherits its attributes.
		    </xs:documentation>
		</xs:annotation>

		<xs:complexContent>
			<xs:extension base="cxn:MTextBoxType">
				<xs:attribute name="autoAlign" type="xs:boolean" >
				<xs:annotation>
					<xs:documentation>
							It shows that auto alignment function of the
							textbox is on or off.
					</xs:documentation>
				</xs:annotation>
				</xs:attribute>
				<xs:attribute name="autoResize" type="xs:boolean" >
				<xs:annotation>
					<xs:documentation>
							It shows that auto resize function of the
							textbox is on or off.
					</xs:documentation>
				</xs:annotation>
				</xs:attribute>
				<xs:attribute name="preferredWidth" type="xs:double" >
				<xs:annotation>
					<xs:documentation>
					The prefered width of the name text box.
					</xs:documentation>
				</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<!-- molecule and its subtypes -->
	<xs:complexType name="moleculeType">
		<xs:annotation>
			<xs:documentation>
				Element containing the description of a molecule.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="name" type="xs:NCName" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Name of the molecule.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="propertyList"
				type="cxn:moleculePropertyListType" minOccurs="0"
				maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>
						Property list of the molecule.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="atomArray" type="cxn:atomArrayType"
				minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Array of atoms according to their label.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="bondArray" type="cxn:bondArrayType"
				minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Array of bonds according to bond tags.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="molecule" type="cxn:subMoleculeType"
				minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>
						Submolecule (S-groups).
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="absStereo" type="xs:boolean">
			<xs:annotation>
				<xs:documentation>
					It shows that absolute stereo label is on or off.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="id" type="xs:NCName">
			<xs:annotation>
				<xs:documentation>
					ID of the molecule in CML format.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="molID" type="xs:NCName">
			<xs:annotation>
				<xs:documentation>
					ID number of the molecule in the MRV file.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="title" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Title of the molecule.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="oneLetterName">
            <xs:annotation>
            	<xs:documentation>One letter name of an amino acid.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
				<xs:restriction base="cxn:oneLetterNameType">
					<xs:pattern value="[A-Z]"></xs:pattern>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="threeLetterName" type="cxn:threeLetterNameType">
			<xs:annotation>
				<xs:documentation>Three letter name of an amino acid.</xs:documentation>
			</xs:annotation>
        </xs:attribute>
	</xs:complexType>

	<xs:complexType name="moleculePropertyListType">
		<xs:annotation>
			<xs:documentation>
				List containing molecule attributes. 
		    </xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="property" type="cxn:moleculePropertyType"
				maxOccurs="unbounded" >
				<xs:annotation>
					<xs:documentation>
						Molecule property type.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="moleculePropertyType">
		<xs:annotation>
			<xs:documentation>
				Molecule property type.
			</xs:documentation>
		</xs:annotation>
		<xs:choice>
			<xs:element name="scalar" type="cxn:moleculeScalarPropertyType" >
			<xs:annotation>
					<xs:documentation>
						Scalar type molecular property.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="array" type="cxn:moleculeArrayPropertyType" >
			<xs:annotation>
					<xs:documentation>
						Array type molecular property.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:choice>
		<xs:attribute name="dictRef" use="required" type="xs:string" >
		<xs:annotation>
					<xs:documentation>
					Key of the properties related to the document.
					</xs:documentation>
				</xs:annotation>
		</xs:attribute>
		<xs:attribute name="title" type="xs:string" />
	</xs:complexType>

	<xs:complexType name="moleculeScalarPropertyType">
		<xs:annotation>
			<xs:documentation>
				Scalar property type.
			</xs:documentation>
		</xs:annotation>

		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="dataType" type="cxn:dataTypeName" >
				<xs:annotation>
					<xs:documentation>
							Scalar data types
					</xs:documentation>
				</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:complexType name="moleculeArrayPropertyType">
		<xs:annotation>
			<xs:documentation>
				Molecule array property type.
			</xs:documentation>
		</xs:annotation>

		<xs:complexContent>
			<xs:extension base="cxn:MDocumentArrayPropertyType">
				<xs:attribute name="delimiter" type="xs:string" >
				<xs:annotation>
					<xs:documentation>
							Delimiter string of molecule array properties.
					</xs:documentation>
				</xs:annotation>
			</xs:attribute>

			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="subMoleculeType">
		<xs:annotation>
			<xs:documentation>
				Submolecule (S-groups).
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="propertyList" type="cxn:moleculePropertyListType"
				minOccurs="0" maxOccurs="unbounded" >
				<xs:annotation>
					<xs:documentation>
						List of molecule property attributes.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="atomArray" type="cxn:atomArrayType"
				minOccurs="0" >
				<xs:annotation>
					<xs:documentation>
						List of atoms in the S-group.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="bondArray" type="cxn:bondArrayType"
				minOccurs="0" >
				<xs:annotation>
					<xs:documentation>
						List of bonds in the S-group.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
            <xs:element name="AttachmentPointArray" type="cxn:attachmentPointArrayType" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
						Array of the attachment points of the superatom
						S-group in the
						multiple attachment point representation.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
            <xs:element name="MBracket" type="cxn:SgroupMBracketType"
				minOccurs="0" maxOccurs="unbounded" >
				<xs:annotation>
					<xs:documentation>
				Bracket object.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="molecule" type="cxn:subMoleculeType"
				minOccurs="0" maxOccurs="unbounded" >
				<xs:annotation>
					<xs:documentation>
						Submolecule (S-groups).
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<!-- TODO separation of attributes by Sgroups: with Schematron? -->
		<xs:attribute name="atomRefs" type="cxn:atomRefList">
			<xs:annotation>
				<xs:documentation>
					Reference to the atoms in the S-Groups.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="bondList" type="cxn:bondRefList">
			<xs:annotation>
				<xs:documentation>
					List of bonds
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="center" type="cxn:atomRef">
			<xs:annotation>
				<xs:documentation>
					Atom reference of center atom
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="charge" type="cxn:chargeName">
			<xs:annotation>
				<xs:documentation>
					Place of the charge. It's value can be "onAtoms"
					or "onBracket"
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="connect" type="cxn:connectionName">
			<xs:annotation>
				<xs:documentation>
					Type of monomer connection in case of copolymers.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="context" type="cxn:contextName">
			<xs:annotation>
				<xs:documentation>
					Context of the data field.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="correspondence" type="cxn:bondRefList">
			<xs:annotation>
				<xs:documentation>
					S-group correspondence
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="dataDetached" type="xs:boolean">
			<xs:annotation>
				<xs:documentation>
					Boolean type variable showing if the data is
					detached or not.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="displayedChars" type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>
					Number of characters displayed per line
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="displayedLines" type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>
					Number of the lines displayed
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="fieldData" type="xs:string"> <!-- TODO fieldData index? -->
			<xs:annotation>
				<xs:documentation>
					First field of the data.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="fieldData1" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Second field of the data
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="fieldData2" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Third field of the data
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="fieldData3" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Fourth field of the data
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="fieldData4" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Fifth field of the data
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="fieldData5" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Sixth field of the data
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="fieldData6" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Seventh field of the data
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="fieldData7" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Eighth field of the data
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="fieldData8" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Ninth field of the data
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="fieldData9" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Tenth field of the data
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="fieldName" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Name of the field in Data S-Groups.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="fieldType" type="cxn:fieldTypeName">
			<xs:annotation>
				<xs:documentation>
					Type of the field
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="id" use="required" type="xs:NCName">
			<xs:annotation>
				<xs:documentation>
					ID number of the S-group
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="labelCenter" type="cxn:labelCenterName">
			<xs:annotation>
				<xs:documentation>
					Defines the atom of the S-group 
					to which the bond points, 
					if flipping effect is not used.  
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="leftName" type="xs:string">
			<xs:annotation>
				<xs:documentation>
				    Alternative name of the abbreviated group
				    when flipping effect is used, and the name 
				    group is on the left hand side of the molecule.
				    (e.g. the leftName of "COOH" is HOOC).
  				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="molID" type="xs:NCName">
			<xs:annotation>
				<xs:documentation>
					ID number of the molecule in the MRV file.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="placement" type="cxn:placementName">
			<xs:annotation>
				<xs:documentation>
					Defines if the placement of the data is absolute
					or relative in data S-groups.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="pos" type="xs:integer">
			<xs:annotation>
				<xs:documentation>
					Identifies to which point of a rectangle this
					point is
					connected.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="queryOp" type="cxn:queryOpName">
			<xs:annotation>
				<xs:documentation>
					Query operator in data S-groups.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="queryType" type="cxn:queryTypeName">
			<xs:annotation>
				<xs:documentation>
					Name of the query bond type.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="rightName" type="xs:string">
			<xs:annotation>
				<xs:documentation>
				    Alternative name of the abbreviated group
				    when flipping effect is used, and the name 
				    group is on the right hand side of the molecule
				    (e.g. the rightName of "MeO" is OMe).
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="role" use="required" type="cxn:sgroupName">
			<xs:annotation>
				<xs:documentation>
					Name of the Sgroup type (e.g. SRU).
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="tag" type="cxn:tagName">
			<xs:annotation>
				<xs:documentation>
					Tag of the fieldData.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="title" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Title of the S-group. That is the string written
					in the subscript.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="units" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Unit of the data in Data S-group.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="unitsDisplayed" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					Shows if the unit of data is displayed in data
					S-group.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="x" type="xs:double">
			<xs:annotation>
				<xs:documentation>
					X coordinate.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="y" type="xs:double">
			<xs:annotation>
				<xs:documentation>
					Y coordinate.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
        <xs:attribute name="oneLetterName">
            <xs:annotation>
            	<xs:documentation>One letter name of an amino acid.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
				<xs:restriction base="cxn:oneLetterNameType">
					<xs:pattern value="[A-Z]"></xs:pattern>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
        <xs:attribute name="threeLetterName" type="cxn:threeLetterNameType">
            <xs:annotation>
                <xs:documentation>Three letter name of an amino acid.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="attachmentPointArrayType">
		<xs:sequence>
			<xs:element name="attachmentPoint" type="cxn:attachmentPointType"
				minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>
						AttachmentPoint of the Superatom S-group.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="attachmentPointType">
		<xs:annotation>
			<xs:documentation>
				Superatom S-group attachmentPoint.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="atom" use="required" type="cxn:atomRef">
			<xs:annotation>
				<xs:documentation>
					The atom on which the attachment point is placed.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="order" use="required">
			<xs:annotation>
				<xs:documentation>
					The order of the attachment point.
				</xs:documentation>
			</xs:annotation>
			<xs:simpleType>
				<xs:restriction base="xs:int">
					<xs:minInclusive value="1"></xs:minInclusive>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="bond" type="cxn:bondRef" use="optional">
			<xs:annotation>
				<xs:documentation>
					The crossing bond of the attachment point.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="crossingBondType" use="optional">
			<xs:annotation>
				<xs:documentation>
						The type of the crossing bond.
				</xs:documentation>
			</xs:annotation>
			<xs:simpleType>
				<xs:annotation>
					<xs:documentation></xs:documentation>
				</xs:annotation>
				<xs:restriction base="xs:int">
					<xs:maxInclusive value="3"></xs:maxInclusive>
					<xs:minInclusive value="1"></xs:minInclusive>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>



	<xs:simpleType name="atomRefList">
		<xs:annotation>
			<xs:documentation>
				This argument is a space separated list of atoms.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:atomRef" />
	</xs:simpleType>

	<xs:simpleType name="atomRef">
		<xs:annotation>
			<xs:documentation>
				Reference of the atom.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:pattern value="a([0-9])+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="bondRefList">
		<xs:annotation>
			<xs:documentation>
				This argument is a space separated list of bonds
				references.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:bondRef" />
	</xs:simpleType>

	<xs:simpleType name="bondRef">
		<xs:annotation>
			<xs:documentation>
				Bond references
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:pattern value="b[1-9]\d*" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="connectionName">
		<xs:annotation>
			<xs:documentation>
				Name of the connection
				which can be
				<i>ht</i>
				,
				<i>hh</i>
				or
				<i>eu</i>
				. (??)
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="ht" />
			<xs:enumeration value="hh" />
			<xs:enumeration value="eu" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="chargeName">
		<xs:annotation>
			<xs:documentation>
				The place of the charge (on atoms or on bracket).
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="onAtoms" />
			<xs:enumeration value="onBracket" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="contextName">
		<xs:annotation>
			<xs:documentation>
				Context in case of data Sgroup.
			</xs:documentation>
		</xs:annotation>
		<xs:union memberTypes="xs:string cxn:defaultContextNames" />
	</xs:simpleType>

	<xs:simpleType name="defaultContextNames">
		<xs:annotation>
			<xs:documentation>
				List of default context names in Marvin.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="Atom" />
			<xs:enumeration value="Bond" />
			<xs:enumeration value="Single Bond" />
			<xs:enumeration value="Double Bond" />
			<xs:enumeration value="Fragment" />
			<xs:enumeration value="Group" />
			<xs:enumeration value="Group (Selection)" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="fieldTypeName">
		<xs:annotation>
			<xs:documentation>
				Value of the fieldType which can be:
				<i>F</i>
				if formatted,
				<i>T</i>
				if text,
				<i>N</i>
				if numeric or
				<i>U</i>
				if URL.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="F" /> <!-- formatted -->
			<xs:enumeration value="T" /> <!-- text -->
			<xs:enumeration value="N" /> <!-- numeric -->
			<xs:enumeration value="U" /> <!-- URL -->
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="labelCenterName">
		<xs:annotation>
			<xs:documentation>
				Value of the label center, which can be
				"Auto" or a
				string number between 0 and 9.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="AUTO|([0-9])*" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="placementName">
		<xs:annotation>
			<xs:documentation>
				Placement field of data Sgroup.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="Relative" />
			<xs:enumeration value="Absolute" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="queryOpName">
		<xs:annotation>
			<xs:documentation>
				Name of the query operators.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="between" />
			<xs:enumeration value="like" />
			<xs:enumeration value="contains" />
			<xs:enumeration value="&lt;" />
			<xs:enumeration value="&lt;=" />
			<xs:enumeration value="&gt;" />
			<xs:enumeration value="&gt;=" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="queryTypeName">
		<xs:annotation>
			<xs:documentation>
				Name of query bond type.
			</xs:documentation>
		</xs:annotation>

		<xs:restriction base="xs:string">
			<xs:enumeration value="mQ" />
			<xs:enumeration value="MQ" />
			<xs:enumeration value="IQ" />
			<xs:enumeration value="&lt;P&gt;Q" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="sgroupName">
		<xs:annotation>
			<xs:documentation>
				Name of the Sgroup.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="Sgroup" />
			<xs:enumeration value="SuperatomSgroup" />
			<xs:enumeration value="MultipleSgroup" />
			<xs:enumeration value="DataSgroup" />
			<xs:enumeration value="ComponentSgroup" />
			<xs:enumeration value="MixtureSgroup" />
			<xs:enumeration value="FormulationSgroup" />
			<xs:enumeration value="SruSgroup" />
			<xs:enumeration value="MulticenterSgroup" />
			<xs:enumeration value="GenericSgroup" />
			<xs:enumeration value="MerSgroup" />
			<xs:enumeration value="MonomerSgroup" />
			<xs:enumeration value="AnyPolymerSgroup" />
			<xs:enumeration value="AlternatingCopolymerSgroup" />
			<xs:enumeration value="BlockCopolymerSgroup" />
			<xs:enumeration value="RandomCopolymerSgroup" />
			<xs:enumeration value="CopolymerSgroup" />
			<xs:enumeration value="CrosslinkSgroup" />
			<xs:enumeration value="GraftSgroup" />
			<xs:enumeration value="ModificationSgroup" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tagName">
		<xs:annotation>
			<xs:documentation>
				Tag name.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="[A-Za-z0-9]" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="atomArrayType">
		<xs:annotation>
			<xs:documentation>Array atom type.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="atom" type="cxn:atomType" minOccurs="0"
				maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Atom type.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="atomID" type="cxn:atomRefList">
			<xs:annotation>
				<xs:documentation>
					This argument is a space separated list of atoms.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
        <xs:attribute name="attachmentOrder"
			type="cxn:nonNegativeIntegerList">
			<xs:annotation>
				<xs:documentation>
					Attachment point order value in the case of R-group
					attachment point.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="attachmentPoint"
			type="cxn:attachmentPointList">
			<xs:annotation>
				<xs:documentation>
					List of attachment points.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="elementType" type="cxn:elementTypeList">
			<xs:annotation>
				<xs:documentation>
					Element in the Periodic Table.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="formalCharge" type="cxn:integerList">
			<xs:annotation>
				<xs:documentation>
					It is the charge assigned to an atom in a molecule,
					assuming that electrons in a chemical bond are
					shared equally between atoms, regardless of relative
					electronegativity.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="hydrogenCount"
			type="cxn:nonNegativeIntegerList">
			<xs:annotation>
				<xs:documentation>
					Number of implicit hydrogen if needed. In the cases
					of 5-6 membered aromatic rings containing nitrogen
					atoms, it is not obvious which N atoms have implicit
					hydrogens.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="isSelected" type="cxn:booleanList">
			<xs:annotation>
				<xs:documentation>
					Boolean type variable which shows that the object is
					selected or not.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="isotope" type="cxn:nonNegativeIntegerList">
			<xs:annotation>
				<xs:documentation>Atomic mass number.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
        <xs:attribute name="lonePair" type="cxn:nonNegativeIntegerList">
			<xs:annotation>
				<xs:documentation>
					Number of lone pairs.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvAlias" type="cxn:tokenList">
			<xs:annotation>
				<xs:documentation>Atom alias.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvExtraLabel" type="cxn:tokenList">
			<xs:annotation>
				<xs:documentation>
					List of Atom extra labels.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvLinkNodeOut" type="cxn:linkNodeList">
			<xs:annotation>
				<xs:documentation>
					Outer bond references for a link node in comma
					separated list of bond indices (amongst bonds of the
					link atom) leading to the outer atoms (non-repeating
					neighbours) of the link nodes, "-" means no outer
					bonds.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvLinkNodeRep"
			type="cxn:linkNodeRepetitionCountList">
			<xs:annotation>
				<xs:documentation>
					Number of repetitions for a link node in format
					&quot;
					<i>n</i>
					&quot; (maximum number of repetitions) or &quot;
					<i>m</i>
					-
					<i>n</i>
					&quot; (minimum and maximum).
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvMap" type="cxn:nonNegativeIntegerList">
			<xs:annotation>
				<xs:documentation>
					The map corresponding to the given atom
					<a
						href="http://www.chemaxon.com/marvin-archive/3.5.7/marvin/chemaxon/marvin/help/sketch-chem.html#mapping">
						mapping
					</a>
					.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvPseudo" type="cxn:tokenList">
			<xs:annotation>
				<xs:documentation>
					List of pseudoatom names.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvQueryProps" type="cxn:queryPropsList">
			<xs:annotation>
				<xs:documentation>
					List of query atom properties
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvSetExtraLabelSeq"
			type="cxn:nonNegativeIntegerList">
			<xs:annotation>
				<xs:documentation>
					Atom set extra label numbers.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvSetSeq" type="cxn:nonNegativeIntegerList">
			<xs:annotation>
				<xs:documentation>
					Atom set sequence number.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvSpecIsotopeSymbolPreferred"
			type="cxn:zeroOneList">
			<xs:annotation>
				<xs:documentation>
					Special symbols are preferred for Hydrogen isotopes
					(D, T) if the value is 1, normal element symbol (H)
					is used if the value is 0.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvStereoGroup" type="cxn:mrvStereoGroupList">
			<xs:annotation>
				<xs:documentation>
					MDL enchanced stereo group representation.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvValence" type="cxn:valenceList">
			<xs:annotation>
				<xs:documentation>Valence list.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="radical" type="cxn:radicalList">
			<xs:annotation>
				<xs:documentation>
					List of the radicals.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="reactionStereo" type="cxn:reactionStereoList">
			<xs:annotation>
				<xs:documentation>
					List of reaction stereo properties.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="residueAtomName"
			type="cxn:nonNegativeIntegerList">
			<xs:annotation>
				<xs:documentation>PDB atom name.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="residueId" type="cxn:residueIdList">
			<xs:annotation>
				<xs:documentation>
					List of residue Ids.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="residueType" type="cxn:residueTypeList">
			<xs:annotation>
				<xs:documentation>
					List of residue types.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="rgroupRef" type="cxn:nonNegativeIntegerList">
			<xs:annotation>
				<xs:documentation>
					List of R-group reference values.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="sgroupAttachmentPoint"
			type="cxn:attachmentPointList">
			<xs:annotation>
				<xs:documentation>
					List of attachment points.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="sgroupRef" type="cxn:sgroupRefList">
			<xs:annotation>
				<xs:documentation>
					List of S-group references.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="x2" type="cxn:doubleList">
			<xs:annotation>
				<xs:documentation>
					X coordinates in two-dimensional representation.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="x3" type="cxn:doubleList">
			<xs:annotation>
				<xs:documentation>
					X coordinates in three-dimensional representation.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="y2" type="cxn:doubleList">
			<xs:annotation>
				<xs:documentation>
					Y coordinates in two-dimensional representation.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="y3" type="cxn:doubleList">
			<xs:annotation>
				<xs:documentation>
					Y coordinates in three-dimensional representation.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="z3" type="cxn:doubleList">
			<xs:annotation>
				<xs:documentation>
					Z coordinates in three-dimensional representation.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:simpleType name="nonNegativeIntegerList">
		<xs:annotation>
			<xs:documentation>
				List containing non-negative integer numbers.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="xs:nonNegativeInteger" />
	</xs:simpleType>

	<xs:simpleType name="integerList">
		<xs:annotation>
			<xs:documentation>
				List containing integer numbers.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="xs:integer" />
	</xs:simpleType>

	<xs:simpleType name="booleanList">
	<xs:annotation>
			<xs:documentation>
				List containing boolean values.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="xs:boolean" />
	</xs:simpleType>

	<xs:simpleType name="tokenList">
		<xs:annotation>
			<xs:documentation>
				List containing tokens.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="xs:token" />
	</xs:simpleType>

	<xs:simpleType name="linkNodeRepetitionCountList">
		<xs:annotation>
			<xs:documentation>
				List containing link node repetition ranges.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:linkNodeRepetitionCount" />
	</xs:simpleType>

	<xs:simpleType name="linkNodeRepetitionCount">
		<xs:annotation>
			<xs:documentation>
				Repetition count of a link node atom.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:pattern value="([0-9])+(-([0-9])+)*" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="linkNodeList">
		<xs:annotation>
			<xs:documentation>
				List containing link nodes.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:listLinkNode" />
	</xs:simpleType>

	<xs:simpleType name="listLinkNode">
		<xs:annotation>
			<xs:documentation>
				Element of linkNodeList.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:pattern value="a([0-9])+,a([0-9])+|-" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="queryPropsList">
		<xs:annotation>
			<xs:documentation>
				List of query properties.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:queryProp" />
	</xs:simpleType>

	<xs:simpleType name="queryProp">
		<xs:annotation>
			<xs:documentation>
				Query atom properties.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<!-- TODO finish restriction according to jchem query guide -->
			<!-- <xs:pattern value="0|((A|Q|(L([,!](Ac|Al|Ag|Am|Ar|As|At|Au|B|Ba|Bh|Bi|Be|Bk|Br|C|Ca|Cd|Ce|Cf|Cl|Cm|Co|Cr|Cs|Cu|Db|Dy|Er|Es|Eu|F|Fe|Fm|Fr|Ga|Gd|Ge|H|He|Hf|Hg|Ho|Hs|I|In|Ir|K|Kr|La|Li|Lr|Lu|Md|Mg|Mn|Mo|Mt|N|Na|Nb|Nd|Ne|Ni|No|Np|O|Os|P|Pa|Pb|Pd|Pm|Po|Pr|Pt|Pu|Ra|Rb|Re|Rf|Rh|Rn|Ru|S|Sb|Sc|Se|Sg|Si|Sm|Sn|Sr|Ta|Tb|Tc|Te|Th|Ti|Tl|Tm|U|Uun|Uuu|Uub|Uut|Uuq|Uup|Uuh|Uus|Uuo|V|W|Xe|Y|Yb|Zn|Zr))+)):)?(([HhXDRrauv][0-9]+|s([0-9]+|\*)|rb([0-9]+|\*))|;)*(str:.+)?" 
				/> -->
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="valenceList">
		<xs:annotation>
			<xs:documentation>
				List of valences.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:valenceValue" />
	</xs:simpleType>

	<xs:simpleType name="valenceValue">
		<xs:annotation>
			<xs:documentation>
				Element of valenceList.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:pattern value="([0-9])+|-" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="attachmentPointList">
		<xs:annotation>
			<xs:documentation>
				List of attachment points.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:attachmentPointValue" />
	</xs:simpleType>

	<xs:simpleType name="attachmentPointValue">
		<xs:annotation>
			<xs:documentation>
				S-group attachment point value: "1", (on first
				site) "2"
				(on second site) or "both" (on both sites).
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:pattern value="0|1|2|3|both" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="zeroOneList">
		<xs:annotation>
			<xs:documentation>
				List of special symbols
				are preferred for Hydrogen
				isotopes (D, T) if the value
				is 1, normal element symbol (H) is used
				if the value is
			0.
			</xs:documentation>
		</xs:annotation>

		<xs:list itemType="cxn:zeroOne" />
	</xs:simpleType>
	<xs:simpleType name="zeroOne">
		<xs:annotation>
			<xs:documentation>
				Special symbols
				are preferred for Hydrogen isotopes
				(D, T) if the value
				is 1, normal element symbol (H) is used if the
				value is
			0.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:nonNegativeInteger">
			<xs:enumeration value="0" />
			<xs:enumeration value="1" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="mrvStereoGroupList">
		<xs:annotation>
			<xs:documentation>
				List containing Mrv Stereo Group Names.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:listMrvStereoGroupName" />
	</xs:simpleType>

	<xs:simpleType name="listMrvStereoGroupName">
		<xs:annotation>
			<xs:documentation>
				MDL enhanced stereo representation. Possible
				values: abs, or[number], and[number]
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:pattern value="abs|or[0-9]+|and[0-9]+|0" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="radicalList">
		<xs:annotation>
			<xs:documentation>
				List of the radicals. 
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:radicalName" />
	</xs:simpleType>

	<xs:simpleType name="radicalName">
		<xs:annotation>
			<xs:documentation>
				Name of the radical center.
			</xs:documentation>
		</xs:annotation>

		<xs:union memberTypes="xs:nonNegativeInteger cxn:namedRadicalValue" />
	</xs:simpleType>

	<xs:simpleType name="namedRadicalValue">
		<xs:annotation>
			<xs:documentation>
				Name of the radical center.
		</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:NCName">
			<xs:enumeration value="monovalent" />
			<xs:enumeration value="divalent" />
			<xs:enumeration value="divalent1" />
			<xs:enumeration value="divalent3" />
			<xs:enumeration value="triplet" />
			<xs:enumeration value="trivalent" />
			<xs:enumeration value="trivalent2" />
			<xs:enumeration value="trivalent4" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="reactionStereoList">
		<xs:annotation>
			<xs:documentation>
				List of reaction stereo properties.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:listReactionStereoName" />
	</xs:simpleType>

	<xs:simpleType name="listReactionStereoName">
		<xs:annotation>
			<xs:documentation>
				List of reaction stereo names.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="Inv" />
			<xs:enumeration value="Ret" />
			<xs:enumeration value="0" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="residueIdList">
		<xs:annotation>
			<xs:documentation>
				List of residue Ids.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:residueIdName" />
	</xs:simpleType>

	<xs:simpleType name="residueIdName">
		<xs:annotation>
			<xs:documentation>
				Name of residue Id.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:pattern value="r([0-9])+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="residueTypeList">
		<xs:annotation>
			<xs:documentation>
				List of residue types.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:residueTypeName" />
	</xs:simpleType>

	<xs:simpleType name="residueTypeName">
		<xs:annotation>
			<xs:documentation>
				Name of residue type.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern
				value="UNK[0-9]*|[ACGTIU]|\+[ACGTIU]|Ala|Arg|Asn|Asp|Cys|Gln|Glu|Gly|His|Ile|Leu|Lys|Met|Phe|Pro|Ser|Thr|Trp|Tyr|Val|Asx|Glx" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="sgroupRefList">
		<xs:annotation>
			<xs:documentation>
				List of S-group references.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:listSgroupRefName" />
	</xs:simpleType>

	<xs:simpleType name="listSgroupRefName">
		<xs:annotation>
			<xs:documentation>
				List of S-group reference names.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:pattern value="(aa|sg)([0-9])+|0" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="elementTypeList">
		<xs:annotation>
			<xs:documentation>
				List containing atom labels.
			</xs:documentation>
		</xs:annotation>
		<xs:list itemType="cxn:elementTypeName" />
	</xs:simpleType>

	<xs:simpleType name="elementTypeName">
		<xs:annotation>
			<xs:documentation>
				Element of elementTypeList.
			</xs:documentation>
		</xs:annotation>
		<xs:union memberTypes="cxn:basicElementName cxn:specialElementName" />
	</xs:simpleType>

	<xs:simpleType name="basicElementName">
		<xs:annotation>
			<xs:documentation>
				Symbol of basic elements.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="Ac" />
			<xs:enumeration value="Al" />
			<xs:enumeration value="Ag" />
			<xs:enumeration value="Am" />
			<xs:enumeration value="Ar" />
			<xs:enumeration value="As" />
			<xs:enumeration value="At" />
			<xs:enumeration value="Au" />
			<xs:enumeration value="B" />
			<xs:enumeration value="Ba" />
			<xs:enumeration value="Bh" />
			<xs:enumeration value="Bi" />
			<xs:enumeration value="Be" />
			<xs:enumeration value="Bk" />
			<xs:enumeration value="Br" />
			<xs:enumeration value="C" />
			<xs:enumeration value="Ca" />
			<xs:enumeration value="Cd" />
			<xs:enumeration value="Ce" />
			<xs:enumeration value="Cf" />
			<xs:enumeration value="Cl" />
			<xs:enumeration value="Cm" />
			<xs:enumeration value="Co" />
			<xs:enumeration value="Cr" />
			<xs:enumeration value="Cs" />
			<xs:enumeration value="Cu" />
			<xs:enumeration value="Db" />
			<xs:enumeration value="Dy" />
			<xs:enumeration value="Er" />
			<xs:enumeration value="Es" />
			<xs:enumeration value="Eu" />
			<xs:enumeration value="F" />
			<xs:enumeration value="Fe" />
			<xs:enumeration value="Fm" />
			<xs:enumeration value="Fr" />
			<xs:enumeration value="Ga" />
			<xs:enumeration value="Gd" />
			<xs:enumeration value="Ge" />
			<xs:enumeration value="H" />
			<xs:enumeration value="He" />
			<xs:enumeration value="Hf" />
			<xs:enumeration value="Hg" />
			<xs:enumeration value="Ho" />
			<xs:enumeration value="Hs" />
			<xs:enumeration value="I" />
			<xs:enumeration value="In" />
			<xs:enumeration value="Ir" />
			<xs:enumeration value="K" />
			<xs:enumeration value="Kr" />
			<xs:enumeration value="La" />
			<xs:enumeration value="Li" />
			<xs:enumeration value="Lr" />
			<xs:enumeration value="Lu" />
			<xs:enumeration value="Md" />
			<xs:enumeration value="Mg" />
			<xs:enumeration value="Mn" />
			<xs:enumeration value="Mo" />
			<xs:enumeration value="Mt" />
			<xs:enumeration value="N" />
			<xs:enumeration value="Na" />
			<xs:enumeration value="Nb" />
			<xs:enumeration value="Nd" />
			<xs:enumeration value="Ne" />
			<xs:enumeration value="Ni" />
			<xs:enumeration value="No" />
			<xs:enumeration value="Np" />
			<xs:enumeration value="O" />
			<xs:enumeration value="Os" />
			<xs:enumeration value="P" />
			<xs:enumeration value="Pa" />
			<xs:enumeration value="Pb" />
			<xs:enumeration value="Pd" />
			<xs:enumeration value="Pm" />
			<xs:enumeration value="Po" />
			<xs:enumeration value="Pr" />
			<xs:enumeration value="Pt" />
			<xs:enumeration value="Pu" />
			<xs:enumeration value="Ra" />
			<xs:enumeration value="Rb" />
			<xs:enumeration value="Re" />
			<xs:enumeration value="Rf" />
			<xs:enumeration value="Rh" />
			<xs:enumeration value="Rn" />
			<xs:enumeration value="Ru" />
			<xs:enumeration value="S" />
			<xs:enumeration value="Sb" />
			<xs:enumeration value="Sc" />
			<xs:enumeration value="Se" />
			<xs:enumeration value="Sg" />
			<xs:enumeration value="Si" />
			<xs:enumeration value="Sm" />
			<xs:enumeration value="Sn" />
			<xs:enumeration value="Sr" />
			<xs:enumeration value="Ta" />
			<xs:enumeration value="Tb" />
			<xs:enumeration value="Tc" />
			<xs:enumeration value="Te" />
			<xs:enumeration value="Th" />
			<xs:enumeration value="Ti" />
			<xs:enumeration value="Tl" />
			<xs:enumeration value="Tm" />
			<xs:enumeration value="U" />
			<xs:enumeration value="Uun" />
			<xs:enumeration value="Uuu" />
			<xs:enumeration value="Uub" />
			<xs:enumeration value="Uut" />
			<xs:enumeration value="Uuq" />
			<xs:enumeration value="Uup" />
			<xs:enumeration value="Uuh" />
			<xs:enumeration value="Uus" />
			<xs:enumeration value="Uuo" />
			<xs:enumeration value="V" />
			<xs:enumeration value="W" />
			<xs:enumeration value="Xe" />
			<xs:enumeration value="Y" />
			<xs:enumeration value="Yb" />
			<xs:enumeration value="Zn" />
			<xs:enumeration value="Zr" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="specialElementName">
		<xs:annotation>
			<xs:documentation>
				Symbols of special elements (e.g., X = multicenter
				atom).
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="R" /> <!-- R-group atom -->
			<xs:enumeration value="X" /> <!-- Multicenter atom -->
			<xs:enumeration value="LP" /> <!-- Lone pair -->
			<xs:enumeration value="*" /> <!-- Star atom of polymers and R-group attachment point -->
		</xs:restriction>
	</xs:simpleType>

	
	<xs:complexType name="atomType">
		<xs:annotation>
			<xs:documentation>Atom type.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="atomParity" type="cxn:atomParityType"
				minOccurs="0">
				<xs:annotation>
					<xs:documentation>Atom parity.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="scalar" type="cxn:atomScalarPropertyType"
				minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>
						List of the atom special scalar properties.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="atomBicycloStereo"
				type="cxn:atomBicycloStereoType" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>
						Bicyclostereo (endo- exo-) information of the
						atom. Possible values: If the ligand is oriented
						towards the bridge that contains the higer
						atomic index, it gets the THB (Towards Higher
						Bridge) label; if it's oriented towards the
						other bridge it gets the TLB (Towards Lower
						Bridge) label; if the position is undefined, it
						gets either value.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>

		<xs:attribute name="attachmentOrder"
			type="xs:positiveInteger">
			<xs:annotation>
				<xs:documentation>
					Attachment point order value in the case of R-group
					attachment point.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="attachmentPoint"
			type="cxn:attachmentPointValue">
			<xs:annotation>
				<xs:documentation>
					Attachment point value.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
        <xs:attribute name="elementType" use="required"
			type="cxn:elementTypeName">
			<xs:annotation>
				<xs:documentation>
					Element in the Periodic Table.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>

		<xs:attribute name="formalCharge" type="xs:integer">
			<xs:annotation>
				<xs:documentation>
					It is the charge assigned to an atom in a molecule,
					assuming that electrons in a chemical bond are
					shared equally between atoms, regardless of relative
					electronegativity.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="hydrogenCount"
			type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>
					Number of implicit hydrogen if needed. In the cases
					of 5-6 membered aromatic rings containing nitrogen
					atoms, it is not obvious which N atoms have implicit
					hydrogens.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="id" use="required" type="xs:NCName">
			<xs:annotation>
				<xs:documentation>Atom ID.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="isotope" type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>Atomic mass number.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="isSelected" type="xs:boolean">
			<xs:annotation>
				<xs:documentation>
					Boolean type variable which shows that the object is
					selected or not.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
        <xs:attribute name="ligandOrder" type="cxn:atomRefList">
			<xs:annotation>
				<xs:documentation>
					Order of ligands connected to an R-group atom: list
					of atom identifiers.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="lonePair" type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>
					Number of lone pairs.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvAlias" type="xs:string">
			<xs:annotation>
				<xs:documentation>Atom alias.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvExtraLabel" type="xs:token">
			<xs:annotation>
				<xs:documentation>Atom extra label.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvLinkNodeOut" type="cxn:linkNode">
			<xs:annotation>
				<xs:documentation>
					Outer bond references for a link node in comma
					separated list of bond indices (amongst bonds of the
					link atom) leading to the outer atoms (non-repeating
					neighbours) of the link nodes, "-" means no outer
					bonds.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvLinkNodeRep"
			type="cxn:linkNodeRepetitionCount">
			<xs:annotation>
				<xs:documentation>
					Number of repetitions for a link node in format
					&quot;
					<i>n</i>
					&quot; (maximum number of repetitions) or &quot;
					<i>m</i>
					-
					<i>n</i>
					&quot; (minimum and maximum).
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvMap" type="xs:positiveInteger">
			<xs:annotation>
				<xs:documentation>
					The map corresponding to the given atom
					<a
						href="http://www.chemaxon.com/marvin-archive/3.5.7/marvin/chemaxon/marvin/help/sketch-chem.html#mapping">
						mapping.
					</a>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvPseudo" type="xs:NCName">
			<xs:annotation>
				<xs:documentation>Pseudoatom name.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvQueryProps" type="cxn:queryProp">
			<xs:annotation>
				<xs:documentation>
					Query atom properties.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvSetExtraLabelSeq"
			type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>
					Atom set extra label numbers.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvSetSeq" type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>
					Atom set sequence number.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvSpecIsotopeSymbolPreferred"
			type="cxn:zeroOne">
			<xs:annotation>
				<xs:documentation>
					Special symbols are preferred for Hydrogen isotopes
					(D, T) if the value is 1, normal element symbol (H)
					is used if the value is 0.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvStereoGroup" type="cxn:mrvStereoGroupName">
			<xs:annotation>
				<xs:documentation>
					MDL enchanced stereo group representation.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvValence" type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>Valence.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="radical" type="cxn:radicalName">
			<xs:annotation>
				<xs:documentation>
					Name of the radical center.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="reactionStereo" type="cxn:reactionStereoName">
			<xs:annotation>
				<xs:documentation>
					Reaction stereo value.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="residueAtomName"
			type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>PDB atom name.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="residueId" type="cxn:residueIdName">
			<xs:annotation>
				<xs:documentation>Name of residue ID.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="residueType" type="cxn:residueTypeName">
			<xs:annotation>
				<xs:documentation>
					Name of residue type
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="rgroupRef" type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>
					R-group reference value.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="sgroupAttachmentPoint"
			type="cxn:attachmentPointValue">
			<xs:annotation>
				<xs:documentation>
					S-group attachment point: "1", (on first site) "2"
					(on second site) or "both" (on both sites).
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="sgroupRef" type="cxn:sgroupRefName">
			<xs:annotation>
				<xs:documentation>
					S-group reference name.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="x2" type="xs:double">
			<xs:annotation>
				<xs:documentation>
					X coordinates in two-dimensional representation.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="y2" type="xs:double">
			<xs:annotation>
				<xs:documentation>
					Y coordinates in two-dimensional representation.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="x3" type="xs:double">
			<xs:annotation>
				<xs:documentation>
					X coordinates in three-dimensional representation.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="y3" type="xs:double">
			<xs:annotation>
				<xs:documentation>
					Y coordinates in three-dimensional representation.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="z3" type="xs:double">
			<xs:annotation>
				<xs:documentation>
					Z coordinates in three-dimensional representation.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	
	<xs:simpleType name="charL">
		<xs:annotation>
			<xs:documentation>
				Character that could be only L
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="l" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="linkNode">
		<xs:annotation>
			<xs:documentation>
				Value containing two atomIDs separated by a comma.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="a([0-9])+,a([0-9])+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="mrvStereoGroupName">
		<xs:annotation>
			<xs:documentation>
				Sting conatining "abs", "or[0-9]+" or "and[0-9]+". 
							</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="abs|or[0-9]+|and[0-9]+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="reactionStereoName">
		<xs:annotation>
			<xs:documentation>
			 Reaction stereo value.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="Inv" />
			<xs:enumeration value="Ret" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="atomScalarPropertyType" mixed="true">
		<xs:annotation>
			<xs:documentation>
				Atom Scalar Property Type
			</xs:documentation>
		</xs:annotation>

		<xs:attribute name="convention" type="cxn:atomConventionName">
			<xs:annotation>
				<xs:documentation>
					Name of the convention where the property is being
					interpeted.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="dataType" use="optional"
			type="cxn:dataTypeName">
			<xs:annotation>
				<xs:documentation>
					Type of the property.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="id" type="cxn:atomPropID">
			<xs:annotation>
				<xs:documentation>
					ID of the atom property.

				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="title" use="required" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					String usually same as string.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>

	</xs:complexType>

	<xs:simpleType name="atomConventionName">
		<xs:annotation>
			<xs:documentation>
				Name of the convention where the property is being
				interpreted.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="atomprop" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="atomPropID">
		<xs:annotation>
			<xs:documentation>
				ID of the atom property.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="a([0-9])+.prop([0-9])+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="atomParityType">
		<xs:annotation>
			<xs:documentation>
				Atom parity type.
			</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:integer">
			<xs:attribute name="atomRefs4" use="required" type="cxn:listOf4AtomRefs" >
				<xs:annotation>
			<xs:documentation>
							Represents the parity value of the stereocenter
							according to the given four
							atom reference frame.
			</xs:documentation>
			</xs:annotation>
			</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:simpleType name="listOf4AtomRefs">
		<xs:annotation>
			<xs:documentation>
				List of the four atom arround the stereocenter
				(a1,a2,a3,a4).
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="cxn:atomRefList">
			<xs:length value="4" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="atomBicycloStereoType">
		<xs:annotation>
			<xs:documentation>
				Bicyclostereo (endo- exo-) information of the atom.
				Possible values: If the ligand
				is oriented towards the bridge that
				contains the higer atomic index,
				it gets the THB (Towards Higher
				Bridge) label; if it's oriented
				towards the other bridge it gets the
				TLB (Towards Lower Bridge)
				label; if the position is undefined, it
				gets either value.
			</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="cxn:atomBicycloValue">
				<xs:attribute name="connectionAtom" use="required"
					type="cxn:atomRef" >
					<xs:annotation>
						<xs:documentation>
						The ID of the connecting atom. 
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="highBridge" use="required" type="cxn:bridgeAtomRefList" >
				<xs:annotation>
						<xs:documentation>
						The atom reference list of the high bridge.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="lowBridge" use="required" type="cxn:bridgeAtomRefList" >
				<xs:annotation>
						<xs:documentation>
						The atom reference list of the low bridge.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:simpleType name="atomBicycloValue">
		<xs:annotation>
			<xs:documentation>
				Atom bicyclo value: It can be higher, lower and
				either. Bicyclostereo (endo- exo-) information of the atom. Possible
				values: If the ligand is oriented towards the bridge that contains
				the higer atomic index, it gets the THB (Towards Higher Bridge)
				label; if it's oriented towards the other bridge it gets the TLB
				(Towards Lower Bridge) label; if the position is undefined, it gets
				either value.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="either" />
			<xs:enumeration value="higher" />
			<xs:enumeration value="lower" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="bridgeAtomRefList">
		<xs:annotation>
			<xs:documentation>
				Atom reference list of the bridge.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="cxn:atomRefList">
			<xs:maxLength value="6" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="sgroupRefName">
		<xs:annotation>
			<xs:documentation>
				S-group reference name.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:pattern value="(aa|sg)([0-9])+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="bondArrayType">
		<xs:annotation>
			<xs:documentation>
				Type of bond array.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="bond" type="cxn:bondType" minOccurs="0"
				maxOccurs="unbounded" />
			
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="bondType">
		<xs:annotation>
			<xs:documentation>Bond type.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="bondStereo" type="cxn:bondStereoType"
				minOccurs="0" />
			<xs:element name="scalar" type="cxn:bondScalarPropertyType"
				minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>
						List of the bond special scalar properties.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="id" type="cxn:bondRef" use="required">

            <xs:annotation>
            	<xs:documentation>
					The id of the bond.</xs:documentation>
            </xs:annotation>
		</xs:attribute>
		<xs:attribute name="atomRefs2" use="required"
			type="cxn:listOf2AtomRefs">
			<xs:annotation>
				<xs:documentation>
					List containing two atom references (a1,a2).
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="convention" type="cxn:bondConvention">
			<xs:annotation>
				<xs:documentation>
					A number referring the MDL stereo type of the bond or
					"cxn:coord" in case of coordinative bond, "cxn:hydrogen"
					in case of hydrogen bond.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvBold" type="xs:boolean">
			<xs:annotation>
				<xs:documentation>
					Bold bond attribute.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvHashed" type="xs:boolean">
			<xs:annotation>
				<xs:documentation>
					Hashed bond attribute.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvQueryProps" type="cxn:bondQueryProp">
			<xs:annotation>
				<xs:documentation>
					Query bond properties.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvReactingCenter" type="xs:integer">
			<xs:annotation>
				<xs:documentation>
					<a
						href="http://www.chemaxon.com/jchem/doc/user/query_reactionsearch.html#reactingcenter">
						Reacting center bond query feature
					</a>
					. Possible values: -1: not center, 1: center, 4:
					make or break, 8: change, 12: make and change.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvReactionCenter" type="xs:integer">
			<xs:annotation>
				<xs:documentation></xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mrvSetSeq" type="xs:integer">
			<xs:annotation>
				<xs:documentation>
					Atom set sequence number.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="order" type="cxn:bondOrderName">
			<xs:annotation>
				<xs:documentation>
					Name of bond order (e.g., single, double, triple,
					aromatic etc.).
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="queryType" type="cxn:bondQueryTypeName">
			<xs:annotation>
				<xs:documentation>
					Name of query bond type.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="topology" type="cxn:bondTopologyName">
			<xs:annotation>
				<xs:documentation>
					Defines that the bond is a part of a ring or a
					chain.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>

	</xs:complexType>

	<xs:simpleType name="listOf2AtomRefs">
		<xs:annotation>
			<xs:documentation>
				List containing two atom references (a1,a2).
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="cxn:atomRefList">
			<xs:length value="2" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="bondConvention">
		<xs:annotation>
			<xs:documentation>
				A number refering the MDL stereo type of the bond
				or "cxn:coord" in case of coordinative bond, "cxn:hydrogen"
				in case of hydrogen bond.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:pattern value="cxn:coord|cxn:hydrogen|[0-9]+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="bondQueryProp">
		<xs:annotation>
			<xs:documentation>
				Query bond properties.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="str:.+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="bondOrderName">
		<xs:annotation>
			<xs:documentation>
				Name of bond order (e.g., single, double, triple,
				aromatic etc.).
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="S|D|T|A|COORD|[0-9]+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="bondQueryTypeName">
		<xs:annotation>
			<xs:documentation>
				Name of query bond type.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="SD|SA|DA|Any|[0-9]+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="bondTopologyName">
		<xs:annotation>
			<xs:documentation>
				The possible bond topology.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="ring" />
			<xs:enumeration value="chain" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="bondStereoType">
		<xs:annotation>
			<xs:documentation>
				Tag containes the stereo properties of the bond.
			</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="cxn:bondStereoValue">
				<xs:attribute name="convention" type="cxn:stereoConventionName" >
				<xs:annotation>
						<xs:documentation>
							Stereo representation framework type.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="conventionValue" type="cxn:stereoConventionValue">
					<xs:annotation>
						<xs:documentation>
							Stereo Convention Value: It can be
							MDLStereoValue or
							ChemAxonStereoValue.
					</xs:documentation>
				</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:simpleType name="bondStereoValue">
		<xs:annotation>
			<xs:documentation>
				Possible values of bond stereo properties
				(W:wedged, H:hashed; C:cis; T:trans).
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="" />
			<xs:enumeration value="W" />
			<xs:enumeration value="H" />
			<xs:enumeration value="C" />
			<xs:enumeration value="T" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="stereoConventionName">
		<xs:annotation>
			<xs:documentation>
				Stereo representation framework type.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:NCName">
			<xs:enumeration value="MDL" />
			<xs:enumeration value="ChemAxon" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="stereoConventionValue">
		<xs:annotation>
			<xs:documentation>
				Stereo Convention Value: It can be MDLStereoValue
				or ChemAxonStereoValue.
			</xs:documentation>
		</xs:annotation>
		<xs:union memberTypes="cxn:MDLStereoValue cxn:ChemAxonStereoValue" />
	</xs:simpleType>

	<xs:simpleType name="MDLStereoValue">
		<xs:annotation>
			<xs:documentation>
				MDL stereo value: 1:single up, 3: cis or trans, 4:
				wiggly, 6:single
				down.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<xs:enumeration value="1" />
			<xs:enumeration value="3" />
			<xs:enumeration value="4" />
			<xs:enumeration value="6" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="ChemAxonStereoValue">
		<xs:annotation>
			<xs:documentation>
				ChemAxon stereo values:
				C: cis,
				T: trans,
				CTUSPEC: the
				given cis or trans
				information or unspecified,
				CARE: stereo search
				specified.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="(C|T|CTUnspec|CARE|,)+" />
		</xs:restriction>
	</xs:simpleType>

	<!-- reaction and its subtypes -->
	<xs:complexType name="reactionType">
		<xs:annotation>
			<xs:documentation>
				Element containing the description of a reaction.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="arrow" type="cxn:arrowType" minOccurs="0" >
			<xs:annotation>
					<xs:documentation>
				Reaction arrow type.
					</xs:documentation>
				</xs:annotation>
				</xs:element>
			<xs:element name="propertyList" type="cxn:moleculePropertyListType"
				minOccurs="0" maxOccurs="unbounded" >
				<xs:annotation>
					<xs:documentation>
						Property list.
					</xs:documentation>
				</xs:annotation>
				</xs:element>
			<xs:element name="reactantList" type="cxn:reactionComponentType"
				minOccurs="0" >
				<xs:annotation>
					<xs:documentation>
				List of reactants in the reaction.
					</xs:documentation>
				</xs:annotation>
				</xs:element>
			<xs:element name="agentList" type="cxn:reactionComponentType"
				minOccurs="0" >
				<xs:annotation>
					<xs:documentation>
				List of agents in the reaction.
					</xs:documentation>
				</xs:annotation>
				</xs:element>
			<xs:element name="productList" type="cxn:reactionComponentType"
				minOccurs="0" >
				<xs:annotation>
					<xs:documentation>
				List of products in the reaction.
					</xs:documentation>
				</xs:annotation>
				</xs:element>
		</xs:sequence>
		<xs:attribute name="absStereo" type="xs:boolean" >
				<xs:annotation>
					<xs:documentation>
					It shows that absolute stereo label is on or off.
					</xs:documentation>
				</xs:annotation>
		</xs:attribute>
		<xs:attribute name="title" type="xs:string" >
			<xs:annotation>
					<xs:documentation>
					Title.
					</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="arrowType">
		<xs:annotation>
			<xs:documentation>
				Reaction arrow type.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="type" use="required" type="cxn:reactionArrowName" >
				<xs:annotation>
						<xs:documentation>
					Type of reaction arrow. E.g., EQUILIBRIUM.
						</xs:documentation>
				</xs:annotation>
		</xs:attribute>
		<xs:attribute name="x1" use="required" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
					The X coordinate of the staring point of the
					reaction arrow.
						</xs:documentation>
				</xs:annotation>
		</xs:attribute>
		<xs:attribute name="x2" use="required" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
					The X coordinate of the endpoint of the reaction
					arrow.
						</xs:documentation>
				</xs:annotation>
		</xs:attribute>
		<xs:attribute name="y1" use="required" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
					The Y coordinate of the staring point of the
					reaction arrow.
						</xs:documentation>
				</xs:annotation>
		</xs:attribute>
		<xs:attribute name="y2" use="required" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
					The Y coordinate of the endpoint of the reaction
					arrow.
						</xs:documentation>
				</xs:annotation>
		</xs:attribute>
		<xs:attribute name="z1" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
					The Z coordinate of the staring point of the
					reaction arrow.
						</xs:documentation>
				</xs:annotation>
		</xs:attribute>
		<xs:attribute name="z2" type="xs:double" >
				<xs:annotation>
						<xs:documentation>
					The Z coordinate of the endpoint of the reaction
					arrow.
						</xs:documentation>
				</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:simpleType name="reactionArrowName">
		<xs:annotation>
			<xs:documentation>
				Name of the reaction arrow based on its type.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:NCName">
			<xs:enumeration value="DEFAULT" />
			<xs:enumeration value="RESONANCE" />
			<xs:enumeration value="RETROSYNTHETIC" />
			<xs:enumeration value="EQUILIBRIUM" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="reactionComponentType">
		<xs:annotation>
			<xs:documentation>
				Type of reaction components.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="molecule" type="cxn:moleculeType" minOccurs="0" maxOccurs="unbounded" >
			<xs:annotation>
				<xs:documentation>
			Element containing the description of a molecule.
				</xs:documentation>
			</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<!-- definition of elements -->
	<xs:element name="cml" type="cxn:cmlType">
		<xs:annotation>
			<xs:documentation>
				Main tag for multiple documents: if more marvin
				documents are
				contained in one mrv file then this element should
				embed the documents.
			</xs:documentation>
		</xs:annotation>
	</xs:element>

	<xs:element name="MDocument" type="cxn:MDocumentType">
		<xs:annotation>
			<xs:documentation>
				Main marvin document element containing molecules,
				graphical objects,
				reactions, etc.
			</xs:documentation>
		</xs:annotation>
	</xs:element>

	<xs:element name="molecule" type="cxn:moleculeType">
		<xs:annotation>
			<xs:documentation>
				Element containing the description of a molecule.
			</xs:documentation>
		</xs:annotation>
	</xs:element>

	<xs:element name="reaction" type="cxn:reactionType">
		<xs:annotation>
			<xs:documentation>
				Element containing the description of a reaction.
			</xs:documentation>
		</xs:annotation>
	</xs:element>

	<xs:complexType name="bondScalarPropertyType" mixed="true">
		<xs:annotation>
			<xs:documentation>
				Bond Scalar Property Type
			</xs:documentation>
		</xs:annotation>

		<xs:attribute name="convention" type="cxn:bondConventionName">
			<xs:annotation>
				<xs:documentation>
					Name of the convention where the property is being
					interpeted.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="dataType" type="cxn:dataTypeName">
			<xs:annotation>
				<xs:documentation>
					Type of the property.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="id" type="cxn:bondPropId">
			<xs:annotation>
				<xs:documentation>
					ID of the bond property.
				</xs:documentation>
			</xs:annotation>

		</xs:attribute>
		<xs:attribute name="title" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					String usually same as string.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>

	</xs:complexType>

	<xs:simpleType name="bondConventionName">
		<xs:annotation>
			<xs:documentation>
				Name of the convention where the property is being
				interpreted.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="bondprop"></xs:enumeration>
		</xs:restriction>
	</xs:simpleType>


	<xs:simpleType name="bondPropId">
		<xs:annotation>
			<xs:documentation>
				ID of the bond property.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="a([0-9])+a([0-9])+.prop([0-9])+"></xs:pattern>
		</xs:restriction>
	</xs:simpleType>


	<xs:simpleType name="oneLetterNameType">
		<xs:restriction base="xs:string"></xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="threeLetterNameType">
		<xs:restriction base="xs:string">

			<xs:pattern value="[A-Z][a-z][a-z]"></xs:pattern>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>