<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2005 sp1 U (http://www.xmlspy.com) by Marko Srdanovic (Weill Cornell Medical College) -->
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by XMLSPY 2004 Professional Ed. Release 4, Installed for 10 users (with SMP from 2004-10-13 to 2006-10-14) (Weill Cornell Medical College) -->
<!-- edited with XML Spy v4.1 U (http://www.xmlspy.com) by Fabien Campagne (Mount Sinai School of Medicine) -->
<!-- ############################################################################

SigPath Schema
Description:  Used for importing/exporting to the SigPath Database

$Id: sp_submission2.xsd 8878 2005-11-01 18:54:17Z echan $

Copyright (c) 2000-2003 Mount Sinai School of Medicine.
Copyright (c) 2003-2005 Weill Cornell Medical College.

All rights reserved.

############################################################################ -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!-- ############################################################################
    Name:  SigPath
    Description:  Root element used to encapsulate data for SigPath Export or Import
    ############################################################################ -->
	<xs:element name="sigpath-submission">
		<xs:annotation>
			<xs:documentation>Root element used to encapsulate data for SigPath Export or Import</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="export-date-time" type="xs:dateTime" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Optional field containing the date and time, populated on xml export.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="export-build-version" type="xs:string" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Optional field containing build version of the running sigpath, populated on xml export.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element ref="small-molecules" minOccurs="0"/>
				<xs:element ref="proteins" minOccurs="0"/>
				<xs:element ref="components" minOccurs="0"/>
				<xs:element ref="named-chemicals" minOccurs="0"/>
				<xs:element ref="concentration_measurements" minOccurs="0"/>
				<xs:element ref="named-chemical-interactions" minOccurs="0"/>
				<xs:element ref="kinetics" minOccurs="0"/>
				<xs:element ref="reaction" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="enzymatic-reaction" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="model" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="pathway" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="pending_reviews" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Groups pending reviews </xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="pending_list" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>Defines a list of pending items</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element ref="name" minOccurs="0"/>
										<xs:element ref="description"/>
										<xs:element ref="comments" minOccurs="0"/>
										<xs:element name="dateCreated" type="xs:dateTime">
											<xs:annotation>
												<xs:documentation>specifies date/time stamp when pending list was created</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="createdBy" type="xs:string">
											<xs:annotation>
												<xs:documentation>specifies user who initially created the pending list</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element ref="change_log" minOccurs="0"/>
										<xs:element name="pending_item" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>Defines a pending item</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:attribute name="spid" type="xs:string" use="optional"/>
												<xs:attribute name="isReviewed" type="xs:boolean" use="required"/>
												<xs:attribute name="ac" type="xs:string" use="optional"/>
												<xs:attribute name="organism" type="xs:string" use="optional"/>
												<xs:attribute name="idref" type="xs:IDREF" use="optional"/>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="spid" type="xs:string" use="optional"/>
									<xs:attribute name="id" type="xs:ID" use="optional"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="KBKP">
		<xs:annotation>
			<xs:documentation>Defines the KBKP value for an enzymatic reaction</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="value"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="KMichaelis">
		<xs:annotation>
			<xs:documentation>Defines the KMichaelis value for an enzymatic reaction</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="unit"/>
				<xs:element ref="value"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="parameter">
		<xs:annotation>
			<xs:documentation>Defines the any parameter</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="unit" minOccurs="0"/>
				<xs:element ref="value"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="Kp">
		<xs:annotation>
			<xs:documentation>Defines the Kp (KCat) value for an enzymatic reaction</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="unit"/>
				<xs:element ref="value"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="VMax">
		<xs:annotation>
			<xs:documentation>Defines the Vmax value for an enzymatic reaction</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="unit"/>
				<xs:element ref="value"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="VMax_EnzymeConcentration">
		<xs:annotation>
			<xs:documentation>The concentration of the enzyme used to measure the value of VMax.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="unit"/>
				<xs:element ref="value"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="KBackward">
		<xs:annotation>
			<xs:documentation>Defines the KBackward value for a basic reaction</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="unit"/>
				<xs:element ref="value"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="KForward">
		<xs:annotation>
			<xs:documentation>Defines the KForward value for a basic reaction</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="unit"/>
				<xs:element ref="value"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="target-unit">
		<xs:annotation>
			<xs:documentation>Selects the concentration units required for creating/submitting a model</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="unit"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- pathway
        Fields:
        name - 1
        description -1
        pathway-reaction - 1 or more
        comments - 0 or 1
        change log - 0 or 1 -->
	<xs:element name="pathway">
		<xs:annotation>
			<xs:documentation>encapsulates data defining a pathway</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="name"/>
				<xs:element ref="description"/>
				<xs:element ref="comments" minOccurs="0"/>
				<xs:element ref="pathway-reaction" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="interaction-ref" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="publications" minOccurs="0"/>
				<!-- PUBLICATION should be supported see issue 0000884 -->
				<xs:element ref="user-comments" minOccurs="0"/>
				<xs:element ref="change_log" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="id" type="xs:ID" use="optional"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="pathway-reaction">
		<xs:annotation>
			<xs:documentation>Used to identify a reaction within a pathway</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="description" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="idref" type="xs:IDREF" use="optional"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
			<!-- reference to a reaction or an enzymatic reaction -->
		</xs:complexType>
	</xs:element>
	<xs:element name="interaction-ref">
		<xs:annotation>
			<xs:documentation>Used to reference an interaction.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:attribute name="idref" type="xs:IDREF" use="optional"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
			<!-- reference to a reaction or an enzymatic reaction -->
		</xs:complexType>
	</xs:element>
	<!-- model
        Fields:
        name - 1
        description -1
        target-unit - 1
        model-reaction - 1 or more
        model-concentration - 1 or more
        comments - 0 or 1
        change log - 0 or 1 -->
	<xs:element name="model">
		<xs:annotation>
			<xs:documentation>encapsulates data defining a model</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="name"/>
				<xs:element ref="description"/>
				<xs:element ref="comments" minOccurs="0"/>
				<xs:element ref="target-unit"/>
				<xs:element ref="model-reaction" maxOccurs="unbounded"/>
				<xs:element ref="model-compartments" minOccurs="0"/>
				<xs:element ref="model-concentration" maxOccurs="unbounded"/>
				<xs:element name="excluded-reactions" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="excluded-reaction" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="on-left">
											<xs:complexType>
												<xs:sequence>
													<xs:element ref="molecule-excluded" maxOccurs="unbounded"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<xs:element name="on-right">
											<xs:complexType>
												<xs:sequence>
													<xs:element ref="molecule-excluded" maxOccurs="unbounded"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<xs:element ref="description" minOccurs="0"/>
									</xs:sequence>
									<xs:attribute name="ReactionSpid" type="xs:string" use="optional"/>
									<xs:attribute name="ReactionIdRef" type="xs:IDREF" use="optional"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element ref="publications" minOccurs="0"/>
				<xs:element ref="change_log" minOccurs="0"/>
				<xs:element ref="previousVersion" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="id" use="optional">
				<xs:simpleType>
					<xs:restriction base="xs:ID"/>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="model-reaction">
		<xs:annotation>
			<xs:documentation>Used to identify a reaction within a model</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="description" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Description for this reaction</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="summary" type="xs:string" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Summary of the reaction. Will look like A + B &lt; ... &gt; C </xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="idref" type="xs:IDREF" use="optional"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
			<!-- reference to a reaction or an enzymatic reaction -->
		</xs:complexType>
	</xs:element>
	<xs:element name="model-concentration">
		<xs:annotation>
			<xs:documentation>Selects molecule concentrations in a model</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="description" minOccurs="0"/>
				<xs:element ref="molecule" maxOccurs="unbounded"/>
				<xs:element name="molecule-concentration" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Defines the initial concentration of a molecule in a model</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="value"/>
							<xs:element ref="unit"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<!-- if user-computed-concentration exists, this molecule is NOT model-computed
                    otherwise the molecule is considered molecule computed -->
				<!-- the existence of this element insures that if a molecule is NOT model-computed
                    a unit and value exists for this molecule -->
			</xs:sequence>
			<xs:attribute name="isBuffered" type="xs:boolean" use="optional" default="false"/>
			<xs:attribute name="isModelWillProvide" type="xs:boolean" use="optional" default="false"/>
			<!-- indicates if concentration is buffered or not -->
		</xs:complexType>
	</xs:element>
	<!-- small-molecule
        Fields:
        external-reference - 1 or more
        name - 1
        description - 0 or 1
        smiles - 0 or 1
        aliases - 0 or more
        id - 0 or 1
        change log - 0 or 1 -->
	<xs:element name="small-molecule">
		<xs:annotation>
			<xs:documentation>element used to define a small molecule in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="external-reference" maxOccurs="unbounded"/>
				<xs:element ref="name"/>
				<xs:element ref="description" minOccurs="0"/>
				<xs:element ref="comments" minOccurs="0"/>
				<xs:element ref="smiles" minOccurs="0"/>
				<xs:element ref="alias" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="internal-links" minOccurs="0"/>
				<xs:element ref="change_log" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="id" type="xs:ID" use="optional"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<!--PROTEIN
        Fields and required occurrences for each Protein:
            id - 1 (unique to xml file)
            name - 1
            description - 0 or 1
            alias - 1 or more
            external-reference - 1 or more
            organism - 1
            change log - 0 or 1
    -->
	<xs:element name="protein" nillable="false">
		<xs:annotation>
			<xs:documentation>element used to define a protein in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="external-reference" maxOccurs="unbounded"/>
				<xs:element ref="name"/>
				<xs:element ref="description" minOccurs="0"/>
				<xs:element ref="comments" minOccurs="0"/>
				<xs:element ref="alias" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="organism" nillable="false">
					<xs:annotation>
						<xs:documentation>Organism of origin for a protein</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="species" type="xs:string" nillable="false">
								<xs:annotation>
									<xs:documentation>Species of origin for a protein</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="common_name" type="xs:string" nillable="false">
								<xs:annotation>
									<xs:documentation>Common name for the species of origin</xs:documentation>
								</xs:annotation>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element ref="internal-links" minOccurs="0"/>
				<xs:element ref="change_log" minOccurs="0"/>
				<!--xs:element name="organism" type="organismType" minOccurs="0" maxOccurs="unbounded"/-->
			</xs:sequence>
			<xs:attribute name="id" type="xs:ID" use="optional"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="complex">
		<xs:annotation>
			<xs:documentation>element used to define a complex in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="name" minOccurs="0"/>
				<xs:element ref="description" minOccurs="0"/>
				<xs:element ref="comments" minOccurs="0"/>
				<xs:element ref="molecule" minOccurs="2" maxOccurs="unbounded"/>
				<xs:element ref="internal-links" minOccurs="0"/>
				<xs:element ref="publications" minOccurs="0"/>
				<xs:element ref="change_log" minOccurs="0"/>
				<xs:element name="fully-defined" type="xs:boolean" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Used to annotate the fully-defined value of the complex. If the fully-defined value is true, the complex is believed to be complete. If the fully-defined value is false, the list of chemicals that form the complex is known to be incomplete. Other molecules that are not explicitly listed here may participate in this complex.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element ref="reviews" minOccurs="0"/>
				<xs:element ref="user-comments" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="id" type="xs:ID" use="required"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="enzymatic-reaction">
		<xs:annotation>
			<xs:documentation>element used to encapsulate data defining an enzymatic reaction in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="name" minOccurs="0"/>
				<xs:element ref="description" minOccurs="0"/>
				<xs:element ref="comments" minOccurs="0"/>
				<xs:element ref="reaction"/>
				<xs:element ref="enzyme"/>
				<xs:element ref="enzymatic-parameters" minOccurs="0"/>
				<xs:element ref="kinetic-ref" minOccurs="0"/>
				<xs:element ref="kinetic-bindings" minOccurs="0"/>
				<xs:element ref="change_log" minOccurs="0"/>
				<xs:element ref="reviews" minOccurs="0"/>
				<xs:element ref="publications" minOccurs="0"/>
				<xs:element ref="user-comments" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="id" type="xs:ID" use="optional"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="enzyme">
		<xs:annotation>
			<xs:documentation>Identifies the enzyme for an enzymatic reaction</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="molecule"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="molecule" nillable="false">
		<xs:annotation>
			<xs:documentation>Identifies a molecule in SigPath (for example as part of a reaction or as part of a complex) by using at least one of three attributes: idref (unique identifier for new molecules; this attribute has the highest precedence), ac. (accession number; this attribute has the second highest precedence) or spid (unique SigPath identifier; this identifier has the lowest precedence)</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="interaction_site" minOccurs="0"/>
				<xs:element ref="name" minOccurs="0"/>
				<xs:element ref="description" minOccurs="0"/>
				<xs:element ref="comments" minOccurs="0"/>
				<xs:element name="location" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Allows you to locate a molecule in one or more compartment if null compatible old data</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:attribute name="idref" type="xs:IDREF" use="required"/>
						<xs:attribute name="fraction" use="required">
							<xs:simpleType>
								<xs:restriction base="xs:int">
									<xs:minInclusive value="0"/>
									<xs:maxInclusive value="100"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
			<xs:attribute name="isSubstrate" type="xs:boolean" use="optional">
				<xs:annotation>
					<xs:documentation>When true, indicates that this molecule is a substrate of the enclosing enzymatic reaction.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="isProduct" type="xs:boolean" use="optional">
				<xs:annotation>
					<xs:documentation>When true, indicates that this molecule is a product of the enclosing enzymatic reaction.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="idref" type="xs:IDREF" use="optional">
				<xs:annotation>
					<xs:documentation>Reference to an identifier defined in this file (with the id attribute). When provided, the molecule will match the molecule that has the id attribute equals to idref.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="ac" type="xs:string" use="optional">
				<xs:annotation>
					<xs:documentation>Accession code of the molecule to be matched.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="organism" type="xs:string" use="optional">
				<xs:annotation>
					<xs:documentation>Organism of the molecule to be matched. This is useful to further define the molecule matched by accession code when the match is still ambiguous.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="isBuffered" type="xs:boolean" use="optional" default="false"/>
			<xs:attribute name="isModelWillProvide" type="xs:boolean" use="optional" default="false"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="parameters">
		<xs:annotation>
			<xs:documentation>Groups the parameters of a reaction in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="KForward" minOccurs="0"/>
				<xs:element ref="KBackward" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="enzymatic-parameters">
		<xs:annotation>
			<xs:documentation>Groups the parameters of an enzymatic reaction in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="KMichaelis" minOccurs="0"/>
				<xs:element ref="VMax" minOccurs="0"/>
				<xs:element ref="VMax_EnzymeConcentration" minOccurs="0"/>
				<xs:element ref="Kp" minOccurs="0"/>
				<xs:element ref="KBKP" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="modified-chemical">
		<xs:annotation>
			<xs:documentation>Defines a modified chemical (for example the active isoform of a specified molecule) in SigPath. </xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="name"/>
				<xs:element ref="description" minOccurs="0"/>
				<xs:element ref="comments" minOccurs="0"/>
				<xs:element ref="type"/>
				<xs:element ref="molecule"/>
				<xs:element ref="internal-links" minOccurs="0"/>
				<xs:element ref="publications" minOccurs="0"/>
				<xs:element ref="change_log" minOccurs="0"/>
				<xs:element ref="reviews" minOccurs="0"/>
				<xs:element ref="user-comments" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="id" type="xs:ID" use="required"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="publications" nillable="false">
		<xs:annotation>
			<xs:documentation>Annotates publications in relation to a reaction or molecule concentration</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="ref" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="other_reference" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="reaction">
		<xs:annotation>
			<xs:documentation>element used to encapsulate data defining a reaction in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="name" minOccurs="0"/>
				<xs:element ref="description" minOccurs="0"/>
				<xs:element ref="comments" minOccurs="0"/>
				<xs:element ref="left"/>
				<xs:element ref="right"/>
				<xs:element ref="modifiers" minOccurs="0"/>
				<xs:element ref="parameters" minOccurs="0"/>
				<xs:element ref="kinetic-ref" minOccurs="0"/>
				<xs:element ref="kinetic-bindings" minOccurs="0"/>
				<xs:element ref="publications" minOccurs="0"/>
				<xs:element ref="change_log" minOccurs="0"/>
				<xs:element ref="reviews" minOccurs="0"/>
				<xs:element ref="user-comments" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="id" type="xs:ID" use="optional"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="left">
		<xs:annotation>
			<xs:documentation>Contains molecules on the left side of a reaction</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="molecule" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="right">
		<xs:annotation>
			<xs:documentation>Contains molecules on the  right side of a reaction</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="molecule" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="modifiers">
		<xs:annotation>
			<xs:documentation>Contains molecules that influence the velocities of the reaction</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="molecule" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="ref">
		<xs:annotation>
			<xs:documentation>annotates a reference which has a PubMed ID</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:attribute name="pmid" type="xs:long" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="other_reference" type="xs:string" nillable="false">
		<xs:annotation>
			<xs:documentation>Annotates references without PubMed IDs</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="parameter-binding">
		<xs:annotation>
			<xs:documentation>binds a name (a common parametername as Kf) with a parameter. Ex : kf with aParameter</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="name" type="xs:string"/>
				<xs:element ref="parameter"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="species-binding">
		<xs:annotation>
			<xs:documentation>binds a name(usually the function of the chemical) with a chemical. Ex : enzyme and anEnzyme</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="name" type="xs:string"/>
				<xs:element ref="molecule"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="binding-declaration">
		<xs:annotation>
			<xs:documentation>indicates that the requirement deals with a constant. These differenciation
			may be usefull for kinetic instantiation user interfaces </xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="name" type="xs:string"/>
				<xs:element name="description" type="xs:string" minOccurs="0"/>
				<xs:element ref="unit"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="kinetic-type">
		<xs:annotation>
			<xs:documentation>Type of this kinetic. One of: org.sigpath.datamodel.KineticMassAction, org.sigpath.datamodel.KineticMichaelisMenten, or org.sigpath.datamodel.KineticCustom.".</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="org.sigpath.datamodel.KineticMassAction"/>
				<xs:enumeration value="org.sigpath.datamodel.KineticMichaelisMenten"/>
				<xs:enumeration value="org.sigpath.datamodel.KineticCustom"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<xs:element name="kinetic-bindings">
		<xs:annotation>
			<xs:documentation>name to constant/chemical elements</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="species-binding" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="parameter-binding" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="kinetic-ref">
		<xs:annotation>
			<xs:documentation>there are two way to define a kinetic, either indicating a class which realizes a specified kinetic, either indication a kinetic declaration, also part of the submission</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:attribute name="idref" type="xs:IDREF" use="optional"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<!--kinetic declaration-->
	<xs:element name="kinetic">
		<xs:annotation>
			<xs:documentation>This element declares a new type of kinetic. Two ways to define kinetic types are currently supported:
			(1) Reference kinetics can be implemented in a Java class and referenced by class name.
            (2) Custom kinetics that can be expressed with rate laws and described directly in the XML file.
                If defined in the XML file, the kinetic declaration must contain formulae, species and constant bindings declarations.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="name" type="xs:string"/>
				<xs:element name="description" type="xs:string"/>
				<xs:element name="custom-kinetic" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="formula"/>
							<xs:element ref="species-bindings-declaration" minOccurs="0"/>
							<xs:element ref="parameters-bindings-declaration" minOccurs="0"/>
							<xs:element ref="unit"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element ref="kinetic-type" minOccurs="0"/>
				<xs:element ref="publications" minOccurs="0"/>
				<xs:element ref="change_log" minOccurs="0"/>
				<xs:element ref="reviews" minOccurs="0"/>
				<xs:element ref="user-comments" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="id" type="xs:ID"/>
			<xs:attribute name="spid" type="xs:string"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="formula">
		<xs:annotation>
			<xs:documentation>can be an expression like k*p1*p2, but also a numerical value (0 for instance)</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="forward" type="xs:string"/>
				<xs:element name="backward" type="xs:string"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="parameters-bindings-declaration">
		<xs:annotation>
			<xs:documentation>can be an expression like k*p1*p2, but also a numerical value (0 for instance)</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="binding-declaration" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="species-bindings-declaration">
		<xs:annotation>
			<xs:documentation>can be an expression like k*p1*p2, but also a numerical value (0 for instance)</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="binding-declaration" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- end of kinetic Declaration-->
	<xs:element name="small-molecules">
		<xs:annotation>
			<xs:documentation>Groups small molecule definitions in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="small-molecule" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="proteins" nillable="false">
		<xs:annotation>
			<xs:documentation>Groups protein definitions in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="protein" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="concentration_measurements" nillable="false">
		<xs:annotation>
			<xs:documentation>Groups concentration measurements in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="concentration_measurement" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="components">
		<xs:annotation>
			<xs:documentation>Groups complex and modified chemical definitions in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="complex" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="modified-chemical" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="unit" nillable="false">
		<xs:annotation>
			<xs:documentation>Selects units for the reaction parameter</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="mol/sec"/>
				<xs:enumeration value="micromoles/sec"/>
				<xs:enumeration value="mol/l"/>
				<xs:enumeration value="mol"/>
				<xs:enumeration value="sec"/>
				<xs:enumeration value="micromoles/l"/>
				<xs:enumeration value="sec-1"/>
				<xs:enumeration value="min-1"/>
				<xs:enumeration value="M-1.sec-1"/>
				<xs:enumeration value="milliM-1.sec-1"/>
				<xs:enumeration value="milliM-1.min-1"/>
				<xs:enumeration value="microM-1.sec-1"/>
				<xs:enumeration value="microM-1.min-1"/>
				<xs:enumeration value="M-1.min-1"/>
				<xs:enumeration value="M-2.sec-1"/>
				<xs:enumeration value="milliM-2.sec-1"/>
				<xs:enumeration value="milliM-2.min-1"/>
				<xs:enumeration value="microM-2.sec-1"/>
				<xs:enumeration value="microM-2.min-1"/>
				<xs:enumeration value="M-2.min-1"/>
				<xs:enumeration value="millimoles/l"/>
				<xs:enumeration value="atoms/l"/>
				<xs:enumeration value="l"/>
				<xs:enumeration value="ul"/>
				<xs:enumeration value="uM"/>
				<xs:enumeration value="M"/>
				<xs:enumeration value="mol/s"/>
				<xs:enumeration value="mM"/>
				<xs:enumeration value="micromol/s"/>
				<xs:enumeration value="micromol/sec"/>
				<xs:enumeration value="micromoles/s"/>
				<xs:enumeration value="molar"/>
				<xs:enumeration value="M.sec-1"/>
				<xs:enumeration value="uM.sec-1"/>
				<xs:enumeration value="mM.sec-1"/>
				<xs:enumeration value="M.min-1"/>
				<xs:enumeration value="uM.min-1"/>
				<xs:enumeration value="mM.min-1"/>
				<xs:enumeration value="l.sec-1"/>
				<xs:enumeration value="ul.sec-1"/>
				<xs:enumeration value="atoms"/>
				<xs:enumeration value="uM-1.sec-1"/>
				<!---this might be needed for passive diffusion kinetics-->
				<!---this might be needed for new kinetics-->
				<!--xs:enumeration value="mM-1.sec-1"/>
                <xs:enumeration value="mM-2.sec-1"/>
                <xs:enumeration value="uM-2.sec-1"/>
                <xs:enumeration value="M.sec-1"/>
                <xs:enumeration value="uM.sec-1"/>
                <xs:enumeration value="mM.sec-1"/>
                <xs:enumeration value="uM.min-1"/>
                <xs:enumeration value="mM.min-1"/-->
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<xs:element name="interaction_site">
		<xs:annotation>
			<xs:documentation>Annotates the site at which two molecules interact</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string"/>
		</xs:simpleType>
	</xs:element>
	<xs:element name="value" type="xs:double" nillable="false">
		<xs:annotation>
			<xs:documentation>Defines the value of a reaction parameter</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="name" type="xs:string" nillable="false">
		<xs:annotation>
			<xs:documentation>Allows you to name a molecule or a model -</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="description" type="xs:string" nillable="false">
		<xs:annotation>
			<xs:documentation>Allows you to attach a description to a reaction, molecule, compartment, model or review</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="alias" type="xs:string" nillable="false">
		<xs:annotation>
			<xs:documentation>Used to describe aliases for a molecule</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="smiles" type="xs:string">
		<xs:annotation>
			<xs:documentation>Used to describe the chemical formula (SMILE) of a molecule</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ac" type="xs:string" nillable="false">
		<xs:annotation>
			<xs:documentation>Identifies a molecule by accession code</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="database" type="xs:string" nillable="false">
		<xs:annotation>
			<xs:documentation>Specifies the database from which an accession number for a molecule has been acquired</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="comments" type="xs:string">
		<xs:annotation>
			<xs:documentation>Allows you  to annotate SigPath submission components with comments</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="source">
		<xs:complexType>
			<xs:attribute name="spid" type="xs:string" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="type">
		<xs:annotation>
			<xs:documentation>Specifies whether a modified chemical is a protein or a small molecule</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="protein"/>
				<xs:enumeration value="small_molecule"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<!-- ############################################################################
    Name:  External Reference
    Description:  Used to annotation external references.  For example, a chemical may have an
    accession code within another database, such as SWISS-PROT.
    ############################################################################ -->
	<xs:element name="external-reference">
		<xs:annotation>
			<xs:documentation>Annotates external references.  For example, a chemical may have an accession code within another database, such as SWISS-PROT.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="ac"/>
				<xs:element ref="database"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- ############################################################################
    Name:  Concentration Measurement
    Description:  Used to annotation concenration measurements
    ############################################################################ -->
	<xs:element name="concentration_measurement" nillable="false">
		<xs:annotation>
			<xs:documentation>Used to describe concentration measurements for molecules in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="value"/>
				<xs:element ref="unit"/>
				<xs:element ref="molecule"/>
				<xs:element name="tissue" type="xs:string" nillable="false" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Tissue in which the concentration was measured</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="comments" type="xs:string" nillable="false" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Allows you to include comments</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="measurement_method" type="xs:string" nillable="false" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Used to annotate the concentration measurement method</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="sample_prep" type="xs:string" nillable="false" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Used to annotate sample preparation methods</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element ref="ref" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="id" type="xs:ID" use="optional"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<!-- ############################################################################
    Name:  Internal Links
    Description:  Used to annotate internal links within SigPath;  currently this includes a list
    of reactions that the Chemical is involved in.  May be expanded in the future.
    ############################################################################ -->
	<xs:element name="internal-links">
		<xs:annotation>
			<xs:documentation>Used to describe internal links within SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="involved-in-reaction" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Used to list reactions that a molecule is involved in by spid (unique SigPath identifier)</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:attribute name="spid" type="xs:string" use="required"/>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- ############################################################################
    Name:  Change Log
    Description:  Used to annotate change log information, including who submitted this record,
    when the record was submitted, and when the record was last modified.
    ############################################################################ -->
	<xs:element name="change_log">
		<xs:annotation>
			<xs:documentation>Used to annotate change log information, including who submitted this record, when the record was submitted, and when the record was last modified.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="user_name" type="xs:string">
					<xs:annotation>
						<xs:documentation>Name of the user associated with the change log information.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="dateSubmitted" type="xs:dateTime">
					<xs:annotation>
						<xs:documentation>Date of submission for a SigPath entity.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="dateLastModified" type="xs:dateTime">
					<xs:annotation>
						<xs:documentation>Date at which SigPath entity was last modified.</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- ############################################################################
    Name:  Reviews
    Description:  Used to annotate SigPath reviews, including review description, who conducted the
    review, and date/time review was conducted.
    ############################################################################ -->
	<xs:element name="reviews">
		<xs:annotation>
			<xs:documentation>Used to annotate SigPath reviews</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="review" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Used to annotate a SigPath review, including review description, who conducted the review, and date/time review was conducted.</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="description"/>
							<xs:element name="reviewedBy" type="xs:string">
								<xs:annotation>
									<xs:documentation>User who conducted the review</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="dateReviewed" type="xs:dateTime">
								<xs:annotation>
									<xs:documentation>Date/time at which the review was conducted</xs:documentation>
								</xs:annotation>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="kinetics" nillable="false">
		<xs:annotation>
			<xs:documentation>group of kinetics declaration in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="kinetic" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="model-compartments">
		<xs:annotation>
			<xs:documentation>Groups compartments of a model</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="compartment" maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="description" minOccurs="0"/>
							<xs:element ref="value"/>
							<xs:element ref="unit"/>
							<xs:element name="InContactWith" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:attribute name="contactcompartment" type="xs:IDREF" use="optional"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="name" type="xs:string" use="optional"/>
						<xs:attribute name="id" type="xs:ID" use="optional"/>
						<xs:attribute name="outside" type="xs:IDREF" use="optional"/>
					</xs:complexType>
				</xs:element>
				<xs:element ref="description" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="molecule-excluded">
		<xs:complexType>
			<xs:attribute name="moleculeIdRef" type="xs:IDREF" use="optional"/>
			<xs:attribute name="moleculelocalisation" type="xs:IDREF" use="required"/>
			<xs:attribute name="moleculeSpid" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="named-chemical" nillable="false">
		<xs:annotation>
			<xs:documentation>Annotates a SigPath chemical with a name but no accession code</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="name" type="xs:string">
					<xs:annotation>
						<xs:documentation>Annotates the name of the chemical.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element ref="description" minOccurs="0"/>
				<xs:element ref="comments" minOccurs="0"/>
				<xs:element ref="user-comments" minOccurs="0"/>
				<xs:element ref="change_log" minOccurs="0"/>
				<xs:element ref="external-reference" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="id" type="xs:ID" use="optional"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="named-chemicals">
		<xs:annotation>
			<xs:documentation>Groups named-chemical definitions in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="named-chemical" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="named-chemical-interaction">
		<xs:annotation>
			<xs:documentation>Annotates an interaction between two named-chemicals in SigPath. In situations when it is a target-source interaction, the source named-chemical should be listed first, followed by the target named-chemical.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="name" minOccurs="0"/>
				<xs:element ref="description" minOccurs="0"/>
				<xs:element ref="comments" minOccurs="0"/>
				<xs:element name="named-chemical-ref" minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>The reference value of a named chemical.</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="role" type="xs:string">
								<xs:annotation>
									<xs:documentation>Annotates the role of the named-chemical in an interaction, e.g. binding partner, substrate.</xs:documentation>
								</xs:annotation>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="idref" type="xs:IDREF" use="optional"/>
						<xs:attribute name="spid" type="xs:string" use="optional"/>
                        <xs:attribute name="ac" type="xs:string" use="optional"/>
                        <xs:attribute name="organism" type="xs:string" use="optional"/>
                    </xs:complexType>
				</xs:element>
				<xs:element ref="publications" minOccurs="0"/>
				<xs:element ref="change_log" minOccurs="0"/>
				<xs:element ref="external-reference" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="user-comments" minOccurs="0"/>
            </xs:sequence>
			<xs:attribute name="type" type="xs:string" use="optional"/>
			<xs:attribute name="id" type="xs:ID" use="optional"/>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="named-chemical-interactions">
		<xs:annotation>
			<xs:documentation>Groups named-chemical-interaction definitions in SigPath</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="named-chemical-interaction" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="previousVersion">
		<xs:annotation>
			<xs:documentation>previous version of a sigpathEntity</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:attribute name="spid" type="xs:string" use="optional"/>
			<xs:attribute name="idref" type="xs:IDREF" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="user-comment">
		<xs:annotation>
			<xs:documentation>Annotates a SigPath user-comment</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="submittedBy" type="xs:string">
					<xs:annotation>
						<xs:documentation>User who submitted the comment</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="dateSubmitted" type="xs:dateTime">
					<xs:annotation>
						<xs:documentation>Date/time at which the comment was submitted</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="content" type="xs:string">
					<xs:annotation>
						<xs:documentation>Content of the comment</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="objectId" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="user-comments">
		<xs:annotation>
			<xs:documentation>Groups user-comment</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="user-comment" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>
