<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by Matthew Langston (private) -->
<xs:schema
targetNamespace="http://glast-ground.slac.stanford.edu/pipeline"
xmlns="http://glast-ground.slac.stanford.edu/pipeline"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
version="1.0">
<xs:element name="pipeline">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="TaskNameType"/>
<xs:element name="type" type="TaskType"/>
<xs:element name="dataset-base-path" type="BasePathType"/>
<xs:element name="run-log-path" type="RunLogPathType"/>
<xs:element ref="executable" maxOccurs="unbounded"/>
<xs:element ref="batch-job-configuration" maxOccurs="unbounded"/>
<xs:element ref="file" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="foreign-input-file" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="processing-step" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="TaskNameType">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TaskType">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="SimReconDigi"/>
<xs:enumeration value="test"/>
<xs:enumeration value="Analysis"/>
<xs:enumeration value="Reconstruction"/>
<xs:enumeration value="Digitization"/>
<xs:enumeration value="Report"/>
<xs:enumeration value="SystemTest"/>
<xs:enumeration value="Simulation"/>
<xs:enumeration value="Reprocessing"/>
<xs:enumeration value="Conversion"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BasePathType">
<xs:restriction base="xs:string">
<xs:minLength value="0"/>
<xs:maxLength value="200"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="RunLogPathType">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="200"/>
</xs:restriction>
</xs:simpleType>
<!-- Application -->
<xs:element name="executable" nillable="false">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ExecutablePathType">
<xs:attribute name="name" type="ExecutableNameType" use="required"/>
<xs:attribute name="version" type="ExecutableVersionType" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:simpleType name="ExecutablePathType">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="200"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ExecutableNameType">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ExecutableVersionType">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
<!-- JobConfiguration-->
<xs:element name="batch-job-configuration">
<xs:complexType>
<xs:sequence>
<xs:element name="working-directory" type="WorkingDirectoryType"/>
<xs:element name="log-file-path" type="LogFilePathType"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="queue" type="BatchQueue" use="required"/>
</xs:complexType>
</xs:element>
<xs:simpleTypeattribute name="WorkingDirectoryType">
group" type="BatchGroup" use="required"/>
</xs:complexType>
</xs:element>
<xs:simpleType name="WorkingDirectoryType">
<xs:restriction base="xs:string">
<xs:minLength value="0"/>
<xs:maxLength value="200"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="LogFilePathType">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="200"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BatchQueue">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="long"/>
<xs:enumeration value="shortshort"/>
<xs:enumeration value="xlong"/>
<xs:enumeration value="medium"/>
<xs:enumeration value="xxl"/>
<xs:enumeration value="express"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BatchGroup">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="none"/>
<xs:enumeration value="glastgrp"/>
<xs:enumeration value="glastdata"/>
</xs:restriction>
</xs:simpleType>
<!-- Dataset -->
<xs:element name="file">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="DatasetNameType" use="required"/>
<xs:attribute name="type" type="DatasetType" use="required"/>
<xs:enumeration value="xlongattribute name="file-type" type="DatasetFileType" use="required"/>
<xs:enumeration value="medium"/> </xs:extension>
</xs:restriction>simpleContent>
</xs:simpleType>complexType>
<!-- Dataset -->/xs:element>
<xs:element name="foreign-input-file">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="DatasetNameType" use="required"/>
<xs:attribute name="typepipeline" type="DatasetTypeTaskNameType" use="required"/>
<xs:attribute name="file-type" type="DatasetFileTypeDatasetNameType" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:simpleType name="DatasetNameType">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DatasetType">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="MC"/>
<xs:enumeration value="Analysis"/>
<xs:enumeration value="text"/>
<xs:enumeration value="LDF"/>
<xs:enumeration value="DIGI"/>
<xs:enumeration value="RAW"/>
<xs:enumeration value="rcReport"/>
<xs:enumeration value="merit"/>
<xs:enumeration value="svac"/>
<xs:enumeration value="histogram"/>
<xs:enumeration value="script"/>
<xs:enumeration value="log"/>
<xs:enumeration value="ntuple"/>
<xs:enumeration value="tree"/>
<xs:enumeration value="RECON"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DatasetFileType">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="jobOpt"/>
<xs:enumeration value="root"/>
<xs:enumeration value="txt"/>
<xs:enumeration value="fits"/>
<xs:enumeration value="pl"/>
<xs:enumeration value="csh"/>
<xs:enumeration value="tgz"/>
<xs:enumeration value="xml"/>
<xs:enumeration value="sh"/>
<xs:enumeration value="tar"/>
<xs:enumeration value="gz"/>
<xs:enumeration value="tar.gz"/>
<xs:enumeration value="pdf"/>
<xs:enumeration value="ps"/>
<xs:enumeration value="html"/>
<xs:enumeration value="tex"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="processing-step">
<xs:complexType>
<xs:sequence>
<xs:element name="input-file" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="output-file" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="executable" type="xs:string" use="required"/>
<xs:attribute name="batch-job-configuration" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
|