public:lta_sip

This is an old revision of the document!


<?xml version="1.0" encoding="UTF-8"?>
<!-- The basic layout of a SIP is to have the Project that owns the data described, the DataProduct
that is being ingested, and the process (Measurement or PipelineRun) that generated it.
If the generating process is a PipelineRun, then it will usually have input DataProducts. These
will recursively be described in the relatedDataProduct entries, with the processes that generated
them. These relatedDataProducts do not need to have been ingested into the archive themselves. It is
sufficient that there are described, with their related Obsrvation/ipelines in this document to 
be able to recreate the full provenance of the DataProduct.
-->
<xs:schema targetNamespace="http://www.astron.nl/SIP-Lofar" version="2.1.0" xmlns="http://www.astron.nl/SIP-Lofar" xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:annotation>
		<xs:documentation>XML Schema for data model Submission Information Package LOFAR Long Term Archive
		</xs:documentation>
	</xs:annotation><!-- ============================Generic Types============================ -->
	<xs:simpleType name="FrequencyUnit">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Hz"/>
			<xs:enumeration value="kHz"/>
			<xs:enumeration value="MHz"/>
			<xs:enumeration value="GHz"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="Frequency">
		<xs:simpleContent>
			<xs:extension base="xs:double">
				<xs:attribute name="units" type="FrequencyUnit" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="IdentifierType">
		<xs:sequence>
			<xs:element name="source" type="xs:string"/>
			<xs:element name="identifier" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>	
	<xs:simpleType name="EquinoxType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="B1950"/>
			<xs:enumeration value="J2000"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="Pointing">
		<xs:sequence>
		    <xs:choice>
			    <xs:sequence>
					<xs:element name="rightAscension" type="xs:double"/>
					<xs:element name="declination" type="xs:double"/>
				</xs:sequence>
			    <xs:sequence>
					<xs:element name="altitude" type="xs:double"/>
					<xs:element name="azimuth" type="xs:double"/>
				</xs:sequence>
			</xs:choice>
			<xs:element name="equinox" type="EquinoxType"/>
		</xs:sequence>
	</xs:complexType><!-- ============================Stations============================ -->
	<xs:complexType name="Coordinates">
		<xs:sequence>
			<xs:element name="coordinateSystem">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="WGS84"/>
						<xs:enumeration value="ITRF2000"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:choice>
				<xs:sequence>
					<xs:element name="x" type="xs:double"/>
					<xs:element name="y" type="xs:double"/>
					<xs:element name="z" type="xs:double"/>
				</xs:sequence>
				<xs:sequence>
					<xs:element name="radius" type="xs:double"/>
					<xs:element name="longitude" type="xs:double"/>
					<xs:element name="latitude" type="xs:double"/>
				</xs:sequence>
			</xs:choice>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="AntennaFieldType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="HBA0"/>
			<xs:enumeration value="HBA1"/>
			<xs:enumeration value="HBA"/>
			<xs:enumeration value="LBA"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="StationTypeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Core"/>
			<xs:enumeration value="Remote"/>
			<xs:enumeration value="International"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="AntennaField">
		<xs:sequence>
			<xs:element name="name" type="AntennaFieldType"/>
			<xs:element name="location" type="Coordinates"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Stations">
		<xs:sequence>
			<xs:element maxOccurs="unbounded" name="station" type="Station"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Station">
		<xs:sequence>
			<xs:element name="name" type="xs:string"/>
			<xs:element name="stationType" type="StationTypeType"/>
			<xs:element minOccurs="1" maxOccurs="2" name="antennaField" type="AntennaField"/>
		</xs:sequence>
	</xs:complexType>
		<xs:complexType name="Process"><!-- ============================Observation============================ -->
		<xs:sequence>
			<xs:element name="processIdentifier" type="IdentifierType"/>
			<xs:element minOccurs="0" name="observationId" type="IdentifierType"/>
			<xs:element minOccurs="0" name="parset" type="IdentifierType"/>
			<xs:element name="strategy" type="xs:string"/>
			<xs:element name="startTime" type="xs:dateTime"/>
			<xs:element name="duration" type="xs:duration"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="FilterSelectionType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="10-70 MHz"/>
			<xs:enumeration value="10-90 MHz"/>
			<xs:enumeration value="30-70 MHz"/>
			<xs:enumeration value="30-90 MHz"/>
			<xs:enumeration value="110-190 MHz"/>
			<xs:enumeration value="170-230 MHz"/>
			<xs:enumeration value="210-250 MHz"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="ClockType">
		<xs:simpleContent>
			<xs:restriction base="Frequency">
				<xs:enumeration value="160"/>
				<xs:enumeration value="200"/>
				<xs:attribute fixed="MHz" name="units" type="FrequencyUnit" use="required"/>
			</xs:restriction>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="AntennaSetType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="HBA Zero"/>
			<xs:enumeration value="HBA One"/>
			<xs:enumeration value="HBA Dual"/>
			<xs:enumeration value="HBA Joined"/>
			<xs:enumeration value="LBA Outer"/>
			<xs:enumeration value="LBA Inner"/>
			<xs:enumeration value="LBA Sparse Even"/>
			<xs:enumeration value="LBA Sparse Odd"/>
			<xs:enumeration value="LBA X"/>
			<xs:enumeration value="LBA Y"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="StationSelectionType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Single"/>
			<xs:enumeration value="Core"/>
			<xs:enumeration value="Dutch"/>
			<xs:enumeration value="All"/>
			<xs:enumeration value="Custom"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="Beam">
		<xs:sequence>
			<xs:element name="pointing" type="Pointing"/>
			<xs:element name="beamNumber" type="xs:unsignedShort"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="ObservationModeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Interferometer"/>
			<xs:enumeration value="Beam Observation"/>
			<xs:enumeration value="Transient Buffer Board (standalone)"/>
			<xs:enumeration value="Transient Buffer Board (piggyback)"/>
			<xs:enumeration value="Direct Data Storage"/>
			<xs:enumeration value="Non Standard"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="Observation">
		<xs:complexContent>
			<xs:extension base="Process">
				<xs:sequence>
					<xs:element name="observationMode" type="ObservationModeType"/>
					<xs:element minOccurs="0" name="observationDescription" type="xs:string"/>
					<xs:element name="instrumentFilter" type="FilterSelectionType"/>
					<xs:element name="clock" type="ClockType"/>
					<xs:element name="stationSelection" type="StationSelectionType"/>
					<xs:element name="antennaSet" type="AntennaSetType"/>
					<xs:element name="timeSystem">
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:enumeration value="UTC"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:element>
					<xs:element name="centralFrequency" type="Frequency"/><!-- Does this make sense for an Observation? -->
					<xs:element name="channelWidth" type="Frequency"/>
					<xs:element name="channelsPerSubband" type="xs:unsignedShort"/>
					<xs:element name="numberOfStations" type="xs:unsignedByte"/>
					<xs:element name="stations" type="Stations"/>
					<xs:element name="numberOfSubArrayPointings" type="xs:unsignedShort"/>
					<xs:element minOccurs="0" name="subArrayPointings" type="SubArrayPointings"/>
					<xs:element name="numberOftransientBufferBoardEvents" type="xs:unsignedShort"/> <!-- is unsignedShort enough? -->
					<xs:element minOccurs="0" name="transientBufferBoardEvents" type="TransientBufferBoardEvents"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="DirectDataMeasurement">
		<xs:complexContent>
			<xs:extension base="Process">
				<xs:sequence>
					<xs:element name="ObservationMode" type="ObservationModeType"/>
					<xs:element name="station" type="Station"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="GenericMeasurement">
		<xs:complexContent>
			<xs:extension base="Process">
				<xs:sequence>
					<xs:element name="ObservationMode" type="ObservationModeType"/>
					<xs:element name="description" type="xs:string"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:simpleType name="ProcessingType"><!-- ============================Online Processing============================ -->
		<xs:restriction base="xs:string">
			<xs:enumeration value="Correlator"/>
			<xs:enumeration value="Coherent Stokes"/>
			<xs:enumeration value="Incoherent Stokes"/>
			<xs:enumeration value="Fly&apos;s Eye"/>
			<xs:enumeration value="Raw Voltages"/>
			<xs:enumeration value="Non Standard"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="MeasurementType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Test"/>
			<xs:enumeration value="Tune Up"/>
			<xs:enumeration value="Calibration"/>
			<xs:enumeration value="Target"/>
			<xs:enumeration value="All Sky"/>
			<xs:enumeration value="Miscellaneous"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="Processing">
		<xs:sequence>
			<xs:element minOccurs="0" name="correlator" type="Correlator"/>
			<xs:element minOccurs="0" name="coherentStokes" type="CoherentStokes"/>
			<xs:element minOccurs="0" name="incoherentStokes" type="IncoherentStokes"/>
			<xs:element minOccurs="0" name="flysEye" type="FlysEye"/>
			<xs:element minOccurs="0" name="rawVoltages" type="RawVoltages"/>
			<xs:element minOccurs="0" name="nonStandard" type="NonStandard"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="RealTimeProcess">
		<xs:sequence>
			<xs:element name="processingType" type="ProcessingType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Correlator">
		<xs:complexContent>
			<xs:extension base="RealTimeProcess">
				<xs:sequence>
					<xs:element name="integrationInterval" type="xs:double"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>	
	<xs:complexType name="CoherentStokes">
		<xs:complexContent>
			<xs:extension base="RealTimeProcess">
				<xs:sequence>
					<xs:element name="samplingRate" type="Frequency"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>	
	<xs:complexType name="IncoherentStokes">
		<xs:complexContent>
			<xs:extension base="RealTimeProcess">
				<xs:sequence>
					<xs:element name="samplingRate" type="Frequency"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>	
	<xs:complexType name="FlysEye">
		<xs:complexContent>
			<xs:extension base="RealTimeProcess">
				<xs:sequence>
					<xs:element name="samplingRate" type="Frequency"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>	
	<xs:complexType name="RawVoltages">
		<xs:complexContent>
			<xs:extension base="RealTimeProcess">
				<xs:sequence>
					<xs:element name="samplingRate" type="Frequency"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>	
	<xs:complexType name="NonStandard">
		<xs:complexContent>
			<xs:extension base="RealTimeProcess">
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>	
	<xs:complexType name="TransientBufferBoardEvents">
		<xs:sequence>
			<xs:element maxOccurs="unbounded" name="transientBufferBoardEvent" type="TransientBufferBoardEvent"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TransientBufferBoardEvent">
		<xs:sequence>
			<xs:element name="eventSource" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TiedArrayBeams">
		<xs:sequence>
			<xs:element maxOccurs="unbounded" name="tiedArrayBeam" type="TiedArrayBeam"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TiedArrayBeam">
		<xs:complexContent>
			<xs:extension base="Beam">
				<xs:sequence>
					<xs:element name="DispersionMeasure" type="xs:double"/>
					<xs:element name="stokes" type="PolarizationType" maxOccurs="4"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SubArrayPointings">
		<xs:sequence>
			<xs:element maxOccurs="unbounded" name="subArrayPointing" type="SubArrayPointing"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SubArrayPointing">
		<xs:complexContent>
			<xs:extension base="Beam">
				<xs:sequence>
					<xs:element minOccurs="0" name="measurementDescription" type="xs:string"/>
					<xs:element name="measurementIdentifier" type="IdentifierType"/>
					<xs:element name="measurementType" type="MeasurementType"/>
					<xs:element name="targetName" type="xs:string"/>
					<xs:element name="startTime" type="xs:dateTime"/>
					<xs:element name="duration" type="xs:duration"/><!--See XML duration for format-->
					<xs:element name="numberOfProcessing" type="xs:unsignedShort"/>
					<xs:element minOccurs="0" name="processing" type="Processing"/>
					<xs:element name="numberOfBeams" type="xs:unsignedShort"/>
					<xs:element minOccurs="0" name="beams" type="TiedArrayBeams"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="DataSources"><!-- ============================Pipeline============================ -->
		<xs:sequence>
			<xs:element name="dataProductIdentifier" type="IdentifierType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PipelineRun">
		<xs:complexContent>
			<xs:extension base="Process">
				<xs:sequence>
					<xs:element name="pipelineName" type="xs:string"/>
					<xs:element name="pipelineVersion" type="xs:string"/>
					<xs:element name="sourceData" type="DataSources"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="ImagingPipeline"><!--Not yet well defined-->
		<xs:complexContent>
			<xs:extension base="PipelineRun">
				<xs:sequence>
					<xs:element minOccurs="0" name="frequencyIntegrationStep" type="xs:unsignedShort"/>
					<xs:element minOccurs="0" name="timeIntegrationStep" type="xs:unsignedShort"/>
					<xs:element minOccurs="0" name="skyModelDatabase" type="xs:string"/>
					<xs:element minOccurs="0" name="demixing" type="xs:boolean"/>
					<xs:element name="imagerIntegrationTime" type="xs:double"/>
					<xs:element name="numberOfMajorCycles" type="xs:unsignedShort"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="CalibrationPipeline">
		<xs:complexContent>
			<xs:extension base="PipelineRun">
				<xs:sequence>
					<xs:element minOccurs="0" name="frequencyIntegrationStep" type="xs:unsignedShort"/>
					<xs:element minOccurs="0" name="timeIntegrationStep" type="xs:unsignedShort"/>
					<xs:element minOccurs="0" name="flagAutoCorrelations" type="xs:boolean"/>
					<xs:element minOccurs="0" name="demixing" type="xs:boolean"/>
					<xs:element name="skyModelDatabase" type="xs:string"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="AveragingPipeline">
		<xs:complexContent>
			<xs:extension base="PipelineRun">
				<xs:sequence>
					<xs:element name="frequencyIntegrationStep" type="xs:unsignedShort"/>
					<xs:element name="timeIntegrationStep" type="xs:unsignedShort"/>
					<xs:element name="flagAutoCorrelations" type="xs:boolean"/>
					<xs:element name="demixing" type="xs:boolean"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="KnownPulsarPipeline">
		<xs:complexContent>
			<xs:extension base="PipelineRun">
				<xs:sequence>
					<xs:element maxOccurs="unbounded" name="processedPulsar" type="xs:string"/>
					<xs:element name="knownPulsarStrategy" type="xs:string"/><!-- Or is the Process:strategy enough?-->
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="PulsarSearchPipeline">
		<xs:complexContent>
			<xs:extension base="PipelineRun">
				<xs:sequence>
					<xs:element maxOccurs="unbounded" name="processedPulsar" type="xs:string"/>
					<xs:element name="pulsarSearchStrategy" type="xs:string"/><!-- Or is the Process:strategy enough?-->
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="CosmicRayPipeline">
		<xs:complexContent>
			<xs:extension base="PipelineRun"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="GenericPipeline">
		<xs:complexContent>
			<xs:extension base="PipelineRun"/>
		</xs:complexContent>
	</xs:complexType><!-- ============================DataProduct============================ -->
	<xs:simpleType name="DataProductType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Correlator data"/>
			<xs:enumeration value="Beam Formed data"/>
			<xs:enumeration value="Transient Buffer Board data"/>
			<xs:enumeration value="Sky Image"/>
			<xs:enumeration value="Pixel Map"/>
			<xs:enumeration value="Direct Data Storage data"/>
			<xs:enumeration value="Dynamic Spectra data"/>
			<xs:enumeration value="Instrument Model"/>
			<xs:enumeration value="Sky Model"/>
			<xs:enumeration value="Non Standard"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ChecksumAlgorithm">
		<xs:restriction base="xs:string">
			<xs:enumeration value="MD5"/>
			<xs:enumeration value="Adler32"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="ChecksumType">
		<xs:sequence>
			<xs:element name="algorithm" type="ChecksumAlgorithm"/>
			<xs:element name="value" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="FileFormatType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="FITS"/>
			<xs:enumeration value="AIPS++/CASA"/>
			<xs:enumeration value="HDF5"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="TBBTrigger"><!--This very well defined yet! type probably needs to be an enumeration-->
		<xs:sequence>
			<xs:element name="type" type="xs:string"/>
			<xs:element name="value" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="PolarizationType"><!--From AIPS++/CASA: None=0,I=1,Q=2,U=3,V=4,RR=5,RL=6,LR=7,LL=8,XX=9,XY=10,YX=11,YY=12-->
		<xs:restriction base="xs:string">
			<xs:enumeration value="None"/>
			<xs:enumeration value="I"/>
			<xs:enumeration value="Q"/>
			<xs:enumeration value="U"/>
			<xs:enumeration value="V"/>
			<xs:enumeration value="RR"/>
			<xs:enumeration value="RL"/>
			<xs:enumeration value="LR"/>
			<xs:enumeration value="LL"/>
			<xs:enumeration value="XX"/>
			<xs:enumeration value="XY"/>
			<xs:enumeration value="YX"/>
			<xs:enumeration value="YY"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="DataProduct">
		<xs:sequence>
			<xs:element name="dataProductType" type="DataProductType"/>
			<xs:element name="dataProductIdentifier" type="IdentifierType"/>
			<xs:element minOccurs="0" name="storageTicket" type="xs:string"/>
			<xs:element name="size" type="xs:unsignedLong"/><!--Bytes-->
			<xs:element maxOccurs="unbounded" minOccurs="0" name="checksum" type="ChecksumType"/>
			<xs:element name="fileName" type="xs:string"/>
			<xs:element name="fileFormat" type="FileFormatType"/>
			<xs:element name="processIdentifier" type="IdentifierType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="CorrelatedDataProduct">
		<xs:complexContent>
			<xs:extension base="DataProduct">
				<xs:sequence>
					<xs:element minOccurs="0" name="subArrayPointingIdentifier" type="IdentifierType"/>
					<xs:element name="subband" type="xs:unsignedShort"/>
					<xs:element minOccurs="0" name="stationSubband" type="xs:unsignedShort"/>
					<xs:element name="startTime" type="xs:dateTime"/>
					<xs:element name="duration" type="xs:duration"/><!--See XML duration for format-->
					<xs:element name="integrationInterval" type="xs:double"/>
					<xs:element name="centralFrequency" type="Frequency"/>
					<xs:element name="channelWidth" type="Frequency"/>
					<xs:element name="channelsPerSubband" type="xs:unsignedShort"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="InstrumentModelDataProduct"><!--ParmDB, not yet defined-->
		<xs:complexContent>
			<xs:extension base="DataProduct"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SkyModelDataProduct"><!--ParmDB, not yet defined-->
		<xs:complexContent>
			<xs:extension base="DataProduct"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="TransientBufferBoardDataProduct">
		<xs:complexContent>
			<xs:extension base="DataProduct">
				<xs:sequence>
					<xs:element name="numberOfSamples" type="xs:unsignedInt"/>
					<xs:element name="timeStamp" type="xs:unsignedInt"/><!--Exact number of seconds from Measurement::startTime-->
					<xs:element name="triggerParameters" type="TBBTrigger"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="BeamformedDataProduct">
		<xs:complexContent>
			<xs:extension base="DataProduct">
				<xs:sequence>
					<xs:element name="subArrayPointing" type="SubArrayPointing" maxOccurs="unbounded"/>
					<xs:element name="subband" type="xs:unsignedShort"/><!-- Needs to be changed, discuss with A2 and Jason-->
					<xs:element name="stationSubband" type="xs:unsignedShort"/><!-- Needs to be changed, discuss with A2 and Jason-->
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="GenericDataProduct">
		<xs:complexContent>
			<xs:extension base="DataProduct"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="TransformationMatrix">
		<xs:sequence>
			<xs:element maxOccurs="4" name="value" type="xs:double"></xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Axis">
		<xs:sequence>
			<xs:element name="number" type="xs:unsignedShort"/>
			<xs:element name="name" type="xs:string"/>
			<xs:element name="units" type="xs:string"/>
			<xs:element name="length" type="xs:unsignedInt"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="LinearAxis">
		<xs:complexContent>
			<xs:extension base="Axis">
				<xs:sequence>
					<xs:element name="increment" type="xs:double"/>
					<xs:element name="referencePixel" type="xs:double"/>
					<xs:element name="referenceValue" type="xs:double"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="TabularAxis">
		<xs:complexContent>
			<xs:extension base="Axis">
				<xs:sequence>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="Coordinate">
		<xs:sequence>
			<xs:element name="number" type="xs:unsignedShort"></xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="RaDecSystem">
		<xs:restriction base="xs:string">
			<xs:enumeration value="ICRS"/>
			<xs:enumeration value="FK5"/>
			<xs:enumeration value="FK4"/>
			<xs:enumeration value="FK4-NO-E"/>
			<xs:enumeration value="GAPPT"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="LocationFrame">
		<xs:restriction base="xs:string">
			<xs:enumeration value="GEOCENTER"/>
			<xs:enumeration value="BARYCENTER"/>
			<xs:enumeration value="HELIOCENTER"/>
			<xs:enumeration value="TOPOCENTER"/>
			<xs:enumeration value="LSRK"/>
			<xs:enumeration value="LSRD"/>
			<xs:enumeration value="GALACTIC"/>
			<xs:enumeration value="LOCAL_GROUP"/>
			<xs:enumeration value="RELOCATABLE"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="DirectionCoordinate">
		<xs:complexContent>
			<xs:extension base="Coordinate">
				<xs:sequence>
					<xs:element minOccurs="2" maxOccurs="2" name="directionAxis" type="LinearAxis"/>
					<xs:element name="PC" type="TransformationMatrix"/>
					<xs:element name="equinox" type="xs:string"/>
					<xs:element name="raDecSystem" type="RaDecSystem"/>
					<xs:element name="projection" type="xs:string"/>
					<xs:element name="projectionParameters" type="xs:double"/>
					<xs:element name="longitudePole" type="xs:double"/>
					<xs:element name="LatitudePole" type="xs:double"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SpectralCoordinate">
		<xs:complexContent>
			<xs:extension base="Coordinate">
				<xs:sequence>
					<xs:choice>
						<xs:element name="spectralAxis" type="TabularAxis"/>
						<xs:element name="spectralAxis" type="LinearAxis"/>
					</xs:choice>
					<xs:element name="radioVelocity" type="xs:double"/>
					<xs:element name="opticalVelocity" type="xs:double"/>
					<xs:element name="redshift" type="xs:double"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="PolarizationCoordinate">
		<xs:complexContent>
			<xs:extension base="Coordinate">
				<xs:sequence>
					<xs:element name="polarizationAxis" type="TabularAxis"/>
					<xs:element maxOccurs="4" name="polarization" type="PolarizationType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="PixelMapDataProduct">
		<xs:complexContent>
			<xs:extension base="DataProduct">
				<xs:sequence>
					<xs:element name="numberOfAxes" type="xs:unsignedShort"/>
					<xs:element name="numberOfCoordinates" type="xs:unsignedShort"/>
					<xs:element maxOccurs="999" name="coordinate" type="Coordinate"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SkyImageDataProduct">
		<xs:complexContent>
			<xs:extension base="PixelMapDataProduct">
				<xs:sequence>
					<xs:element name="locationFrame" type="LocationFrame"></xs:element>
					<xs:element name="timeFrame" type="xs:string"></xs:element>
					<xs:element name="pointing" type="Pointing"/><!--Explicit for easy finding in the archive, not just DirectionAxis with names RA/DEC-->
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType><!-- ============================Parset============================ -->
	<xs:complexType name="Parset">
		<xs:sequence>
			<xs:element name="identifier" type="IdentifierType"/>
			<xs:element name="contents" type="xs:string"/>
		</xs:sequence>
	</xs:complexType><!-- ============================Project============================ -->
	<xs:simpleType name="Telescope">
		<xs:restriction base="xs:string">
			<xs:enumeration value="LOFAR"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="Project">
		<xs:sequence>
			<xs:element name="projectCode" type="xs:string"/>
			<xs:element name="primaryInvestigator" type="xs:string"/>
			<xs:element name="coInvestigator" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="contactAuthor" type="xs:string"/>
			<xs:element name="telescope" type="Telescope"/>
			<xs:element name="projectDescription" type="xs:string"/>
		</xs:sequence>
	</xs:complexType><!-- ============================LTASip root element============================ -->
	<xs:element name="ltaSip" type="LTASip"/>
	<xs:complexType name="LTASip">
		<xs:sequence>
			<xs:element name="sipGeneratorVersion" type="xs:string"/>
			<xs:element name="project" type="Project"/>
			<xs:element name="dataProduct" type="DataProduct"/>
			<xs:element maxOccurs="unbounded" minOccurs="0" name="observation" type="Observation"/>
			<!--<xs:element maxOccurs="unbounded" minOccurs="0" name="Data" type="-"/>
			<xs:element maxOccurs="unbounded" minOccurs="0" name="Generic" type="-"/>-->
			<xs:element maxOccurs="unbounded" minOccurs="0" name="pipelineRun" type="PipelineRun"/>
			<xs:element name="relatedDataProduct" type="DataProduct" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element maxOccurs="unbounded" minOccurs="0" name="parset" type="Parset"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
  • Last modified: 2011-11-07 08:37
  • by Adriaan Renting