https://gitlab.opengeosys.org/ogs/ogs.git
Raw File
Tip revision: 05a8cda47164acbdb3283f91b880ed51690fc56b authored by Dmitri Naumov on 05 January 2016, 11:16:07 UTC
Update changelog.
Tip revision: 05a8cda
OpenGeoSysSTN.xsd
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <!-- OpenGeoSysSTN schema; initial implementation: Karsten Rink, 2010-07-19 -->
  
  
  <!-- element definition -->
  <xs:element name="name" type="xs:string" />
  <xs:element name="value" type="xs:decimal" />

  <!-- attribute definition -->
  <xs:attribute name="id" type="xs:nonNegativeInteger" />
  <xs:attribute name="x"  type="xs:decimal" />
  <xs:attribute name="y"  type="xs:decimal" />
  <xs:attribute name="z"  type="xs:decimal" />


  <!-- definition of "station" -->
  <xs:complexType name="stationType">
    <xs:sequence>
      <xs:element ref="name" />
      <xs:element ref="value"  minOccurs="0" />				<!-- value is optional -->
      <xs:element name="sensordata" minOccurs="0" />			<!-- time series data (optional) -->
      <!-- other station features can be inserted here -->
    </xs:sequence>
    <xs:attribute ref="id" use="required" />
    <xs:attribute ref="x"  use="required" />
    <xs:attribute ref="y"  use="required" />
    <xs:attribute ref="z" />
  </xs:complexType>


  <!-- definition of "borehole" as an extension of "station" -->
  <xs:complexType name="boreholeType">
    <xs:complexContent>
      <xs:extension base="stationType">
        <xs:sequence>
          <xs:element name="bdepth" type="xs:decimal" />
          <xs:element name="bdate" type="xs:date" minOccurs="0" />	<!-- date is optional -->
          <xs:element name="strat" type="stratType" minOccurs="0" />	<!-- stratigraphy is optional, e.g. wells have none -->
          <!-- other borehole features can be inserted here -->
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>


  <!-- definition of stratigraphie -->
  <xs:complexType name="stratType">
    <xs:sequence>
      <xs:element name="horizon" maxOccurs="unbounded">
        <xs:complexType>
          <xs:all>
            <xs:element ref="name" />
            <!-- other horizon features can be inserted here -->
          </xs:all>
          <xs:attribute ref="id" use="required" />
          <xs:attribute ref="x"  use="required" />
          <xs:attribute ref="y"  use="required" />
          <xs:attribute ref="z"  use="required" />
        </xs:complexType>
      </xs:element>  
    </xs:sequence>
  </xs:complexType>


  <!-- makes sure that a stationlist contains EITHER "stations" OR "boreholes" -->
  <xs:group name="stationSelection">
    <xs:choice>

      <!-- case 1: list of stations -->
      <xs:element name="stations">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="station" type="stationType" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element> 

      <!-- case 2: list of boreholes -->        
      <xs:element name="boreholes">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="borehole" type="boreholeType" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element> 

    </xs:choice>
  </xs:group>


  <!-- definition of file content -->    
  <xs:element name="OpenGeoSysSTN">
    <xs:complexType>
      <xs:sequence>
      
        <!-- definition of stationlist -->
        <xs:element name="stationlist" minOccurs="1" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="name" />
              <xs:element name="type" type="xs:string" minOccurs="0" />		<!-- type is optional -->
              <xs:group ref="stationSelection" />
              <!-- other list features can be inserted here -->
            </xs:sequence>
          </xs:complexType>
        </xs:element> 
        <!-- end of "stationlist" -->
  
      </xs:sequence>
    </xs:complexType>  
  </xs:element> 

</xs:schema>
back to top