<!-- ******************************************************** * * db.xsd * * Authors: The DNA team, http://www.dna.ac.uk * * Version: SId: db.xsd,v 1.1.2.1 2004/03/12 11:10:07 spruce Exp S * ******************************************************** --> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dna="http://www.dna.ac.uk/DNA_XMLSchema"> <xsd:include schemaLocation="dna_common.xsd"/> <xsd:complexType name="proposal"> <xsd:sequence> <xsd:element name="proposal_key" minOccurs="0" maxOccurs="1" type="xsd:integer"/> <xsd:element name="propos_uo_ref" minOccurs="0" maxOccurs="1" type="xsd:integer"/> <xsd:element name="proposal_code" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="proposal_number" minOccurs="0" maxOccurs="1" type="xsd:integer"/> <xsd:element name="surname" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="labo_name" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="labo_pays_code" minOccurs="0" maxOccurs="1" type="xsd:integer"/> <xsd:element name="propos_tit" minOccurs="0" maxOccurs="1" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="db_proposal"> <xsd:sequence> <xsd:element name="proposal" minOccurs="1" maxOccurs="1" type="proposal"/> <xsd:element name="session" minOccurs="0" maxOccurs="1" type="db_session"/> <xsd:element name="start_date" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="end_date" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="run" minOccurs="0" maxOccurs="1" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="db_session"> <xsd:sequence> <xsd:element name="sessionno" minOccurs="0" maxOccurs="1" type="xsd:integer"/> <xsd:element name="se_pl_no" minOccurs="0" maxOccurs="1" type="xsd:integer"/> <xsd:element name="user_no" minOccurs="0" maxOccurs="1" type="xsd:integer"/> <xsd:element name="proposal_key" minOccurs="0" maxOccurs="1" type="xsd:integer"/> <xsd:element name="scheduled" minOccurs="0" maxOccurs="1" type="xsd:integer"/> <xsd:element name="local_contact" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="date_deb" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="date_fin" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="no_shifts" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="instr_nom" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="exp_operator" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="no_perf_shifts" minOccurs="0" maxOccurs="1" type="xsd:integer"/> <xsd:element name="comment" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="blom_comment" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="lc_comment" minOccurs="0" maxOccurs="1" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="sample"> <xsd:sequence> <xsd:element name="protein_id" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="crystal_key" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="suffix" minOccurs="0" maxOccurs="1" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="db_collect_store_request"> <xsd:sequence> <xsd:element name="db_proposal" minOccurs="1" maxOccurs="1" type="db_proposal"/> <xsd:element name="fileinfo" minOccurs="1" maxOccurs="1" type="fileinfo"/> <xsd:element name="oscillation_sequence" minOccurs="1" maxOccurs="unbounded" type="oscillation_sequence"/> <xsd:element name="sample" minOccurs="0" maxOccurs="1" type="sample"/> <xsd:element name="wavelength" minOccurs="0" maxOccurs="1" type="xsd:double"/> <xsd:element name="xbeam" minOccurs="0" maxOccurs="1" type="xsd:double"/> <xsd:element name="ybeam" minOccurs="0" maxOccurs="1" type="xsd:double"/> <xsd:element name="distance" minOccurs="0" maxOccurs="1" type="xsd:double"/> <xsd:element name="resolution" minOccurs="0" maxOccurs="1" type="xsd:double"/> </xsd:sequence> </xsd:complexType> <!-- Example collect_request: This looks exactly like a collect request but it is used differently. Maybe it will evolve! <db_collect_store_request> <db_proposal> <proposal> </proposal> <db_session> <sessionno>123454</sessionno> </db_session> </db_proposal> <fileinfo> <directory>/data/id14eh1/inhouse/dna</directory> <prefix>dnatest</prefix> </fileinfo> <oscillation_sequence> <start>0.0</start> <range>1.0</range> <number_of_images>2</number_of_images> <overlap>-89.0</overlap> <exposure_time>1.0</exposure_time> <start_image_number>1</start_image_number> <number_of_passes>1</number_of_passes> </oscillation_sequence> </db_collect_store_request> --> <xsd:complexType name="db_collect_store_response"> <xsd:sequence> <xsd:element name="status" minOccurs="1" maxOccurs="1" type="status"/> </xsd:sequence> </xsd:complexType> <!-- Example collect_response: <db_collect_store_response> <status> <code>ok</code> </status> </db_collect_store_response> --> <xsd:complexType name="db_image_store_request"> <xsd:sequence> <xsd:element name="filename" minOccurs="1" maxOccurs="1" type="xsd:string"/> <xsd:element name="directory" minOccurs="1" maxOccurs="1" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <!-- Example image_store_request: This would have been fileinfo but the database needs to have the exact image name in order to display the image. This is not possible with fileinfo. <db_image_store_request> <filename> xxx_001.img </filename> <directory>/data/id14eh1/inhouse/dna</directory> </db_image_store_request> --> <xsd:complexType name="db_collect_store_response"> <xsd:sequence> <xsd:element name="status" minOccurs="1" maxOccurs="1" type="status"/> </xsd:sequence> </xsd:complexType> <!-- Example collect_response: <db_collect_store_response> <status> <code>ok</code> </status> </db_collect_store_response> --> <xsd:complexType name="db_proposal_request"> <xsd:sequence> <xsd:element name="category" minOccurs="1" maxOccurs="1" type="xsd:string"/> <xsd:element name="code" minOccurs="1" maxOccurs="1" type="xsd:integer"/> <xsd:element name="start_date" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="end_date" minOccurs="0" maxOccurs="1" type="xsd:string"/> <xsd:element name="run" minOccurs="0" maxOccurs="1" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <!-- Example proposal_request: <db_proposal_request> <category> LS </category> <code>1234</code> </db_proposal_request> --> <xsd:complexType name="db_proposal_response"> <xsd:sequence> <xsd:element name="status" minOccurs="1" maxOccurs="1" type="status"/> <xsd:element name="db_proposal" minOccurs="0" maxOccurs="1" type="db_proposal"/> <xsd:element name="db_session" minOccurs="1" maxOccurs="unbounded" type="db_session"/> </xsd:sequence> </xsd:complexType> <!-- Example collect_response: The response to a login is to return an xml document with the proposal and all the sessions associated with it. <db_proposal_response> <status> <code>ok</code> </status> <proposal> <propos_categ_code>LS</propos_categ_code> <propos_categ_cpt>1234</propos_categ_cpt> <proposid>1</proposid> <surname>spruce</surname> <labo_name>esrf</labo_name> <labo_pays_code>F</labo_pays_code> <propos_tit>test</propos_tit> </proposal> <session> <se_pl_no> 1234 </se_pl_no>.... </session> </db_proposal_response> --> <xsd:complexType name="db_set_session_request"> <xsd:sequence> <xsd:element name="sessionno" minOccurs="1" maxOccurs="1" type="xsd:integer"/> </xsd:sequence> </xsd:complexType> <!-- Example set_session_request: The response to a login is to return an xml document with the proposal and all the sessions associated with it. <db_set_session_request> <sessionno>14566</sessionno> </db_set_session_request> --> <xsd:complexType name="db_set_session_response"> <xsd:sequence> <xsd:element name="status" minOccurs="1" maxOccurs="1" type="status"/> </xsd:sequence> </xsd:complexType> </xsd:schema>