Skip to content
Snippets Groups Projects
Commit 8283859d authored by Jan David Mol's avatar Jan David Mol
Browse files

Task #10469 #10470: Moved XSDs from SpecificationServices into new XSD service

parent 8b8cb109
Branches
Tags
No related merge requests found
Showing
with 14 additions and 3306 deletions
...@@ -5853,16 +5853,6 @@ SAS/SpecificationServices/test/test_lofarxml_to_momxmlmodel_translator.sh -text ...@@ -5853,16 +5853,6 @@ SAS/SpecificationServices/test/test_lofarxml_to_momxmlmodel_translator.sh -text
SAS/SpecificationServices/xml/CMakeLists.txt -text SAS/SpecificationServices/xml/CMakeLists.txt -text
SAS/SpecificationServices/xml/telescope_model_type1_template.xml -text SAS/SpecificationServices/xml/telescope_model_type1_template.xml -text
SAS/SpecificationServices/xml/telescope_model_type2_template.xml -text SAS/SpecificationServices/xml/telescope_model_type2_template.xml -text
SAS/SpecificationServices/xsd/CMakeLists.txt -text
SAS/SpecificationServices/xsd/LofarBase.xsd -text
SAS/SpecificationServices/xsd/LofarHistorical.xsd -text
SAS/SpecificationServices/xsd/LofarMoM2.xsd -text
SAS/SpecificationServices/xsd/LofarProject.xsd -text
SAS/SpecificationServices/xsd/LofarSpecification.xsd -text
SAS/SpecificationServices/xsd/LofarTrigger.xsd -text
SAS/SpecificationServices/xsd/MoM2.xsd -text
SAS/SpecificationServices/xsd/PersistentObjects.xsd -text
SAS/SpecificationServices/xsd/UserAdmin.xsd -text
SAS/TriggerServices/CMakeLists.txt -text SAS/TriggerServices/CMakeLists.txt -text
SAS/TriggerServices/__init__.py -text SAS/TriggerServices/__init__.py -text
SAS/TriggerServices/bin/CMakeLists.txt -text SAS/TriggerServices/bin/CMakeLists.txt -text
...@@ -5957,6 +5947,7 @@ SAS/XML_generator/test/test_regression.in_data/xml/test_input_cep4.xml -text ...@@ -5957,6 +5947,7 @@ SAS/XML_generator/test/test_regression.in_data/xml/test_input_cep4.xml -text
SAS/XML_generator/test/test_regression.in_data/xml/test_input_long_baseline_pipeline.xml -text SAS/XML_generator/test/test_regression.in_data/xml/test_input_long_baseline_pipeline.xml -text
SAS/XML_generator/test/test_regression.py -text SAS/XML_generator/test/test_regression.py -text
SAS/XML_generator/test/test_regression.sh -text SAS/XML_generator/test/test_regression.sh -text
SAS/XSD/CMakeLists.txt -text
SAS/XSD/mom/LofarMoM2.xsd -text SAS/XSD/mom/LofarMoM2.xsd -text
SAS/XSD/mom/MoM2.xsd -text SAS/XSD/mom/MoM2.xsd -text
SAS/XSD/mom/PersistentObjects.xsd -text SAS/XSD/mom/PersistentObjects.xsd -text
......
...@@ -155,6 +155,7 @@ if(NOT DEFINED LOFAR_PACKAGE_LIST_INCLUDED) ...@@ -155,6 +155,7 @@ if(NOT DEFINED LOFAR_PACKAGE_LIST_INCLUDED)
set(XML_generator_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/XML_generator) set(XML_generator_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/XML_generator)
set(TriggerServices_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/TriggerServices) set(TriggerServices_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/TriggerServices)
set(SpecificationServices_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/SpecificationServices) set(SpecificationServices_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/SpecificationServices)
set(XSD_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/XSD)
set(DataManagementCommon_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/DataManagement/DataManagementCommon) set(DataManagementCommon_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/DataManagement/DataManagementCommon)
set(StorageQueryService_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/DataManagement/StorageQueryService) set(StorageQueryService_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/DataManagement/StorageQueryService)
set(Cleanup_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/DataManagement/Cleanup) set(Cleanup_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/DataManagement/Cleanup)
......
lofar_find_package(Python 2.7 REQUIRED) lofar_find_package(Python 2.7 REQUIRED)
lofar_package(SpecificationServices 0.1 DEPENDS PyMessaging MoMQueryService MessageBus) lofar_package(SpecificationServices 0.1 DEPENDS PyMessaging MoMQueryService MessageBus XSD)
include(PythonInstall) include(PythonInstall)
...@@ -7,17 +7,6 @@ add_subdirectory(lib) ...@@ -7,17 +7,6 @@ add_subdirectory(lib)
add_subdirectory(bin) add_subdirectory(bin)
add_subdirectory(test) add_subdirectory(test)
add_subdirectory(xml) add_subdirectory(xml)
add_subdirectory(xsd)
lofar_add_data_files(xsd/LofarTrigger.xsd)
lofar_add_data_files(xsd/LofarBase.xsd)
lofar_add_data_files(xsd/LofarProject.xsd)
lofar_add_data_files(xsd/LofarMoM2.xsd)
lofar_add_data_files(xsd/MoM2.xsd)
lofar_add_data_files(xsd/PersistentObjects.xsd)
lofar_add_data_files(xsd/LofarHistorical.xsd)
lofar_add_data_files(xsd/LofarSpecification.xsd)
lofar_add_data_files(xsd/UserAdmin.xsd)
# TelescopeModel template files # TelescopeModel template files
lofar_add_data_files(xml/telescope_model_type1_template.xml) lofar_add_data_files(xml/telescope_model_type1_template.xml)
......
This diff is collapsed.
<?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>
This diff is collapsed.
<?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:sequence>
<xsd:element name="duration" type="xsd:duration"/><!-- FIXME we need to think about this some more, it might need to be a choice-->
<xsd:element name="minimumDuration" minOccurs="0" type="xsd:duration"/>
<xsd:element name="maximumDuration" minOccurs="0" type="xsd:duration"/>
</xsd:sequence>
</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">
<xsd:enumeration value="Single"/> <!-- Needs to be converted into Custom to support the Alwin Scheduler -->
<xsd:enumeration value="Core"/> <!-- Needs to be converted into Custom to support the Alwin Scheduler -->
<xsd:enumeration value="Dutch"/> <!-- Needs to be converted into Custom to support the Alwin Scheduler -->
<xsd:enumeration value="All"/> <!-- Needs to be converted into Custom to support the Alwin Scheduler -->
<!--xsd:enumeration value="International"/--> <!-- Currently not supported in LofarMoM3 -->
<!--xsd:enumeration value="Superterp"/--> <!-- Currently not supported in LofarMoM3 -->
<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:element name="maximumConstraint" minOccurs="0" 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>
<?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>
This diff is collapsed.
<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>
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(mom/LofarMoM2.xsd)
lofar_add_data_files(mom/MoM2.xsd)
lofar_add_data_files(mom/PersistentObjects.xsd)
lofar_add_data_files(mom/LofarHistorical.xsd)
lofar_add_data_files(mom/LofarSpecification.xsd)
lofar_add_data_files(mom/UserAdmin.xsd)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment