Show Observable Metadata Schema (XSD)

ILDG Home
LDG Home

MDC index

Observable index
Observable list

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified">
  <xs:element name="observables">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="schema" type="schemaType">
        </xs:element>
        <xs:element name="obsId" minOccurs="0" type="xs:string">
        </xs:element>
        <xs:element name="origin" type="originType">
        </xs:element>
        <xs:choice>
          <xs:element name="dobs" maxOccurs="unbounded" type="dobsType">
          </xs:element>
          <xs:element name="cobs" maxOccurs="unbounded" type="cobsType">
          </xs:element>
          <xs:element name="pobs" maxOccurs="unbounded" type="pobsType">
          </xs:element>
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="schemaType">
    <xs:sequence>
      <xs:element name="name" type="xs:string">
      </xs:element>
      <xs:element name="version" type="xs:string">
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="originType">
    <xs:sequence>
      <xs:element name="who" type="xs:string">
      </xs:element>
      <xs:element name="date" type="xs:string">
      </xs:element>
      <xs:element name="host" type="xs:string">
      </xs:element>
      <xs:element name="tool">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="name" type="xs:string">
            </xs:element>
            <xs:element name="version" type="xs:string">
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="freeTree" mixed="true">
    <xs:sequence>
      <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax">
      </xs:any>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="arrayType" mixed="true">
    <xs:sequence>
      <xs:element name="id" type="xs:string">
      </xs:element>
      <xs:element name="symbol" minOccurs="0" type="xs:string">
      </xs:element>
      <xs:element name="layout" type="xs:string">
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:group name="edataGroup">
    <xs:sequence>
      <xs:element name="enstag" type="xs:string">
      </xs:element>
      <xs:element name="nr" type="xs:int">
      </xs:element>
      <xs:sequence maxOccurs="unbounded">
        <xs:element name="origin" minOccurs="0" type="freeTree">
        </xs:element>
        <xs:element name="array" type="arrayType">
        </xs:element>
      </xs:sequence>
    </xs:sequence>
  </xs:group>
  <xs:complexType name="pobsType">
    <xs:sequence>
      <xs:element name="spec" minOccurs="0" type="freeTree">
      </xs:element>
      <xs:element name="origin" minOccurs="0" type="freeTree">
      </xs:element>
      <xs:element name="name" type="xs:string">
      </xs:element>
      <xs:group ref="edataGroup">
      </xs:group>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="dobsType">
    <xs:sequence>
      <xs:element name="spec" type="freeTree">
      </xs:element>
      <xs:element name="origin" minOccurs="0" type="freeTree">
      </xs:element>
      <xs:element name="name" type="xs:string">
      </xs:element>
      <xs:element name="array" type="arrayType">
      </xs:element>
      <xs:element name="ne" type="xs:int">
      </xs:element>
      <xs:element name="nc" type="xs:int">
      </xs:element>
      <xs:element name="edata" maxOccurs="unbounded">
        <xs:complexType>
          <xs:group ref="edataGroup">
          </xs:group>
        </xs:complexType>
      </xs:element>
      <xs:element name="cdata" minOccurs="0" maxOccurs="unbounded" type="cobsType">
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="cobsType">
    <xs:sequence>
      <xs:element name="id" type="xs:string">
      </xs:element>
      <xs:element name="array" type="arrayType">
      </xs:element>
      <xs:element name="array" type="arrayType">
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="OBSERVABLES">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="SCHEMA" type="SCHEMATYPE">
        </xs:element>
        <xs:element name="origin" type="originType">
        </xs:element>
        <xs:choice>
          <xs:element name="dobs" maxOccurs="unbounded" type="dobsType">
          </xs:element>
          <xs:element name="cobs" maxOccurs="unbounded" type="cobsType">
          </xs:element>
          <xs:element name="pobs" maxOccurs="unbounded" type="pobsType">
          </xs:element>
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="SCHEMATYPE">
    <xs:sequence>
      <xs:element name="NAME" type="xs:string">
      </xs:element>
      <xs:element name="VERSION" type="xs:string">
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>