<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="GML">
    <xs:complexType>
      <xs:sequence>
	<xs:element maxOccurs="1" ref="Prolog" />
	<xs:element minOccurs="0" maxOccurs="1" ref="Office" />
	<xs:element minOccurs="0" maxOccurs="1" ref="Field" />
	<xs:element minOccurs="0" maxOccurs="1" ref="Laboratory" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Prolog">
    <xs:complexType>
      <xs:sequence>
	<xs:element maxOccurs="1" ref="Project" />
	<xs:element minOccurs="0" ref="Authorization" />
	<xs:element minOccurs="0" ref="Security" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Project">
    <xs:complexType>
      <xs:sequence>
	<xs:element ref="Name" />
	<xs:element ref="Date" />
	<xs:element minOccurs="0" ref="SecurityLevel" />
	<xs:element minOccurs="0" ref="Status" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Authorization">
    <xs:complexType>
      <xs:sequence>
	<xs:element ref="Signature" />
	<xs:element ref="AuthorizationCode" />
	<xs:element ref="AuthorizedBy" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Security">
    <xs:complexType>
      <xs:sequence>
	<xs:element ref="SecurityMethod" />
	<xs:element ref="PublicKey" />
	<xs:element ref="AuthorizationCode" />
	<xs:element ref="AuthorizedBy" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Name" type="xs:string" />
  <xs:element name="Date" type="xs:string" />
  <xs:element name="SecurityLevel" type="xs:string" />
  <xs:element name="Status" type="xs:string" />
  <xs:element name="Signature" type="xs:string" />
  <xs:element name="SecurityMethod" type="xs:string" />
  <xs:element name="PublicKey" type="xs:string" />
  <xs:element name="AuthorizationCode" type="xs:string" />
  <xs:element name="AuthorizedBy" type="xs:string" />
  <xs:element name="Office">
    <xs:complexType>
      <xs:sequence>
	<xs:element minOccurs="0" ref="Prep" />
	<xs:element minOccurs="0" ref="Specs" />
	<xs:element minOccurs="0" ref="Report" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Prep" type="xs:string" />
  <xs:element name="Specs" type="xs:string" />
  <xs:element name="Report" type="xs:string" />
  <xs:element name="Laboratory">
    <xs:complexType>
      <xs:sequence minOccurs="0">
	<xs:element maxOccurs="unbounded" ref="Index" />
	<xs:element minOccurs="0" ref="Mechanical" />
	<xs:element minOccurs="0" ref="Special" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Index">
    <xs:complexType>
      <xs:sequence>
	<xs:element minOccurs="0" ref="LL" />
	<xs:element minOccurs="0" ref="PL" />
	<xs:element minOccurs="0" ref="NaturalWaterContent" />
	<xs:element minOccurs="0" ref="GrainSizeCurve" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="LL" type="xs:string" />
  <xs:element name="PL" type="xs:string" />
  <xs:element name="NaturalWaterContent" type="xs:string" />
  <xs:element name="GrainSizeCurve" type="xs:string" />
  <xs:element name="Field">
    <xs:complexType>
      <xs:sequence>
	<xs:element maxOccurs="unbounded" ref="Borings" />
	<xs:element minOccurs="0" ref="Samples" />
	<xs:element minOccurs="0" ref="FieldTests" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Borings" type="xs:string" />
  <xs:element name="Samples" type="xs:string" />
  <xs:element name="FieldTests" type="xs:string" />
</xs:schema>

