Skip to content
Snippets Groups Projects
Commit 2f09e978 authored by Jorrit Schaap's avatar Jorrit Schaap
Browse files

TMSS-2827: removed mom xsd's

parent 279cd721
No related branches found
No related tags found
1 merge request!1192TMSS-2827
......@@ -146,7 +146,6 @@ if(NOT DEFINED LOFAR_PACKAGE_LIST_INCLUDED)
set(OTDB_SQL_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/OTDB/sql)
set(QPIDInfrastructure_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/QPIDInfrastructure)
set(SAS_Feedback_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/Feedback_Service)
set(XSD_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/XSD)
set(TBBAlertVOeventPublisher_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/TBBAlertVOeventPublisher)
set(TMSS_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/TMSS)
set(DataManagementCommon_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/DataManagement/DataManagementCommon)
......
......@@ -6,7 +6,6 @@ lofar_add_package(OTDB_SQL OTDB/sql)
lofar_add_package(QPIDInfrastructure)
lofar_add_package(SAS_Feedback Feedback_Service)
lofar_add_package(SpecificationServices)
lofar_add_package(XSD)
lofar_add_package(TBBAlertVOeventPublisher)
lofar_add_package(TMSS)
......
lofar_package(XSD 0.1)
lofar_add_data_files(SAS/LofarTrigger.xsd)
lofar_add_data_files(SAS/LofarBase.xsd)
lofar_add_data_files(SAS/LofarProject.xsd)
lofar_add_data_files(SAS/LofarHistorical.xsd)
lofar_add_data_files(SAS/LofarSpecification.xsd)
lofar_add_data_files(MoM/LofarMoM2.xsd)
lofar_add_data_files(MoM/MoM2.xsd)
lofar_add_data_files(MoM/PersistentObjects.xsd)
lofar_add_data_files(MoM/UserAdmin.xsd)
<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema targetNamespace="http://www.astron.nl/MoM2-Lofar" version="3.0" xmlns:persistent="http://www.astron.nl/PersistentObjects" xmlns:mom2="http://www.astron.nl/MoM2" xmlns="http://www.astron.nl/MoM2-Lofar" xmlns:user="http://www.astron.nl/useradmin" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import schemaLocation="MoM2.xsd" namespace="http://www.astron.nl/MoM2"/>
<xsd:import schemaLocation="UserAdmin.xsd" namespace="http://www.astron.nl/useradmin"/>
<xsd:import schemaLocation="PersistentObjects.xsd" namespace="http://www.astron.nl/PersistentObjects"/>
<xsd:annotation>
<xsd:documentation>
XML Schema for the MoM3 datamodel of Lofar, despite the name relating to MoM2
</xsd:documentation>
</xsd:annotation><!-- Project related declarations -->
<xsd:element name="project" substitutionGroup="mom2:project" type="LofarProjectType"/>
<xsd:complexType name="LofarProjectType">
<xsd:complexContent>
<xsd:restriction base="mom2:ProjectType">
<xsd:sequence>
<xsd:element minOccurs="0" name="version" type="xsd:string"/>
<xsd:element minOccurs="0" name="template" type="LofarTemplateType"/>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
<xsd:element minOccurs="0" name="statusHistory" type="mom2:StatusHistoryType"/>
<xsd:element minOccurs="0" name="currentStatus" type="mom2:CurrentStatusType"/>
<xsd:element minOccurs="0" name="generalRemarks" nillable="true" type="mom2:IndexedGeneralRemarkListType"/>
<xsd:element minOccurs="0" name="inspectionReports" nillable="true" type="mom2:IndexedInspectionReportListType"/>
<xsd:element minOccurs="0" name="specificationRemarks" nillable="true" type="mom2:IndexedSpecificationRemarkListType"/>
<xsd:element minOccurs="0" name="schedulingRemarks" nillable="true" type="mom2:IndexedSchedulingRemarkListType"/>
<xsd:element minOccurs="0" name="usedDataProducts" nillable="true" type="IndexedLofarProjectInputListType"/>
<xsd:element minOccurs="0" name="children" type="IndexedLofarCollectionChildListType"/>
<xsd:element minOccurs="0" name="members" nillable="true" type="mom2:IndexedMemberListType"/>
<xsd:choice minOccurs="0">
<xsd:element ref="allocation"/>
</xsd:choice>
<xsd:element minOccurs="0" name="releaseDate" type="xsd:date"/>
</xsd:sequence>
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="LofarTemplateType">
<xsd:sequence>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="version" type="xsd:string" use="required"/>
<xsd:attribute name="author" type="xsd:string" use="required"/>
<xsd:attribute name="changedBy" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:element name="allocation" substitutionGroup="mom2:allocation" type="LofarAllocationType"/>
<xsd:complexType name="LofarAllocationType">
<xsd:complexContent>
<xsd:extension base="mom2:AllocationType">
<xsd:sequence>
<xsd:element ref="resource" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="resource" type="LofarResourceType"/>
<xsd:complexType name="LofarResourceType">
<xsd:complexContent>
<xsd:extension base="mom2:ResourceType">
<xsd:attribute name="queue" type="xsd:string"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="LofarProjectRefType">
<xsd:complexContent>
<xsd:restriction base="LofarProjectType">
<xsd:attribute name="id" type="xsd:integer" use="required"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarProjectInputListType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedDataProductListType">
<xsd:sequence>
<xsd:element name="item" type="IndexedLofarProjectInputItemType"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarProjectInputItemType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedDataProductItemType">
<xsd:choice>
<xsd:element ref="proposalDocument"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="proposalDocument" substitutionGroup="mom2:anyDataProduct" type="LofarProposalDocumentType"/>
<xsd:complexType name="LofarProposalDocumentType">
<xsd:complexContent>
<xsd:restriction base="mom2:DataProductType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/><!--
The current LofarProject will be the owner! <xsd:element name="ownerMom2Object" type="Mom2ObjectRefType"
minOccurs="0"> </xsd:element>
-->
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" fixed="PROPOSAL" name="type" type="xsd:string"/><!--
timeStamp to be set equal to time of upload! <xsd:element name="timeStamp" type="xsd:dateTime" minOccurs="0">
</xsd:element>
-->
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType><!-- Collection related declarations -->
<xsd:element name="folder" substitutionGroup="mom2:anyMom2Object" type="LofarCollectionType"/>
<xsd:complexType name="LofarGroupCollectionType">
<xsd:complexContent>
<xsd:extension base="mom2:CollectionType">
<xsd:sequence>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="topology_parent" type="xsd:boolean"/>
<xsd:attribute name="update_folder" type="xsd:boolean"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="LofarCollectionType">
<xsd:complexContent>
<xsd:restriction base="LofarGroupCollectionType">
<xsd:sequence>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
<xsd:element minOccurs="0" name="parent" type="mom2:CollectionRefType"/>
<xsd:element minOccurs="0" name="ownerProject" type="mom2:ProjectRefType"/>
<xsd:element minOccurs="0" name="statusHistory" type="mom2:StatusHistoryType"/>
<xsd:element minOccurs="0" name="currentStatus" type="mom2:CurrentStatusType"/>
<xsd:element minOccurs="0" name="generalRemarks" nillable="true" type="mom2:IndexedGeneralRemarkListType"/>
<xsd:element minOccurs="0" name="inspectionReports" nillable="true" type="mom2:IndexedInspectionReportListType"/>
<xsd:element minOccurs="0" name="specificationRemarks" nillable="true" type="mom2:IndexedSpecificationRemarkListType"/>
<xsd:element minOccurs="0" name="schedulingRemarks" nillable="true" type="mom2:IndexedSchedulingRemarkListType"/>
<xsd:element minOccurs="0" name="children" nillable="true" type="IndexedLofarCollectionChildListType"/>
</xsd:sequence>
<xsd:attribute name="topology_parent" type="xsd:boolean"/>
<xsd:attribute name="update_folder" type="xsd:boolean"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarCollectionChildListType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedMom2ObjectListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedLofarCollectionChildItemType"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarCollectionChildItemType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedMom2ObjectItemType">
<xsd:choice>
<xsd:element ref="folder"/>
<xsd:element ref="observation"/>
<xsd:element ref="pipeline"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType><!-- Observation related declarations -->
<xsd:element name="observation" substitutionGroup="mom2:anyMom2Object" type="LofarObservationType"/>
<xsd:complexType name="LofarObservationType">
<xsd:complexContent>
<xsd:restriction base="mom2:CollectionType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
<xsd:element minOccurs="0" name="processingCluster" type="ProcessingClusterType"/>
<xsd:element minOccurs="0" name="parent" type="mom2:CollectionRefType"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="predecessor_topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="ownerProject" type="mom2:ProjectRefType"/>
<xsd:element minOccurs="0" name="statusHistory" type="mom2:StatusHistoryType"/>
<xsd:element minOccurs="0" name="currentStatus" type="mom2:CurrentStatusType"/>
<xsd:element minOccurs="0" name="generalRemarks" nillable="true" type="mom2:IndexedGeneralRemarkListType"/>
<xsd:element minOccurs="0" name="inspectionReports" nillable="true" type="mom2:IndexedInspectionReportListType"/>
<xsd:element minOccurs="0" name="specificationRemarks" nillable="true" type="mom2:IndexedSpecificationRemarkListType"/>
<xsd:element minOccurs="0" name="schedulingRemarks" nillable="true" type="mom2:IndexedSchedulingRemarkListType"/>
<xsd:element minOccurs="0" name="usedDataProducts" nillable="true" type="mom2:IndexedDataProductListType"/>
<xsd:element minOccurs="0" name="resultDataProducts" nillable="true" type="mom2:IndexedDataProductListType"/>
<xsd:choice minOccurs="0">
<xsd:element ref="observationAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="children" type="IndexedLofarObservationChildListType"/>
</xsd:sequence>
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="MemoryStorageUnit">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="byte"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="MemoryStorageType">
<xsd:simpleContent>
<xsd:extension base="xsd:nonNegativeInteger">
<xsd:attribute name="unit" type="MemoryStorageUnit" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="ProcessingClusterType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="partition" type="xsd:string"/>
<xsd:element name="numberOfTasks" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="minRAMPerTask" type="MemoryStorageType"/>
<xsd:element minOccurs="0" name="minScratchPerTask" type="MemoryStorageType"/>
<xsd:element minOccurs="0" name="maxDurationPerTask" type="xsd:duration"/>
<xsd:element name="numberOfCoresPerTask" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="runSimultaneous" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="observationAttributes" substitutionGroup="mom2:specificAttributes" type="LofarObservationAttributesType"/>
<xsd:complexType name="LofarObservationAttributesType">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributesType">
<xsd:sequence>
<xsd:element minOccurs="0" name="observationId" type="xsd:nonNegativeInteger" nillable="true"/>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="projectName" type="xsd:string"/>
<xsd:element minOccurs="0" name="instrument" type="LofarInstrumentType"/>
<xsd:element minOccurs="0" name="defaultTemplate" type="xsd:string"/>
<xsd:element minOccurs="0" name="tbbPiggybackAllowed" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="aartfaacPiggybackAllowed" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="userSpecification" type="LofarObservationSpecificationType"/>
<xsd:element minOccurs="0" name="systemSpecification" type="LofarObservationSpecificationType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="LofarObservationSpecificationType">
<xsd:sequence>
<xsd:element minOccurs="0" name="correlatedData" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="filteredData" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="beamformedData" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="coherentStokesData" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="incoherentStokesData" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="antenna" type="LofarAntennaSetType"/>
<xsd:element minOccurs="0" name="clock" type="LofarClockType"/>
<xsd:element minOccurs="0" name="instrumentFilter" type="LofarBandFilterType"/>
<xsd:element minOccurs="0" name="integrationInterval" type="xsd:double"/>
<xsd:element minOccurs="0" name="channelsPerSubband" type="xsd:short"/>
<xsd:element minOccurs="0" name="coherentDedisperseChannels" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="tiedArrayBeams" type="LofarArrayBeamsType"/>
<xsd:element minOccurs="0" name="stokes" type="LofarStokesType"/>
<xsd:element minOccurs="0" name="stationSet" type="LofarStationSelectionType"/><!-- we can't support xsd:element minOccurs="0" name="stations" type="xsd:string"/ -->
<xsd:element minOccurs="0" name="stations" type="LofarStationsType"/>
<xsd:element minOccurs="0" name="timeFrame">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="UT"/>
<xsd:enumeration value="LST"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="startTime" type="xsd:dateTime"/>
<xsd:element minOccurs="0" name="endTime" type="xsd:dateTime"/>
<xsd:choice>
<xsd:element minOccurs="0" name="duration" type="xsd:string"/>
<xsd:element minOccurs="0" name="duration" type="xsd:duration"/>
</xsd:choice>
<xsd:element minOccurs="0" name="bypassPff" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="enableSuperterp" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="numberOfBitsPerSample" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="misc" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LofarArrayBeamsType">
<xsd:sequence>
<xsd:element minOccurs="0" name="flyseye" type="xsd:boolean"/><!-- Used at the Observation level-->
<xsd:element minOccurs="0" name="nrTabRings" type="xsd:nonNegativeInteger"/><!-- Used at the Measurement level-->
<xsd:element minOccurs="0" name="tabRingSize" type="xsd:double" nillable="true"/><!-- Used at the Measurement level-->
<xsd:element minOccurs="0" name="tiedArrayBeamList" type="LofarArrayBeamListType"/><!-- Used at the Measurement level-->
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LofarArrayBeamListType">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="tiedArrayBeam">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="coherent" type="xsd:boolean"/>
<xsd:element name="angle1" type="xsd:double"/>
<xsd:element name="angle2" type="xsd:double"/>
</xsd:sequence>
<xsd:attribute name="index" type="xsd:integer"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="StokesSelectionType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="I"/>
<xsd:enumeration value="IQUV"/>
<xsd:enumeration value="XXYY"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="LofarStokesType">
<xsd:sequence>
<xsd:element minOccurs="0" name="integrateChannels" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="subbandsPerFileCS" type="xsd:nonNegativeInteger" nillable="true"/>
<xsd:element minOccurs="0" name="numberCollapsedChannelsCS" type="xsd:nonNegativeInteger" nillable="true"/>
<xsd:element minOccurs="0" name="stokesDownsamplingStepsCS" type="xsd:nonNegativeInteger" nillable="true"/>
<xsd:element minOccurs="0" name="whichCS" type="StokesSelectionType" nillable="true"/>
<xsd:element minOccurs="0" name="subbandsPerFileIS" type="xsd:nonNegativeInteger" nillable="true"/>
<xsd:element minOccurs="0" name="numberCollapsedChannelsIS" type="xsd:nonNegativeInteger" nillable="true"/>
<xsd:element minOccurs="0" name="stokesDownsamplingStepsIS" type="xsd:nonNegativeInteger" nillable="true"/>
<xsd:element minOccurs="0" name="whichIS" type="StokesSelectionType" nillable="true"/><!-- xsd:element minOccurs="0" name="integrationSteps" type="xsd:nonNegativeInteger" nillable="true"/ -->
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LofarStationSelectionType">
<xsd:simpleContent>
<xsd:restriction base="AbstractLofarStationSelectionType">
<xsd:enumeration value="Single"/>
<xsd:enumeration value="Core"/>
<xsd:enumeration value="Dutch"/>
<xsd:enumeration value="All"/>
<xsd:enumeration value="Custom"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="AbstractLofarStationSelectionType" abstract="true">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="min" type="xsd:nonNegativeInteger"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="LofarStationsType">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="station" type="LofarStationType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LofarStationType">
<xsd:sequence>
<xsd:element minOccurs="0" name="location" type="LofarCoordinatesType"/>
<xsd:element minOccurs="0" maxOccurs="2" name="antennaField" type="LofarAntennaFieldType"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:simpleType name="LofarAntennaField">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="HBA0"/>
<xsd:enumeration value="HBA1"/>
<xsd:enumeration value="HBA0+1"/>
<xsd:enumeration value="HBA"/>
<xsd:enumeration value="LBA"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="LofarAntennaFieldType">
<xsd:sequence>
<xsd:element name="name" type="LofarAntennaField"/>
<xsd:element name="location" type="LofarCoordinatesType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LofarCoordinatesType">
<xsd:sequence>
<xsd:element name="coordinateSystem">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="WGS84"/>
<xsd:enumeration value="ITRF2000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="x" type="xsd:double"/>
<xsd:element name="y" type="xsd:double"/>
<xsd:element name="z" type="xsd:double"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="LofarAntennaSetType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="HBA Zero"/>
<xsd:enumeration value="HBA One"/>
<xsd:enumeration value="HBA Dual"/>
<xsd:enumeration value="HBA Joined"/>
<xsd:enumeration value="LBA Outer"/>
<xsd:enumeration value="LBA Inner"/>
<xsd:enumeration value="LBA Sparse Even"/>
<xsd:enumeration value="LBA Sparse Odd"/>
<xsd:enumeration value="LBA X"/>
<xsd:enumeration value="LBA Y"/>
<xsd:enumeration value="HBA Zero Inner"/>
<xsd:enumeration value="HBA One Inner"/>
<xsd:enumeration value="HBA Dual Inner"/>
<xsd:enumeration value="HBA Joined Inner"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="LofarInstrumentType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Beam Observation"/>
<xsd:enumeration value="Interferometer"/>
<xsd:enumeration value="Tied Array"/>
<xsd:enumeration value="Transient Buffer Board"/>
<xsd:enumeration value="Direct Data Storage"/>
<xsd:enumeration value="Non Standard"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="LofarBandFilterType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="10-70 MHz"/>
<xsd:enumeration value="30-70 MHz"/>
<xsd:enumeration value="10-90 MHz"/>
<xsd:enumeration value="30-90 MHz"/>
<xsd:enumeration value="110-190 MHz"/>
<xsd:enumeration value="170-230 MHz"/>
<xsd:enumeration value="210-250 MHz"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="LofarClockType">
<xsd:sequence>
<xsd:element minOccurs="0" name="channelWidth" type="mom2:Frequency"/>
<xsd:element minOccurs="0" name="samplesPerSecond" type="xsd:double"/>
<xsd:element minOccurs="0" name="subbandWidth" type="mom2:Frequency"/>
<xsd:element minOccurs="0" name="systemClock" type="mom2:Frequency"/>
</xsd:sequence>
<xsd:attribute name="mode" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="160 MHz"/>
<xsd:enumeration value="200 MHz"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="IndexedLofarObservationChildListType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedMom2ObjectListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedLofarObservationChildItemType"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarObservationChildItemType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedMom2ObjectItemType">
<xsd:choice>
<xsd:element ref="measurement"/>
<xsd:element ref="pipeline"/><!-- WTF -->
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType><!-- Measurement related declarations -->
<xsd:element name="measurement" substitutionGroup="mom2:anyMom2Object" type="LofarMeasurementType"/>
<xsd:complexType name="LofarMeasurementType" abstract="true">
<xsd:complexContent>
<xsd:extension base="mom2:Mom2ObjectType"/>
</xsd:complexContent>
</xsd:complexType>
<!-- Beam Measurement related declarations -->
<!-- This type is commented out besause it is basically an unused abstract parent class for uv and bf -->
<!-- xsd:complexType name="BeamMeasurementType">
<xsd:complexContent>
<xsd:restriction base="LofarMeasurementType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
<xsd:element minOccurs="0" name="parent" type="mom2:CollectionRefType"/>
<xsd:element minOccurs="0" name="ownerProject" type="mom2:ProjectRefType"/>
<xsd:element minOccurs="0" name="statusHistory" type="mom2:StatusHistoryType"/>
<xsd:element minOccurs="0" name="currentStatus" type="mom2:CurrentStatusType"/>
<xsd:element minOccurs="0" name="generalRemarks" nillable="true" type="mom2:IndexedGeneralRemarkListType"/>
<xsd:element minOccurs="0" name="inspectionReports" nillable="true" type="mom2:IndexedInspectionReportListType"/>
<xsd:element minOccurs="0" name="specificationRemarks" nillable="true" type="mom2:IndexedSpecificationRemarkListType"/>
<xsd:element minOccurs="0" name="schedulingRemarks" nillable="true" type="mom2:IndexedSchedulingRemarkListType"/>
<xsd:choice minOccurs="0">
<xsd:element ref="beamMeasurementAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="resultDataProducts" nillable="true" type="IndexedLofarBeamResultDataProductListType"/>
</xsd:sequence>
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType -->
<!-- xsd:element name="beamMeasurementAttributes" substitutionGroup="mom2:specificAttributes" type="LofarBeamMeasurementAttributesType"/ -->
<xsd:complexType name="LofarBeamMeasurementAttributesType" abstract="true">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributesType"><!-- Lot's of duplication, this probably gets interpreted as the "system specification" -->
<xsd:sequence>
<xsd:element minOccurs="0" name="ra" type="xsd:double"/>
<xsd:element minOccurs="0" name="dec" type="xsd:double"/>
<xsd:element minOccurs="0" name="equinox" type="EquinoxType"/>
<xsd:element minOccurs="0" name="duration" type="xsd:duration"/>
<xsd:element minOccurs="0" name="startTime" type="xsd:dateTime"/>
<xsd:element minOccurs="0" name="endTime" type="xsd:dateTime"/>
<xsd:element minOccurs="0" name="centralFrequency" type="mom2:Frequency"/>
<xsd:element minOccurs="0" name="bandWidth" type="mom2:Frequency"/>
<xsd:element minOccurs="0" name="subbandsSpecification" type="LofarSubbandsSpecificationType"/>
<xsd:element minOccurs="0" name="measurementType">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Target"/>
<xsd:enumeration value="Calibration"/>
<xsd:enumeration value="Tune Up"/>
<xsd:enumeration value="Miscellaneous"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" name="specification" type="LofarBeamMeasurementSpecificationAttributesType"/><!-- Lot's of duplication, probably related to user/system spec shenanigans -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="LofarBeamMeasurementSpecificationAttributesType"><!-- Lot's of duplication, this probably gets interpreted as the "User specification" -->
<xsd:sequence>
<xsd:element name="targetName" type="xsd:string"/>
<xsd:element name="ra" type="xsd:double"/>
<xsd:element name="dec" type="xsd:double"/>
<xsd:element name="equinox" type="EquinoxType"/>
<xsd:element name="duration" type="xsd:duration"/>
<xsd:element name="subbandsSpecification" type="LofarSubbandsSpecificationType"/>
<xsd:element minOccurs="0" name="tiedArrayBeams" type="LofarArrayBeamsType"/><!-- Optional for UVMeasurement -->
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LofarSubbandsSpecificationType">
<xsd:sequence>
<xsd:element minOccurs="0" name="bandWidth" type="mom2:Frequency"/>
<xsd:element minOccurs="0" name="centralFrequency" type="mom2:Frequency"/>
<xsd:element minOccurs="0" name="contiguous" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="subbands" type="SubbandArrayType"/>
</xsd:sequence>
</xsd:complexType><!-- xsd:complexType name="LofarCustomSubbandsSpecificationType"/ -->
<xsd:simpleType name="SubbandArrayType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{1,3}(,\d{1,3})*|\d{1,3}\.\.\d{1,3}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="EquinoxType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="J2000"/>
<xsd:enumeration value="B1950"/>
<xsd:enumeration value="Other"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="IndexedLofarBeamResultDataProductListType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedDataProductListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedLofarBeamResultDataProductType"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarBeamResultDataProductType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedDataProductItemType">
<xsd:choice>
<xsd:element ref="uvDataProduct"/>
<xsd:element ref="bfDataProduct"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType><!-- UV Measurement related declarations -->
<xsd:complexType name="UVMeasurementType">
<xsd:complexContent>
<xsd:restriction base="LofarMeasurementType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="parent" type="mom2:CollectionRefType"/>
<xsd:element minOccurs="0" name="ownerProject" type="mom2:ProjectRefType"/>
<xsd:element minOccurs="0" name="statusHistory" type="mom2:StatusHistoryType"/>
<xsd:element minOccurs="0" name="currentStatus" type="mom2:CurrentStatusType"/>
<xsd:element minOccurs="0" name="generalRemarks" nillable="true" type="mom2:IndexedGeneralRemarkListType"/>
<xsd:element minOccurs="0" name="inspectionReports" nillable="true" type="mom2:IndexedInspectionReportListType"/>
<xsd:element minOccurs="0" name="specificationRemarks" nillable="true" type="mom2:IndexedSpecificationRemarkListType"/>
<xsd:element minOccurs="0" name="schedulingRemarks" nillable="true" type="mom2:IndexedSchedulingRemarkListType"/>
<xsd:choice minOccurs="0">
<xsd:element ref="uvMeasurementAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="resultDataProducts" nillable="true" type="IndexedLofarUVResultDataProductListType"/>
</xsd:sequence>
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="uvMeasurementAttributes" substitutionGroup="mom2:specificAttributes" type="LofarBeamMeasurementAttributesType"/>
<xsd:complexType name="LofarUVMeasurementAttributesType">
<xsd:complexContent>
<xsd:extension base="LofarBeamMeasurementAttributesType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarUVResultDataProductListType">
<xsd:complexContent>
<xsd:restriction base="IndexedLofarBeamResultDataProductListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedLofarUVResultDataProductType"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarUVResultDataProductType">
<xsd:complexContent>
<xsd:restriction base="IndexedLofarBeamResultDataProductType">
<xsd:choice>
<xsd:element ref="uvDataProduct"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType><!-- BeamFormed Measurement related declarations -->
<xsd:complexType name="BFMeasurementType">
<xsd:complexContent>
<xsd:restriction base="LofarMeasurementType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="parent" type="mom2:CollectionRefType"/>
<xsd:element minOccurs="0" name="ownerProject" type="mom2:ProjectRefType"/>
<xsd:element minOccurs="0" name="statusHistory" type="mom2:StatusHistoryType"/>
<xsd:element minOccurs="0" name="currentStatus" type="mom2:CurrentStatusType"/>
<xsd:element minOccurs="0" name="generalRemarks" nillable="true" type="mom2:IndexedGeneralRemarkListType"/>
<xsd:element minOccurs="0" name="inspectionReports" nillable="true" type="mom2:IndexedInspectionReportListType"/>
<xsd:element minOccurs="0" name="specificationRemarks" nillable="true" type="mom2:IndexedSpecificationRemarkListType"/>
<xsd:element minOccurs="0" name="schedulingRemarks" nillable="true" type="mom2:IndexedSchedulingRemarkListType"/>
<xsd:choice minOccurs="0">
<xsd:element ref="bfMeasurementAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="resultDataProducts" nillable="true" type="IndexedLofarBFResultDataProductListType"/>
</xsd:sequence>
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="bfMeasurementAttributes" substitutionGroup="mom2:specificAttributes" type="LofarBFMeasurementAttributesType"/>
<xsd:complexType name="LofarBFMeasurementAttributesType">
<xsd:complexContent>
<xsd:extension base="LofarBeamMeasurementAttributesType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarBFResultDataProductListType">
<xsd:complexContent>
<xsd:restriction base="IndexedLofarBeamResultDataProductListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedLofarBFResultDataProductType"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarBFResultDataProductType">
<xsd:complexContent>
<xsd:restriction base="IndexedLofarBeamResultDataProductType">
<xsd:choice>
<xsd:element ref="uvDataProduct"/>
<xsd:element ref="bfDataProduct"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType><!-- TBB Measurement (Event?) related declarations -->
<xsd:complexType name="TBBMeasurementType">
<xsd:complexContent>
<xsd:restriction base="LofarMeasurementType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="parent" type="mom2:CollectionRefType"/>
<xsd:element minOccurs="0" name="ownerProject" type="mom2:ProjectRefType"/>
<xsd:element minOccurs="0" name="statusHistory" type="mom2:StatusHistoryType"/>
<xsd:element minOccurs="0" name="currentStatus" type="mom2:CurrentStatusType"/>
<xsd:element minOccurs="0" name="generalRemarks" nillable="true" type="mom2:IndexedGeneralRemarkListType"/>
<xsd:element minOccurs="0" name="inspectionReports" nillable="true" type="mom2:IndexedInspectionReportListType"/>
<xsd:element minOccurs="0" name="specificationRemarks" nillable="true" type="mom2:IndexedSpecificationRemarkListType"/>
<xsd:element minOccurs="0" name="schedulingRemarks" nillable="true" type="mom2:IndexedSchedulingRemarkListType"/>
<xsd:choice minOccurs="0">
<xsd:element ref="tbbMeasurementAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="resultDataProducts" nillable="true" type="IndexedLofarTBBResultDataProductListType"/>
</xsd:sequence>
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="tbbMeasurementAttributes" substitutionGroup="mom2:specificAttributes" type="LofarTBBMeasurementAttributesType"/>
<xsd:complexType name="LofarTBBMeasurementAttributesType">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributesType">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarTBBResultDataProductListType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedDataProductListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedLofarTBBResultDataProductType"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarTBBResultDataProductType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedDataProductItemType">
<xsd:choice>
<xsd:element ref="tbbDataProduct"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType><!-- Generic Measurement related declarations -->
<xsd:complexType name="GenericMeasurementType">
<xsd:complexContent>
<xsd:restriction base="LofarMeasurementType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="parent" type="mom2:CollectionRefType"/>
<xsd:element minOccurs="0" name="ownerProject" type="mom2:ProjectRefType"/>
<xsd:element minOccurs="0" name="statusHistory" type="mom2:StatusHistoryType"/>
<xsd:element minOccurs="0" name="currentStatus" type="mom2:CurrentStatusType"/>
<xsd:element minOccurs="0" name="generalRemarks" nillable="true" type="mom2:IndexedGeneralRemarkListType"/>
<xsd:element minOccurs="0" name="inspectionReports" nillable="true" type="mom2:IndexedInspectionReportListType"/>
<xsd:element minOccurs="0" name="specificationRemarks" nillable="true" type="mom2:IndexedSpecificationRemarkListType"/>
<xsd:element minOccurs="0" name="schedulingRemarks" nillable="true" type="mom2:IndexedSchedulingRemarkListType"/>
<xsd:choice minOccurs="0">
<xsd:element ref="genericMeasurementAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="resultDataProducts" nillable="true" type="IndexedLofarGenericResultDataProductListType"/>
</xsd:sequence>
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="genericMeasurementAttributes" substitutionGroup="mom2:specificAttributes" type="LofarTBBMeasurementAttributesType"/>
<xsd:complexType name="LofarGenericMeasurementAttributesType">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributesType">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarGenericResultDataProductListType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedDataProductListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedLofarGenericResultDataProductType"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarGenericResultDataProductType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedDataProductItemType">
<xsd:choice>
<xsd:element ref="genericDataProduct"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType><!-- General Pipeline related declarations -->
<xsd:element name="pipeline" substitutionGroup="mom2:anyMom2Object" type="LofarPipelineType"/>
<xsd:complexType name="LofarPipelineType" abstract="true">
<xsd:complexContent>
<xsd:extension base="mom2:CollectionType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="LofarPipelineAttributesType">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributesType">
<xsd:sequence>
<xsd:element minOccurs="0" name="pipelineId" type="xsd:nonNegativeInteger"/>
<!--<xsd:element minOccurs="0" name="startTime" type="xsd:dateTime"/>
<xsd:element minOccurs="0" name="endTime" type="xsd:dateTime"/>-->
<xsd:element minOccurs="0" name="misc" type="xsd:string"/>
<!-- xsd:element minOccurs="0" name="userSpecification" type="LofarPipelineSpecificationType"/>
<xsd:element minOccurs="0" name="systemSpecification" type="LofarPipelineSpecificationType"/-->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="LofarPipelineSpecificationType">
<xsd:sequence>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IndexedLofarPipelineChildListType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedMom2ObjectListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedLofarPipelineChildItemType"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedLofarPipelineChildItemType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedMom2ObjectItemType">
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType><!-- Averaging Pipeline related declarations -->
<xsd:complexType name="AveragingPipelineType">
<xsd:complexContent>
<xsd:restriction base="LofarPipelineType">
<xsd:sequence>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="predecessor_topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
<xsd:element minOccurs="0" name="processingCluster" type="ProcessingClusterType"/>
<xsd:element minOccurs="0" name="parent" type="mom2:CollectionRefType"/>
<xsd:element minOccurs="0" name="ownerProject" type="mom2:ProjectRefType"/>
<xsd:element minOccurs="0" name="statusHistory" type="mom2:StatusHistoryType"/>
<xsd:element minOccurs="0" name="currentStatus" type="mom2:CurrentStatusType"/>
<xsd:element minOccurs="0" name="generalRemarks" nillable="true" type="mom2:IndexedGeneralRemarkListType"/>
<xsd:element minOccurs="0" name="inspectionReports" nillable="true" type="mom2:IndexedInspectionReportListType"/>
<xsd:element minOccurs="0" name="specificationRemarks" nillable="true" type="mom2:IndexedSpecificationRemarkListType"/>
<xsd:element minOccurs="0" name="schedulingRemarks" nillable="true" type="mom2:IndexedSchedulingRemarkListType"/>
<xsd:choice minOccurs="0">
<xsd:element ref="averagingPipelineAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="usedDataProducts" nillable="true" type="mom2:IndexedDataProductListType"/>
<xsd:element minOccurs="0" name="resultDataProducts" nillable="true" type="mom2:IndexedDataProductListType"/><!-- xsd:element minOccurs="0" name="children" type="IndexedLofarPipelineChildListType"/ --><!--WTF-->
</xsd:sequence>
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DemixingParametersType">
<xsd:sequence>
<xsd:element minOccurs="0" name="averagingFreqStep" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="averagingTimeStep" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="demixFreqStep" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="demixTimeStep" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="demixAlways" type="xsd:string"/>
<xsd:element minOccurs="0" name="demixIfNeeded" type="xsd:string"/>
<xsd:element minOccurs="0" name="ignoreTarget" type="xsd:boolean" nillable="true"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BbsParametersType">
<xsd:sequence>
<xsd:element minOccurs="0" name="averagingFreqStep" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="averagingTimeStep" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="demixFreqStep" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="demixTimeStep" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="demixAlways" type="xsd:string"/>
<xsd:element minOccurs="0" name="demixIfNeeded" type="xsd:string"/>
<xsd:element minOccurs="0" name="ignoreTarget" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="averagingPipelineAttributes" substitutionGroup="mom2:specificAttributes" type="AveragingPipelineAttributesType"/>
<xsd:complexType name="AveragingPipelineAttributesType">
<xsd:complexContent>
<xsd:extension base="LofarPipelineAttributesType">
<xsd:sequence>
<xsd:element minOccurs="0" name="defaultTemplate" type="xsd:string"/>
<xsd:element minOccurs="0" name="duration" type="xsd:duration"/>
<xsd:element minOccurs="0" name="startTime" type="xsd:dateTime"/>
<xsd:element minOccurs="0" name="endTime" type="xsd:dateTime" nillable="true"/>
<xsd:element minOccurs="0" name="demixingParameters" type="DemixingParametersType"/>
<xsd:element minOccurs="0" name="bbsParameters" type="BbsParametersType"/>
<xsd:element minOccurs="0" name="flaggingStrategy" type="xsd:string"/><!-- xsd:element minOccurs="0" name="frequencyIntegrationStep" type="xsd:nonNegativeInteger"/ --><!-- xsd:element minOccurs="0" name="timeIntegrationStep" type="xsd:nonNegativeInteger"/ -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- Calibration Pipeline related declarations -->
<xsd:complexType name="CalibrationPipelineType">
<xsd:complexContent>
<xsd:restriction base="LofarPipelineType">
<xsd:sequence>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="predecessor_topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
<xsd:element minOccurs="0" name="processingCluster" type="ProcessingClusterType"/>
<xsd:element minOccurs="0" name="parent" type="mom2:CollectionRefType"/>
<xsd:element minOccurs="0" name="ownerProject" type="mom2:ProjectRefType"/>
<xsd:element minOccurs="0" name="statusHistory" type="mom2:StatusHistoryType"/>
<xsd:element minOccurs="0" name="currentStatus" type="mom2:CurrentStatusType"/>
<xsd:element minOccurs="0" name="generalRemarks" nillable="true" type="mom2:IndexedGeneralRemarkListType"/>
<xsd:element minOccurs="0" name="inspectionReports" nillable="true" type="mom2:IndexedInspectionReportListType"/>
<xsd:element minOccurs="0" name="specificationRemarks" nillable="true" type="mom2:IndexedSpecificationRemarkListType"/>
<xsd:element minOccurs="0" name="schedulingRemarks" nillable="true" type="mom2:IndexedSchedulingRemarkListType"/>
<xsd:choice minOccurs="0">
<xsd:element ref="calibrationPipelineAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="usedDataProducts" nillable="true" type="mom2:IndexedDataProductListType"/>
<xsd:element minOccurs="0" name="resultDataProducts" nillable="true" type="mom2:IndexedDataProductListType"/><!-- xsd:element minOccurs="0" name="children" type="IndexedLofarPipelineChildListType"/ --><!--WTF-->
</xsd:sequence>
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="calibrationPipelineAttributes" substitutionGroup="mom2:specificAttributes" type="CalibrationPipelineAttributesType"/>
<xsd:complexType name="CalibrationPipelineAttributesType">
<xsd:complexContent>
<xsd:extension base="AveragingPipelineAttributesType">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- Imaging Pipeline related declarations -->
<xsd:complexType name="ImagingPipelineType">
<xsd:complexContent>
<xsd:restriction base="LofarPipelineType">
<xsd:sequence>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="predecessor_topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
<xsd:element minOccurs="0" name="processingCluster" type="ProcessingClusterType"/>
<xsd:element minOccurs="0" name="parent" type="mom2:CollectionRefType"/>
<xsd:element minOccurs="0" name="ownerProject" type="mom2:ProjectRefType"/>
<xsd:element minOccurs="0" name="statusHistory" type="mom2:StatusHistoryType"/>
<xsd:element minOccurs="0" name="currentStatus" type="mom2:CurrentStatusType"/>
<xsd:element minOccurs="0" name="generalRemarks" nillable="true" type="mom2:IndexedGeneralRemarkListType"/>
<xsd:element minOccurs="0" name="inspectionReports" nillable="true" type="mom2:IndexedInspectionReportListType"/>
<xsd:element minOccurs="0" name="specificationRemarks" nillable="true" type="mom2:IndexedSpecificationRemarkListType"/>
<xsd:element minOccurs="0" name="schedulingRemarks" nillable="true" type="mom2:IndexedSchedulingRemarkListType"/>
<xsd:choice minOccurs="0">
<xsd:element ref="imagingPipelineAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="usedDataProducts" nillable="true" type="IndexedImagingPipelineUsedDataProductListType"/>
<xsd:element minOccurs="0" name="resultDataProducts" nillable="true" type="IndexedImagingPipelineResultDataProductListType"/><!-- xsd:element minOccurs="0" name="children" type="IndexedLofarPipelineChildListType"/ --><!--WTF-->
</xsd:sequence>
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="imagingPipelineAttributes" substitutionGroup="mom2:specificAttributes" type="ImagingPipelineAttributesType"/>
<xsd:complexType name="ImagingPipelineAttributesType">
<xsd:complexContent>
<xsd:extension base="AveragingPipelineAttributesType">
<xsd:sequence>
<xsd:element minOccurs="0" name="imagerIntegrationTime" type="xsd:double"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedImagingPipelineUsedDataProductListType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedDataProductListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedImagingPipelineUsedDataProductType"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedImagingPipelineUsedDataProductType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedDataProductItemType">
<xsd:choice>
<xsd:element ref="uvDataProduct"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedImagingPipelineResultDataProductListType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedDataProductListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedImagingPipelineResultDataProductType"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedImagingPipelineResultDataProductType">
<xsd:complexContent>
<xsd:restriction base="mom2:IndexedDataProductItemType">
<xsd:choice>
<xsd:element ref="uvDataProduct"/>
<xsd:element ref="skyImageDataProduct"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType><!-- Pulsar Pipeline related declarations -->
<xsd:complexType name="PulsarPipelineType">
<xsd:complexContent>
<xsd:restriction base="LofarPipelineType">
<xsd:sequence>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="predecessor_topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
<xsd:element minOccurs="0" name="processingCluster" type="ProcessingClusterType"/>
<xsd:element minOccurs="0" name="parent" type="mom2:CollectionRefType"/>
<xsd:element minOccurs="0" name="ownerProject" type="mom2:ProjectRefType"/>
<xsd:element minOccurs="0" name="statusHistory" type="mom2:StatusHistoryType"/>
<xsd:element minOccurs="0" name="currentStatus" type="mom2:CurrentStatusType"/>
<xsd:element minOccurs="0" name="generalRemarks" nillable="true" type="mom2:IndexedGeneralRemarkListType"/>
<xsd:element minOccurs="0" name="inspectionReports" nillable="true" type="mom2:IndexedInspectionReportListType"/>
<xsd:element minOccurs="0" name="specificationRemarks" nillable="true" type="mom2:IndexedSpecificationRemarkListType"/>
<xsd:element minOccurs="0" name="schedulingRemarks" nillable="true" type="mom2:IndexedSchedulingRemarkListType"/>
<xsd:choice minOccurs="0">
<xsd:element ref="pulsarPipelineAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="usedDataProducts" nillable="true" type="mom2:IndexedDataProductListType"/>
<xsd:element minOccurs="0" name="resultDataProducts" nillable="true" type="mom2:IndexedDataProductListType"/>
<xsd:element minOccurs="0" name="children" type="IndexedLofarPipelineChildListType"/>
</xsd:sequence>
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="pulsarPipelineAttributes" substitutionGroup="mom2:specificAttributes" type="PulsarPipelineAttributesType"/>
<xsd:complexType name="PulsarPipelineAttributesType">
<xsd:complexContent>
<xsd:extension base="LofarPipelineAttributesType">
<xsd:sequence>
<xsd:element minOccurs="0" name="defaultTemplate" type="xsd:string"/>
<xsd:element minOccurs="0" name="duration" type="xsd:string"/>
<xsd:element minOccurs="0" name="_2bf2fitsExtraOpts" type="xsd:string"/>
<xsd:element minOccurs="0" name="_8bitConversionSigma" type="xsd:string"/>
<xsd:element minOccurs="0" name="decodeNblocks" type="xsd:string"/>
<xsd:element minOccurs="0" name="decodeSigma" type="xsd:string"/>
<xsd:element minOccurs="0" name="digifilExtraOpts" type="xsd:string"/>
<xsd:element minOccurs="0" name="dspsrExtraOpts" type="xsd:string"/>
<xsd:element minOccurs="0" name="dynamicSpectrumTimeAverage" type="xsd:string"/>
<xsd:element minOccurs="0" name="nofold" type="xsd:string"/>
<xsd:element minOccurs="0" name="nopdmp" type="xsd:string"/>
<xsd:element minOccurs="0" name="norfi" type="xsd:string"/>
<xsd:element minOccurs="0" name="prepdataExtraOpts" type="xsd:string"/>
<xsd:element minOccurs="0" name="prepfoldExtraOpts" type="xsd:string"/>
<xsd:element minOccurs="0" name="prepsubbandExtraOpts" type="xsd:string"/>
<xsd:element minOccurs="0" name="pulsar" type="xsd:string"/>
<xsd:element minOccurs="0" name="rawTo8bit" type="xsd:string"/>
<xsd:element minOccurs="0" name="rfifindExtraOpts" type="xsd:string"/>
<xsd:element minOccurs="0" name="rrats" type="xsd:string"/>
<xsd:element minOccurs="0" name="singlePulse" type="xsd:string"/>
<xsd:element minOccurs="0" name="skipDsps" type="xsd:string"/>
<xsd:element minOccurs="0" name="skipDynamicSpectrum" type="xsd:string"/>
<xsd:element minOccurs="0" name="skipPrepfold" type="xsd:string"/>
<xsd:element minOccurs="0" name="tsubint" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType><!-- DataProduct related declarations -->
<xsd:complexType name="LofarDataProductType" abstract="true">
<xsd:complexContent>
<xsd:extension base="mom2:DataProductType">
<xsd:sequence>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageClusterType"/>
</xsd:sequence>
<xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/>
<!-- xsd:attribute name="id" type="xsd:integer" default="0"/ -->
<!-- xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/ -->
<xsd:attribute name="topology" type="xsd:string"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="ChecksumAlgorithm">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="MD5"/>
<xsd:enumeration value="Adler32"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ChecksumTypes">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="checksum" type="ChecksumType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ChecksumType">
<xsd:sequence>
<xsd:element name="algorithm" type="ChecksumAlgorithm"/>
<xsd:element name="value" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType><!-- UV DataProduct related declarations -->
<xsd:element name="uvDataProduct" substitutionGroup="mom2:anyDataProduct" type="UVDataProductType"/>
<xsd:complexType name="UVDataProductType">
<xsd:complexContent>
<xsd:restriction base="LofarDataProductType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageClusterType"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRefType"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocationsType"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificUVDataProductAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence>
<!-- xsd:attribute name="id" type="xsd:integer" default="0"/ -->
<!-- xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/ -->
<xsd:attribute name="topology" type="xsd:string"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="StorageClusterType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="partition" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="specificUVDataProductAttributes" substitutionGroup="mom2:specificAttributes" type="SpecificUVDataProductAttributesType"/>
<xsd:complexType name="SpecificUVDataProductAttributesType">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributesType">
<xsd:sequence>
<xsd:element minOccurs="0" name="subband" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="stationSubband" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="centralFrequency" type="mom2:Frequency"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType><!-- Beamformed DataProduct related declarations -->
<xsd:element name="bfDataProduct" substitutionGroup="mom2:anyDataProduct" type="BFDataProductType"/>
<xsd:complexType name="BFDataProductType">
<xsd:complexContent>
<xsd:restriction base="LofarDataProductType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageClusterType"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRefType"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocationsType"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificBFDataProductAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence>
<!-- xsd:attribute name="id" type="xsd:integer" default="0"/ -->
<!-- xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/ -->
<xsd:attribute name="topology" type="xsd:string"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="specificBFDataProductAttributes" substitutionGroup="mom2:specificAttributes" type="SpecificBFDataProductAttributesType"/>
<xsd:complexType name="SpecificBFDataProductAttributesType">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributesType">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType><!-- TBB DataProduct related declarations -->
<xsd:element name="tbbDataProduct" substitutionGroup="mom2:anyDataProduct" type="TBBDataProductType"/>
<xsd:complexType name="TBBDataProductType">
<xsd:complexContent>
<xsd:restriction base="LofarDataProductType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageClusterType"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRefType"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocationsType"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificTBBDataProductAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer" default="0"/>
<xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="specificTBBDataProductAttributes" substitutionGroup="mom2:specificAttributes" type="SpecificTBBDataProductAttributesType"/>
<xsd:complexType name="SpecificTBBDataProductAttributesType">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributesType">
<xsd:sequence>
<xsd:element minOccurs="0" name="numberOfSamples" type="xsd:positiveInteger"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType><!-- PixelMap DataProduct related declarations -->
<xsd:complexType name="PixelMapDataProductType" abstract="true">
<xsd:complexContent>
<xsd:restriction base="LofarDataProductType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageClusterType"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRefType"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocationsType"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificPixelMapDataProductAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer" default="0"/>
<xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="specificPixelMapDataProductAttributes" substitutionGroup="mom2:specificAttributes" type="SpecificPixelMapDataProductAttributesType"/>
<xsd:complexType name="SpecificPixelMapDataProductAttributesType">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributesType">
<xsd:sequence>
<xsd:element minOccurs="0" name="numberOfAxes" type="xsd:positiveInteger"/>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="axis" type="AxisType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AxisType">
<xsd:sequence>
<xsd:element minOccurs="0" name="number" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="unit" type="xsd:string"/>
<xsd:element minOccurs="0" name="length" type="xsd:nonNegativeInteger"/>
</xsd:sequence>
</xsd:complexType><!-- Sky Image DataProduct related declarations -->
<xsd:element name="skyImageDataProduct" substitutionGroup="mom2:anyDataProduct" type="SkyImageDataProductType"/>
<xsd:complexType name="SkyImageDataProductType">
<xsd:complexContent>
<xsd:restriction base="LofarDataProductType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageClusterType"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRefType"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocationsType"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificSkyImageDataProductAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer" default="0"/>
<xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="specificSkyImageDataProductAttributes" substitutionGroup="mom2:specificAttributes" type="SpecificSkyImageDataProductAttributesType"/>
<xsd:complexType name="SpecificSkyImageDataProductAttributesType">
<xsd:complexContent>
<xsd:extension base="SpecificPixelMapDataProductAttributesType">
<xsd:sequence>
<xsd:element minOccurs="0" name="pointing" type="PointingType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PointingType">
<xsd:sequence>
<xsd:element minOccurs="0" name="rightAscension" type="xsd:double"/>
<xsd:element minOccurs="0" name="declination" type="xsd:double"/>
<xsd:element minOccurs="0" name="equinox" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType><!-- Pulsar Pipeline DataProduct related declarations -->
<xsd:element name="pulsarDataProduct" substitutionGroup="mom2:anyDataProduct" type="PulsarDataProductType"/>
<xsd:complexType name="PulsarDataProductType">
<xsd:complexContent>
<xsd:restriction base="LofarDataProductType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageClusterType"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRefType"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocationsType"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificBFDataProductAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence><!-- xsd:attribute name="id" type="xsd:integer" default="0"/ --><!-- xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/ --><!-- xsd:attribute name="topology" type="xsd:string"/ -->
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="specificPulsarDataProductAttributes" substitutionGroup="mom2:specificAttributes" type="SpecificPulsarDataProductAttributesType"/>
<xsd:complexType name="SpecificPulsarDataProductAttributesType">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributesType">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType><!-- Generic DataProduct related declarations -->
<xsd:element name="genericDataProduct" substitutionGroup="mom2:anyDataProduct" type="GenericDataProductType"/>
<xsd:complexType name="GenericDataProductType">
<xsd:complexContent>
<xsd:restriction base="LofarDataProductType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageClusterType"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRefType"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocationsType"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer" default="0"/>
<xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema targetNamespace="http://www.astron.nl/MoM2" version="1.0" xmlns:persistent="http://www.astron.nl/PersistentObjects" xmlns="http://www.astron.nl/MoM2" xmlns:user="http://www.astron.nl/useradmin" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import schemaLocation="UserAdmin.xsd" namespace="http://www.astron.nl/useradmin"/>
<xsd:import schemaLocation="PersistentObjects.xsd" namespace="http://www.astron.nl/PersistentObjects"/>
<xsd:annotation>
<xsd:documentation>
XML Schema for the MoM2 datamodel
</xsd:documentation>
</xsd:annotation>
<xsd:element name="projects">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" ref="project"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="project" type="ProjectType"/>
<xsd:complexType name="ProjectType" abstract="true">
<xsd:complexContent mixed="false">
<xsd:extension base="CollectionType">
<xsd:sequence>
<xsd:element minOccurs="0" name="members" nillable="true" type="IndexedMemberListType"/>
<xsd:choice minOccurs="0">
<xsd:element ref="allocation"/>
</xsd:choice>
<xsd:element minOccurs="0" name="releaseDate" type="xsd:date"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ProjectRefType">
<xsd:complexContent mixed="false">
<xsd:restriction base="ProjectType"><!--
Project reference is unique if either mom2Id or name is given NB exactly one of these should be provided but no
validation in the schema (fundamental schema definition problem)!
-->
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedMemberListType">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="item">
<xsd:complexType>
<xsd:choice>
<xsd:element name="registeredMember" type="RegisteredMemberType"/>
<xsd:element name="nonRegisteredMember" type="NonRegisteredMemberType"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MemberType" abstract="true">
<xsd:complexContent mixed="false">
<xsd:extension base="persistent:PersistentObjectType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="affilliation" type="xsd:string"/>
<xsd:element minOccurs="0" name="email" type="xsd:string"/>
<xsd:element minOccurs="0" name="country" type="xsd:string"/>
<xsd:element minOccurs="0" name="roles">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded">
<xsd:element ref="anyRole"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ProjectRoleType">
<xsd:complexContent mixed="false">
<xsd:extension base="persistent:PersistentObjectType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ProjectRoleRefType">
<xsd:complexContent mixed="false">
<xsd:restriction base="ProjectRoleType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element abstract="true" name="anyRole" type="ProjectRoleRefType"/>
<xsd:element name="pi" substitutionGroup="anyRole">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="ProjectRoleRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="Pi" name="name" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="1" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="coi" substitutionGroup="anyRole">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="ProjectRoleRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="Co-I" name="name" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="2" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="friend" substitutionGroup="anyRole">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="ProjectRoleRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="Friend" name="name" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="3" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="contactAuthor" substitutionGroup="anyRole">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="ProjectRoleRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="Contact author" name="name" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="4" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="potentialObserver" substitutionGroup="anyRole">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="ProjectRoleRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="Potential observer" name="name" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="5" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="RegisteredMemberType">
<xsd:complexContent mixed="false">
<xsd:extension base="MemberType">
<xsd:sequence>
<xsd:element minOccurs="0" name="user" type="user:UserRefType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="NonRegisteredMemberType">
<xsd:complexContent mixed="false">
<xsd:extension base="MemberType">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AllocationType">
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="anyResource"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:element abstract="true" name="allocation" type="AllocationType"/>
<xsd:complexType name="ResourceType" abstract="true">
<xsd:simpleContent>
<xsd:extension base="xsd:double">
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="unit" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:element abstract="true" name="anyResource" type="ResourceType"/>
<xsd:element name="observingTime" substitutionGroup="anyResource">
<xsd:complexType>
<xsd:simpleContent>
<xsd:restriction base="ResourceType">
<xsd:simpleType>
<xsd:restriction base="xsd:double"/>
</xsd:simpleType>
<xsd:attribute fixed="time" name="name" type="xsd:string"/>
<xsd:attribute fixed="seconds" name="unit" type="xsd:string"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="CollectionType" abstract="true">
<xsd:complexContent mixed="false">
<xsd:extension base="Mom2ObjectType">
<xsd:sequence>
<xsd:element minOccurs="0" name="children" nillable="true" type="IndexedMom2ObjectListType"/>
<xsd:element minOccurs="0" name="references" nillable="true" type="IndexedMom2ObjectRefListType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="CollectionRefType" abstract="true">
<xsd:complexContent mixed="false">
<xsd:restriction base="CollectionType">
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger" use="required"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedMom2ObjectListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedMom2ObjectItemType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IndexedMom2ObjectItemType">
<xsd:complexContent mixed="false">
<xsd:extension base="persistent:IndexedListItemType">
<xsd:choice>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element abstract="true" name="anyMom2Object" type="Mom2ObjectType"/>
<xsd:complexType name="IndexedMom2ObjectRefListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedMom2ObjectRefItemType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IndexedMom2ObjectRefItemType">
<xsd:complexContent mixed="false">
<xsd:extension base="persistent:IndexedListItemType">
<xsd:choice minOccurs="0">
<xsd:element ref="anyMom2ObjectRef"/>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element abstract="true" name="anyMom2ObjectRef" type="Mom2ObjectRefType"/>
<xsd:complexType name="Mom2ObjectType" abstract="true">
<xsd:complexContent mixed="false">
<xsd:extension base="persistent:PersistentObjectType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
<xsd:element minOccurs="0" name="parent" type="CollectionRefType"/>
<xsd:element minOccurs="0" name="ownerProject" type="ProjectRefType"/>
<xsd:element minOccurs="0" name="statusHistory" type="StatusHistoryType"/>
<xsd:element minOccurs="0" name="currentStatus" type="CurrentStatusType"/>
<xsd:element minOccurs="0" name="generalRemarks" nillable="true" type="IndexedGeneralRemarkListType"/>
<xsd:element minOccurs="0" name="inspectionReports" nillable="true" type="IndexedInspectionReportListType"/>
<xsd:element minOccurs="0" name="specificationRemarks" nillable="true" type="IndexedSpecificationRemarkListType"/>
<xsd:element minOccurs="0" name="schedulingRemarks" nillable="true" type="IndexedSchedulingRemarkListType"/>
<xsd:element minOccurs="0" name="usedDataProducts" nillable="true" type="IndexedDataProductListType"/>
<xsd:element minOccurs="0" name="resultDataProducts" nillable="true" type="IndexedDataProductListType"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificAttributes"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Mom2ObjectRefType">
<xsd:complexContent mixed="false">
<xsd:restriction base="Mom2ObjectType">
<xsd:attribute name="mom2Id" type="xsd:nonNegativeInteger" use="required"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Mom2ObjectStatusType">
<xsd:complexContent mixed="false">
<xsd:extension base="persistent:PersistentObjectType">
<xsd:all>
<xsd:element minOccurs="0" name="user" type="user:UserRefType"/>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="roles" type="xsd:string"/>
<xsd:element minOccurs="0" ref="anyStatus"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
</xsd:all>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Mom2ObjectStatusRefType">
<xsd:complexContent mixed="false">
<xsd:restriction base="persistent:PersistentObjectType">
<xsd:attribute name="id" type="xsd:integer" use="required"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="StatusType" abstract="true">
<xsd:complexContent mixed="false">
<xsd:extension base="persistent:PersistentObjectType">
<xsd:all>
<xsd:element minOccurs="0" name="code" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="description" type="xsd:string"/>
</xsd:all>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="StatusRefType">
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusType">
<xsd:sequence>
<xsd:element minOccurs="0" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element abstract="true" name="anyStatus" type="StatusRefType"/>
<xsd:complexType name="StatusHistoryType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="StatusHistoryItemType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="StatusHistoryItemType">
<xsd:complexContent mixed="false">
<xsd:restriction base="IndexedMom2ObjectStatusItemType">
<xsd:choice>
<xsd:element name="mom2ObjectStatus" type="Mom2ObjectStatusType"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedMom2ObjectStatusItemType">
<xsd:complexContent mixed="false">
<xsd:extension base="persistent:IndexedListItemType">
<xsd:choice>
<xsd:element minOccurs="0" name="mom2ObjectStatus" type="Mom2ObjectStatusType"/>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="CurrentStatusType">
<xsd:choice>
<xsd:element name="mom2ObjectStatus" type="Mom2ObjectStatusRefType"/>
<xsd:element name="statusHistoryItem" type="StatusHistoryRefType"/>
<xsd:element ref="anyStatus"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="StatusHistoryRefType">
<xsd:complexContent mixed="false">
<xsd:restriction base="IndexedMom2ObjectStatusItemType">
<xsd:attribute name="index" type="xsd:nonNegativeInteger" use="required"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="openedStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="opened" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="1" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="describedStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="described" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="2" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="preparedStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="prepared" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="3" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="approvedStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="approved" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="4" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="scheduledStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="scheduled" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="5" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="activeStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="active" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="6" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="runningStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="running" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="7" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="holdStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="hold" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="8" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="suspendedStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="suspended" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="9" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="finishedStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="finished" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="10" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="abortedStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="aborted" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="11" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="failedStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="failed" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="12" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="successfulStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="successful" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="13" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="notSchedulableStatus" substitutionGroup="anyStatus">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:restriction base="StatusRefType">
<xsd:sequence>
<xsd:element minOccurs="0" fixed="not schedulable" name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute fixed="14" name="id" type="xsd:integer"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="IndexedGeneralRemarkListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedGeneralRemarkItemType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IndexedGeneralRemarkItemType">
<xsd:complexContent mixed="false">
<xsd:restriction base="IndexedTextItemType">
<xsd:choice>
<xsd:element ref="generalRemark"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedInspectionReportListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedInspectionReportItemType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IndexedInspectionReportItemType">
<xsd:complexContent mixed="false">
<xsd:restriction base="IndexedTextItemType">
<xsd:choice>
<xsd:element ref="inspectionReport"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedSpecificationRemarkListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedSpecificationRemarkItemType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IndexedSpecificationRemarkItemType">
<xsd:complexContent mixed="false">
<xsd:restriction base="IndexedTextItemType">
<xsd:choice>
<xsd:element ref="specificationRemark"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedSchedulingRemarkListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedSchedulingRemarkItemType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IndexedSchedulingRemarkItemType">
<xsd:complexContent mixed="false">
<xsd:restriction base="IndexedTextItemType">
<xsd:choice>
<xsd:element ref="schedulingRemark"/>
</xsd:choice>
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IndexedTextItemType">
<xsd:complexContent mixed="false">
<xsd:extension base="persistent:IndexedListItemType">
<xsd:choice>
<xsd:element ref="anyText"/>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TextType">
<xsd:complexContent mixed="false">
<xsd:extension base="persistent:PersistentObjectType">
<xsd:all>
<xsd:element minOccurs="0" name="user" type="user:UserRefType"/>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="roles" type="xsd:string"/>
<xsd:element minOccurs="0" name="text" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
</xsd:all>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="GeneralRemarkType">
<xsd:complexContent mixed="false">
<xsd:extension base="TextType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="SchedulingRemarkType">
<xsd:complexContent mixed="false">
<xsd:extension base="TextType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="SpecificationRemarkType">
<xsd:complexContent mixed="false">
<xsd:extension base="TextType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="InspectionReportType">
<xsd:complexContent mixed="false">
<xsd:extension base="TextType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:element abstract="true" name="anyText" type="TextType"/>
<xsd:element name="generalRemark" substitutionGroup="anyText" type="GeneralRemarkType"/>
<xsd:element name="inspectionReport" substitutionGroup="anyText" type="InspectionReportType"/>
<xsd:element name="specificationRemark" substitutionGroup="anyText" type="SpecificationRemarkType"/>
<xsd:element name="schedulingRemark" substitutionGroup="anyText" type="SchedulingRemarkType"/>
<xsd:complexType name="IndexedDataProductListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item" type="IndexedDataProductItemType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IndexedDataProductItemType">
<xsd:complexContent mixed="false">
<xsd:extension base="persistent:IndexedListItemType">
<xsd:choice>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DataProductType">
<xsd:complexContent mixed="false">
<xsd:extension base="persistent:PersistentObjectType">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="Mom2ObjectRefType"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="DataProductLocationsType"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificAttributes"/>
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DataProductLocationsType">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="location" type="DataProductLocationType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DataProductLocationType">
<xsd:complexContent mixed="false">
<xsd:extension base="persistent:PersistentObjectType">
<xsd:sequence>
<xsd:element name="uri" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element abstract="true" name="anyDataProduct" type="DataProductType"/>
<xsd:element abstract="true" name="specificAttributes" type="SpecificAttributesType"/>
<xsd:complexType name="SpecificAttributesType"/>
<xsd:simpleType name="FrequencyUnit">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Hz"/>
<xsd:enumeration value="kHz"/>
<xsd:enumeration value="MHz"/>
<xsd:enumeration value="GHz"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Frequency">
<xsd:simpleContent>
<xsd:extension base="xsd:double">
<xsd:attribute name="unit" type="FrequencyUnit" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:schema>
<xsd:schema targetNamespace="http://www.astron.nl/PersistentObjects" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.astron.nl/PersistentObjects">
<xsd:annotation>
<xsd:documentation>Definition of base types for astron web application persistent objects</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="PersistentObjectType" abstract="true">
<xsd:annotation>
<xsd:documentation>
Base persistent object type
</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="id" type="xsd:integer" default="0"/>
</xsd:complexType>
<xsd:complexType name="IndexedListType" abstract="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="indexedListItem"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="IndexedListItemType" abstract="true">
<xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
</xsd:complexType>
<xsd:complexType name="PersistentListType" abstract="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
A choice group with min/max occurences is used since
the intention is that the referenced (abstract)
element &quot;"persistentListElement&quot;" is
replaced by a member of it's substitution group. (A
sequence with an unbouded number of these elemets
will not work as the substitution group is treated
as a choice group.)
</xsd:documentation>
</xsd:annotation>
<xsd:element ref="persistentObject"/>
</xsd:choice>
</xsd:complexType>
<xsd:element name="indexedListItem" type="IndexedListItemType" abstract="true"/>
<xsd:element name="persistentObject" type="PersistentObjectType" abstract="true"/>
</xsd:schema>
<xsd:schema targetNamespace="http://www.astron.nl/useradmin" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:persistent="http://www.astron.nl/PersistentObjects">
<xsd:import namespace="http://www.astron.nl/PersistentObjects" schemaLocation="PersistentObjects.xsd"/>
<xsd:annotation>
<xsd:documentation>
XML Schema for the WSRT user administration datamodel
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="UserRefType">
<xsd:complexContent>
<xsd:restriction base="persistent:PersistentObjectType">
<xsd:attribute name="id" type="xsd:integer" use="required"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema targetNamespace="http://www.astron.nl/LofarBase" version="0.3" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.astron.nl/LofarBase">
<xsd:annotation>
<xsd:documentation>Definitions of base types for LOFAR XML objects
Names and types match MoM3 but will need to be redesigned for MoM 4 or maybe even for Responsive Telescope.
</xsd:documentation>
</xsd:annotation>
<xsd:annotation>
<xsd:documentation>============================LOFAR common simple types============================
This section is for types used by multiple sections
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType name="IdentifierSource">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="MoM"/>
<xsd:enumeration value="SAS"/>
<xsd:enumeration value="Temporary"/><!--Only needs to be unique within a single XML. Recipient will need to assign permanent Ids-->
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="UUID">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Identifier">
<xsd:sequence>
<xsd:element name="source" type="xsd:string"/>
<xsd:choice>
<xsd:element name="identifier" type="xsd:nonNegativeInteger"/>
<xsd:element name="topology" type="xsd:string"/><!--For backward compatibility with MoM 3 and Alwin Scheduler -->
<xsd:element name="uuid" type="UUID"/><!--For forward compatibility with MoM 4-->
</xsd:choice>
<xsd:element name="description" minOccurs="0" type="xsd:string"/><!-- mostly for debugging -->
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>============================Project related types============================
This section describes types related to projects and users. Currently only implements some things for the specification of triggers.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="ProjectReference">
<xsd:choice>
<xsd:element name="identifier" type="Identifier"/> <!-- MoM Id -->
<xsd:element name="ProjectCode" type="xsd:string"/> <!-- Something like LC5_009 -->
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="ContactInformation">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="email" type="xsd:string"/>
<xsd:element name="phoneNumber" type="xsd:string"/>
<xsd:element name="affiliation" minOccurs="0" type="xsd:string"/> <!-- Does this need to point to an affiliation record? -->
<!-- Do we need anything else like address? -->
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>============================Event related types============================
This section describes ... information.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType name="EventType"> <!-- just some guesses right now -->
<xsd:restriction base="xsd:string">
<xsd:enumeration value="VOEvent"/>
<xsd:enumeration value="LOFAREvent"/>
<xsd:enumeration value="Magic"/>
<xsd:enumeration value="LIGO"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Event">
<xsd:sequence>
<xsd:element name="identification" type="xsd:string"/><!-- Probably doesn't need to be machine interpretable, so basically free form just to inform the user -->
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="type" type="EventType"/> <!-- This implicitly determines the source of the identification -->
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>============================Container related types============================
This section describes the types that can be used to represent groupings of activities for display purposes.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="Folder">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
<!--xsd:element name="type" minOccurs="0" type="FolderType"/-->
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
</xsd:sequence>
<!--xsd:attribute name="topology_parent" type="xsd:boolean"/>
<xsd:attribute name="update_folder" type="xsd:boolean"/ -->
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>============================Observation related types============================
This section describes the types related to the Observation.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="Observation">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="instrument" type="Instrument"/>
<xsd:element name="defaultTemplate" type="xsd:string"/> <!-- use Strategy, to not be OTDB specific ? -->
<xsd:element name="tbbPiggybackAllowed" type="xsd:boolean"/>
<xsd:element name="aartfaacPiggybackAllowed" type="xsd:boolean"/>
<xsd:element name="correlatedData" type="xsd:boolean"/>
<xsd:element name="coherentStokesData" type="xsd:boolean"/>
<xsd:element name="incoherentStokesData" type="xsd:boolean"/>
<xsd:element name="antenna" type="AntennaSet"/>
<xsd:element name="clock" type="Clock"/>
<xsd:element name="instrumentFilter" type="BandFilter"/>
<xsd:element minOccurs="0" name="integrationInterval" type="xsd:double"/>
<xsd:element minOccurs="0" name="channelsPerSubband" type="xsd:short"/>
<!--xsd:element minOccurs="0" name="coherentDedisperseChannels" type="xsd:boolean"/> Probably these are old BlueGene settings
<xsd:element minOccurs="0" name="tiedArrayBeams" type="ArrayBeams"/>
<xsd:element minOccurs="0" name="stokes" type="Stokes"/>
<xsd:element minOccurs="0" name="bypassPff" type="xsd:boolean"/--> <!-- Might need to be bypassPPF -->
<xsd:element name="flysEye" type="xsd:boolean"/>
<xsd:element name="enableSuperterp" type="xsd:boolean"/>
<xsd:element name="numberOfBitsPerSample" type="xsd:nonNegativeInteger"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="MemoryStorageUnit">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="byte"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="MemoryStorage">
<xsd:simpleContent>
<xsd:extension base="xsd:nonNegativeInteger">
<xsd:attribute name="unit" type="MemoryStorageUnit" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="ProcessingCluster">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="partition" type="xsd:string"/>
<xsd:element name="numberOfTasks" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="minRAMPerTask" type="MemoryStorage"/>
<xsd:element minOccurs="0" name="minScratchPerTask" type="MemoryStorage"/>
<xsd:element minOccurs="0" name="maxDurationPerTask" type="xsd:duration"/>
<xsd:element name="numberOfCoresPerTask" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="runSimultaneous" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ArrayBeams">
<xsd:sequence>
<!--xsd:element minOccurs="0" name="flyseye" type="xsd:boolean"/-->
<xsd:element minOccurs="0" name="nrTabRings" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="tabRingSize" type="xsd:double" nillable="true"/>
<xsd:element minOccurs="0" name="tiedArrayBeamList" type="ArrayBeamList"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ArrayBeamList">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="tiedArrayBeam">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="coherent" type="xsd:boolean"/>
<xsd:element name="angle1" type="xsd:double"/>
<xsd:element name="angle2" type="xsd:double"/>
</xsd:sequence>
<xsd:attribute name="index" type="xsd:integer"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="StokesSelection"><!-- I think we support more XXYY ???-->
<xsd:restriction base="xsd:string">
<xsd:enumeration value="I"/>
<xsd:enumeration value="IQUV"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Stokes">
<xsd:sequence>
<xsd:element name="integrateChannels" type="xsd:boolean"/>
<xsd:element name="subbandsPerFileCS" type="xsd:nonNegativeInteger" nillable="true"/>
<xsd:element name="numberCollapsedChannelsCS" type="xsd:nonNegativeInteger" nillable="true"/>
<xsd:element name="stokesDownsamplingStepsCS" type="xsd:nonNegativeInteger" nillable="true"/>
<xsd:element name="whichCS" type="StokesSelection" nillable="true"/>
<xsd:element name="subbandsPerFileIS" type="xsd:nonNegativeInteger" nillable="true"/>
<xsd:element name="numberCollapsedChannelsIS" type="xsd:nonNegativeInteger" nillable="true"/>
<xsd:element name="stokesDownsamplingStepsIS" type="xsd:nonNegativeInteger" nillable="true"/>
<xsd:element name="whichIS" type="StokesSelection" nillable="true"/>
<!-- xsd:element minOccurs="0" name="integrationSteps" type="xsd:nonNegativeInteger" nillable="true"/ -->
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Stations">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="station" type="Station"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Station">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/><!--xsd:attribute name="name" type="xsd:string" use="required"/-->
<!--xsd:element minOccurs="0" name="location" type="Coordinates/-->
<xsd:element minOccurs="0" maxOccurs="2" name="antennaField" type="AntennaField"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="AntennaFieldType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="HBA0"/>
<xsd:enumeration value="HBA1"/>
<xsd:enumeration value="HBA"/>
<xsd:enumeration value="LBA"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="AntennaField">
<xsd:sequence>
<xsd:element name="name" type="AntennaFieldType"/>
<!--xsd:element name="location" type="Coordinates/-->
</xsd:sequence>
</xsd:complexType>
<!-- xsd:complexType name="Coordinates>
<xsd:sequence>
<xsd:element name="coordinateSystem">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="WGS84"/>
<xsd:enumeration value="ITRF2000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="x" type="xsd:double"/>
<xsd:element name="y" type="xsd:double"/>
<xsd:element name="z" type="xsd:double"/>
</xsd:sequence>
</xsd:complexType-->
<xsd:simpleType name="AntennaSet">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="HBA Zero"/>
<xsd:enumeration value="HBA One"/>
<xsd:enumeration value="HBA Dual"/>
<xsd:enumeration value="HBA Joined"/>
<xsd:enumeration value="LBA Outer"/>
<xsd:enumeration value="LBA Inner"/>
<xsd:enumeration value="LBA Sparse Even"/>
<xsd:enumeration value="LBA Sparse Odd"/>
<xsd:enumeration value="LBA X"/> <!-- Not really supported -->
<xsd:enumeration value="LBA Y"/> <!-- Not really supported -->
<xsd:enumeration value="HBA Zero Inner"/>
<xsd:enumeration value="HBA One Inner"/>
<xsd:enumeration value="HBA Dual Inner"/>
<xsd:enumeration value="HBA Joined Inner"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="Instrument">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Beam Observation"/>
<xsd:enumeration value="Interferometer"/>
<xsd:enumeration value="Tied Array"/>
<xsd:enumeration value="Transient Buffer Board"/>
<xsd:enumeration value="Direct Data Storage"/>
<xsd:enumeration value="Non Standard"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="BandFilter">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="10-70 MHz"/>
<xsd:enumeration value="30-70 MHz"/>
<xsd:enumeration value="10-90 MHz"/>
<xsd:enumeration value="30-90 MHz"/>
<xsd:enumeration value="110-190 MHz"/>
<xsd:enumeration value="170-230 MHz"/>
<xsd:enumeration value="210-250 MHz"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Clock">
<xsd:simpleContent>
<xsd:restriction base="Frequency">
<xsd:enumeration value="160"/>
<xsd:enumeration value="200"/>
<xsd:attribute fixed="MHz" name="units" type="FrequencyUnit" use="required"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:simpleType name="FrequencyUnit">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Hz"/>
<xsd:enumeration value="kHz"/>
<xsd:enumeration value="MHz"/>
<xsd:enumeration value="GHz"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Frequency">
<xsd:simpleContent>
<xsd:extension base="xsd:double">
<xsd:attribute name="units" type="FrequencyUnit" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>============================Measurement related types============================
This section describes ... information.
</xsd:documentation><!-- Measurement related declarations -->
</xsd:annotation>
<xsd:complexType name="Measurement" abstract="true"/><!-- Beam Measurement related declarations -->
<xsd:complexType name="SAPMeasurement"> <!-- We will not make a distrinction between UV and BF-->
<xsd:complexContent>
<xsd:extension base="Measurement"><!-- SAP -->
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="ra" type="xsd:double"/>
<xsd:element name="dec" type="xsd:double"/>
<xsd:element name="equinox" type="Equinox"/>
<!-- xsd:element name="duration" type="xsd:duration"/>
<xsd:element name="startTime" type="xsd:dateTime"/>
<xsd:element name="endTime" type="xsd:dateTime"/ for LOFAR 2.0 this might be needed again-->
<!-- xsd:element name="centralFrequency" type="mom2:Frequency"/>
<xsd:element name="bandWidth" type="mom2:Frequency"/ -->
<xsd:element name="subbandsSpecification" type="SubbandsSpecification"/>
<xsd:element minOccurs="0" name="tiedArrayBeams" type="ArrayBeams"/>
<xsd:element name="measurementType">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Target"/>
<xsd:enumeration value="Calibration"/>
<xsd:enumeration value="Tune Up"/>
<xsd:enumeration value="Miscellaneous"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<!--FIXME distinction between spec and actual lost/omitted, might be needed for LofarHistorical support -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="SubbandsSpecification"><!-- FIXME We only use SubbandArray? -->
<xsd:sequence>
<!-- xsd:element minOccurs="0" name="bandWidth" type="Frequency"/>
<xsd:element minOccurs="0" name="centralFrequency" type="Frequency"/>
<xsd:element minOccurs="0" name="contiguous" type="xsd:boolean"/ -->
<xsd:element minOccurs="0" name="subbands" type="SubbandArray"/>
</xsd:sequence>
</xsd:complexType><!-- xsd:complexType name="CustomSubbandsSpecification"/ -->
<xsd:simpleType name="SubbandArray"> <!-- Could be nicer with a sequence of choice of subband/subbandrange of integers or always write the full list -->
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{1,3}(,\d{1,3})*|\d{1,3}\.\.\d{1,3}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="Equinox">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="J2000"/>
<xsd:enumeration value="B1950"/>
<xsd:enumeration value="Other"/>
</xsd:restriction>
</xsd:simpleType>
<!-- TBB Measurement, UV Measurement BF Measurement and Generic Measurement distinction is meaningless at the moment -->
<xsd:annotation>
<xsd:documentation>============================Pipeline related types============================
This section describes types related to pipelines.
</xsd:documentation>
</xsd:annotation>
<!-- General Pipeline related declarations -->
<xsd:complexType name="Pipeline" abstract="true"/>
<!-- Averaging Pipeline related declarations -->
<xsd:complexType name="AveragingPipeline">
<xsd:complexContent>
<xsd:extension base="Pipeline">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/> <!-- Should go to higher/base class level? -->
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="processingCluster" type="ProcessingCluster"/>
<xsd:element name="defaultTemplate" type="xsd:string"/>
<!--xsd:element minOccurs="0" name="duration" type="xsd:duration"/>
<xsd:element minOccurs="0" name="startTime" type="xsd:dateTime"/>
<xsd:element minOccurs="0" name="endTime" type="xsd:dateTime" nillable="true"/-->
<xsd:element minOccurs="0" name="demixingParameters" type="DemixingParameters"/>
<xsd:element minOccurs="0" name="bbsParameters" type="BbsParameters"/>
<xsd:element minOccurs="0" name="flaggingStrategy" type="xsd:string"/>
<xsd:element minOccurs="0" name="frequencyIntegrationStep" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="timeIntegrationStep" type="xsd:nonNegativeInteger"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DemixingParameters"><!-- These two types are basically the same !! Probably not correct. I made all of it mandatory-->
<xsd:sequence>
<xsd:element name="averagingFreqStep" type="xsd:nonNegativeInteger"/>
<xsd:element name="averagingTimeStep" type="xsd:nonNegativeInteger"/>
<xsd:element name="demixFreqStep" type="xsd:nonNegativeInteger"/>
<xsd:element name="demixTimeStep" type="xsd:nonNegativeInteger"/>
<xsd:element name="demixAlways" type="xsd:string"/>
<xsd:element name="demixIfNeeded" type="xsd:string"/>
<xsd:element name="ignoreTarget" type="xsd:boolean" nillable="true"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BbsParameters"><!-- BBS should be in a CalibrationPipeline !-->
<xsd:sequence>
<xsd:element name="averagingFreqStep" type="xsd:nonNegativeInteger"/>
<xsd:element name="averagingTimeStep" type="xsd:nonNegativeInteger"/>
<xsd:element name="demixFreqStep" type="xsd:nonNegativeInteger"/>
<xsd:element name="demixTimeStep" type="xsd:nonNegativeInteger"/>
<xsd:element name="demixAlways" type="xsd:string"/>
<xsd:element name="demixIfNeeded" type="xsd:string"/>
<xsd:element name="ignoreTarget" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
<!-- Calibration Pipeline related declarations -->
<!-- FIXME: The Calibration Pipeline should have BbsParameters while the Averaging Pipeline does not, but for backward
compatibility with MoM it is currently not defined that way, making them identical. When support for MoM 3 can be dropped
this should be fixed. -->
<xsd:complexType name="CalibrationPipeline">
<xsd:complexContent>
<xsd:extension base="AveragingPipeline"><!-- Untested if this works properly -->
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- Imaging Pipeline related declarations -->
<xsd:complexType name="ImagingPipeline">
<xsd:complexContent>
<xsd:extension base="CalibrationPipeline"><!-- Untested if this works properly -->
<xsd:sequence>
<xsd:element minOccurs="0" name="imagerIntegrationTime" type="xsd:double"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- Pulsar Pipeline related declarations -->
<xsd:complexType name="PulsarPipeline">
<xsd:complexContent>
<xsd:extension base="Pipeline">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="processingCluster" type="ProcessingCluster"/>
<xsd:element name="defaultTemplate" type="xsd:string"/>
<!--xsd:element minOccurs="0" name="duration" type="xsd:string"/ -->
<xsd:element minOccurs="0" name="_2bf2fitsExtraOpts" type="xsd:string"/>
<xsd:element name="_8bitConversionSigma" type="xsd:string"/>
<xsd:element name="decodeNblocks" type="xsd:string"/>
<xsd:element name="decodeSigma" type="xsd:string"/>
<xsd:element name="digifilExtraOpts" type="xsd:string"/>
<xsd:element name="dspsrExtraOpts" type="xsd:string"/>
<xsd:element name="dynamicSpectrumTimeAverage" type="xsd:string"/>
<xsd:element name="nofold" type="xsd:string"/>
<xsd:element name="nopdmp" type="xsd:string"/>
<xsd:element name="norfi" type="xsd:string"/>
<xsd:element name="prepdataExtraOpts" type="xsd:string"/>
<xsd:element name="prepfoldExtraOpts" type="xsd:string"/>
<xsd:element name="prepsubbandExtraOpts" type="xsd:string"/>
<xsd:element name="pulsar" type="xsd:string"/>
<xsd:element name="rawTo8bit" type="xsd:string"/>
<xsd:element name="rfifindExtraOpts" type="xsd:string"/>
<xsd:element name="rrats" type="xsd:string"/>
<xsd:element name="singlePulse" type="xsd:string"/>
<xsd:element name="skipDsps" type="xsd:string"/>
<xsd:element name="skipDynamicSpectrum" type="xsd:string"/>
<xsd:element name="skipPrepfold" type="xsd:string"/>
<xsd:element name="tsubint" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>============================System task related types============================
Section for system tasks, but cannot be stored in MoM easily at the moment. (Ingest could).
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="SystemTask" abstract="true"/>
<xsd:complexType name="Ingest">
<xsd:complexContent>
<xsd:extension base="SystemTask">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Cleanup">
<xsd:complexContent>
<xsd:extension base="SystemTask">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>============================Dataproduct related types============================
This section describes ... information.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="DataProduct" abstract="true"/>
<xsd:complexType name="StorageCluster">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="partition" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema targetNamespace="http://www.astron.nl/LofarTrigger" version="0.1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.astron.nl/LofarTrigger" xmlns:spec="http://www.astron.nl/LofarSpecification" xmlns:base="http://www.astron.nl/LofarBase">
<xsd:import schemaLocation="LofarSpecification.xsd" namespace="http://www.astron.nl/LofarSpecification"/>
<xsd:import schemaLocation="LofarBase.xsd" namespace="http://www.astron.nl/LofarBase"/>
<xsd:annotation>
<xsd:documentation>Definitions for LOFAR historical storage
This contains extentions of base objects that are needed to track and report the history of these objects.
</xsd:documentation>
</xsd:annotation>
<xsd:annotation>
<xsd:documentation>============================LOFAR ============================
TBD
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="Trigger"><!-- This is a placeholder, needs to be refactored with the LofarTrigger.xsd, only difference is the TriggerId -->
<xsd:sequence>
<xsd:element name="version" type="xsd:string"/>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="projectReference" type="base:ProjectReference"/>
<xsd:element name="submitter" type="base:ContactInformation"/><!-- Do we want to enforce this as the authenticated user? -->
<xsd:element name="userName" type="xsd:string"/><!-- The same as the authenticated user? -->
<xsd:element name="comment" type="xsd:string" minOccurs="0"/><!--Might not be needed?-->
<xsd:element name="event" type="base:Event"/><!--Maybe there should be EventList?-->
<xsd:element name="specification" type="spec:Specification"/>
<xsd:element name="generatorVersion" type="xsd:string"/>
<xsd:element name="TriggerId" type="base:Identifier"/>
</xsd:sequence>
</xsd:complexType>
<!-- UV DataProduct related declarations -->
<!--xsd:element name="uvDataProduct" substitutionGroup="mom2:anyDataProduct" type="UVDataProduct"/>
<xsd:complexType name="UVDataProduct">
<xsd:complexContent>
<xsd:extension base="DataProduct">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageCluster"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRef"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocations"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificUVDataProductAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence-->
<!-- xsd:attribute name="id" type="xsd:integer" default="0"/ -->
<!-- xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/ -->
<!--xsd:attribute name="topology" type="xsd:string"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType-->
<!--xsd:element name="specificUVDataProductAttributes" substitutionGroup="mom2:specificAttributes" type="SpecificUVDataProductAttributes"/>
<xsd:complexType name="SpecificUVDataProductAttributes">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributes">
<xsd:sequence>
<xsd:element minOccurs="0" name="subband" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="stationSubband" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="centralFrequency" type="mom2:Frequency"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType--><!-- Beamformed DataProduct related declarations -->
<!--xsd:element name="bfDataProduct" substitutionGroup="mom2:anyDataProduct" type="BFDataProduct"/>
<xsd:complexType name="BFDataProduct">
<xsd:complexContent>
<xsd:extension base="DataProduct">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageCluster"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRef"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocations"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificBFDataProductAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence-->
<!-- xsd:attribute name="id" type="xsd:integer" default="0"/ -->
<!-- xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/ -->
<!--xsd:attribute name="topology" type="xsd:string"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType-->
<!--xsd:element name="specificBFDataProductAttributes" substitutionGroup="mom2:specificAttributes" type="SpecificBFDataProductAttributes"/>
<xsd:complexType name="SpecificBFDataProductAttributes">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributes">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType--><!-- TBB DataProduct related declarations -->
<!--xsd:element name="tbbDataProduct" substitutionGroup="mom2:anyDataProduct" type="TBBDataProduct"/>
<xsd:complexType name="TBBDataProduct">
<xsd:complexContent>
<xsd:restriction base="DataProduct">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageCluster"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRef"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocations"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificTBBDataProductAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer" default="0"/>
<xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="specificTBBDataProductAttributes" substitutionGroup="mom2:specificAttributes" type="SpecificTBBDataProductAttributes"/>
<xsd:complexType name="SpecificTBBDataProductAttributes">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributes">
<xsd:sequence>
<xsd:element minOccurs="0" name="numberOfSamples" type="xsd:positiveInteger"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType--><!-- PixelMap DataProduct related declarations -->
<!--xsd:complexType name="PixelMapDataProduct" abstract="true">
<xsd:complexContent>
<xsd:restriction base="DataProduct">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageCluster"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRef"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocations"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificPixelMapDataProductAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer" default="0"/>
<xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="specificPixelMapDataProductAttributes" substitutionGroup="mom2:specificAttributes" type="SpecificPixelMapDataProductAttributes"/>
<xsd:complexType name="SpecificPixelMapDataProductAttributes">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributes">
<xsd:sequence>
<xsd:element minOccurs="0" name="numberOfAxes" type="xsd:positiveInteger"/>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="axis" type="Axis"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Axis">
<xsd:sequence>
<xsd:element minOccurs="0" name="number" type="xsd:nonNegativeInteger"/>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="unit" type="xsd:string"/>
<xsd:element minOccurs="0" name="length" type="xsd:nonNegativeInteger"/>
</xsd:sequence>
</xsd:complexType--><!-- Sky Image DataProduct related declarations -->
<!--xsd:element name="skyImageDataProduct" substitutionGroup="mom2:anyDataProduct" type="SkyImageDataProduct"/>
<xsd:complexType name="SkyImageDataProduct">
<xsd:complexContent>
<xsd:restriction base="DataProduct">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageCluster"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRef"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocations"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificSkyImageDataProductAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer" default="0"/>
<xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="specificSkyImageDataProductAttributes" substitutionGroup="mom2:specificAttributes" type="SpecificSkyImageDataProductAttributes"/>
<xsd:complexType name="SpecificSkyImageDataProductAttributes">
<xsd:complexContent>
<xsd:extension base="SpecificPixelMapDataProductAttributes">
<xsd:sequence>
<xsd:element minOccurs="0" name="pointing" type="Pointing"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Pointing">
<xsd:sequence>
<xsd:element minOccurs="0" name="rightAscension" type="xsd:double"/>
<xsd:element minOccurs="0" name="declination" type="xsd:double"/>
<xsd:element minOccurs="0" name="equinox" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType--><!-- Pulsar Pipeline DataProduct related declarations -->
<!--xsd:element name="pulsarDataProduct" substitutionGroup="mom2:anyDataProduct" type="PulsarDataProduct"/>
<xsd:complexType name="PulsarDataProduct">
<xsd:complexContent>
<xsd:extension base="DataProduct">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageCluster"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRef"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocations"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:choice minOccurs="0">
<xsd:element ref="specificBFDataProductAttributes"/>
</xsd:choice>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence-->
<!-- xsd:attribute name="id" type="xsd:integer" default="0"/ -->
<!-- xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/ -->
<!-- xsd:attribute name="topology" type="xsd:string"/ -->
<!--/xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="specificPulsarDataProductAttributes" substitutionGroup="mom2:specificAttributes" type="SpecificPulsarDataProductAttributes"/>
<xsd:complexType name="SpecificPulsarDataProductAttributes">
<xsd:complexContent>
<xsd:extension base="mom2:SpecificAttributes">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType--><!-- Generic DataProduct related declarations -->
<!--xsd:element name="genericDataProduct" substitutionGroup="mom2:anyDataProduct" type="GenericDataProduct"/>
<xsd:complexType name="GenericDataProduct">
<xsd:complexContent>
<xsd:restriction base="DataProduct">
<xsd:sequence>
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
<xsd:element minOccurs="0" name="topology" type="xsd:string"/>
<xsd:element minOccurs="0" name="status" type="xsd:string"/>
<xsd:element minOccurs="0" name="storageCluster" type="StorageCluster"/>
<xsd:element minOccurs="0" name="ownerMom2Object" type="mom2:Mom2ObjectRef"/>
<xsd:choice>
<xsd:element minOccurs="0" name="uri" type="xsd:string"/>
<xsd:element minOccurs="0" name="locations" type="mom2:DataProductLocations"/>
</xsd:choice>
<xsd:element minOccurs="0" name="fileFormat" type="xsd:string"/>
<xsd:element minOccurs="0" name="type" type="xsd:string"/>
<xsd:element minOccurs="0" name="timeStamp" type="xsd:dateTime"/>
<xsd:element minOccurs="0" default="false" name="released" type="xsd:boolean"/>
<xsd:element minOccurs="0" default="false" name="exported" type="xsd:boolean"/>
<xsd:element minOccurs="0" name="storageTicket" type="xsd:string"/>
<xsd:element minOccurs="0" name="fileSize" type="xsd:unsignedLong"/>
<xsd:element minOccurs="0" name="checksums" type="ChecksumTypes"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer" default="0"/>
<xsd:attribute name="mom2DPId" type="xsd:nonNegativeInteger"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType-->
</xsd:schema>
<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema targetNamespace="http://www.astron.nl/LofarTrigger" version="0.1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.astron.nl/LofarTrigger" xmlns:base="http://www.astron.nl/LofarBase">
<xsd:import schemaLocation="LofarBase.xsd" namespace="http://www.astron.nl/LofarBase"/>
<xsd:annotation>
<xsd:documentation>Definitions for LOFAR project and user submission</xsd:documentation>
</xsd:annotation>
<xsd:annotation>
<xsd:documentation>============================LOFAR Project entities============================
Project and user related objects.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="Project">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="project" type="Project"/>
</xsd:schema>
<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema targetNamespace="http://www.astron.nl/LofarSpecification" version="0.3" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:spec="http://www.astron.nl/LofarSpecification" xmlns:base="http://www.astron.nl/LofarBase">
<xsd:import schemaLocation="LofarBase.xsd" namespace="http://www.astron.nl/LofarBase"/>
<xsd:annotation>
<xsd:documentation>Definitions for LOFAR specification submission
This is a document that uses the LofarBase and extends that with objects that are specific to the needs of being able to
specify activities, their relations and entities. This is partially compatible with the W3C provenance model in its naming.
Compared to the old MoM XSD, this does not contain a project object. It is assumed the project exists, a specification should
not be able to edit it or add a new one. Thus only a reference to a project is in the specification.
</xsd:documentation>
</xsd:annotation>
<xsd:annotation>
<xsd:documentation>============================LOFAR Specification containers============================
Currently we only support MoM folders as a container.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="Container">
<xsd:sequence>
<xsd:element name="temporaryIdentifier" type="base:Identifier"/>
<xsd:element name="addToExistingContainer" type="xsd:boolean"/> <!-- update_folder=true in LofarMoM3, maybe we need a more generic spec update mechanic? -->
<xsd:choice><!--Or should we be specific to the subtypes here?-->
<xsd:element name="folder" type="base:Folder"/>
<!-- Might be a SchedulingBlock and other types of containers in the future -->
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>============================LOFAR Specification activities============================
Activities that the system can do and their related types and objects.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="Duration"> <!-- this is a specification, not a historical duration -->
<xsd:choice>
<xsd:sequence>
<xsd:element name="duration" type="xsd:duration"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="minimumDuration" type="xsd:duration"/>
<xsd:element name="maximumDuration" type="xsd:duration"/>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
<xsd:simpleType name="TimeFrameType"> <!-- Should probably move to LofarBase -->
<xsd:restriction base="xsd:string">
<xsd:enumeration value="UT"/>
<xsd:enumeration value="LST"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ActivityTimeWindow"> <!-- An activity will also have an actual (resolved/allocated) time window, this is specific to specifying -->
<xsd:sequence>
<xsd:element name="timeFrame" type="spec:TimeFrameType" default="UT">
</xsd:element>
<xsd:choice><!--How much flexibility do we want to support? -->
<xsd:sequence><!-- Specifies a window larger than duration -->
<xsd:element name="minStartTime" type="xsd:dateTime"/>
<xsd:element name="maxEndTime" type="xsd:dateTime"/>
<xsd:element name="duration" type="spec:Duration"/><!-- Should be less than End - Start, othterwise use one of the other options -->
</xsd:sequence>
<!-- xsd:sequence><This one seems redundant with startTime/duration?>
<xsd:element name="startTime" type="xsd:dateTime"/>
<xsd:element name="endTime" type="xsd:dateTime"/>
</xsd:sequence -->
<xsd:sequence><!-- EndTime is implicit as startTime+duration -->
<xsd:element name="startTime" type="xsd:dateTime"/>
<xsd:element name="duration" type="spec:Duration"/>
</xsd:sequence>
<xsd:sequence> <!-- Start time is dependent on other activities/events -->
<xsd:element name="duration" type="spec:Duration"/>
</xsd:sequence>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="LofarStationSelectionType">
<xsd:restriction base="xsd:string">
<!-- This list equals the station resource_groups in SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/create_add_virtual_instrument.py -->
<!-- When marshalling to MoM, these need to be replaced with Custom as the Alwin Scheduler and OTDB do not support anything else -->
<xsd:enumeration value="CORE"/>
<xsd:enumeration value="REMOTE"/>
<xsd:enumeration value="INTERNATIONAL"/>
<xsd:enumeration value="SUPERTERP"/>
<xsd:enumeration value="ALL"/>
<xsd:enumeration value="NL"/>
<xsd:enumeration value="CoreSansST"/>
<xsd:enumeration value="VLBI"/>
<xsd:enumeration value="AARTFAAC"/>
<xsd:enumeration value="Core2KM"/>
<xsd:enumeration value="LORA"/>
<xsd:enumeration value="Custom"/> <!-- only one currently supported by the Alwin Scheduler and OTDB -->
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="StationSetSelection">
<xsd:sequence>
<xsd:element name="stationSet" type="spec:LofarStationSelectionType"/>
<xsd:choice>
<xsd:sequence>
<xsd:element name="minimumConstraint" type="xsd:integer"/>
</xsd:sequence>
<xsd:element name="stations" minOccurs="0" type="base:Stations"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="StationSet">
<xsd:sequence>
<xsd:element name="stationSelection" maxOccurs="unbounded" type="spec:StationSetSelection"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Observation">
<xsd:complexContent>
<xsd:extension base="base:Observation">
<xsd:sequence>
<xsd:element name="stationSelectionSpecification" type="spec:StationSet"/>
<xsd:element name="timeWindowSpecification" type="spec:ActivityTimeWindow"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="QualityOfServiceType">
<xsd:restriction base="xsd:string"><!-- These names are not very clear to me without explanation. JDM will have a look at better names -->
<xsd:enumeration value="THROUGHPUT"/> <!-- The current and default behavior -->
<xsd:enumeration value="LATENCY"/> <!-- This job needs to be optimized for fast data delivery -->
<xsd:enumeration value="IDLE"/> <!-- Jobs that should only be ran if the telescope is idle (test jobs for example). -->
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="StatusType"> <!-- FIXME This might need to be extended/restricted and a version moved to LofarBase/Historical -->
<xsd:restriction base="xsd:string">
<xsd:enumeration value="opened"/>
<xsd:enumeration value="approved"/>
<!-- xsd:enumeration value="scheduled"/ -->
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="PriorityType"> <!-- some of these might need to be in base: -->
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="1600000"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Activity">
<xsd:sequence>
<xsd:element name="temporaryIdentifier" type="base:Identifier"/>
<xsd:choice>
<xsd:element name="observation" type="spec:Observation"/>
<xsd:element name="measurement" type="base:Measurement"/><!-- Should be explicit part of Observation but makes it hard to make Relations-->
<xsd:element name="pipeline" type="base:Pipeline"/>
<xsd:element name="ingest" type="base:Ingest"/>
<xsd:element name="cleanup" type="base:Cleanup"/>
</xsd:choice>
<xsd:element name="status" minOccurs="0" type="xsd:string"/><!-- default would be opened, might need to be come an enum -->
<xsd:element name="qualityOfService" type="spec:QualityOfServiceType" default="THROUGHPUT"/><!-- qualityOfService and TriggerId might need to move to the base: classes -->
<xsd:element name="priority" type="spec:PriorityType"/>
<xsd:element name="triggerId" minOccurs="0" type="base:Identifier"/>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>============================LOFAR Specification entities============================
Entities describe datasets not individual data products.
MoM calls this "Placeholder dataproducts" and it is implemented this way for backward compatibility with that system.
We don't need actual dataproducts here, as those don't exist yet, just a reference to the types we want to create.
It might need a bit more detail with Coherent Stokes and Incoherent Stokes, which currently is coded into the topology (!!)
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType name="DataProductType"><!-- FIXME This list should get revistited before it goes into production, current values are mostly compatible with LofarMoM3 -->
<xsd:restriction base="xsd:string">
<xsd:enumeration value="UVDataProduct"/>
<xsd:enumeration value="BFDataProduct_CoherentStokes"/> <!-- Both need to be encoded as BFDataProduct, but with different topology -->
<xsd:enumeration value="BFDataProduct_IncoherentStokes"/> <!-- Both need to be encoded as BFDataProduct, but with different topology -->
<xsd:enumeration value="TBBDataProduct"/>
<xsd:enumeration value="PixelMapDataProduct"/>
<xsd:enumeration value="SkyImageDataProduct"/>
<xsd:enumeration value="PulsarDataProduct"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Entity">
<xsd:sequence>
<xsd:element name="temporaryIdentifier" type="base:Identifier"/> <!-- Please note that for now this should always be a topology that encodes the SAP for compatibility with the Alwin Scheduler and LofarMoM3 -->
<xsd:element name="dataproductType" type="spec:DataProductType"/>
<xsd:element name="storageCluster" type="base:StorageCluster"/>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>============================LOFAR Specification relations============================
These relations allow more flexibility than a purely nested structure. They can show the different ways that objects are related
to allow for different types of visualisation.
We decided not to make specific [Class]Identifiers because they would still all be a base:Identifier. We need to check if
relations are pointing to the correct classes outside of the XSD validation.
Objects that are defined in the specification XML should contain temporary Identifiers, but Relations can point to an existing Identifier
from e.g. MoM or SAS. How to check this isn't clear yet, but will need to be handled at some point.
We want to be specific about which types of activities can generate wich types of dataproducts/entities but we can't enforce that in the XSD right now
because we can't use specific [Class]Identifiers in a meaningful way.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType name="ChildRelationType"><!-- folders contain other folders or activities. Only observations contain measurements-->
<xsd:restriction base="xsd:string">
<xsd:enumeration value="folder-folder"/>
<xsd:enumeration value="folder-activity"/>
<xsd:enumeration value="observation-measurement"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ChildRelation">
<xsd:complexContent>
<xsd:extension base="spec:Relation">
<xsd:sequence>
<xsd:element name="parent" type="spec:Identifier">
<!--xsd:keyref name="parentType" refer="spec:activityIdentifier">
<xsd:selector xpath="parent"/>
<xsd:field xpath="type"></xsd:field>
</xsd:keyref-->
</xsd:element>
<xsd:element name="child" type="spec:Identifier">
<!--xsd:keyref name="childType" refer="spec:activityIdentifier">
<xsd:selector xpath="child"/>
<xsd:field xpath="type"></xsd:field>
</xsd:keyref-->
</xsd:element>
<xsd:element name="type" type="spec:ChildRelationType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="SiblingRelationType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="group"/><!-- Needs the xsd:attribute name="topology_parent" type="xsd:boolean" to be set to true to translate to LofarMoM3 -->
<xsd:enumeration value="slice"/><!-- can currently not be stored in MoM -->
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="SiblingRelation"><!-- We need to make this smarter for other sibbling relations-->
<xsd:complexContent>
<xsd:extension base="spec:Relation">
<xsd:sequence>
<xsd:element name="sibling" minOccurs="1" maxOccurs="unbounded" type="base:Identifier"/>
<xsd:element name="type" type="spec:SiblingRelationType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="TwinRelationType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="predecessor-successor"/>
<xsd:enumeration value="calibrator-target"/><!-- can currently not be stored properly in MoM -->
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="TwinRelation"><!-- We need to make this smarter for other sibbling relations-->
<xsd:complexContent>
<xsd:extension base="spec:Relation">
<xsd:sequence>
<xsd:element name="first" type="base:Identifier"/>
<xsd:element name="second" type="base:Identifier"/>
<xsd:element name="type" type="spec:TwinRelationType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="ActivityEntityRelationType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="user"/><!-- Entity used by activity, needs better name?-->
<xsd:enumeration value="producer"/><!-- Entity produced by activity, needs better name?-->
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ActivityEntityRelation">
<xsd:complexContent>
<xsd:extension base="spec:Relation">
<xsd:sequence>
<xsd:element name="entity" type="base:Identifier"/>
<xsd:element name="activity" type="base:Identifier"/>
<xsd:element name="type" type="spec:ActivityEntityRelationType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Relation">
<xsd:sequence>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>============================LOFAR Specification Identifier ============================
This is to be able to enforce the relations between the activities and entities in the specification.
It might be useful to move some of this to LofarBase at some point.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType name="IdentifierType"> <!-- some of this might need to be in base: -->
<xsd:restriction base="xsd:string">
<xsd:enumeration value="folder"/>
<xsd:enumeration value="observation"/>
<xsd:enumeration value="measurement"/>
<xsd:enumeration value="pipeline"/>
<xsd:enumeration value="measurement"/>
<xsd:enumeration value="dataproduct"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Identifier">
<xsd:complexContent>
<xsd:extension base="base:Identifier">
<xsd:attribute name="type" type="spec:IdentifierType"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>============================LOFAR Specification root element============================
This contains the other objects in the specification and their relations. It also contains properties that pertain to the whole
specification and not a specific object. It needs to have at least one container/folder to put into the project in MoM that will then
contain other objects. Activities and entities should and can't be related to the project directly.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="Specification">
<xsd:sequence>
<xsd:element name="version" type="xsd:string"/>
<xsd:element name="projectReference" type="base:ProjectReference"/>
<xsd:element name="userName" type="xsd:string"/>
<xsd:element name="comment" type="xsd:string" minOccurs="0"/><!-- Freeform field for the user, will not be machine interpreted -->
<xsd:element name="generatorName" type="xsd:string"/>
<xsd:element name="generatorVersion" type="xsd:string"/>
<xsd:element name="container" type="spec:Container" maxOccurs="unbounded"/>
<xsd:element name="activity" type="spec:Activity" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="entity" type="spec:Entity" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="relation" type="spec:Relation" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="specification" type="spec:Specification">
<xsd:key name="activityIdentifier">
<xsd:selector xpath="spec:activity/spec:temporaryIdentifier"/>
<xsd:field xpath="@type"/>
</xsd:key>
<xsd:key name="entityIdentifier">
<xsd:selector xpath="spec:entity/spec:temporaryIdentifier"/>
<xsd:field xpath="@type"/>
</xsd:key>
</xsd:element>
</xsd:schema>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema targetNamespace="http://www.astron.nl/LofarTrigger" version="0.3" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.astron.nl/LofarTrigger" xmlns:spec="http://www.astron.nl/LofarSpecification" xmlns:base="http://www.astron.nl/LofarBase">
<xsd:import schemaLocation="LofarSpecification.xsd" namespace="http://www.astron.nl/LofarSpecification"/>
<xsd:import schemaLocation="LofarBase.xsd" namespace="http://www.astron.nl/LofarBase"/>
<xsd:annotation>
<xsd:documentation>Definitions for LOFAR trigger submission</xsd:documentation>
</xsd:annotation>
<xsd:annotation>
<xsd:documentation>============================LOFAR Trigger root element============================
Class for submission of a specification based on a trigger, with the relevant trigger information.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="Trigger">
<xsd:sequence>
<xsd:element name="version" type="xsd:string"/>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="projectReference" type="base:ProjectReference"/>
<xsd:element name="contactInformation" type="base:ContactInformation"/><!-- Does not need to be the authenticated user -->
<xsd:element name="userName" type="xsd:string"/><!-- The same as the authenticated user -->
<xsd:element name="comment" type="xsd:string" minOccurs="0"/><!-- Freeform field for the user, will not be machine interpreted -->
<xsd:element name="event" type="base:Event"/><!--We only support one event, in the case of multiple events, the trigger was generated by a meta event caused by the other events.-->
<xsd:element name="specification" type="spec:Specification"/>
<xsd:element name="generatorName" type="xsd:string"/>
<xsd:element name="generatorVersion" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="trigger" type="Trigger"/>
</xsd:schema>
# XML generator {#XML_generator}
*This page provides the template for documenting software modules, where modules can be for example a library, service,
or an application.*
*In order to use this template, copy its source (it is written in Markdown language) and edit it accordingy. Feel free to
remove any explanatory text written in Italic like this text, but in case some subject is not applicable to your module:
consider not removing its header, but add a rationale about why it is not applicable instead.*
## GENERAL
### Description
- *What does it do?*
- *Why is it needed?*
### Author/Owner
### Overview
- *Add a diagram*
- *Add a link to the overview diagram*
- *Add a link in the overview diagram to link back to this documentation*.
- - -
## DEVELOPMENT
### Analyses
*Add non-technical information and functional considerations here, like user requirements and links to minutes of
meetings with stakeholders.*
### Design
*Add technical considerations and design choices here*
### Source Code
- *Add a link to svn (trunk).*
- *Add a link to (generated?) source code documentation.*
### Testing
- *How do you run unit tests?*
- *How do you run integration tests?*
- *Add a link to Jenkins jobs (if available)*
### Build & Deploy
- *Add a link to general instructions or describe specifics here.*
- *Add a link to Jenkins jobs (if available)*
- - -
## OPERATIONS
### Configuration
- *Where is the configuration file?*
- *What are the configuration options?*
### Log Files
- *Where are the log files?*
### Runtime
- *Where does it run? (which user@machine)*
- *How do I run it? (user documentation? examples? commandline parameters?)*
- *Other considerations? (what happens elsewhere when I start or stop it?)*
### Interfaces (API)
- *Describe interfaces to other applications (REST API? http requests? Messagebus?)*
- *Other communication (user? import/export?)*
### Files/Databases
- *Which databases are used?*
- *Which files are used?*
### Dependencies
- *To/from other applications?*
- *Files?*
- *Network locations?*
- *Other?*
### Security
- *Special privileges needed?*
- *User login?*
- *Certificates needed?*
- *Other considerations?*
- - -
## ADDITIONAL INFORMATION
### User Documentation
*e.g. Please refer to URL X for the User Documentation*
### Operations Documentation
*e.g. Please refer to URL X for Operations Documentation*
/**
\ingroup SAS
\defgroup XSD XSD
\ref XML_generator A package that contains all the XML templates for the LOFAR software
*/
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment