<?xml version="1.0" encoding="utf-8"?>
<schema xmlns:diggs="http://diggsml.org/schemas/2.0.b"
  xmlns:diggs_geo="http://diggsml.org/2.0.b/geotechnical"
  xmlns:g3.3="http://www.opengis.net/gml/3.3/ce" xmlns:glr="http://www.opengis.net/gml/3.3/lr"
  xmlns:glrov="http://www.opengis.net/gml/3.3/lrov"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.w3.org/2001/XMLSchema"
  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:witsml="http://www.witsml.org/schemas/131"
  xmlns:gml="http://www.opengis.net/gml/3.2" targetNamespace="http://diggsml.org/schemas/2.0.b"
  version="2.0.b" elementFormDefault="qualified" vc:maxVersion="1.1" vc:minVersion="1.0"
  xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning">
  <!-- import the gml and xlinks namespaces (original local profiles)  -->
  <import namespace="http://www.opengis.net/gml/3.2" schemaLocation="gml3.2Profile_diggs.xsd"/>
  <import namespace="http://www.opengis.net/gml/3.3/ce" schemaLocation="gml3.3Profile_diggs.xsd"/>
  <import namespace="http://www.opengis.net/gml/3.3/lr" schemaLocation="glrProfile_diggs.xsd"/>
  <import namespace="http://www.opengis.net/gml/3.3/lrov" schemaLocation="glrovProfile_diggs.xsd"/>
  <import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlinks.xsd"/>
  <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
  <!--  (canonical complete schemas for TeamEngine GML validation) 
  <import namespace="http://www.opengis.net/gml/3.2"
    schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
  <import namespace="http://www.opengis.net/gml/3.3/ce"
    schemaLocation="http://schemas.opengis.net/gml/3.3/geometryCompact.xsd"/>
  <import namespace="http://www.opengis.net/gml/3.3/lr"
    schemaLocation="http://schemas.opengis.net/gml/3.3/linearRef.xsd"/>
  <import namespace="http://www.opengis.net/gml/3.3/lrov"
    schemaLocation="http://schemas.opengis.net/gml/3.3/linearRefOffsetVector.xsd"/>
  <import namespace="http://www.w3.org/1999/xlink"
    schemaLocation="http://www.w3.org/XML/2008/06/xlink.xsd"/>
  <import namespace="http://www.w3.org/XML/1998/namespace"
    schemaLocation="http://www.w3.org/2001/xml.xsd"/> -->

  <!-- include and import other DIGGS schemas -->
  <import namespace="http://diggsml.org/schemas/2.0.b/geotechnical"
    schemaLocation="Geotechnical.xsd"/>
  <!-- import the witsml schemas -->
  <import namespace="http://www.witsml.org/schemas/131"
    schemaLocation="witsml/1.3.1.1/typ_dataTypes.xsd"/>

  <complexType name="DiggsStringType" mixed="true">
    <simpleContent>
      <extension base="string">
        <attribute ref="xml:lang"/>
      </extension>
    </simpleContent>
  </complexType>

  <complexType name="DiggsOtherFieldPropertiesType" mixed="true">
    <simpleContent>
      <extension base="string">
        <attribute name="propertyName" type="string" use="required"/>
      </extension>
    </simpleContent>
  </complexType>

  <simpleType name="EmailStringType">
    <restriction base="string">
      <pattern value="([A-z0-9_\.\-\+])+@(([A-z0-9_\-]{2,})\.)+[A-z0-9_\-]{2,}"/>
    </restriction>
  </simpleType>
  <simpleType name="EmailEnumType">
    <restriction base="string">
      <enumeration value="personal"/>
      <enumeration value="business"/>
    </restriction>
  </simpleType>
  <simpleType name="ExtEmailEnumType">
    <union memberTypes="diggs:OtherNameType diggs:EmailEnumType"/>
  </simpleType>
  <simpleType name="SpecimenType">
    <union memberTypes="diggs:OtherNameType diggs:SpecimenEnumType"/>
  </simpleType>
  <simpleType name="SpecimenEnumType">
    <restriction base="string">
      <enumeration value="intact"/>
      <enumeration value="disturbed"/>
      <enumeration value="remolded"/>
      <enumeration value="reconstituted"/>
    </restriction>
  </simpleType>
  <simpleType name="SpecimenShapeType">
    <union memberTypes="diggs:OtherNameType diggs:SpecimenShapeEnumType"/>
  </simpleType>
  <simpleType name="SpecimenShapeEnumType">
    <restriction base="string">
      <enumeration value="cylinder"/>
      <enumeration value="cube"/>
      <enumeration value="cuboid"/>
      <enumeration value="sphere"/>
    </restriction>
  </simpleType>
  <complexType name="EmailType">
    <simpleContent>
      <extension base="diggs:EmailStringType">
        <attribute name="type" type="diggs:ExtEmailEnumType"/>
      </extension>
    </simpleContent>
  </complexType>
  <simpleType name="OtherNameType">
    <restriction base="string">
      <pattern value="Other: \w{2,}"/>
    </restriction>
  </simpleType>
  <simpleType name="ExtPhoneEnumType">
    <union memberTypes="diggs:OtherNameType diggs:PhoneEnumType"/>
  </simpleType>
  <simpleType name="PhoneEnumType">
    <restriction base="string">
      <enumeration value="voice"/>
      <enumeration value="fax"/>
      <enumeration value="mobile"/>
      <enumeration value="voice/fax"/>
      <enumeration value="voicemail"/>
    </restriction>
  </simpleType>
  <simpleType name="PhoneNumberStringType">
    <restriction base="string">
      <pattern value="[0-9\-\+\(\)]{4,}"/>
    </restriction>
  </simpleType>
  <complexType name="PhoneType">
    <simpleContent>
      <extension base="diggs:PhoneNumberStringType">
        <attribute name="type" type="diggs:ExtPhoneEnumType"/>
      </extension>
    </simpleContent>
  </complexType>
  <simpleType name="ExtQualifierEnumType">
    <union memberTypes="diggs:OtherNameType diggs:QualifierEnumType"/>
  </simpleType>
  <simpleType name="QualifierEnumType">
    <restriction base="string">
      <enumeration value="upper"/>
      <enumeration value="lower"/>
      <enumeration value="method"/>
      <enumeration value="quantification"/>
      <enumeration value="reporting"/>
      <enumeration value="minimum allowable value"/>
      <enumeration value="maximum allowable value"/>
    </restriction>
  </simpleType>
  <simpleType name="UnifiedDateTimeType">
    <union memberTypes="dateTime time date gYearMonth gMonthDay gDay gMonth gYear"/>
  </simpleType>
  <complexType name="forcePerTimeMeasure">
    <simpleContent>
      <extension base="witsml:abstractMeasure">
        <attribute name="uom" type="diggs:forcePerTimeUom"/>
      </extension>
    </simpleContent>
  </complexType>
  <simpleType name="forcePerTimeUom">
    <restriction base="witsml:abstractUomEnum">
      <enumeration value="Pa/sec"/>
      <enumeration value="at/sec"/>
      <enumeration value="atm/sec"/>
      <enumeration value="bar/sec"/>
      <enumeration value="cmH2O(4degC)/sec"/>
      <enumeration value="dyne/cm2/sec"/>
      <enumeration value="GPa"/>
      <enumeration value="hbar/sec"/>
      <enumeration value="inH2O(39.2F)/sec"/>
      <enumeration value="inH2O(60F)/sec"/>
      <enumeration value="inHg(32F)/sec"/>
      <enumeration value="inHg(60F/sec)"/>
      <enumeration value="kgf/cm2/sec"/>
      <enumeration value="kgf/mm2/sec"/>
      <enumeration value="kN/m2/sec"/>
      <enumeration value="kPa/sec"/>
      <enumeration value="kpsi/sec"/>
      <enumeration value="lbf/ft2/sec"/>
      <enumeration value="lbf/100ft2/sec"/>
      <enumeration value="lbf/in2/sec"/>
      <enumeration value="mbar/sec"/>
      <enumeration value="mmHg(0C)/sec"/>
      <enumeration value="mPa/sec"/>
      <enumeration value="MPa/sec"/>
      <enumeration value="Mpsi/sec"/>
      <enumeration value="N/m2/sec"/>
      <enumeration value="N/mm2/sec"/>
      <enumeration value="Pa(g)/sec"/>
      <enumeration value="pPa/sec"/>
      <enumeration value="psi/sec"/>
      <enumeration value="psia/sec"/>
      <enumeration value="psig/sec"/>
      <enumeration value="tonfUS/ft2/sec"/>
      <enumeration value="tonfUS/in2/sec"/>
      <enumeration value="torr/sec"/>
      <enumeration value="ubar/sec"/>
      <enumeration value="umHg(0C)/sec"/>
      <enumeration value="uPa/sec"/>
      <enumeration value="upsi/sec"/>

    </restriction>
  </simpleType>
  <simpleType name="strainPerTimeUom">
    <restriction base="witsml:abstractUomEnum">
      <enumeration value="%/hr"/>
      <enumeration value="%/min"/>
      <enumeration value="%/sec"/>
      <enumeration value="%/day"/>
      <enumeration value="%/month"/>
      <enumeration value="%/year"/>
      <enumeration value="%/kyr"/>
    </restriction>
  </simpleType>
  <complexType name="StrainPerTimeMeasureType">
    <simpleContent>
      <extension base="witsml:abstractMeasure">
        <attribute name="uom" type="diggs:strainPerTimeUom"/>
      </extension>
    </simpleContent>
  </complexType>
  <simpleType name="areaPerTimeUom">
    <restriction base="witsml:abstractUomEnum">
      <enumeration value="m2/sec"/>
      <enumeration value="mm2/min"/>
    </restriction>
  </simpleType>
  <complexType name="areaPerTimeMeasure">
    <simpleContent>
      <extension base="witsml:abstractMeasure">
        <attribute name="uom" type="diggs:areaPerTimeUom" use="required"/>
      </extension>
    </simpleContent>
  </complexType>
  <complexType name="DensityOrUnitWeightMeasureType">
    <simpleContent>
      <extension base="witsml:abstractMeasure">
        <attribute name="uom" type="diggs:diggsDensityOrUnitWeightUom" use="required"/>
      </extension>
    </simpleContent>
  </complexType>
  <complexType name="PercentMeasureType">
    <simpleContent>
      <extension base="witsml:abstractMeasure">
        <attribute name="uom" type="diggs:PercentEnumType" use="required"/>
      </extension>
    </simpleContent>
  </complexType>
  <simpleType name="geotechnicalDensityUom">
    <restriction base="witsml:abstractUomEnum">
      <enumeration value="kN/m3"/>
    </restriction>
  </simpleType>
  <simpleType name="IdentifierReferenceType">
    <annotation>
      <documentation>Provides a reference to the gml:identifier value, which follows a pattern
        restriction conforming to the urn structure of identifiers</documentation>
    </annotation>
    <restriction base="string">
      <pattern value="urn:diggs:def:fi:[A-Z]{1,8}:[A-z0-9_\.\-]{1,200}"/>
    </restriction>
  </simpleType>
  <simpleType name="diggsDensityOrUnitWeightUom">
    <union memberTypes="diggs:geotechnicalDensityUom witsml:densityUom witsml:forcePerVolumeUom"/>
  </simpleType>
  <element name="ParticleDensity" type="diggs:ParticleDensityType"/>
  <complexType name="ParticleDensityType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <choice>
          <element name="measuredDensity" type="witsml:densityMeasure"/>
          <element name="assumedDensity" type="witsml:densityMeasure"/>
        </choice>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="ParticleDensityPropertyType">
    <sequence>
      <element ref="diggs:ParticleDensity"/>
    </sequence>
  </complexType>
  <element name="MeasureOrString" type="diggs:MeasureOrStringType"
    substitutionGroup="gml:AbstractGML"/>
  <complexType name="MeasureOrStringType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <choice>
          <element name="numeric" type="witsml:generalMeasureType"/>
          <element name="textual" type="diggs:DiggsStringType"/>
        </choice>
      </extension>
    </complexContent>
  </complexType>
  <element name="Address" type="diggs:AddressType" substitutionGroup="gml:AbstractGML"
    abstract="false"/>
  <complexType name="AddressType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="name" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="streetAddress" type="diggs:DiggsStringType" minOccurs="0"
            maxOccurs="unbounded"/>
          <element name="city" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="state" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="province" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="county" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="country" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="postalCode" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="AddressPropertyType">
    <sequence>
      <element ref="diggs:Address" minOccurs="1" maxOccurs="1"/>
    </sequence>
  </complexType>
  <element name="BlockSampleDetail" type="diggs:BlockSampleDetailType"
    substitutionGroup="diggs:AbstractObject" abstract="false"/>
  <complexType name="BlockSampleDetailType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="height" type="witsml:lengthMeasure" minOccurs="0" maxOccurs="1"/>
          <element name="length" type="witsml:lengthMeasure" minOccurs="0" maxOccurs="1"/>
          <element name="width" type="witsml:lengthMeasure" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="BlockSampleDetailPropertyType">
    <sequence>
      <element ref="diggs:BlockSampleDetail" minOccurs="1" maxOccurs="1"/>
    </sequence>
  </complexType>
  <element name="Calibration" type="diggs:CalibrationType" substitutionGroup="diggs:AbstractFeature"
    abstract="false"/>
  <complexType name="CalibrationType">
    <complexContent>
      <extension base="diggs:AbstractFeatureType">
        <sequence>
          <element name="date" type="diggs:UnifiedDateTimeType" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="CalibrationPropertyType">
    <sequence>
      <element ref="diggs:Calibration" minOccurs="1" maxOccurs="1"/>
    </sequence>
  </complexType>
  <element name="DelayEvent" type="diggs:DelayEventType" substitutionGroup="diggs:AbstractObject"
    abstract="false"/>
  <complexType name="DelayEventPropertyType">
    <sequence>
      <element ref="diggs:DelayEvent" minOccurs="1" maxOccurs="1"/>
    </sequence>
  </complexType>
  <element name="Environment" type="diggs:EnvironmentType" substitutionGroup="diggs:AbstractObject"
    abstract="false"/>
  <complexType name="EnvironmentType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="barometricPressure" type="witsml:pressureMeasure" minOccurs="0"
            maxOccurs="1"/>
          <element name="gasFlow" type="witsml:volumeFlowRateMeasure" minOccurs="0" maxOccurs="1"/>
          <element name="gasPressure" type="witsml:pressureMeasure" minOccurs="0" maxOccurs="1"/>
          <element name="temperature" type="witsml:thermodynamicTemperatureMeasure" minOccurs="0"
            maxOccurs="1"/>
          <element minOccurs="0" name="otherEnvironmentalParameter"
            type="diggs:ParameterPropertyType" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="EnvironmentPropertyType">
    <sequence>
      <element ref="diggs:Environment" minOccurs="1" maxOccurs="1"/>
    </sequence>
  </complexType>

  <complexType name="EventPropertyType">
    <sequence>
      <element ref="diggs:AbstractEvent" minOccurs="1" maxOccurs="1"/>
    </sequence>
  </complexType>

  <complexType name="ProjectPropertyType">
    <sequence>
      <element ref="diggs:Project" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>A Project is a collection of sampling features, sampling activities,
            samples, and measurements <br/>that constitutes a business activity. A
            project may occur at a physical location, in which case it can optionally contain
            geometries.</documentation>
        </annotation>
      </element>
    </sequence>
  </complexType>
  <element name="SoftwareApplication" type="diggs:SoftwareApplicationType"
    substitutionGroup="gml:AbstractGML" abstract="false"/>
  <complexType name="SoftwareApplicationType">
    <complexContent>
      <extension base="diggs:AbstractNamedObjectType">
        <sequence>
          <element name="version" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="SoftwareApplicationPropertyType">
    <sequence>
      <element ref="diggs:SoftwareApplication" minOccurs="1" maxOccurs="1"/>
    </sequence>
  </complexType>
  <element name="DocumentInformation" type="diggs:DocumentInformationType"
    substitutionGroup="diggs:AbstractFeature" abstract="false" block="" nillable="false"/>
  <complexType name="DocumentInformationType">
    <complexContent>
      <extension base="diggs:AbstractFeatureType">
        <sequence>
          <element name="creationDate" type="diggs:UnifiedDateTimeType">
            <annotation>
              <documentation>The date that this instance file was created.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="effectiveDate" type="diggs:UnifiedDateTimeType">
            <annotation>
              <documentation>The effective date for the data in this XML instance. It would likely
                represent the most recent date when data in the instance was last added to or
                modified.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="language" type="language">
            <annotation>
              <documentation>The default language used in this instance document</documentation>
            </annotation>
          </element>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element name="authorRef" type="diggs:MetadataReferenceType" minOccurs="1" maxOccurs="1">
              <annotation>
                <documentation>A property element that supports a value by reference only. The
                  target value is indicated in the appinfo element.</documentation>
                <appinfo source="urn:x-gml:targetElement">diggs:BusinessAssociate</appinfo>
              </annotation>
            </element>
            <element name="author" type="diggs:DiggsStringType"/>
          </choice>
          <element name="disclaimer" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1">
            <annotation>
              <documentation>An uncontrolled string that identifies conditions and limitations of
                the data included in this instance.</documentation>
            </annotation>
          </element>
          <element name="sourceSoftware" type="diggs:SoftwareApplicationPropertyType" minOccurs="0"
            maxOccurs="unbounded">
            <annotation>
              <documentation>If appropriate, the software that created the instance.
              </documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="destination" type="diggs:DiggsStringType">
            <annotation>
              <documentation>The intended destination for this XML instance; eg. chris@diggsml.org
                or ftp://uploaduser:password@ftp.diggsml.org/auto_import</documentation>
            </annotation>
          </element>
          <element name="destinationSoftware" type="diggs:SoftwareApplicationPropertyType"
            minOccurs="0" maxOccurs="unbounded">
            <annotation>
              <documentation>If appropriate, the software that is intended to consume the
                file.</documentation>
            </annotation>
          </element>
          <element name="auditTrail" type="diggs:RemarkPropertyType" minOccurs="0"
            maxOccurs="unbounded">
            <annotation>
              <documentation>A series of remarks that provides a history of similar xml instance
                transmissions. Provides a way for data providers and receivers to track multiple
                versions of similar data transmissions. </documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="DocumentInformationPropertyType">
    <complexContent>
      <extension base="gml:AbstractMetadataPropertyType">
        <sequence>
          <element minOccurs="1" maxOccurs="1" ref="diggs:DocumentInformation"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element abstract="true" name="AbstractFeature" substitutionGroup="diggs:AbstractFeatureBase"
    type="diggs:AbstractFeatureType"/>
  <complexType name="AbstractFeatureType">
    <complexContent>
      <extension base="diggs:AbstractFeatureBaseType">
        <sequence>
          <element ref="gml:identifier" minOccurs="0" maxOccurs="1"/>
          <element minOccurs="0" name="status" type="gml:CodeType">
            <annotation>
              <documentation>A text string to provide information about the status of the object to be used to track QA/QC controls, review or release status, etc. The values used are intended to come from a controlled list of terms maintained by an organization.</documentation>
            </annotation>
          </element>
          <sequence>
            <element name="associatedFile" type="diggs:MetadataReferenceType" minOccurs="0"
              maxOccurs="unbounded">
              <annotation>
                <appinfo source="urn:x-gml:targetElement">diggs:AssociatedFile</appinfo>
                <documentation>A reference to an AssociatedFile object that provides information about external files or documents associated with this feature. The target value is indicated in the appinfo element.</documentation>
              </annotation>
            </element>
            <element name="role" type="diggs:RolePropertyType" minOccurs="0" maxOccurs="unbounded">
              <annotation>
                <documentation>Identifies a specific role or task performed that is associated with this specific feature, the person or organization that performed the role, and associated time frame, if applicable.</documentation>
              </annotation>
            </element>
            <element name="remark" type="diggs:RemarkPropertyType" minOccurs="0"
              maxOccurs="unbounded">
              <annotation>
                <documentation>Any comment or remark associated with this specific feature.</documentation>
              </annotation>
            </element>
          </sequence>
        </sequence>
        <attribute ref="xml:lang">
          <annotation>
            <documentation>Identifies the language used for the values of properties in this feature. Optional; if not used language is assumed to be English.</documentation>
          </annotation>
        </attribute>
      </extension>
    </complexContent>
  </complexType>
  <element abstract="true" name="AbstractFeatureBase" substitutionGroup="gml:AbstractFeature"
    type="diggs:AbstractFeatureBaseType"/>
  <complexType name="AbstractFeatureBaseType" mixed="false" abstract="true">
    <complexContent>
      <restriction base="gml:AbstractFeatureType">
        <sequence>
          <element ref="gml:description" minOccurs="0"/>
        </sequence>
        <attribute ref="gml:id" use="required">
          <annotation>
            <documentation>The id of this feature. The id must be unique within a DIGGS xml instance.</documentation>
          </annotation>
        </attribute>
        <!-- 2015-04-23 PwD added per http://www.w3.org/TR/xmlschema-1/#d0e2483 Schema Component Constraint: Derivation Valid (Restriction, Complex) 3 -->
      </restriction>
    </complexContent>
  </complexType>
  <element abstract="true" name="AbstractNamedFeature" substitutionGroup="diggs:AbstractFeatureBase"
    type="diggs:AbstractNamedFeatureType"/>
  <complexType name="AbstractNamedFeatureType">
    <complexContent>
      <extension base="diggs:AbstractFeatureBaseType">
        <sequence>
          <element maxOccurs="unbounded" minOccurs="1" ref="gml:name"/>
          <element ref="gml:identifier" minOccurs="0" maxOccurs="1"/>
          <element minOccurs="0" name="status" type="gml:CodeType">
            <annotation>
              <documentation>A text string to provide information about the status of the object to
                be used to track QA/QC controls, review or release status, etc. The values used are
                intended to come from a controlled list of terms maintained by an
                organization.</documentation>
            </annotation>
          </element>
          <sequence>
            <element name="associatedFile" type="diggs:MetadataReferenceType" minOccurs="0"
              maxOccurs="unbounded">
              <annotation>
                <appinfo source="urn:x-gml:targetElement">diggs:AssociatedFile</appinfo>
                <documentation>A reference to an AssociatedFile object that provides information about external files or documents associated with this feature. The target value is indicated in the appinfo element.</documentation>
              </annotation>
            </element>
            <element name="role" type="diggs:RolePropertyType" minOccurs="0" maxOccurs="unbounded">
              <annotation>
                <documentation>Identifies a specific role or task performed that is associated with this specific feature, the person or organization that performed the role, and associated time frame, if applicable.</documentation>
              </annotation>
            </element>
            <element name="remark" type="diggs:RemarkPropertyType" minOccurs="0"
              maxOccurs="unbounded">
              <annotation>
                <documentation>Any comment or remark associated with this specific feature.</documentation>
              </annotation>
            </element>
          </sequence>
        </sequence>
        <attribute ref="xml:lang"/>
      </extension>
    </complexContent>
  </complexType>
  <element abstract="true" name="AbstractObject" substitutionGroup="gml:AbstractGML"
    type="diggs:AbstractObjectType"/>
  <complexType name="AbstractObjectType">
    <complexContent>
      <extension base="diggs:AbstractObjectBaseType">
        <sequence>
          <element minOccurs="0" name="status" type="gml:CodeType">
            <annotation>
              <documentation>A text string to provide information about the status of the object to
                be used to track QA/QC controls, review or release status, etc. The values used are
                intended to come from a controlled list of terms maintained by an
                organization.</documentation>
            </annotation>
          </element>
          <element name="associatedFile" type="diggs:MetadataReferenceType" minOccurs="0"
            maxOccurs="unbounded">
            <annotation>
              <appinfo source="urn:x-gml:targetElement">diggs:AssociatedFile</appinfo>
              <documentation>A reference to an AssociatedFile object that provides information about external files or documents associated with this feature. The target value is indicated in the appinfo element.</documentation>
            </annotation>
          </element>
          <element name="remark" type="diggs:RemarkPropertyType" minOccurs="0" maxOccurs="unbounded">
            <annotation>
              <documentation>Any comment or remark associated with this specific object.</documentation>
            </annotation>
          </element>
        </sequence>
        <attribute ref="xml:lang">
          <annotation>
            <documentation>Identifies the language used for the values of properties in this feature. Optional; if not used language is assumed to be English.</documentation>
          </annotation>
        </attribute>
      </extension>
    </complexContent>
  </complexType>
  <element abstract="true" name="AbstractObjectBase" substitutionGroup="gml:AbstractGML"
    type="diggs:AbstractObjectBaseType"/>
  <complexType name="AbstractObjectBaseType">
    <complexContent>
      <restriction base="gml:AbstractGMLType">
        <sequence>
          <element ref="gml:description" minOccurs="0"/>
        </sequence>
        <attribute ref="gml:id" use="required"/>
        <!-- 2015-04-23 PwD added per http://www.w3.org/TR/xmlschema-1/#d0e2483 Schema Component Constraint: Derivation Valid (Restriction, Complex) 3 -->
      </restriction>
    </complexContent>
  </complexType>
  <element abstract="true" name="AbstractNamedObject" substitutionGroup="diggs:AbstractObjectBase"
    type="diggs:AbstractNamedObjectType"/>
  <complexType name="AbstractNamedObjectType">
    <complexContent>
      <extension base="diggs:AbstractObjectBaseType">
        <sequence>
          <element ref="gml:name" minOccurs="1" maxOccurs="1"/>
          <element minOccurs="0" name="status" type="gml:CodeType">
            <annotation>
              <documentation>A text string to provide information about the status of the object to
                be used to track QA/QC controls, review or release status, etc. The values used are
                intended to come from a controlled list of terms maintained by an
                organization.</documentation>
            </annotation>
          </element>
          <element name="remark" type="diggs:RemarkPropertyType" minOccurs="0" maxOccurs="unbounded">
            <annotation>
              <documentation>Any comment or remark associated with this specific object.</documentation>
            </annotation>
          </element>
        </sequence>
        <attribute ref="xml:lang"/>
      </extension>
    </complexContent>
  </complexType>
  <element name="Project" type="diggs:ProjectType" substitutionGroup="diggs:AbstractNamedFeature"
    abstract="false"/>
  <complexType name="ProjectType">
    <complexContent>
      <extension base="diggs:AbstractNamedFeatureType">
        <sequence>

          <element name="referencePoint" type="diggs:PointLocationPropertyType" minOccurs="0"
            maxOccurs="1"/>
          <element name="linearExtent" type="diggs:LinearExtentPropertyType" minOccurs="0"
            maxOccurs="1"/>
          <element name="arealExtent" type="diggs:SurfacePropertyType" minOccurs="0" maxOccurs="1"/>
          <element name="projectDateTimeSpan" type="diggs:TimeIntervalPropertyType" minOccurs="0"
            maxOccurs="1"/>
          <element name="location" type="gml:CodeType" minOccurs="0" maxOccurs="1"/>
          <element name="purpose" type="gml:CodeType" minOccurs="0" maxOccurs="1"/>
          <element maxOccurs="unbounded" minOccurs="0" name="projectEvent"
            type="diggs:ProjectEventPropertyType"/>
          <element name="contract" type="diggs:ContractPropertyType" minOccurs="0"
            maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="ProjectEvent" type="diggs:ProjectEventType"/>
  <complexType name="ProjectEventType">
    <complexContent>
      <extension base="diggs:AbstractEventType"/>
    </complexContent>
  </complexType>
  <complexType name="ProjectEventPropertyType">
    <sequence>
      <element ref="diggs:ProjectEvent"/>
    </sequence>
  </complexType>
  <element name="BusinessAssociate" type="diggs:BusinessAssociateType"
    substitutionGroup="diggs:AbstractMetadata" abstract="false"/>
  <complexType name="BusinessAssociateType">
    <complexContent>
      <extension base="diggs:AbstractMetaDataType">
        <sequence>
          <element name="address" type="diggs:AddressPropertyType" minOccurs="0"
            maxOccurs="unbounded"/>
          <element name="emailAddress" type="diggs:EmailType" minOccurs="0" maxOccurs="unbounded"/>
          <element name="phoneNumber" type="diggs:PhoneType" minOccurs="0" maxOccurs="unbounded"/>
          <element name="associatedWith" type="diggs:MetadataReferenceType" minOccurs="0"
            maxOccurs="unbounded">
            <annotation>
              <documentation>A property element that supports a value by reference only. The target
                value is indicated in the appinfo element.</documentation>
              <appinfo source="urn:x-gml:targetElement">diggs:BusinessAssociate</appinfo>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="BusinessAssociatePropertyType">
    <complexContent>
      <extension base="gml:AbstractMetadataPropertyType">
        <sequence>
          <element ref="diggs:BusinessAssociate" minOccurs="1" maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="Contract" type="diggs:ContractType" substitutionGroup="diggs:AbstractMetadata"
    abstract="false"/>
  <complexType name="ContractType">
    <complexContent>
      <extension base="diggs:AbstractMetaDataType">
        <sequence>
          <element name="associatedFile" type="diggs:MetadataReferenceType" minOccurs="0"
            maxOccurs="unbounded">
            <annotation>
              <documentation>A property element that supports a value by reference only. The target
                value is indicated in the appinfo element.</documentation>
              <appinfo source="urn:x-gml:targetElement">diggs:AssociatedFile</appinfo>
            </annotation>
          </element>
          <element minOccurs="0" name="contractDate" type="diggs:UnifiedDateTimeType"/>
          <element name="type" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element name="clientRef" type="diggs:MetadataReferenceType" minOccurs="1" maxOccurs="1">
              <annotation>
                <documentation>A property element that supports a value by reference only. The
                  target value is indicated in the appinfo element.</documentation>
                <appinfo source="urn:x-gml:targetElement">diggs:BusinessAssociate</appinfo>
              </annotation>
            </element>
            <element name="client" type="diggs:DiggsStringType"/>
          </choice>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element name="contractorRef" type="diggs:MetadataReferenceType" minOccurs="1"
              maxOccurs="1">
              <annotation>
                <documentation>A property element that supports a value by reference only. The
                  target value is indicated in the appinfo element.</documentation>
                <appinfo source="urn:x-gml:targetElement">diggs:BusinessAssociate</appinfo>
              </annotation>
            </element>
            <element name="contractor" type="diggs:DiggsStringType"/>
          </choice>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="ContractPropertyType">
    <complexContent>
      <extension base="gml:AbstractMetadataPropertyType">
        <sequence>
          <element ref="diggs:Contract" minOccurs="1" maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="Equipment" type="diggs:EquipmentType" substitutionGroup="diggs:AbstractEquipment"
    abstract="false"/>
  <complexType name="AbstractEquipmentType" abstract="true">
    <complexContent>
      <extension base="diggs:AbstractNamedFeatureType">
        <sequence>
          <element name="class" type="gml:CodeType" minOccurs="0" maxOccurs="1"/>
          <element name="modelNumber" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="serialNumber" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="calibrationAuditTrail" type="diggs:CalibrationPropertyType" minOccurs="0"
            maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="AbstractEquipment" abstract="true" type="diggs:AbstractEquipmentType"
    substitutionGroup="diggs:AbstractNamedFeature"/>
  <complexType name="EquipmentType">
    <complexContent>
      <extension base="diggs:AbstractEquipmentType"/>
    </complexContent>
  </complexType>
  <complexType name="EquipmentPropertyType">
    <complexContent>
      <extension base="gml:AbstractMetadataPropertyType">
        <sequence>
          <element ref="diggs:AbstractEquipment" maxOccurs="1" minOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="AbstractGroup" type="diggs:AbstractGroupType"
    substitutionGroup="diggs:AbstractNamedFeature" abstract="true"/>
  <complexType name="AbstractGroupType" abstract="true">
    <complexContent>
      <extension base="diggs:AbstractNamedFeatureType">
        <sequence> </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="GroupPropertyType">
    <sequence>
      <element ref="diggs:AbstractGroup" minOccurs="1" maxOccurs="1"/>
    </sequence>
  </complexType>
  <element name="ProjectGroup" substitutionGroup="diggs:AbstractGroup" type="diggs:ProjectGroupType"/>
  <complexType name="ProjectGroupType">
    <complexContent>
      <extension base="diggs:AbstractGroupType">
        <choice>
          <element maxOccurs="unbounded" ref="diggs:projectRef" minOccurs="2"/>
        </choice>
      </extension>
    </complexContent>
  </complexType>

  <element name="SamplingFeatureGroup" substitutionGroup="diggs:AbstractGroup"
    type="diggs:SamplingFeatureGroupType"/>
  <complexType name="SamplingFeatureGroupType">
    <complexContent>
      <extension base="diggs:AbstractGroupType">
        <choice>
          <element maxOccurs="unbounded" ref="diggs:samplingFeatureRef" minOccurs="2"/>
        </choice>
      </extension>
    </complexContent>
  </complexType>
  <element name="SampleGroup" substitutionGroup="diggs:AbstractGroup" type="diggs:SampleGroupType"/>
  <complexType name="SampleGroupType">
    <complexContent>
      <extension base="diggs:AbstractGroupType">
        <choice>
          <element maxOccurs="unbounded" ref="diggs:sampleRef" minOccurs="2"/>
        </choice>
      </extension>
    </complexContent>
  </complexType>
  <element name="GroupGroup" substitutionGroup="diggs:AbstractGroup" type="diggs:GroupGroupType"/>
  <complexType name="GroupGroupType">
    <complexContent>
      <extension base="diggs:AbstractGroupType">
        <choice>
          <element maxOccurs="unbounded" ref="diggs:groupRef" minOccurs="2"/>
        </choice>
      </extension>
    </complexContent>
  </complexType>
  <element name="Specification" type="diggs:SpecificationType"
    substitutionGroup="diggs:AbstractMetadata" abstract="false"/>
  <complexType name="SpecificationType">
    <complexContent>
      <extension base="diggs:AbstractMetaDataType">
        <sequence>
          <element name="associatedFile" type="diggs:MetadataReferenceType" minOccurs="0"
            maxOccurs="unbounded">
            <annotation>
              <appinfo source="urn:x-gml:targetElement">diggs:AssociatedFile</appinfo>
              <documentation>A property element that supports a value by reference only. The target
                value is indicated in the appinfo element.</documentation>
            </annotation>
          </element>
          <element name="fullMethodName" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="methodDescription" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="shortMethodName" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="standardClause" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="standardPart" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="standardReferenceNumber" type="diggs:DiggsStringType" minOccurs="0"
            maxOccurs="1"/>
          <element name="standardTitle" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
          <element name="standardVersion" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="SpecificationPropertyType">
    <complexContent>
      <extension base="gml:AbstractMetadataPropertyType">
        <sequence>
          <element ref="diggs:Specification" maxOccurs="1" minOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="AbstractTestProcedure" type="diggs:AbstractTestProcedureType"
    substitutionGroup="diggs:AbstractObject" abstract="true"/>
  <complexType name="AbstractTestProcedureType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element maxOccurs="1" minOccurs="1" name="equipmentRef"
              type="diggs:MetadataReferenceType">
              <annotation>
                <appinfo source="urn:x-gml:targetElement">diggs:BusinessAssociate</appinfo>
                <documentation>A property element that supports a value by reference only. The target
              value is indicated in the appinfo element.</documentation>
              </annotation>
            </element>
            <element name="equipment" type="gml:CodeType"/>
          </choice>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element maxOccurs="1" minOccurs="1" name="specificationRef"
              type="diggs:MetadataReferenceType">
              <annotation>
                <appinfo source="urn:x-gml:targetElement">diggs:Specification</appinfo>
                <documentation>A property element that supports a value by reference only. The target
              value is indicated in the appinfo element. Use specificationRef to refer to a DIGGS
              specification object or to an external URN that describes the procedure. For a simple
              description of the specification or to refer to a standard for information purposes
              only, use specification.</documentation>
              </annotation>
            </element>
            <element name="specification" type="gml:CodeType">
              <annotation>
                <documentation>A text string that describes the test specification or procedure used. -
              eg. ASTM 2722 as informative. Use specificationRef to refer to a DIGGS specification
              object or to an external URN that describes the procedure.</documentation>
              </annotation>
            </element>
          </choice>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="AbstractProcedureTrial" type="diggs:AbstractProcedureTrialType"
    substitutionGroup="diggs:AbstractObject" abstract="true"/>
  <complexType name="AbstractProcedureTrialType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0" name="otherProperty"
            type="diggs:ParameterPropertyType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="AbstractMetadata" type="diggs:AbstractMetaDataType" abstract="true"
    substitutionGroup="diggs:AbstractNamedObject"/>
  <complexType name="AbstractMetaDataType">
    <complexContent>
      <extension base="diggs:AbstractNamedObjectType"/>
    </complexContent>
  </complexType>
  <element abstract="true" name="AbstractSamplingFeature"
    substitutionGroup="diggs:AbstractNamedFeature" type="diggs:AbstractSamplingFeatureType"/>
  <complexType name="AbstractSamplingFeatureType" abstract="true">
    <complexContent>
      <extension base="diggs:AbstractNamedFeatureType">
        <sequence>
          <element ref="diggs:investigationTarget"/>
          <element ref="diggs:projectRef"/>
          <element minOccurs="0" ref="diggs:originalProjectRef"/>
          <element maxOccurs="unbounded" minOccurs="0" ref="diggs:associatedProjectRef"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="AbstractSamplingFeaturePropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:AbstractSamplingFeature"/>
    </sequence>
  </complexType>
  <element name="TimeInterval" type="diggs:TimeIntervalType"/>
  <complexType name="TimeIntervalType">
    <annotation>
      <documentation/>
    </annotation>
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="start" type="diggs:UnifiedDateTimeType" maxOccurs="1" minOccurs="1">
            <annotation>
              <documentation>The date/time that begins the interval
</documentation>
            </annotation>
          </element>
          <element name="end" type="diggs:UnifiedDateTimeType" maxOccurs="1" minOccurs="0">
            <annotation>
              <documentation>The date/time that ends the interval. Alternatively, the duration property may be used to define the time interval of interest.</documentation>
            </annotation>
          </element>
          <element name="duration" type="time" maxOccurs="1" minOccurs="0">
            <annotation>
              <documentation>The duration of time since start, defining the time interval of interest. Both end and duration are allowed and could produce different time intervals depending on the nature of the activity or commentary. Where there are differences in elapsed time and duration these would be explained or expanded on in the remark property.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="TimeIntervalPropertyType">
    <sequence>
      <element ref="diggs:TimeInterval"/>
    </sequence>
  </complexType>
  <complexType name="ValueAtTimeType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="elapsedTime" type="diggs:TimeIntervalPropertyType" minOccurs="0"
            maxOccurs="1"/>
          <element name="value" type="witsml:generalMeasureType" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="DelayEventType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="timeOfDelay" type="diggs:TimeIntervalPropertyType" minOccurs="0"
            maxOccurs="1"/>
          <element name="delayType" type="gml:CodeType" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="AbstractLaboratoryTest" type="diggs:AbstractLaboratoryTestType"
    substitutionGroup="diggs:AbstractTestProcedure" abstract="true"/>
  <complexType name="AbstractLaboratoryTestType" abstract="false">
    <complexContent>
      <extension base="diggs:AbstractTestProcedureType">
        <sequence>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element name="initialSpecimenConditions" type="diggs:SpecimenConditionsPropertyType"
              minOccurs="1" maxOccurs="1">
              <annotation>
                <documentation>Description of how sample(s) was prepared for the test, if applicable.
                If a preparation is specified by a test specification, this information can be
                referenced using the specificationRef or specifcatiom property and not needed
                here</documentation>
              </annotation>
            </element>
            <element maxOccurs="1" minOccurs="1" name="initialSpecimenConditionsRef"
              type="diggs:MetadataReferenceType"/>
          </choice>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element name="finalSpecimenConditions" type="diggs:SpecimenConditionsPropertyType"
              minOccurs="1" maxOccurs="1">
              <annotation>
                <documentation>Description of how sample(s) was prepared for the test, if applicable.
                If a preparation is specified by a test specification, this information can be
                referenced using the specificationRef or specifcatiom property and not needed
                here</documentation>
              </annotation>
            </element>
            <element name="finalSpecimenConditionsRef" type="diggs:MetadataReferenceType"/>
          </choice>
          <element maxOccurs="unbounded" minOccurs="0" name="otherTestProperty"
            type="diggs:ParameterPropertyType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element abstract="true" name="AbstractSimpleMetadata" type="diggs:AbstractSimpleMetadataType"/>
  <complexType abstract="true" name="AbstractSimpleMetadataType"/>
  <element name="AssociatedFile" type="diggs:AssociatedFileType"
    substitutionGroup="diggs:AbstractMetadata" abstract="false"/>
  <complexType name="AssociatedFileType">
    <complexContent>
      <extension base="diggs:AbstractMetaDataType">
        <sequence>
          <element minOccurs="0" name="fileURL" type="diggs:DiggsStringType"/>
          <element name="fileType" type="gml:CodeType" minOccurs="0" maxOccurs="1"/>
          <element name="creatingApplication" type="diggs:SoftwareApplicationPropertyType"
            minOccurs="0" maxOccurs="1"/>
          <element name="documentType" type="gml:CodeType" minOccurs="0" maxOccurs="1"/>
          <element name="fileDate" type="diggs:UnifiedDateTimeType" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="MetadataReferenceType">
    <annotation>
      <documentation>A metadata property type that supports a value by reference only. The target
        Metadata element is indicated in the appinfo value of the element whose type is
        MetadataReferenceType.</documentation>
    </annotation>
    <complexContent>
      <extension base="gml:AbstractMetadataPropertyType">
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="AssociatedFilePropertyType">
    <complexContent>
      <extension base="gml:AbstractMetadataPropertyType">
        <sequence>
          <element ref="diggs:AssociatedFile" minOccurs="1" maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="Role" type="diggs:RoleType" substitutionGroup="diggs:AbstractSimpleMetadata"
    abstract="false"/>
  <complexType name="RoleType">
    <complexContent>
      <extension base="diggs:AbstractSimpleMetadataType">
        <sequence>
          <element name="rolePerformed" type="gml:CodeType" minOccurs="1" maxOccurs="1"/>
          <element name="timePerformed" type="diggs:TimeIntervalPropertyType" minOccurs="0"
            maxOccurs="1"/>
          <element name="remark" type="diggs:RemarkPropertyType" minOccurs="0" maxOccurs="unbounded"/>
          <choice maxOccurs="1">
            <element name="businessAssociateRef" type="diggs:MetadataReferenceType" minOccurs="1"
              maxOccurs="1">
              <annotation>
                <appinfo source="urn:x-gml:targetElement">diggs:BusinessAssociate</appinfo>
                <documentation>A property element that supports a value by reference only. The
                  target value is indicated in the appinfo element.</documentation>
              </annotation>
            </element>
            <element name="businessAssociate" type="diggs:DiggsStringType"/>
          </choice>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="RolePropertyType">
    <complexContent>
      <extension base="gml:AbstractMetadataPropertyType">
        <sequence>
          <element ref="diggs:Role" minOccurs="1" maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="Remark" type="diggs:RemarkType" substitutionGroup="diggs:AbstractSimpleMetadata"
    abstract="false"/>
  <complexType name="RemarkType">
    <complexContent>
      <extension base="diggs:AbstractSimpleMetadataType">
        <sequence>
          <element name="content" type="diggs:DiggsStringType" minOccurs="1" maxOccurs="1"/>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element name="authorRef" type="diggs:MetadataReferenceType" minOccurs="1" maxOccurs="1">
              <annotation>
                <documentation>A property element that supports a value by reference only. The
                  target value is indicated in the appinfo element.</documentation>
                <appinfo source="urn:x-gml:targetElement">diggs:BusinessAssociate</appinfo>
              </annotation>
            </element>
            <element name="author" type="diggs:DiggsStringType"/>
          </choice>
          <element name="remarkDateTime" type="diggs:UnifiedDateTimeType" minOccurs="0"
            maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="RemarkPropertyType">
    <complexContent>
      <extension base="gml:AbstractMetadataPropertyType">
        <sequence>
          <element ref="diggs:Remark" minOccurs="1" maxOccurs="1"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="Diggs" type="diggs:DiggsType" substitutionGroup="gml:AbstractFeature"
    abstract="false"/>
  <complexType name="DiggsType">
    <complexContent>
      <extension base="gml:AbstractFeatureType">
        <sequence>
          <element name="documentInformation" type="diggs:DocumentInformationPropertyType"
            minOccurs="1" maxOccurs="1"/>
          <element name="project" type="diggs:ProjectPropertyType" minOccurs="0"
            maxOccurs="unbounded"/>
          <element minOccurs="0" name="samplingFeature"
            type="diggs:AbstractSamplingFeaturePropertyType" maxOccurs="unbounded"/>
          <element minOccurs="0" name="samplingActivity" type="diggs:SamplingActivityPropertyType"
            maxOccurs="unbounded"/>
          <element name="sample" type="diggs:SamplePropertyType" minOccurs="0" maxOccurs="unbounded"/>
          <element minOccurs="0" name="fieldDescription" type="diggs:DescriptionSystemPropertyType"
            maxOccurs="unbounded"/>
          <element minOccurs="0" name="measurement" type="diggs:AbstractMeasurementPropertyType"
            maxOccurs="unbounded"/>
          <element name="group" type="diggs:GroupPropertyType" minOccurs="0" maxOccurs="unbounded"/>

          <element name="associatedFile" type="diggs:AssociatedFilePropertyType" minOccurs="0"
            maxOccurs="unbounded"/>
          <element name="businessAssociate" type="diggs:BusinessAssociatePropertyType" minOccurs="0"
            maxOccurs="unbounded"/>
          <element name="equipment" type="diggs:EquipmentPropertyType" minOccurs="0"
            maxOccurs="unbounded"/>
          <element name="specification" type="diggs:SpecificationPropertyType" minOccurs="0"
            maxOccurs="unbounded"/>
        </sequence>
        <attribute ref="xml:lang"/>
      </extension>
    </complexContent>
  </complexType>
  <element name="Station" type="diggs:StationType" abstract="false"
    substitutionGroup="diggs:AbstractPointSamplingFeature">
    <annotation>
      <documentation>A sampling feature that is a point in or on the earth's surface where observations or
        tests are performed, where samples are collected, or where monitoring devices are
        installed.</documentation>
    </annotation>
  </element>
  <complexType name="StationType">
    <complexContent>
      <extension base="diggs:AbstractPointSamplingFeatureType">
        <sequence>
          <element name="type" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A definition of the type of station (eg. outcrop, survey marker, etc.).
                This is intended to come from a list controlled by an authority. </documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="AbstractPointSamplingFeatureType">
    <complexContent>
      <extension base="diggs:AbstractSamplingFeatureType">
        <sequence>
          <element name="referencePoint" type="diggs:PointLocationPropertyType"/>
          <element minOccurs="0" name="referencePointAccuracy"
            type="diggs:LocationAccuracyPropertyType">
            <annotation>
              <documentation>Provides accuracy information for the reference point
                coordinates.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element abstract="true" name="AbstractPointSamplingFeature"
    substitutionGroup="diggs:AbstractSamplingFeature" type="diggs:AbstractPointSamplingFeatureType"/>
  <element name="AbstractLinearSamplingFeature" type="diggs:AbstractLinearSamplingFeatureType"
    substitutionGroup="diggs:AbstractSamplingFeature" abstract="true"/>
  <complexType name="AbstractLinearSamplingFeatureType">
    <complexContent>
      <extension base="diggs:AbstractSamplingFeatureType">
        <sequence>
          <element name="referencePoint" type="diggs:PointLocationPropertyType" minOccurs="1"/>
          <element minOccurs="0" name="referencePointAccuracy"
            type="diggs:LocationAccuracyPropertyType">
            <annotation>
              <documentation>Provides accuracy information for the referencePoint. Accuracy for the
                centerLine coordinates are specified in the linearElementAccuracy property of the
                LinearSpatialReferenceSystem that uses the centerLine as the linear
                element.</documentation>
            </annotation>
          </element>
          <element name="centerLine" type="diggs:LinearExtentPropertyType" maxOccurs="unbounded"
            minOccurs="1"/>
          <element name="linearReferencing" type="diggs:LinearSpatialReferenceSystemPropertyType"
            minOccurs="1" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="FeatureReference" type="diggs:FeatureReferenceType">
    <annotation>
      <documentation>An element that carries xlink:href to the referenced feature as well as the
        gml:identifier of the referenced feature, as information </documentation>
    </annotation>
  </element>
  <complexType name="FeatureReferenceType">
    <complexContent>
      <extension base="gml:ReferenceType">
        <attribute name="identifierRef" type="diggs:IdentifierReferenceType" use="optional">
          <annotation>
            <documentation>Provides a fully qualified gml:identifier value of the target
              feature. Used primarily to reference a feature by a globally unique identifier as opposed to the gml:id</documentation>
          </annotation>
        </attribute>
      </extension>
    </complexContent>
  </complexType>

  <element abstract="true" name="AbstractInsituTest" substitutionGroup="diggs:AbstractTestProcedure"
    type="diggs:AbstractInsituTestType"/>
  <complexType abstract="false" name="AbstractInsituTestType">
    <complexContent>
      <extension base="diggs:AbstractTestProcedureType">
        <sequence>
          <element minOccurs="0" name="testEvent" type="diggs:EventPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>A test event is a time-based or location-based recording of
                instantaneous conditions or parameters associated with an in-situ test, such as
                casing depth, water level, or any custom parameters. This property holds one or more
                Event objects; Event objects are associated with the type of sampling feature that
                the in-situ test is performed in. For example, for a standard penetration test
                performed in a borehole, a BoreholeEvent object would be used in the testEvents
                property to record the depth to water at various times during the
                test.</documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0" name="otherTestProperty"
            type="diggs:ParameterPropertyType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="originalProjectRef" type="diggs:FeatureReferenceType">
    <annotation>
      <appinfo source="urn:x-gml:targetElement">Diggs:Project</appinfo>
      <documentation>A property element that supports a value by reference only. The target value is
        indicated in the appinfo element.</documentation>
      <documentation>A reference to the project that first established this feature</documentation>
    </annotation>
  </element>
  <element name="associatedProjectRef" type="diggs:FeatureReferenceType">
    <annotation>
      <appinfo source="urn:x-gml:targetElement">Diggs:Project</appinfo>
      <documentation>A reference to a project that uses the feature within its business activity.
        The project is not intended to be the one that established the feature in the first place.
        The property originalProjectRef should be used for that purpose. </documentation>
      <documentation>A property element that supports a value by reference only. The target value is
        indicated in the appinfo element.</documentation>
    </annotation>
  </element>
  <element name="projectRef" type="diggs:FeatureReferenceType">
    <annotation>
      <appinfo source="urn:x-gml:targetElement">Diggs:Project</appinfo>
      <documentation>A reference to a project that uses the feature within its business activity.
        The project referenced here is the associated project for this instance. Other project
        references can be transmitted using the associatedProjectRef element. To identify the
        creating project for a feature, the property originalProjectRef should be used. </documentation>
      <documentation>A property element that supports a value by reference only. The target value is
        indicated in the appinfo element.</documentation>
    </annotation>
  </element>
  <element name="measurementRef" type="diggs:FeatureReferenceType">
    <annotation>
      <appinfo source="urn:x-gml:targetElement">Diggs:Measurement</appinfo>
      <documentation>A reference to a Measurement feature that is associated with this feature. </documentation>
      <documentation>A property element that supports a value by reference only. The target value is
        indicated in the appinfo element.</documentation>
    </annotation>
  </element>
  <element name="laboratoryTestRef" type="diggs:FeatureReferenceType">
    <annotation>
      <appinfo source="urn:x-gml:targetElement">Diggs:AbstractLaboratoryTest</appinfo>
      <documentation>A reference to a laboratory test that is associated with this feature. </documentation>
      <documentation>A property element that supports a value by reference only. The target value is
        indicated in the appinfo element.</documentation>
    </annotation>
  </element>
  <element name="samplingFeatureRef" type="diggs:FeatureReferenceType">
    <annotation>
      <appinfo source="urn:x-gml:targetElement">Diggs:AbstractSamplingFeature</appinfo>
      <documentation>A reference to a sampling feature that is associated with this feature. </documentation>
      <documentation>A property element that supports a value by reference only. The target value is
        indicated in the appinfo element.</documentation>
    </annotation>
  </element>
  <element name="originalSamplingFeatureRef" type="diggs:FeatureReferenceType">
    <annotation>
      <appinfo source="urn:x-gml:targetElement">Diggs:AbstractSamplingFeature</appinfo>
      <documentation>A reference to a sampling feature that was created by this feature. </documentation>
      <documentation>A property element that supports a value by reference only. The target value is
        indicated in the appinfo element.</documentation>
    </annotation>
  </element>
  <element name="sampleRef" type="diggs:FeatureReferenceType">
    <annotation>
      <appinfo source="urn:x-gml:targetElement">Diggs:Sample</appinfo>
      <documentation>A reference to a sample that is associated with this feature. </documentation>
      <documentation>A property element that supports a value by reference only. The target value is
        indicated in the appinfo element.</documentation>
    </annotation>
  </element>
  <element name="sampleProducedRef" type="diggs:FeatureReferenceType">
    <annotation>
      <appinfo source="urn:x-gml:targetElement">Diggs:SampleProduced</appinfo>
      <documentation>A reference to a SampleProduced object within the SamplingActivity associated with this feature. This is a required property that links the sample to its location and initial sampleContainer properties</documentation>
      <documentation>A property element that supports a value by reference only. The target value is
        indicated in the appinfo element.</documentation>
    </annotation>
  </element>
  <element name="samplingActivityRef" type="diggs:FeatureReferenceType">
    <annotation>
      <appinfo source="urn:x-gml:targetElement">Diggs:SamplingActivity</appinfo>
      <documentation>A reference to a sample activity that is associated with this feature. </documentation>
      <documentation>A property element that supports a value by reference only. The target value is
        indicated in the appinfo element.</documentation>
    </annotation>
  </element>
  <element name="groupRef" type="diggs:FeatureReferenceType">
    <annotation>
      <appinfo source="urn:x-gml:targetElement">Diggs:AbstractGroup</appinfo>
      <documentation>A reference to a group that is associated with this feature. </documentation>
      <documentation>A property element that supports a value by reference only. The target value is
        indicated in the appinfo element.</documentation>
    </annotation>
  </element>
  <element name="sensorRef" type="diggs:FeatureReferenceType">
    <annotation>
      <documentation>A reference to a sensor that is associated with this feature. </documentation>
      <documentation>A property element that supports a value by reference only. The target value is
        indicated in the appinfo element.</documentation>
    </annotation>
  </element>
  <element abstract="false" name="SamplingActivity" substitutionGroup="diggs:AbstractFeature"
    type="diggs:SamplingActivityType">
    <annotation>
      <documentation>The action taken to obtain or produce a physical sample, although the activity
        may not produce a sample (eg. a core run that produces no recovery). This activity typically
        occurs at a location on a sampling feature, or could occur elsewhere (eg. a laboratory) in
        the case of test or blank samples, or can produce aggregate samples where the location of
        the samples produced have no meaning. All Sample features must refer to a SamplingActivity
        feature.</documentation>
    </annotation>
  </element>
  <complexType name="SamplingActivityType">
    <complexContent>
      <extension base="diggs:AbstractFeatureType">
        <sequence>
          <element ref="diggs:investigationTarget">
            <annotation>
              <documentation/>
            </annotation>
          </element>
          <choice>
            <element ref="diggs:samplingFeatureRef" minOccurs="1" maxOccurs="unbounded"/>
            <sequence>
              <element ref="diggs:projectRef"/>
              <element maxOccurs="unbounded" minOccurs="0" ref="diggs:associatedProjectRef"/>
              <element minOccurs="0" ref="diggs:originalProjectRef"/>
            </sequence>
          </choice>
          <element minOccurs="0" name="sourceSampleRef" maxOccurs="unbounded"
            type="diggs:FractionalReferenceType">
            <annotation>
              <appinfo source="urn:x-gml:targetElement">diggs:Sample/@gml:id</appinfo>
              <documentation>A reference to a sample or samples that are used to create the sample(s)
                (identified in the sampleProduced property) produced by this activity. This element is
                only used for activities that subsample or aggregate samples from other samples. For
                aggregate samples, the percentage attribute optionally defines how much of the total
                new sample is composed from the source sample.</documentation>
            </annotation>
          </element>
          <element name="activityLocation" type="diggs:LocationPropertyType" minOccurs="0"/>
          <element name="activityType">
            <annotation>
              <documentation>A controlled list that indicates the type of sampling activity. Can be used by applications to validate other activity info. One of the following strings must be used:

collect - activity created a sample or samples by collecting a sample from a sampling feature;

aggregate - activity created a sample or samples by aggregating existing samples; related Sample(s) should contain more than one sourceSampleRef

subsample - activity created a sample or samples by subsampling an existing sample; only one sourceSampleRef should be specified for the related Sample(s). 

test - activity produced a test, standard or blank sample that does not relate to any field sample or sampling feature; activity should be related to a project and no sourceSampleRef should be specified for the related Sample(s). 
                
none - the sample activity failed to produce any physical sample.</documentation>
            </annotation>
            <simpleType>
              <restriction base="string">
                <enumeration value="aggregate"/>
                <enumeration value="collect"/>
                <enumeration value="none"/>
                <enumeration value="subsample"/>
                <enumeration value="test"/>
              </restriction>
            </simpleType>
          </element>
          <element maxOccurs="unbounded" minOccurs="0" name="sampleProduced"
            type="diggs:SampleProducedPropertyType">
            <annotation>
              <documentation>Identifies the samples, the location(s) of samples (optional) and derived sample type (a controlled list) that are produced by this sampling activity</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="samplingDate" type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>The date/time for this activity</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="samplingEnvironment" type="diggs:EnvironmentPropertyType"> </element>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element name="samplingEquipmentRef" type="diggs:MetadataReferenceType" minOccurs="1"
              maxOccurs="1">
              <annotation>
                <appinfo source="urn:x-gml:targetElement">diggs:Equipment</appinfo>
                <documentation>A property element that supports a value by reference only. The
                  target value is indicated in the appinfo element.</documentation>
              </annotation>
            </element>
            <element name="samplingEquipment" type="gml:CodeType"/>
          </choice>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element name="samplingProcedureRef" type="diggs:MetadataReferenceType" minOccurs="1"
              maxOccurs="1">
              <annotation>
                <appinfo source="urn:x-gml:targetElement">diggs:Specifications</appinfo>
                <documentation>A property element that supports a value by reference only. The
                  target value is indicated in the appinfo element.</documentation>
              </annotation>
            </element>
            <element name="samplingProcedure" type="gml:CodeType"/>
          </choice>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="SamplingActivityPropertyType">
    <sequence>
      <element ref="diggs:SamplingActivity" maxOccurs="1" minOccurs="1"/>
    </sequence>
  </complexType>
  <complexType name="FractionalReferenceType">
    <complexContent>
      <extension base="diggs:FeatureReferenceType">
        <attribute name="percentage" type="diggs:Val0-100Type" use="optional"/>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="Val0-100MeasureType">
    <simpleContent>
      <extension base="diggs:Val0-100Type">
        <attribute name="uom" type="witsml:PercentUom" use="required"/>
      </extension>
    </simpleContent>
  </complexType>
  <simpleType name="Val0-100Type">
    <restriction base="double">
      <minInclusive value="0"/>
      <maxInclusive value="100"/>
    </restriction>
  </simpleType>
  <element abstract="true" name="AbstractDescriptionSystem"
    substitutionGroup="diggs:AbstractFeature" type="diggs:AbstractDescriptionSystemType">
    <annotation>
      <documentation>A system of zones associated with a sampling feature for which as single class of description is assigned (eg. lithology, color, discontinuity, etc.)</documentation>
    </annotation>
  </element>
  <complexType abstract="true" name="AbstractDescriptionSystemType">
    <complexContent>
      <extension base="diggs:AbstractFeatureType">
        <sequence>
          <element ref="diggs:samplingFeatureRef"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="DescriptionSystemPropertyType">
    <sequence>
      <element ref="diggs:AbstractDescriptionSystem" maxOccurs="1" minOccurs="1"/>
    </sequence>
  </complexType>
  <element abstract="true" name="AbstractDescription" type="diggs:AbstractDescriptionType"
    substitutionGroup="diggs:AbstractObject">
    <annotation>
      <documentation>An interval or region defined at a sampling feature that contains observations
        or interpretations.</documentation>
    </annotation>
  </element>
  <complexType abstract="true" name="AbstractDescriptionType">
    <annotation>
      <documentation>The base type for all descriptions, which extend this type</documentation>
    </annotation>
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>

          <element maxOccurs="unbounded" minOccurs="0" ref="diggs:sampleRef">
            <annotation>
              <documentation>If the description derives from a sample, then this
                element can be optionally used to point to the subject Sample feature via the
                xlink:href attribute</documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0" ref="diggs:measurementRef">
            <annotation>
              <documentation>If the description derives from a measurement, then this
                element can be optionally used to point to the subject Test or Monitor feature via the
                xlink:href attribute</documentation>
            </annotation>
          </element>
          <element name="location" type="diggs:LocationPropertyType" minOccurs="1">
            <annotation>
              <documentation>Appropriate SamplingFeatureLocation properties that are relevant to
                the description zone: 1) inearIntervalLocation (for linear sampling features where the
                full zone is contained within a linear sampling feature) and linearPointLocation
                (for linear sampling features where only one boundary of layer is within the
                sampling feature), planarIntervalLocation (one boundary in a planar sampling
                feature) and planarSurfaceLocation (surface on a planar feature).</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="trueTopObserved" type="boolean">
            <annotation>
              <documentation>True or false, indicating whether the geometry of the uppermost position of
                the zone represents the true top of the feature being defined (true) or (false)
                whether the top represents the upper extent of the zone that is described by the
                extent of the sampling feature itself.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="trueBaseObserved" type="boolean">
            <annotation>
              <documentation>True or false, indicating whether the geometry of the lowermost position of
                the zone represents the true base of the feature being defined (true) or (false)
                whether the base represents the lower extent of the zone that is defined by the
                extent of the sampling feature itself.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="ColorSystem" substitutionGroup="diggs:AbstractDescriptionSystem"
    type="diggs:ColorSystemType"/>
  <complexType name="ColorSystemType">
    <complexContent>
      <extension base="diggs:AbstractDescriptionSystemType">
        <sequence>
          <element name="colorType" type="diggs:DiggsStringType">
            <annotation>
              <documentation>A text string defining the kind of "Color Description" system described *("eg. Munsell Color", "wet color". </documentation>
            </annotation>
          </element>
          <element name="description" type="diggs:ColorDescriptionPropertyType"
            maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="ColorDescriptionPropertyType">
    <sequence maxOccurs="1">
      <element maxOccurs="1" ref="diggs:ColorDescription"/>
    </sequence>
  </complexType>
  <element name="ColorDescription" substitutionGroup="diggs:AbstractDescription"
    type="diggs:ColorDescriptionType">
    <annotation>
      <documentation>A color layer describes the color of materials encountered. All layers within a
        color layer system must not overlap, although multiple colors can be described within a
        single zone.</documentation>
    </annotation>
  </element>
  <complexType name="ColorPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:Color"/>
    </sequence>
    <attribute name="character" type="diggs:ColorCharacterEnumType"/>
  </complexType>
  <complexType name="ColorDescriptionType">
    <annotation>
      <documentation>Color layers must not overlap</documentation>
    </annotation>
    <complexContent>
      <extension base="diggs:AbstractDescriptionType">
        <sequence>
          <element maxOccurs="unbounded" name="color" type="diggs:ColorPropertyType"/>
          <element minOccurs="0" name="baseBoundary" type="diggs:BoundaryPropertyType">
            <annotation>
              <documentation>Description of the boundary at the base of the layer</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="Color" substitutionGroup="diggs:AbstractObjectBase" type="diggs:ColorType"/>
  <complexType name="ColorType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="colorCode" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>The code value that defines the color; preferably defined by an
                authority identified in the codespace attribute (eg. 10YR4/3)</documentation>
            </annotation>
          </element>
          <element name="abundanceCode" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A measure of the amount of the color present as a string type, intended
                to come from a controlled list (eg. few, rare, common, etc.)</documentation>
            </annotation>
          </element>
          <element name="abundancePercent" type="diggs:Val0-100MeasureType" minOccurs="0">
            <annotation>
              <documentation>A measure of the amount of the color present, expressed as a
                percentage.</documentation>
            </annotation>
          </element>
        </sequence>
        <attribute ref="diggs:technique" use="optional"/>
      </extension>
    </complexContent>
  </complexType>
  <simpleType name="ColorCharacterEnumType">
    <union>
      <simpleType>
        <restriction base="string">
          <enumeration value="banded"/>
          <enumeration value="mottled"/>
          <enumeration value="multicolored"/>
          <enumeration value="uniform"/>
          <enumeration value="variegated"/>
        </restriction>
      </simpleType>
      <simpleType>
        <restriction base="string">
          <pattern value="other:\w{2,}"/>
        </restriction>
      </simpleType>
    </union>
  </simpleType>
  <element name="ConstituentSystem" substitutionGroup="diggs:AbstractDescriptionSystem"
    type="diggs:ConstituentSystemType"/>
  <complexType name="ConstituentSystemType">
    <complexContent>
      <extension base="diggs:AbstractDescriptionSystemType">
        <sequence>
          <element name="constituentType" type="diggs:DiggsStringType">
            <annotation>
              <documentation>A text string defining the kind of "Constituent Description" system described (eg. :"Fossils" or "Diagenesis". </documentation>
            </annotation>
          </element>
          <element name="description" type="diggs:ConstituentDescriptionPropertyType"
            maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="ConstituentDescriptionPropertyType">
    <sequence maxOccurs="1">
      <element maxOccurs="1" ref="diggs:ConstituentDescription"/>
    </sequence>
  </complexType>
  <element name="ConstituentDescription" substitutionGroup="diggs:AbstractDescription"
    type="diggs:ConstituentDescriptionType">
    <annotation>
      <documentation>Constituent layers describe details of earth materials encountered within a
        sampling feature. Constituent layers restricted to a specific lithologic layer are encoded
        as constituents in the Lithology layers themselves. Observations within a constituent layer system
        need not be continuous and may overlap, but layers with the same named constituents cannot
        overlap.</documentation>
    </annotation>
  </element>
  <complexType name="ConstituentDescriptionType">
    <complexContent>
      <extension base="diggs:AbstractDescriptionType">
        <sequence>
          <element name="constituent" type="diggs:ConstituentPropertyType" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

  <element name="Constituent" type="diggs:ConstituentType"/>
  <complexType name="ConstituentType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="codeValue" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>The code value that defines the consituent (eg. "SM" or "gastropod";
                preferably defined by an authority identified in the codespace
                attribute</documentation>
            </annotation>
          </element>
          <element name="abundanceCode" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A measure of the amount of the constituent present as a string type,
                intended to come from a controlled list (eg. few, rare, common,
                etc.)</documentation>
            </annotation>
          </element>
          <element name="abundancePercent" type="diggs:Val0-100MeasureType" minOccurs="0">
            <annotation>
              <documentation>A measure of the amount of the constituent present, expressed as a
                percentage.</documentation>
            </annotation>
          </element>
          <element name="distribution" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A description of how the constituent is distributed within the interval
                (eg. scattered, sporadic, locally, etc.). Intended to come from a controlled
                list</documentation>
            </annotation>
          </element>
        </sequence>
        <attribute ref="diggs:technique"/>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="ConstituentPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:Constituent">
        <annotation>
          <documentation>A name that provides the classification code for the constituent (required)
            and optional description, along with a description of the abundance of this constituent
            (if applicable).</documentation>
        </annotation>
      </element>
    </sequence>
  </complexType>
  <simpleType name="ConstituentCategoryEnumType">
    <union>
      <simpleType>
        <restriction base="string">
          <enumeration value="bioturbation intensity"/>
          <enumeration value="color"/>
          <enumeration value="consistency"/>
          <enumeration value="diagenetic features"/>
          <enumeration value="fossils"/>
          <enumeration value="hydrocarbons"/>
          <enumeration value="lithology"/>
          <enumeration value="physical structures"/>
          <enumeration value="trace fossils"/>
        </restriction>
      </simpleType>
      <simpleType>
        <restriction base="string">
          <pattern value="other:\w{2,}"/>
        </restriction>
      </simpleType>
    </union>
  </simpleType>
  <simpleType name="MediumEnumType">
    <union>
      <simpleType>
        <restriction base="string">
          <enumeration value="gas"/>
          <enumeration value="water"/>
          <enumeration value="liquid"/>
        </restriction>
      </simpleType>
      <simpleType>
        <restriction base="string">
          <pattern value="other:\w{2,}"/>
        </restriction>
      </simpleType>
    </union>
  </simpleType>
  <element name="DiscontinuitySystem" substitutionGroup="diggs:AbstractDescriptionSystem"
    type="diggs:DiscontinuitySystemType"/>
  <complexType name="DiscontinuitySystemType">
    <complexContent>
      <extension base="diggs:AbstractDescriptionSystemType">
        <sequence>
          <element name="discontinuityType" type="diggs:DiggsStringType">
            <annotation>
              <documentation>A text string defining the kind of Discontinuity system described (eg. Joints). </documentation>
            </annotation>
          </element>
          <element name="description" type="diggs:DiscontinuityDescriptionPropertyType"
            maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="DiscontinuityDescriptionPropertyType">
    <sequence maxOccurs="1">
      <element maxOccurs="1" ref="diggs:DiscontinuityDescription"/>
    </sequence>
  </complexType>
  <element name="DiscontinuityDescription" substitutionGroup="diggs:AbstractDescription"
    type="diggs:DiscontinuityDescriptionType">
    <annotation>
      <documentation>Describes fractures and joints and their spacing. Individual discontinuities or
        zone of discontinuities within a discontinuity system may overlap.</documentation>
    </annotation>
  </element>
  <complexType name="DiscontinuityDescriptionType">
    <annotation>
      <documentation>A discontinuity or zone of discontinuities</documentation>
    </annotation>
    <complexContent>
      <extension base="diggs:AbstractDescriptionType">
        <sequence>
          <element name="fractureDescription" type="diggs:FractureDescriptionPropertyType"
            minOccurs="0"> </element>
          <element name="fractureSpacing" minOccurs="0" type="diggs:FractureSpacingPropertyType">
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="FractureDescription" type="diggs:FractureDescriptionType"/>
  <complexType name="FractureDescriptionType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="0" name="aperatureMeasurement" type="witsml:lengthMeasure">
            <annotation>
              <documentation><![CDATA[Discontinuity aperture measurement]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="aperatureObservation" type="diggs:DiggsStringType">
            <annotation>
              <documentation><![CDATA[Discontinuity aperture observation]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="dipAngle" type="witsml:planeAngleMeasure">
            <annotation>
              <documentation><![CDATA[Dip of discontinuity]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="dipDirection" type="witsml:planeAngleMeasure">
            <annotation>
              <documentation><![CDATA[Dip direction of discontinuity]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="discontinuityNumber" type="integer">
            <annotation>
              <documentation><![CDATA[Discontinuity number]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="fractureSetNumber" type="diggs:DiggsStringType">
            <annotation>
              <documentation><![CDATA[Discontinuity set reference number]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="infillMaterial" type="gml:CodeType">
            <annotation>
              <documentation><![CDATA[Infilling material]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="infillHardness" type="gml:CodeType">
            <annotation>
              <documentation>Hardness of the infill material</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="jointRoughnessCoefficient" type="double">
            <annotation>
              <documentation><![CDATA[Joint Roughness Coefficient]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="persistence" type="double">
            <annotation>
              <documentation><![CDATA[Persistence measurement]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="planarity" type="gml:CodeType">
            <annotation>
              <documentation><![CDATA[Intermediate scale planarity (ISRM 1978)]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="roughness" type="gml:CodeType">
            <annotation>
              <documentation><![CDATA[Small scale roughness (ISRM 1978)]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="seepageRating" type="gml:CodeType">
            <annotation>
              <documentation><![CDATA[Seepage rating (ISRM 1978)]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="surfaceAppearance" type="diggs:DiggsStringType">
            <annotation>
              <documentation><![CDATA[Surface appearance]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="termination" type="gml:CodeType">
            <annotation>
              <documentation><![CDATA[Discontinuity termination (lower, upper) (ISRM 1978)]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="type" type="gml:CodeType">
            <annotation>
              <documentation><![CDATA[Type of discontinuity]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="wallStrength" type="witsml:generalMeasureType">
            <annotation>
              <documentation><![CDATA[Discontinuity wall strength]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="wallWeathering" type="diggs:DiggsStringType">
            <annotation>
              <documentation><![CDATA[Discontinuity wall weathering]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="fractureHealing" type="gml:CodeType"/>
          <element minOccurs="0" name="waterFlow" type="witsml:volumeFlowRateMeasure">
            <annotation>
              <documentation><![CDATA[Water flow estimate]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="wavinessAmplitude" type="witsml:lengthMeasure">
            <annotation>
              <documentation><![CDATA[Large scale waviness, amplitude (ISRM 1978)]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="wavinessWavelength" type="witsml:lengthMeasure">
            <annotation>
              <documentation><![CDATA[Large scale waviness, wavelength (ISRM 1978)]]></documentation>
            </annotation>
          </element>
        </sequence>
        <attribute default="unknown" ref="diggs:technique"/>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="FractureDescriptionPropertyType">
    <sequence>
      <element ref="diggs:FractureDescription"/>
    </sequence>
  </complexType>
  <element name="FractureSpacing" type="diggs:FractureSpacingType"> </element>
  <complexType name="FractureSpacingType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence minOccurs="1">
          <element minOccurs="0" name="minSpacing" type="witsml:lengthMeasure">
            <annotation>
              <documentation><![CDATA[Minimum Fracture Spacing over zone]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="maxSpacing" type="witsml:lengthMeasure">
            <annotation>
              <documentation><![CDATA[Maximum Fracture Spacing over zone]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="averageSpacing" type="witsml:lengthMeasure">
            <annotation>
              <documentation><![CDATA[Average Fracture Spacing over zone]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="fracturesPerUnitLength" type="witsml:lengthMeasure">
            <annotation>
              <documentation><![CDATA[Number of fractures per unit length as specified in the uom attribute]]></documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="FractureSpacingPropertyType">
    <sequence>
      <element ref="diggs:FractureSpacing"/>
    </sequence>
  </complexType>
  <element name="LithologySystem" substitutionGroup="diggs:AbstractDescriptionSystem"
    type="diggs:LithologySystemType"/>
  <complexType name="LithologySystemType">
    <complexContent>
      <extension base="diggs:AbstractDescriptionSystemType">
        <sequence>
          <element name="lithologyClassificationType" type="gml:CodeType">
            <annotation>
              <documentation>Describes the classification system used to define the lithology classification codes (eg. Unified Soil Classification) used within this system</documentation>
            </annotation>
          </element>
          <element name="description" type="diggs:LithologyDescriptionPropertyType"
            maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="LithologyDescriptionPropertyType">
    <sequence maxOccurs="1">
      <element maxOccurs="1" ref="diggs:LithologyDescription"/>
    </sequence>
  </complexType>
  <element name="LithologyDescription" substitutionGroup="diggs:AbstractDescription"
    type="diggs:LithologyDescriptionType"/>
  <complexType name="LithologyDescriptionType">
    <annotation>
      <documentation>Lithology layers must not overlap within a layer system</documentation>
    </annotation>
    <complexContent>
      <extension base="diggs:AbstractDescriptionType">
        <sequence>
          <element name="primaryLithology" type="diggs:LithologyPropertyType"/>
          <element minOccurs="0" name="componentLithology"
            type="diggs:ComponentLithologyPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>A description of the lithologies that make up a subsidiary portion of
                the overall lithologic classification of the layer, or exist as specific components
                of the primarylithologic classification</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="baseBoundary" type="diggs:BoundaryPropertyType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="ComponentLithology" substitutionGroup="diggs:AbstractObject"
    type="diggs:ComponentLithologyType"/>
  <complexType name="ComponentLithologyType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence maxOccurs="1" minOccurs="1">
          <element maxOccurs="1" minOccurs="1" name="lithology" type="diggs:LithologyPropertyType"/>
          <element name="abundanceCode" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A measure of the amount of the subordinate lithology present as a
                string type, intended to come from a controlled list (eg. few, rare, common,
                etc.)</documentation>
            </annotation>
          </element>
          <element name="abundancePercent" type="diggs:Val0-100MeasureType" minOccurs="0">
            <annotation>
              <documentation>A measure of the amount of the subordinate lithology present, expressed
                as a percentage.</documentation>
            </annotation>
          </element>
        </sequence>
        <attribute name="association" type="diggs:LithologyCharacterEnumType"/>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="ComponentLithologyPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:ComponentLithology"/>
    </sequence>
  </complexType>
  <simpleType name="LithologyCharacterEnumType">
    <union>
      <simpleType>
        <restriction base="string">
          <enumeration value="uniformly distributed as a component of the primary lithology"/>
          <enumeration value="interbedded with the primary lithology"/>
          <enumeration value="incorporated as inclusions within the primary lithology"/>
        </restriction>
      </simpleType>
      <simpleType>
        <restriction base="string">
          <pattern value="other:\w{2,}"/>
        </restriction>
      </simpleType>
    </union>
  </simpleType>
  <element name="Boundary" substitutionGroup="diggs:AbstractObject" type="diggs:BoundaryType"/>
  <complexType name="BoundaryType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="0" name="dipAngle" type="witsml:planeAngleMeasure">
            <annotation>
              <documentation><![CDATA[The inclinaton angle in degrees of the boundary surface, as measured downward from the horizontal.]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="dipDirection" type="witsml:planeAngleMeasure">
            <annotation>
              <documentation><![CDATA[The direction of the true dip of the boundary surface, as measured clockwise with respect to true north.]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="distinctness" type="gml:CodeType">
            <annotation>
              <documentation><![CDATA[A controlled string (preferably) that defines how distinctly the boundary between zones is defined, as governed by both the contrast between adjacent zones and by the width of the boundary. (eg. sharp, gradational)]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="origin" type="gml:CodeType">
            <annotation>
              <documentation><![CDATA[A controlled string (preferably) that defines the specific nature or origin of the boundary. (eg. unconformity, fault, etc.)]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="topography" type="gml:CodeType">
            <annotation>
              <documentation><![CDATA[A controlled string (preferably) that defines the shape of the boundary surface between zones. (eg. wavy)]]></documentation>
            </annotation>
          </element>
        </sequence>
        <attribute default="unknown" ref="diggs:technique"/>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="BoundaryPropertyType">
    <sequence>
      <element ref="diggs:Boundary"/>
    </sequence>
  </complexType>
  <!-- Not used, perhaps deprecate -->
  <complexType name="DescriptorCodeType">
    <simpleContent>
      <extension base="gml:CodeType">
        <attribute ref="diggs:technique"> </attribute>
      </extension>
    </simpleContent>
  </complexType>
  <simpleType name="DescriptorTechniqueEnumType">
    <annotation>
      <documentation>A value that describes the method by which the observation or measurement was
        determined. Allowed values are: - assigned; value is assigned a priori - inferred; estimated
        from some indirect measurement such as elog - measured; determined from laboratory analysis
        (such as particle size or other measurement means - missing; method known but not reported
        here - other; method other than the choices in this list. Further information should be
        provided in the remarks property - reported; description comes from a third party source -
        unknown; method of description unknown and can likely not be determined - visual;
        observation comes from visual inspection </documentation>
    </annotation>
    <restriction base="string">
      <enumeration value="assigned"/>
      <enumeration value="calculated"/>
      <enumeration value="inferred"/>
      <enumeration value="measured"/>
      <enumeration value="missing"/>
      <enumeration value="other"/>
      <enumeration value="reported"/>
      <enumeration value="unknown"/>
      <enumeration value="visual"/>
    </restriction>
  </simpleType>
  <element name="Lithology" type="diggs:LithologyType"/>
  <complexType name="LithologyType" mixed="false">
    <annotation>
      <documentation/>
    </annotation>
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <choice>
            <sequence>
              <element name="classificationCode" type="gml:CodeType" minOccurs="1">
                <annotation>
                  <documentation>The value that describes the geology (eg. "SM" or
                "silty sand"; in the classification system defined in the classificationSystem property of the associated LithologySystem. This property should be used in preference to lithDescription to define lithology for rigid definitions that adhere to a specific classification system. Either a classificationCode property or lithDescription property must be present (or both).</documentation>
                </annotation>
              </element>
              <element minOccurs="0" name="lithDescription" type="diggs:DiggsStringType">
                <annotation>
                  <documentation>lithDescription should be use in conjunction with classificationCode (eg. well-graded sand for classification code = SW) to further describe the lithology or for a more extensive description in lieu of using color, particleSize, grainSizeDistribution, descriptiveProperties, and constituents property elements (eg. well-graded sand (SW), fine-grained, dark grey, massive, dry, hard). If there is no rigidity of language in the classification system, then lithDescription can be used instead of classificationCode, but classificationCode is preferred where applicable.</documentation>
                </annotation>
              </element>
            </sequence>
            <sequence>
              <element minOccurs="1" name="lithDescription" type="diggs:DiggsStringType">
                <annotation>
                  <documentation>lithDescription should be use in conjunction with classificationCode (eg. well-graded sand for classification code = SW) to further describe the lithology or for a more extensive description in lieu of using color, particleSize, grainSizeDistribution, descriptiveProperties, and constituents property elements (eg. well-graded sand (SW), fine-grained, dark grey, massive, dry, hard). If there is no rigidity of language in the classification system, then lithDescription can be used instead of classificationCode, but classificationCode is preferred where applicable.</documentation>
                </annotation>
              </element>
            </sequence>
          </choice>
          <element maxOccurs="unbounded" minOccurs="0" name="alternateCode" type="gml:CodeType">
            <annotation>
              <documentation>From AGS, this defines a legend code primarily for graphic display;
                should use classificationCode primarily, although legendCode can be optionally used as another
                classification identifier; eg. "silty clay" and "clayey silt" could be assigned to a
                different alternate classification called "silt"</documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" name="color" type="diggs:ColorPropertyType" minOccurs="0"/>
          <element minOccurs="0" name="grainSizeDistribution"
            type="diggs:ParticleSizeDistributionPropertyType">
            <annotation>
              <documentation>Particle size distribution information providing details such as mean
                grain size, maximum grain size, etc.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="fieldProperties" type="diggs:FieldPropertiesPropertyType"/>
          <element minOccurs="0" name="constituent" type="diggs:ConstituentPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Constituents are materials and structures associated with this geology
                classification and the lithology layer or sample which this lithology relates to,
                but not considered significant enough to record as part of a separate layer system
                or where location within a lithology layer or sample is not important to preserve
                (except as a comment). Constituents of a lithology are descriptions that generally
                fall into one of the following classes: 1) types of sedimentary or physical
                structures, 2) types of lithologic, mineralogic or organic accessories (eg. presence
                of calcite, gas odor, etc.), 3) types and degree of bioturbation features, 4) types
                of diagenetic structures, 5) types of physical structures produced by sampling, 6)
                types of fossils, 7) types of trace fossils, 8) types of fractures</documentation>
            </annotation>
          </element>
        </sequence>
        <attribute ref="diggs:technique"/>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="LithologyPropertyType">
    <sequence>
      <element ref="diggs:Lithology">
        <annotation>
          <documentation>The gml:description in this context would typically contain a string
            descriptor of the lithology. The classificationCode would contain a short code or
            descriptor for the lithology, such as "sand" or "SM" used often for lithologic symbology
            on logs or maps. Either gml:Description or primaryCodeValue must be included for the
            object to be valid (both can be populated). This rule must be checked with
            schematron.</documentation>
        </annotation>
      </element>
    </sequence>
  </complexType>
  <element name="ParticleSize" type="diggs:ParticleSizeType"/>
  <complexType name="ParticleSizeType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <choice>
          <annotation>
            <documentation>Either value or descriptor should be present. Both are
              allowed.</documentation>
          </annotation>
          <sequence>
            <element name="value" type="diggs:ParticleSizeValueType" minOccurs="1">
              <annotation>
                <documentation>A numeric value for the particle size, in length units such as mm
                diameter, or phi.</documentation>
              </annotation>
            </element>
            <element name="descriptor" type="gml:CodeType" minOccurs="0">
              <annotation>
                <documentation>A text description for the particle size, such as "very fine sand",
                etc.</documentation>
              </annotation>
            </element>
          </sequence>
          <sequence>
            <element name="descriptor" type="gml:CodeType" minOccurs="1">
              <annotation>
                <documentation>A text description for the particle size, such as "very fine sand",
                etc.</documentation>
              </annotation>
            </element>
          </sequence>
        </choice>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="ParticleSizePropertyType">
    <sequence>
      <element ref="diggs:ParticleSize"/>
    </sequence>
  </complexType>
  <simpleType name="particleSizeUom">
    <restriction base="witsml:abstractUomEnum">
      <enumeration value="in"/>
      <enumeration value="mm"/>
      <enumeration value="micron"/>
      <enumeration value="phi"/>
    </restriction>
  </simpleType>
  <complexType name="ParticleSizeValueType">
    <simpleContent>
      <extension base="double">
        <attribute name="uom" type="diggs:particleSizeUom" use="required"/>
      </extension>
    </simpleContent>
  </complexType>
  <element name="ParticleSizeDistribution" type="diggs:ParticleSizeDistributionType"/>
  <complexType name="ParticleSizeDistributionType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="0" name="meanGrainsize" type="diggs:ParticleSizePropertyType">
            <annotation>
              <documentation>A text descriptor (eg. fine sand) or numeric value representing the
                mean grain size.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="modalGrainsize" type="diggs:ParticleSizePropertyType">
            <annotation>
              <documentation>A text descriptor (eg. fine sand) or numeric value representing the
                modal grain size.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="equivalentDiameter" type="diggs:ParticleSizePropertyType">
            <annotation>
              <documentation>A text descriptor (eg. fine sand) or numeric value representing the
                equivalent diameter for the soil.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="minimumDiameter" type="diggs:ParticleSizePropertyType">
            <annotation>
              <documentation>A text descriptor (eg. fine sand) or numeric value representing the
                minimum diameter of particles in the soil.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="maximumDiameter" type="diggs:ParticleSizePropertyType">
            <annotation>
              <documentation>A text descriptor (eg. fine sand) or numeric value representing the
                maximum diameter of particles in the soil.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="d10" type="diggs:ParticleSizePropertyType"/>
          <element minOccurs="0" name="d30" type="diggs:ParticleSizePropertyType"/>
          <element minOccurs="0" name="d50" type="diggs:ParticleSizePropertyType"/>
          <element minOccurs="0" name="d60" type="diggs:ParticleSizePropertyType"/>
          <element maxOccurs="unbounded" minOccurs="0" name="otherParticleSizeProperty"
            type="diggs:ParameterPropertyType"/>
        </sequence>
        <attribute ref="diggs:technique">
          <annotation>
            <documentation>A value that describes the method by which the lithology was determined.
              Allowed values are: - inferred; estimated from some indirect measurement such as elog
              - lab test; determined from laboratory analysis (such as particle size - missing;
              method known but not reported here - other; method other than the choices in this
              list. Further information should be provided in the remarks property - reported;
              description comes from a third party source - unknown; method of description unknown
              and can likely not be determined - visual; description comes from visual description
              of the material</documentation>
          </annotation>
        </attribute>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="ParticleSizeDistributionPropertyType">
    <sequence>
      <element ref="diggs:ParticleSizeDistribution"/>
    </sequence>
  </complexType>
  <element name="OrientationSystem" substitutionGroup="diggs:AbstractDescriptionSystem"
    type="diggs:OrientationSystemType"/>
  <complexType name="OrientationSystemType">
    <complexContent>
      <extension base="diggs:AbstractDescriptionSystemType">
        <sequence>
          <element name="orientationFeatureType" type="diggs:OrientationObsPropertyEnumType">
            <annotation>
              <documentation>Selection from an enumerated list defining the type of planar feature whose orientations are being described in this system (eg. faults, bedding)</documentation>
            </annotation>
          </element>
          <element name="description" type="diggs:OrientationDescriptionPropertyType"
            maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="OrientationDescriptionPropertyType">
    <sequence maxOccurs="1">
      <element maxOccurs="1" ref="diggs:OrientationDescription"/>
    </sequence>
  </complexType>
  <element name="OrientationDescription" substitutionGroup="diggs:AbstractDescription"
    type="diggs:OrientationDescriptionType">
    <annotation>
      <documentation>Orientation layers describe the geometry of vectors or planar surfaces
        encountered at a sampling feature, such as bedding, joints, cross-beds, etc. These layers
        are designed to characterize regions with generalized geometries. Individual measurements of
        planar geometries of boundaries or faults are recorded in Discontinuity or Lithology layers.
        Observations within an orientation zone system must not overlap.</documentation>
    </annotation>
  </element>
  <complexType name="OrientationDescriptionType">
    <complexContent>
      <extension base="diggs:AbstractDescriptionType">
        <sequence>
          <element name="orientation" type="diggs:OrientationPropertyType"> </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <simpleType name="OrientationObsPropertyEnumType">
    <union>
      <simpleType>
        <restriction base="string">
          <enumeration value="bedding"/>
          <enumeration value="cross-bedding"/>
          <enumeration value="faults"/>
          <enumeration value="joints"/>
          <enumeration value="fractures"/>
        </restriction>
      </simpleType>
      <simpleType>
        <restriction base="string">
          <pattern value="other:\w{2,}"/>
        </restriction>
      </simpleType>
    </union>
  </simpleType>
  <element name="Orientation" substitutionGroup="diggs:AbstractObject" type="diggs:OrientationType"/>
  <complexType name="OrientationType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="strikeOrBearing" type="witsml:planeAngleMeasure">
            <annotation>
              <documentation>The compass bearing of the feature (if linear) or strike of the plane,
                from north (range 0-360), where 0 is north and 90 east, etc.</documentation>
            </annotation>
          </element>
          <element name="dipOrPlunge" type="witsml:planeAngleMeasure">
            <annotation>
              <documentation>The inclination of the feature from horizontal (eg. 0 is vertical, 90
                degrees is vertical DOWN)</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="OrientationPropertyType">
    <sequence>
      <element ref="diggs:Orientation"/>
    </sequence>
  </complexType>
  <!--2015-12-14 Deprecated. Property descriptions interpreted from measurements should be managed within the measurements property of DIGGS
  <element name="PropertyDescription" substitutionGroup="diggs:AbstractDescription"
    type="diggs:PropertyDescriptionType">
    <annotation>
      <documentation>A property layer system contains layer that are defined by simple text or
        numeric values - usually interpreted as a result of some lab or in-situ test. Observations within
        a property layer system must not overlap and the value of the gml:name of each property
        layer must be the same among all layers in the system </documentation>
    </annotation>
  </element>
  <complexType name="PropertyDescriptionType">
    <complexContent mixed="false">
      <extension base="diggs:AbstractDescriptionType">
        <sequence minOccurs="0">
          <element name="property" type="diggs:PropertyPropertyType"/>
          <element name="value" type="diggs:DiggsStringType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  -->
  <element name="StratigraphySystem" substitutionGroup="diggs:AbstractDescriptionSystem"
    type="diggs:StratigraphySystemType"/>
  <complexType name="StratigraphySystemType">
    <complexContent>
      <extension base="diggs:AbstractDescriptionSystemType">
        <sequence>
          <element name="stratigraphyType" type="diggs:StratigraphyObservationEnumType">
            <annotation>
              <documentation>Selected from an enumerated list, the type of stratigraphic units described in this system</documentation>
            </annotation>
          </element>
          <element name="description" type="diggs:StratigraphyDescriptionPropertyType"
            maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="StratigraphyDescriptionPropertyType">
    <sequence maxOccurs="1">
      <element maxOccurs="1" ref="diggs:StratigraphyDescription"/>
    </sequence>
  </complexType>
  <element name="StratigraphyDescription" substitutionGroup="diggs:AbstractDescription"
    type="diggs:StratigraphyDescriptionType">
    <annotation>
      <documentation>Stratigraphy layers are ordered bodies of rock or sediment, such as formations,
        biostratigraphic units or aquifers. Observations within a stratigraphy system must not
        overlap, and stratUnit values within a system cannot repeat (eg. they must be unique
        within the layer system. </documentation>
    </annotation>
  </element>
  <complexType name="StratigraphyDescriptionType">
    <complexContent>
      <extension base="diggs:AbstractDescriptionType">
        <sequence>
          <element name="name" type="gml:CodeType">
            <annotation>
              <documentation>The name of the stratigraphic unit (eg. Harold Formation) assigned to
                this zone. Should come from a controlled list based on the subtype of the layer
                system.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <simpleType name="StratigraphyObservationEnumType">
    <union>
      <simpleType>
        <restriction base="string">
          <enumeration value="allostratigraphic"/>
          <enumeration value="biostratigraphic"/>
          <enumeration value="chronostratigraphic"/>
          <enumeration value="hydrostratigraphic"/>
          <enumeration value="lithostratigraphic"/>
          <enumeration value="magnetostratigraphic"/>
          <enumeration value="tectonostratigraphic"/>
        </restriction>
      </simpleType>
      <simpleType>
        <restriction base="string">
          <pattern value="other:\w{2,}"/>
        </restriction>
      </simpleType>
    </union>
  </simpleType>
  <element name="OtherDescriptionSystem" substitutionGroup="diggs:AbstractDescriptionSystem"
    type="diggs:OtherDescriptionSystemType"/>
  <complexType name="OtherDescriptionSystemType">
    <complexContent>
      <extension base="diggs:AbstractDescriptionSystemType">
        <sequence>
          <element name="otherSystemType" type="diggs:DiggsStringType">
            <annotation>
              <documentation>A text string defining the kind of "Other Description" system described. </documentation>
            </annotation>
          </element>
          <element name="description" type="diggs:OtherDescriptionPropertyType"
            maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="OtherDescriptionPropertyType">
    <sequence maxOccurs="1">
      <element maxOccurs="1" ref="diggs:OtherDescription"/>
    </sequence>
  </complexType>
  <element name="OtherDescription" substitutionGroup="diggs:AbstractDescription"
    type="diggs:OtherDescriptionType">
    <annotation>
      <documentation>A structure for defining a layer system of unknown type. Observations consist of
        name-value pairs, where these names should reference code lists. As this is an "open" description, no Schematron controls are appropriate here unless defined for a specific use case.</documentation>
    </annotation>
  </element>
  <complexType name="OtherDescriptionType">
    <complexContent>
      <extension base="diggs:AbstractDescriptionType">
        <sequence>
          <element name="parameter" type="diggs:ParameterPropertyType" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="CodeOrPercentType">
    <choice>
      <element name="description" type="gml:CodeType"/>
      <element name="percentage" type="diggs:Val0-100MeasureType"/>
    </choice>
  </complexType>
  <complexType name="LocationPropertyType">
    <sequence>
      <element ref="diggs:AbstractGeometry"/>
    </sequence>
  </complexType>
  <element name="PlanarObservationRepresentation" type="diggs:PlanarObservationRepresentationType"
    substitutionGroup="diggs:AbstractGeometry"/>
  <complexType name="PlanarObservationRepresentationType">
    <complexContent>
      <extension base="diggs:AbstractGeometryType">
        <sequence>
          <element name="layerTopIntersection" type="diggs:MultiCurvePropertyType">
            <annotation>
              <documentation>The location of the top surface of a layer (a volume of earth material)
                that intersects a trench wall. Depending on how a trench wall is encoded, there
                could be multiple line strings that define this top surface.</documentation>
            </annotation>
          </element>
          <element name="layerBaseIntersection" type="diggs:MultiCurvePropertyType">
            <annotation>
              <documentation>The location of the basal surface of a layer (a volume of earth
                material) that intersects a trench wall. Depending on how a trench wall is encoded,
                there could be multiple line strings that define this basal surface.</documentation>
            </annotation>
          </element>
          <element name="representativeSurface" type="diggs:SurfacePropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>One or more polygons that represent the layer volume in the plane of
                the planar sampling feature. This would typically be a ring polygon with curve
                members that consist of the layer top intersection, layer bottom intersection, and
                two edges that would normally be at the lateral extent of the planar
                feature.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="PlanarObservationRepresentationPropertyType">
    <sequence>
      <element ref="diggs:PlanarObservationRepresentation"/>
    </sequence>
  </complexType>
  <element name="SampleProduced" type="diggs:SampleProducedType"/>
  <complexType name="SampleProducedType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="0" name="sampleLocation" type="diggs:LocationPropertyType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="SampleProducedPropertyType">
    <sequence>
      <element maxOccurs="1" ref="diggs:SampleProduced" minOccurs="1">
        <annotation>
          <documentation>An object that contains the reference to a sample, it's derived type, and location produced by this activity</documentation>
        </annotation>
      </element>
    </sequence>
  </complexType>
  <element abstract="false" name="Sample" substitutionGroup="diggs:AbstractNamedFeature"
    type="diggs:SampleType">
    <annotation>
      <documentation>A specimen of earth material, liquid or gas that is obtained as a result of a
        sampling activity, for the purpose of testing and/or observation</documentation>
    </annotation>
  </element>
  <complexType name="SampleType">
    <complexContent>
      <extension base="diggs:AbstractNamedFeatureType">
        <sequence>
          <element ref="diggs:sampleProducedRef"> </element>
          <element minOccurs="0" name="classification" type="gml:CodeType">
            <annotation>
              <documentation>A definition of the class of sample collected. This is intended to come
                from a controlled list of values.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="initialContainerType" type="gml:CodeType">
            <annotation>
              <documentation>Description of container for the sample; intended to be derived from a
                controlled list. Example:<![CDATA[Jar, Bucket, Vial, Bag]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="purpose" type="diggs:DiggsStringType">
            <annotation>
              <documentation>Purpose of taking this sample. This is an uncontrolled string that
                describes the test or tests that are intended to be run on this
                sample.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="condition" type="diggs:DiggsStringType">
            <annotation>
              <documentation>A description of the sample condition; uncontrolled
                string</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="matrix" type="gml:CodeType">
            <annotation>
              <documentation>A description of the sample matrix, if applicable. This is intended to
                come from a controlled list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="medium" type="gml:CodeType">
            <annotation>
              <documentation><![CDATA[Medium of the Sample (Gas, Water, Liquid). Perhaps should be enumerated list?]]></documentation>
            </annotation>
          </element>
          <choice minOccurs="0">
            <annotation>
              <documentation>If sample is cylindrical in shape (eg. a soil or rock core) or a block
                sample, select one of the appropriate choices and enter related information in
                either cylindricalSampleDetails or blockSampleDetails properties. </documentation>
            </annotation>
            <element minOccurs="1" name="cylindricalSampleDetails"
              type="diggs:CylindricalSampleDetailPropertyType">
              <annotation>
                <documentation><![CDATA[If the sample is a core (eg. cylindrical with integrity such that the location of the ends of the sample can be defined in space), then these elements may be used to further describe the sample.]]></documentation>
              </annotation>
            </element>
            <element name="blockSampleDetails" type="diggs:BlockSampleDetailPropertyType">
              <annotation>
                <documentation>If the sample is a block sample with integrity and measurable width,
                  height, and depth, those details are entered here</documentation>
              </annotation>
            </element>
          </choice>
          <element minOccurs="0" name="primaryLithology" type="diggs:LithologyPropertyType">
            <annotation>
              <documentation>A description of the lithology of the sample (if derived from earth
                materials). For a core sample consisting of multiple lithologies, this element
                should generally be left blank and a lithologyObservationSystem should be created to carry
                the lithologic descriptions related to core samples.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="componentLithology"
            type="diggs:ComponentLithologyPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>A description of the lithologies that make up a minor portion of the
                sample</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="chainOfCustodyEvent"
            type="diggs:ChainOfCustodyEventPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation><![CDATA[Contains information on the chain-of-custody for this sample]]></documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="SamplePropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:Sample"/>
    </sequence>
  </complexType>
  <complexType name="PercentDoubleType">
    <simpleContent>
      <extension base="double">
        <attribute name="uom" type="witsml:PercentUom" use="required"/>
      </extension>
    </simpleContent>
  </complexType>
  <element name="ChainOfCustodyEvent" type="diggs:ChainOfCustodyEventType"/>
  <complexType mixed="false" name="ChainOfCustodyEventType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <choice>
            <element minOccurs="0" name="sourceCustodianRef" type="diggs:MetadataReferenceType">
              <annotation>
                <appinfo source="urn:x-gml:targetElement">diggs:BusinessAssociate</appinfo>
                <documentation>A xlink:href reference to a BusinessAssociate that is releasing
                  custody of the sample</documentation>
              </annotation>
            </element>
            <element minOccurs="0" name="sourceCustodian" type="diggs:DiggsStringType">
              <annotation>
                <documentation> The name of a BusinessAssociate that is releasing custody of the
                  sample. A string is used here to name the business associate and does not require
                  that a BusinessAssociate feature be instantiated.</documentation>
              </annotation>
            </element>
          </choice>
          <choice>
            <element name="destinationCustodianRef" type="diggs:MetadataReferenceType" minOccurs="0">
              <annotation>
                <appinfo source="urn:x-gml:targetElement">diggs:businessAssociates/BusinessAssociate/@gml:id</appinfo>
                <documentation>A xlink:href reference to a BusinessAssociate that is receiving
                  custody of the sample</documentation>
              </annotation>
            </element>
            <element minOccurs="0" name="destinationCustodian" type="diggs:DiggsStringType">
              <annotation>
                <documentation> The name of a BusinessAssociate that is receiving custody of the
                  sample. A string is used here to name the business associate and does not require
                  that a BusinessAssociate feature be instantiated.</documentation>
              </annotation>
            </element>
          </choice>
          <element minOccurs="0" name="dateSent" type="diggs:UnifiedDateTimeType">
            <annotation>
              <documentation><![CDATA[Date that sample was shipped]]></documentation>
            </annotation>
          </element>
          <element name="dateReceived" type="diggs:UnifiedDateTimeType" minOccurs="0">
            <annotation>
              <documentation><![CDATA[Date that sample was received]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="shippingContainerId" type="diggs:DiggsStringType">
            <annotation>
              <documentation><![CDATA[An identifier for the container that the sample containers are transported in.]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="containerType" type="gml:CodeType">
            <annotation>
              <documentation>Description of container for the sample; intended to be derived from a
                controlled list. Example:<![CDATA[Jar, Bucket, Vial, Bag]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="preservativeAdded" type="gml:CodeType">
            <annotation>
              <documentation>Example:<![CDATA[The type of preservative added to sample, if any.]]></documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="ChainOfCustodyEventPropertyType">
    <sequence>
      <element ref="diggs:ChainOfCustodyEvent"/>
    </sequence>
  </complexType>
  <element name="CylindricalSampleDetail" type="diggs:CylindricalSampleDetailType"/>
  <complexType name="CylindricalSampleDetailType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="0" name="diameter" type="witsml:lengthMeasure">
            <annotation>
              <documentation><![CDATA[Diameter of the sample]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="length" type="witsml:lengthMeasure">
            <annotation>
              <documentation><![CDATA[Length of the sample]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="rockQualityDesignation" type="diggs:Val0-100MeasureType">
            <annotation>
              <documentation><![CDATA[Rock Quality Designation]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="solidCoreRecovery" type="diggs:Val0-100MeasureType">
            <annotation>
              <documentation><![CDATA[Percentage of core recovered that is solid and undisturbed]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="totalCoreRecovery" type="diggs:PercentDoubleType">
            <annotation>
              <documentation><![CDATA[Percentage of core recovered relative to the total length of earth material cored]]></documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="CylindricalSampleDetailPropertyType">
    <sequence>
      <element ref="diggs:CylindricalSampleDetail"/>
    </sequence>
  </complexType>
  <element name="LocationAccuracy" substitutionGroup="diggs:AbstractSimpleMetadata"
    type="diggs:LocationAccuracyType">
    <annotation>
      <documentation>Closeness of reported coordinate or relative distance values to values accepted
        as or being true.</documentation>
    </annotation>
  </element>
  <complexType name="LocationAccuracyType">
    <complexContent>
      <extension base="diggs:AbstractSimpleMetadataType">
        <sequence>
          <element minOccurs="0" name="measurementMethod" type="gml:CodeType"/>
          <element minOccurs="0" name="result" type="gml:MeasureType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="LocationAccuracyPropertyType">
    <complexContent>
      <extension base="gml:AbstractMetadataPropertyType">
        <sequence>
          <element ref="diggs:LocationAccuracy"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="LinearSpatialReferenceSystem" type="diggs:LinearSpatialReferenceSystemType"/>
  <complexType name="LinearSpatialReferenceSystemType">
    <complexContent>
      <extension base="glr:LinearSRSType">
        <sequence>
          <element minOccurs="0" name="linearElementAccuracy"
            type="diggs:LocationAccuracyPropertyType">
            <annotation>
              <documentation>Provides accuracy information for the linear element referenced by this
                reference system.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="linearReferencingMethodAccuracy"
            type="diggs:LocationAccuracyPropertyType">
            <annotation>
              <documentation>Provides accuracy information for the location (geometry) elements that
                use this linear reference system for their SRS. For example, for depths in a hole,
                this property could provide information as to the source and accuracy of depth
                values that relate to this reference system.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="VectorLinearSpatialReferenceSystem"
    type="diggs:VectorLinearSpatialReferenceSystemType"/>
  <!-- replace this definition that depends on an invalid profile of glrov:VectorOffsetLinearSRSType
  <complexType name="VectorLinearSpatialReferenceSystemType">
    <complexContent>
      <extension base="glrov:VectorOffsetLinearSRSType">
        <sequence>
          <element minOccurs="0" name="linearElementAccuracy"
            type="diggs:LocationAccuracyPropertyType">
            <annotation>
              <documentation>Provides accuracy information for the linear element referenced by this
                reference system.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="linearReferencingMethodAccuracy"
            type="diggs:LocationAccuracyPropertyType">
            <annotation>
              <documentation>Provides accuracy information for the location (geometry) elements that
                use this linear reference system for their SRS. For example, for depths in a hole,
                this property could provide information as to the source and accuracy of depth
                values that relate to this reference system.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  with the following one to get the same XML instance document content model 
  except for the glrov: namespace prefix on the offsetVector element. -->

  <complexType name="VectorLinearSpatialReferenceSystemType">
    <complexContent>
      <extension base="glr:LinearSRSType">
        <sequence>
          <element name="offsetVector" type="glrov:VectorType" maxOccurs="3"/>
          <!-- glrov:VectorType add uom attribute to gml:VectorType -->
          <element minOccurs="0" name="linearElementAccuracy"
            type="diggs:LocationAccuracyPropertyType">
            <annotation>
              <documentation>Provides accuracy information for the linear element referenced by this
                reference system.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="linearReferencingMethodAccuracy"
            type="diggs:LocationAccuracyPropertyType">
            <annotation>
              <documentation>Provides accuracy information for the location (geometry) elements that
                use this linear reference system for their SRS. For example, for depths in a hole,
                this property could provide information as to the source and accuracy of depth
                values that relate to this reference system.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

  <complexType name="LinearSpatialReferenceSystemPropertyType">
    <sequence>
      <element ref="diggs:LinearSpatialReferenceSystem"/>
    </sequence>
  </complexType>
  <complexType name="VectorLinearSpatialReferenceSystemPropertyType">
    <sequence>
      <element ref="diggs:VectorLinearSpatialReferenceSystem"/>
    </sequence>
  </complexType>
  <attribute default="unknown" name="technique" type="diggs:DescriptorTechniqueEnumType"/>
  <element abstract="false" name="Borehole" substitutionGroup="diggs:AbstractLinearSamplingFeature"
    type="diggs:BoreholeType">
    <annotation>
      <documentation>A sampling feature feature that is a deep, narrow excavation made by drilling and/or extraction of earth material. Boreholes are constructed typically for the purpose of
        investigating subsurface geologic or geotechnical conditions, exploring for water or oil,
        for installation of wells or other downhole monitoring installations.</documentation>
    </annotation>
  </element>
  <complexType name="BoreholeType">
    <complexContent>
      <extension base="diggs:AbstractLinearSamplingFeatureType">
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="whenConstructed"
            type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>The period of time when the hole is constructed. This should include the entire time the drill rig is on site.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="totalMeasuredDepth" type="witsml:lengthMeasure">
            <annotation>
              <documentation>The measured depth to the bottom of the hole, measured in a hole's
                linear referencing system.</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="boreholePurpose" type="gml:CodeType">
            <annotation>
              <documentation>A description of the purpose for drilling the hole (eg. exploratory
                boring, monitoring well, etc.). Intended to come from a controlled
                list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="backfill" type="diggs:BackfillPropertyType">
            <annotation>
              <documentation>Information on construction of the borehole backfill after
                drilling.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="casing" type="diggs:CasingPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>Information on the borehole casing installed while
                drilling.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="constructionMethod"
            type="diggs:BoreholeConstructionMethodPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>Information regarding construction of the hole over different depth
                intervals</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="constructionEvent" type="diggs:BoreholeEventPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on borehole construction events with time.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="chiseling" type="diggs:ChiselingPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on chiseling activity in a hole</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="flush" type="diggs:FlushPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>Information about events when the borehole is flushed with
                fluid.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="holeDiameter" type="diggs:BoreholeDiameterPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on the borehole diameter with depth</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="waterStrike" type="diggs:WaterStrikePropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on when ground water is struck during drilling of the
                hole.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!--  <element abstract="false" name="Sounding" substitutionGroup="diggs:AbstractLinearSamplingFeature"
    type="diggs:SoundingType">
    <annotation>
      <documentation>A sampling feature feature that is created by a measurement activity through insertion of a probe into the ground. </documentation>
    </annotation>
  </element>
-->
  <!--  <complexType name="SoundingType">
    <complexContent>
      <extension base="diggs:AbstractLinearSamplingFeatureType">
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="whenConstructed"
            type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>The period of time when the hole is constructed. This should include the entire time the drill rig is on site.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="totalMeasuredDepth" type="witsml:lengthMeasure">
            <annotation>
              <documentation>The measured depth to the bottom of the hole, measured in a hole's
                linear referencing system.</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="soundingPurpose" type="gml:CodeType">
            <annotation>
              <documentation>A description of the purpose for the sounding. Intended to come from a controlled list (eg. CPT, Flat Dilatometer, etc).</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="backfill" type="diggs:BackfillPropertyType">
            <annotation>
              <documentation>Information on construction of the backfill after
                the sounding is made.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="casing" type="diggs:CasingPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>Information on the borehole casing installed following or during the sounding</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="constructionMethod"
            type="diggs:ConstructionMethodPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>Information regarding construction of the sounding over different depth
                intervals</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="constructionEvent" type="diggs:BoreholeEventPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on sounding construction events with time.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
-->
  <element name="WaterStrike" substitutionGroup="diggs:AbstractObject" type="diggs:WaterStrikeType"/>
  <complexType name="WaterStrikeType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="dateTime" type="diggs:UnifiedDateTimeType">
            <annotation>
              <documentation><![CDATA[DateTime that water strike occurred.]]></documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="bottomCasing" type="diggs:PointLocationPropertyType">
            <annotation>
              <documentation>Measured depth to base of casing at time water strike occurred;
                measured in borehole linear referencing system.</documentation>
            </annotation>
          </element>
          <element name="waterStrikeDepth" type="diggs:PointLocationPropertyType">
            <annotation>
              <documentation>Measured depth to water level at time of strike;; measured in borehole
                linear referencing system.</documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0" name="postStrikeReading"
            type="diggs:PostStrikeReadingPropertyType">
            <annotation>
              <documentation>A series of water level readings that occur at times following the
                initial water strike</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="sealDepth" type="diggs:PointLocationPropertyType">
            <annotation>
              <documentation>Depth at which water strike is sealed by casing; measured in borehole
                linear referencing system.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="WaterStrikePropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:WaterStrike"/>
    </sequence>
  </complexType>
  <element name="PostStrikeReading" substitutionGroup="diggs:AbstractObject"
    type="diggs:PostStrikeReadingType"/>
  <complexType name="PostStrikeReadingType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="timeFollowingStrike" type="witsml:timeMeasure">
            <annotation>
              <documentation><![CDATA[The time following initial water strike when water level is again measured]]></documentation>
            </annotation>
          </element>
          <element name="waterDepth" type="diggs:PointLocationPropertyType">
            <annotation>
              <documentation>The measure depth to water; measured in a hole's linear referencing
                system.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="PostStrikeReadingPropertyType">
    <sequence maxOccurs="1" minOccurs="1">
      <element ref="diggs:PostStrikeReading"/>
    </sequence>
  </complexType>
  <element name="BoreholeDiameter" substitutionGroup="diggs:AbstractObject"
    type="diggs:BoreholeDiameterType"/>
  <complexType name="BoreholeDiameterType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="diameterLocation" type="diggs:LinearExtentPropertyType" maxOccurs="1"
            minOccurs="0">
            <annotation>
              <documentation>The depth interval in the hole that pertains to the diameter reported,
                measured in a linear referencing system. If omitted, it is assumed that the diameter
                reported pertains to the entire length of the hole</documentation>
            </annotation>
          </element>
          <element name="diameter" type="witsml:lengthMeasure">
            <annotation>
              <documentation>The diameter of the borehole over the depth interval
                reported.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="BoreholeDiameterPropertyType">
    <sequence>
      <element ref="diggs:BoreholeDiameter" maxOccurs="1"/>
    </sequence>
  </complexType>
  <element name="Flush" substitutionGroup="diggs:AbstractObject" type="diggs:FlushType"/>
  <complexType name="FlushType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="flushZoneLocation" type="diggs:LinearExtentPropertyType" minOccurs="0">
            <annotation>
              <documentation>The depth interval of the flush zone, measured in a linear reference
                system. If omitted, it is to be assumed that the flushing activity pertains to the
                entire hole length.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="fluidType" type="gml:CodeType">
            <annotation>
              <documentation>Type of fluid used for flushing. Intended to derive from a controlled
                list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="minFlushReturn" type="diggs:Val0-100MeasureType"/>
          <element minOccurs="0" name="maxflushReturn" type="diggs:Val0-100MeasureType">
            <annotation>
              <documentation>Percentage of fluid that returns from the hole following
                flushing.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="flushColor" type="diggs:DiggsStringType">
            <annotation>
              <documentation>Color of the flush return; an uncontrolled string.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="FlushPropertyType">
    <sequence>
      <element ref="diggs:Flush" maxOccurs="1" minOccurs="1"/>
    </sequence>
  </complexType>
  <element name="Chiseling" substitutionGroup="diggs:AbstractObject" type="diggs:ChiselingType"/>
  <complexType name="ChiselingType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="chiselingLocation" type="diggs:LinearExtentPropertyType">
            <annotation>
              <documentation>The measured depth interval over which the chiseling takes place,
                recorded in the hole's linear referencing system.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="timeTaken" type="witsml:timeMeasure">
            <annotation>
              <documentation>The amount of time taken to perform the chiseling task.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="chiselingToolUsed" type="gml:CodeType">
            <annotation>
              <documentation>Tool used to perform the chiseling. Intended to come from a controlled
                list. NOTE: This is currently a code type, but could also be typed as a
                gml:ReferenceType to reference an Equipment metadata object.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="ChiselingPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:Chiseling"/>
    </sequence>
  </complexType>
  <element name="BoreholeConstructionMethod" type="diggs:BoreholeConstructionMethodType"/>
  <complexType name="BoreholeConstructionMethodType">
    <complexContent>
      <extension base="diggs:AbstractFeatureType">
        <sequence>
          <element minOccurs="0" name="methodLocation" type="diggs:LocationPropertyType">
            <annotation>
              <documentation>The location within the sampling feature that corresponds to the
                particular construction method being referenced here. If omitted, it is assumed that
                the procedures specified apply to the entire extent of the sampling
                feature</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="methodTime"
            type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>The period of time during which the construction event is occurring</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="holeStability" type="diggs:DiggsStringType">
            <annotation>
              <documentation>Uncontrolled string describing stability conditions of the hole during this interval</documentation>
            </annotation>
          </element>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element name="procedureRef" type="diggs:MetadataReferenceType" minOccurs="1"
              maxOccurs="1">
              <annotation>
                <appinfo source="urn:x-gml:targetElement">diggs:Specification</appinfo>
                <documentation>A property element that supports a value by reference only. The
                  target value is indicated in the appinfo element.</documentation>
              </annotation>
            </element>
            <element name="procedure" type="gml:CodeType"/>
          </choice>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element name="equipmentUsedRef" type="diggs:MetadataReferenceType" minOccurs="1"
              maxOccurs="1">
              <annotation>
                <documentation>A property element that supports a value by reference only. The
                  target value is indicated in the appinfo element.</documentation>
                <appinfo source="urn:x-gml:targetElement">diggs:BusinessAssociate</appinfo>
              </annotation>
            </element>
            <element name="equipmentUsed" type="gml:CodeType"/>
          </choice>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="BoreholeConstructionMethodPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:BoreholeConstructionMethod"/>
    </sequence>
  </complexType>
  <element name="BoreholeEvent" type="diggs:BoreholeEventType"
    substitutionGroup="diggs:AbstractEvent"/>
  <complexType name="BoreholeEventType">
    <complexContent>
      <extension base="diggs:AbstractEventType">
        <sequence>
          <element minOccurs="0" name="casingBottom" type="diggs:PointLocationPropertyType">
            <annotation>
              <documentation>Measured Depth to Base of Casing installed at this event time, in the
                hole's linear referencing system. </documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="holeBottom" type="diggs:PointLocationPropertyType">
            <annotation>
              <documentation>Measured Depth to Base of Hole at this event time, reported in the
                hole's linear referencing system.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="waterDepth" type="diggs:PointLocationPropertyType">
            <annotation>
              <documentation>Depth to Water Surface as measured as measured at this event time,
                recorded in the hole's linear referencing system.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="BoreholeEventPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:BoreholeEvent"/>
    </sequence>
  </complexType>

  <element name="SoundingEvent" type="diggs:SoundingEventType"
    substitutionGroup="diggs:AbstractEvent"/>
  <complexType name="SoundingEventType">
    <complexContent>
      <extension base="diggs:AbstractEventType">
        <sequence>
          <element minOccurs="0" name="casingBottom" type="diggs:PointLocationPropertyType">
            <annotation>
              <documentation>Measured Depth to Base of Casing installed at this event time, in the
                sounding's linear referencing system. </documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="soundingBottom" type="diggs:PointLocationPropertyType">
            <annotation>
              <documentation>Measured Depth to Base of the sounding at this event time, reported in the
                sounding's linear referencing system.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="SoundingEventPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:SoundingEvent"/>
    </sequence>
  </complexType>
  <element name="Parameter" substitutionGroup="diggs:AbstractObject" type="diggs:ParameterType"/>
  <complexType name="ParameterType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="0" name="index" type="integer"/>
          <element minOccurs="0" name="parameterName" type="gml:CodeType">
            <annotation>
              <documentation>A description or code to what the value property represents. This is
                intended to be a controlled value from an authority.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="parameterValue" type="diggs:DiggsStringType">
            <annotation>
              <documentation>A value associated with the name.</documentation>
            </annotation>
          </element>
          <element name="parameterUnits" type="diggs:AllUnits" minOccurs="0"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="ParameterPropertyType">
    <sequence>
      <element ref="diggs:Parameter" maxOccurs="1" minOccurs="1"/>
    </sequence>
  </complexType>

  <element name="Casing" type="diggs:CasingType"/>
  <complexType name="CasingType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="0" name="casingLocation" type="diggs:LinearExtentPropertyType">
            <annotation>
              <documentation>The depth interval in which casing is installed. Recorded in a linear
                reference system for the hole/well. If omitted, it is assumed that the casing
                information pertains to the entire length of the borehole or well.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="casingOutsideDiameter" type="witsml:lengthMeasure"/>
          <element minOccurs="0" name="casingInsideDiameter" type="witsml:lengthMeasure"/>
          <element minOccurs="0" name="casingWallThickness" type="witsml:lengthMeasure"/>
          <element minOccurs="0" name="casingMaterial" type="gml:CodeType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="CasingPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:Casing"/>
    </sequence>
  </complexType>
  <element name="Backfill" substitutionGroup="diggs:AbstractObject" type="diggs:BackfillType"/>
  <complexType name="BackfillType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="0" name="backfillDateTime" type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>The date/time interval over which the entire backfilling operation was
                conducted. Date/time intervals can also be specified for the emplacement of
                individual backfill layers in the backfillLayers property.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="backfillLayer" type="diggs:BackfillLayerPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>The depth intervals where backfill is emplaced. The backfill intervals
                should not overlap, nor should there be gaps between intervals.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="BackfillPropertyType">
    <sequence>
      <element minOccurs="1" ref="diggs:Backfill"/>
    </sequence>
  </complexType>
  <element name="BackfillLayer" substitutionGroup="diggs:AbstractObject"
    type="diggs:BackfillLayerType"/>
  <complexType name="BackfillLayerType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="0" name="backfillInterval" type="diggs:LinearExtentPropertyType">
            <annotation>
              <documentation>The depth interval in the borehole (measured in a linear reference
                system), where the backfill material was emplaced. If omitted, it is assumed that
                the backfill information pertains to the entire length of the hole</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="whenEmplaced" type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>Indicates the date/time during which the backfill was emplaced in this
                depth interval.</documentation>
            </annotation>
          </element>
          <element name="backfillMaterial" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>The type of material used as backfill (eg. bentonite, cuttings, sand,
                etc.). Intended to come from a controlled list assigned to an
                authority.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="BackfillLayerPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:BackfillLayer"/>
    </sequence>
  </complexType>
  <element name="TrialPit" substitutionGroup="diggs:AbstractLinearSamplingFeature"
    type="diggs:TrialPitType">
    <annotation>
      <documentation>A relatively shallow excavation into the earth's surface, dug either manually
        or by a mechanical excavator. Samples,observations and tests in the trial pit are referenced
        in a linear referencing system only (1D). This is a legacy sampling feature to support AGS
        trial pit constructs. The trench wall sampling feature should be used to represent more
        detail on walls of pits or trenches in 2D.</documentation>
    </annotation>
  </element>
  <complexType name="TrialPitType">
    <complexContent>
      <extension base="diggs:AbstractLinearSamplingFeatureType">
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="whenConstructed"
            type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>The period of time when the hole is constructed. This should include the entire time the drill rig is on site.</documentation>
            </annotation>
          </element>
          <element name="totalMeasuredDepth" type="witsml:lengthMeasure" minOccurs="0">
            <annotation>
              <documentation>The maximum depth of the pit, referenced to a linear reference
                system.</documentation>
            </annotation>
          </element>
          <element name="pitLength" type="witsml:lengthMeasure" minOccurs="0" maxOccurs="1">
            <annotation>
              <documentation>The length of the long horizontal dimension of the pit.
              </documentation>
            </annotation>
          </element>
          <element name="pitWidth" type="witsml:lengthMeasure" minOccurs="0" maxOccurs="1">
            <annotation>
              <documentation>The length of the short horizontal dimension of the
                pit.</documentation>
            </annotation>
          </element>
          <element name="shoring" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1">
            <annotation>
              <documentation>Description of shoring equipment and method.</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="trialPitPurpose" type="gml:CodeType">
            <annotation>
              <documentation>A description of the purpose for excavating the pit (eg. exploratory).
                Intended to come from a controlled list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="backfill" type="diggs:BackfillPropertyType">
            <annotation>
              <documentation>Information on construction of the trial pit backfill.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="constructionMethod"
            type="diggs:TrenchConstructionMethodPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>Information regarding construction of the pit over different depth
                intervals</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="constructionEvent" type="diggs:TrialPitEventPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on construction of the trial pit with time</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element abstract="true" name="AbstractEvent" substitutionGroup="diggs:AbstractObject"
    type="diggs:AbstractEventType"/>
  <complexType mixed="false" name="AbstractEventType" abstract="true">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="time" type="diggs:TimeIntervalPropertyType" minOccurs="0">
            <annotation>
              <documentation>Date/time when this event information was recorded</documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0" name="infoRecorded"
            type="diggs:ParameterPropertyType">
            <annotation>
              <documentation><![CDATA[Other associated data measured or observed at this time]]></documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="TrialPitEvent" substitutionGroup="diggs:AbstractEvent"
    type="diggs:TrialPitEventType"/>
  <element name="TrenchWallEvent" substitutionGroup="diggs:AbstractEvent"
    type="diggs:TrialPitEventType"/>

  <complexType name="TrialPitEventType">
    <complexContent>
      <extension base="diggs:AbstractEventType">
        <sequence>
          <element minOccurs="0" name="depth" type="diggs:PointLocationPropertyType">
            <annotation>
              <documentation>Measured Depth to base of the pit or trench at this event time,
                reported in the pit's linear referencing system.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="length" type="witsml:lengthMeasure">
            <annotation>
              <documentation>The horizontal length of the long dimension of the pit or trench at
                this event time.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="width" type="witsml:lengthMeasure">
            <annotation>
              <documentation>The horizontal length of the short dimension of the pit or trench at
                this event time.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="stability" type="diggs:DiggsStringType">
            <annotation>
              <documentation>Uncontrolled string describing stability conditions of the pit or
                trench at this point in time.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!--  <complexType name="TrenchWallEventPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:TrenchWallEvent"/>
    </sequence>
  </complexType>
-->
  <complexType name="TrialPitEventPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:TrialPitEvent"/>
    </sequence>
  </complexType>
  <element name="AbstractPlanarSamplingFeature" type="diggs:AbstractPlanarSamplingFeatureType"
    substitutionGroup="diggs:AbstractSamplingFeature" abstract="true"/>
  <complexType name="AbstractPlanarSamplingFeatureType" abstract="true">
    <complexContent>
      <extension base="diggs:AbstractSamplingFeatureType">
        <sequence>
          <element name="referencePoint" type="diggs:PointLocationPropertyType" minOccurs="1"/>
          <element minOccurs="0" name="referencePointAccuracy"
            type="diggs:LocationAccuracyPropertyType">
            <annotation>
              <documentation>Provides accuracy information for the referencePoint. Accuracy for the
                featurePerimeter coordinates are specified in the planarElementAccuracy property of
                the PlanarSpatialReferenceSystem.</documentation>
            </annotation>
          </element>
          <element name="referenceEdge" type="gml:CurvePropertyType" minOccurs="1"/>
          <element name="featureExtent" type="gml:SurfacePropertyType" maxOccurs="1" minOccurs="0">
            <annotation>
              <documentation> This element defines the polygon extent of the planar feature using a
                absolute CRS. This element should be used for visual representations using
                typical/simple mapping software </documentation>
            </annotation>
          </element>
          <element name="relativeFeatureBoundary" type="gml:SurfacePropertyType" maxOccurs="1"
            minOccurs="0">
            <annotation>
              <documentation> This element defines the polygon extent of the planar feature using a
                relative planar referencing system (must use planarReferencing property contents).
                This element should be used for software that can handle planar referencing (e.g.
                LinearSpatialReferenceSystem in GML 3.3) </documentation>
            </annotation>
          </element>
          <element name="planarReferencing" minOccurs="1" maxOccurs="unbounded"
            type="diggs:VectorLinearSpatialReferenceSystemPropertyType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!--  <element name="TrenchWall" substitutionGroup="diggs:AbstractPlanarSamplingFeature"
    type="diggs:TrenchWallType">
    <annotation>
      <documentation>A wall of a trench or pit dug into the ground and represented by a planar
        surface.</documentation>
    </annotation>
  </element>
  <complexType name="TrenchWallType">
    <complexContent>
      <extension base="diggs:AbstractPlanarSamplingFeatureType">
        <sequence>
          <element name="shoring" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1">
            <annotation>
              <documentation>Description of shoring equipment and method used for the
                trench.</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="trenchPurpose" type="gml:CodeType">
            <annotation>
              <documentation>A description of the purpose for excavating the trench (eg.
                exploratory). Intended to come from a controlled list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="backfill" type="diggs:BackfillPropertyType">
            <annotation>
              <documentation>Information on construction of the trench backfill covering the trench
                wall exposure.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="constructionMethod"
            type="diggs:ConstructionMethodPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>Information regarding construction of the pit over different depth
                intervals</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="constructionEvent" type="diggs:TrialPitEventPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on construction of the trench with time</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
-->
  <complexType name="NullDataType">
    <simpleContent>
      <extension base="string">
        <attribute name="reason" type="gml:NilReasonType" use="optional"/>
      </extension>
    </simpleContent>
  </complexType>
  <simpleType name="AllUnits">
    <restriction>
      <simpleType>
        <union
          memberTypes="witsml:anglePerLengthUom witsml:anglePerTimeUom witsml:areaPerAreaUom witsml:areaUom witsml:densityUom witsml:dimensionlessUom witsml:dynamicViscosityUom witsml:electricCurrentUom witsml:electricPotentialUom witsml:energyPerAreaUom witsml:equivalentPerMassUom witsml:forcePerLengthUom witsml:forcePerVolumeUom witsml:forceUom witsml:frequencyUom witsml:illuminanceUom witsml:lengthPerLengthUom witsml:lengthUom witsml:magneticFieldStrengthUom witsml:magneticInductionUom witsml:massConcentrationUom witsml:massPerLengthUom witsml:massUom witsml:MeasuredDepthUom witsml:momentOfForceUom witsml:PercentUom witsml:perLengthUom witsml:planeAngleUom witsml:powerUom witsml:pressureUom witsml:relativePowerUom witsml:specificVolumeUom witsml:timeUom witsml:velocityUom witsml:volumeFlowRateUom witsml:volumePerVolumeUom witsml:volumeUom diggs:strainPerTimeUom diggs:geotechnicalDensityUom diggs:forcePerTimeUom diggs:areaPerTimeUom diggs:particleSizeUom witsml:thermodynamicTemperatureUom"
        />
      </simpleType>
    </restriction>
  </simpleType>


  <element name="dataValues" substitutionGroup="gml:tupleList" type="gml:CoordinatesType"/>
  <complexType name="IndexedParameterType">
    <simpleContent>
      <extension base="string">
        <attribute name="index" type="witsml:positiveCount" use="required">
          <annotation>
            <documentation>Indexes things with the same name. That is the first one, the second one,
              etc.</documentation>
          </annotation>
        </attribute>
        <attribute name="name" type="string" use="required"/>
        <attribute name="codeSpace" type="anyURI"/>
        <attribute name="uom" type="diggs:AllUnits" use="optional"/>
        <attribute name="description" type="string" use="optional"/>
      </extension>
    </simpleContent>
  </complexType>
  <complexType name="FieldPropertyType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="apparentDensity" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A text string describing the consistency of  coarse-grained soils (eg. "loose"); intended to come from a controlled list</documentation>
            </annotation>
          </element>
          <element name="beddingOrientation" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A text string describing the bedding orientation (eg. horizontal, inclined, inclined 30 deg NW, etc.)</documentation>
            </annotation>
          </element>
          <element name="beddingSpacing" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A text string describing  the bed spacing (eg. "thick", "3 inches"); intended to come from a controlled list</documentation>
            </annotation>
          </element>
          <element name="cementation" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A text string describing the degree of cementation (eg. "weakly"); intended to come from a controlled list</documentation>
            </annotation>
          </element>
          <element name="consistency" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A text string describing the consistency of fine-grained soils (eg. "soft"); intended to come from a controlled list</documentation>
            </annotation>
          </element>
          <element name="dilatancy" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A text string describing the degree of dilantancy, eg. "slow"; intended to come from a controlled list</documentation>
            </annotation>
          </element>
          <element name="dryStrength" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A text string describing the degree of dry strength; intended to come from a controlled list</documentation>
            </annotation>
          </element>
          <element name="moistureCondition" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A text string describing the moisture of the soil (eg. "wet"); intended to come from a controlled list</documentation>
            </annotation>
          </element>
          <element name="odor" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A text string describing the odor of the soil (eg. H2S); intended to come from a controlled list</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="particleAngularity" type="gml:CodeType">
            <annotation>
              <documentation>A descriptive term or phrase to describe the overall angularity of grains (eg. "well-rounded"). Intended to come from a controlled list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="particleShape" type="gml:CodeType">
            <annotation>
              <documentation>A descriptive term or phrase to describe the overall shape (typically sphericity) of particles. Intended to come from a controlled list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="particleSize" type="gml:CodeType">
            <annotation>
              <documentation>A descriptive term or phrase to describe the overall particle size
                distribution of the soil, eg. "fine sand", "fine to coarse". "silt and very fine
                sand". Intended to come from a controlled list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="particleSorting" type="gml:CodeType">
            <annotation>
              <documentation>A descriptive term or phrase to describe the relative particle sorting
     of the soil, eg. "well-sorted". Intended to come from a controlled list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="plasticity" type="gml:CodeType">
            <annotation>
              <documentation>A descriptive term or phrase to describe the relative plasticity
     of the soil, eg. "non-plastic". Intended to come from a controlled list.</documentation>
            </annotation>
          </element>
          <element name="reactionToHCl" type="gml:CodeType" minOccurs="0">
            <annotation>
              <documentation>A text string describing the soil's reaction to HCl (eg. "weak"); intended to come from a controlled list</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="rockHardness" type="gml:CodeType">
            <annotation>
              <documentation>A descriptive term or phrase to describe the relative hardness
     of rock, as governed by its compressive strengh, eg. "strong". Intended to come from a controlled list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="rockSlakingRate" type="gml:CodeType">
            <annotation>
              <documentation>A descriptive term or phrase to describe the relative rate of slaking
     of rock, eg. "slow". Intended to come from a controlled list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="rockWeathering" type="gml:CodeType">
            <annotation>
              <documentation>A descriptive term or phrase to describe the relative degree of rock, eg. "slightly decomposed", "Grade III", etc. Intended to come from a controlled list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="soilStructure" type="gml:CodeType">
            <annotation>
              <documentation>A descriptive term or phrase to describe the relative structure of the soil, eg. "prismatic", "blocky", etc. Intended to come from a controlled list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="toughness" type="gml:CodeType">
            <annotation>
              <documentation>A descriptive term or phrase to describe the relative toughness of the soil, eg. "medium", etc. Intended to come from a controlled list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="otherFieldProperty" maxOccurs="unbounded"
            type="diggs:DiggsOtherFieldPropertiesType">
            <annotation>
              <documentation>A descriptive term or phrase to describe a property not listed in the FieldProperties object. The required propertyName attribute holds the name of the property being described.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- PwD 2015-12-16 replaced 
  <complexType name="FieldPropertiesPropertyType">
    <sequence>
      <element maxOccurs="1" name="FieldProperties" type="diggs:FieldPropertyType"/>
    </sequence>
  </complexType>
    with the following global element and property definition following existing schema pattern for other properties referencing global elements 
    so diggsSchemasToCodeListExcel2003XML.xsl will work -->
  <element name="FieldProperties" type="diggs:FieldPropertyType"/>

  <complexType name="FieldPropertiesPropertyType">
    <sequence>
      <element maxOccurs="1" ref="diggs:FieldProperties"/>
    </sequence>
  </complexType>

  <complexType name="CodeWithAuthorityType">
    <annotation>
      <documentation>Same as gml:CodeWithAuthorityType, only without the pattern restriction we've
        placed on this term with DIGGS profile of GML 3.2</documentation>
    </annotation>
    <simpleContent>
      <extension base="string">
        <attribute name="codeSpace" type="anyURI" use="required"/>
      </extension>
    </simpleContent>
  </complexType>
  <simpleType name="DescriptivePropertiesEnumType">
    <union>
      <simpleType>
        <restriction base="string">
          <enumeration value="apparent density"/>
          <enumeration value="bedding spacing"/>
          <enumeration value="cementation"/>
          <enumeration value="consistency"/>
          <enumeration value="dilatency"/>
          <enumeration value="dry strength"/>
          <enumeration value="moisture"/>
          <enumeration value="particle angularity"/>
          <enumeration value="particle shape"/>
          <enumeration value="particle sorting"/>
          <enumeration value="plasticity"/>
          <enumeration value="rock hardness"/>
          <enumeration value="rock weathering"/>
          <enumeration value="rock slaking rate"/>
          <enumeration value="soil structure"/>
          <enumeration value="toughness"/>
        </restriction>
      </simpleType>
      <simpleType>
        <restriction base="string">
          <pattern value="other:\w{2,}"/>
        </restriction>
      </simpleType>
    </union>
  </simpleType>
  <element abstract="true" name="AbstractGeometry" substitutionGroup="gml:AbstractGeometry"
    type="diggs:AbstractGeometryType"/>
  <complexType name="AbstractGeometryType">
    <complexContent>
      <restriction base="gml:AbstractGeometryType">
        <sequence>
          <element ref="gml:description" minOccurs="0"/>
        </sequence>
      </restriction>
    </complexContent>
  </complexType>
  <complexType abstract="true" name="AbstractGeometricPrimitiveType">
    <annotation>
      <documentation>diggs:AbstractGeometricPrimitiveType is the abstract root type of the geometric
        primitives. A geometric primitive is a geometric object that is not decomposed further into
        other primitives in the system. All primitives are oriented in the direction implied by the
        sequence of their coordinate tuples.</documentation>
    </annotation>
    <complexContent>
      <extension base="diggs:AbstractGeometryType"/>
    </complexContent>
  </complexType>
  <complexType abstract="true" name="AbstractGeometricAggregateType">
    <complexContent>
      <extension base="diggs:AbstractGeometryType">
        <attributeGroup ref="gml:AggregationAttributeGroup"/>
      </extension>
    </complexContent>
  </complexType>
  <complexType abstract="true" name="AbstractCurveType">
    <annotation>
      <documentation>diggs:AbstractCurveType is an abstraction of a curve to support the different
        levels of complexity. The curve may always be viewed as a geometric primitive, i.e. is
        continuous.</documentation>
    </annotation>
    <complexContent>
      <extension base="diggs:AbstractGeometricPrimitiveType"/>
    </complexContent>
  </complexType>
  <complexType abstract="true" name="AbstractSurfaceType">
    <annotation>
      <documentation>gml:AbstractSurfaceType is an abstraction of a surface to support the different
        levels of complexity. A surface is always a continuous region of a plane.</documentation>
    </annotation>
    <complexContent>
      <extension base="diggs:AbstractGeometricPrimitiveType"/>
    </complexContent>
  </complexType>
  <element name="PointLocation" substitutionGroup="diggs:AbstractGeometry" type="diggs:PointType"/>
  <complexType name="PointLocationPropertyType">
    <sequence>
      <element ref="diggs:PointLocation"/>
    </sequence>
  </complexType>
  <element name="LinearExtent" substitutionGroup="diggs:AbstractGeometry"
    type="diggs:LineStringType"/>
  <complexType name="LinearExtentPropertyType">
    <sequence>
      <element ref="diggs:LinearExtent"/>
    </sequence>
  </complexType>
  <element name="MultiCurve" substitutionGroup="diggs:AbstractGeometry" type="diggs:MultiCurveType"/>
  <element name="PlanarSurface" type="diggs:PolygonType" substitutionGroup="diggs:AbstractGeometry"/>
  <element name="MultiPointLocation" substitutionGroup="diggs:AbstractGeometry"
    type="diggs:SimpleMultiPointType"/>
  <complexType name="PointType">
    <complexContent>
      <extension base="diggs:AbstractGeometricPrimitiveType">
        <sequence>
          <choice>
            <element ref="gml:pos"/>
          </choice>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="LineStringType">
    <complexContent>
      <extension base="diggs:AbstractCurveType">
        <sequence>
          <choice>
            <element ref="gml:posList"/>
            <!--DSB restricted from profile
            <element ref="gml:coordinates"/>
            -->
          </choice>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="MultiCurveType">
    <complexContent>
      <extension base="diggs:AbstractGeometricAggregateType">
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0" ref="gml:curveMember"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="MultiCurvePropertyType">
    <sequence>
      <element ref="diggs:MultiCurve"/>
    </sequence>
  </complexType>
  <complexType name="PolygonType">
    <complexContent>
      <extension base="diggs:AbstractSurfaceType">
        <sequence>
          <element minOccurs="0" ref="gml:exterior"/>
          <element maxOccurs="unbounded" minOccurs="0" ref="gml:interior"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="SurfacePropertyType">
    <sequence>
      <element ref="diggs:PlanarSurface"/>
    </sequence>
  </complexType>
  <complexType name="SimpleMultiPointType">
    <complexContent>
      <extension base="diggs:AbstractGeometricAggregateType">
        <sequence>
          <element ref="gml:posList"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="Test" type="diggs:TestType" substitutionGroup="diggs:AbstractMeasurement">
    <annotation>
      <documentation>An act ("event"), whose results are estimates of the value of a property of the
        investigation target, measured at a time instant or within a time interval, and within a spatial domain, typically derived from a test procedure.</documentation>
    </annotation>
  </element>
  <complexType name="TestType">
    <complexContent>
      <extension base="diggs:AbstractMeasurementType">
        <sequence>
          <element minOccurs="0" name="samplingTime" type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>Describes the time that the result applies to the property of the
                investigation target. This is often the time of interaction by a sampling activity
                or measurement procedure with a real-world feature. </documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="resultTime" type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>Describes the time when the result became available, typically when the
                procedure associated with the observation was completed For some observations this
                is identical to the samplingTime. However, there are important cases where they
                differ. The resultTime is the time when the procedure associated with the
                measurement act was applied. For some measurements this is identical to
                samplingTime, in which case the resultTime may be omitted. Example: Where a
                measurement is made on a specimen in a laboratory, the samplingTime should record
                the time the specimen was retrieved from its host, while the resultTime should
                record the time the laboratory procedure was applied. Example: Where monitoring
                observation results are post-processed, the resultTime is the post-processing time,
                while the samplingTime preserves the time of initial interaction with the world.
         </documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="validTime" type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>Describes the time period during which the result is intended to be
                used.</documentation>
            </annotation>
          </element>
          <element name="outcome" type="diggs:TestResultPropertyType">
            <annotation>
              <documentation>A property that contains the information about what properties are
                being measured, the results of the measurement, and the associated locations that
                the measurement results relate to.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="procedure" type="diggs:ProcedurePropertyType"
            maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="TestResultType">
    <complexContent>
      <restriction base="gml:AbstractCoverageType">
        <sequence>
          <element ref="diggs:location"/>
          <element ref="diggs:results" minOccurs="1"/>
        </sequence>
      </restriction>
    </complexContent>
  </complexType>
  <complexType name="AbstractMeasurementPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:AbstractMeasurement"/>
    </sequence>
  </complexType>
  <complexType name="ResultsPropertyType">
    <complexContent>
      <restriction base="gml:RangeSetType">
        <choice>
          <!--DSB: REMOVED FROM PROFILE
        <element ref="gml:ValueArray" maxOccurs="unbounded"/>
      <element ref="gml:AbstractScalarValueList" maxOccurs="unbounded"/>
      -->
          <element ref="diggs:ResultSet" minOccurs="1"/>
          <!--DSB: REMOVED FROM PROFILE
        <element ref="gml:File"/>
        -->
        </choice>
      </restriction>
    </complexContent>
  </complexType>
  <element name="results" substitutionGroup="gml:rangeSet" type="diggs:ResultsPropertyType"/>
  <complexType name="TestLocationPropertyType">
    <complexContent>
      <restriction base="gml:DomainSetType">
        <sequence minOccurs="0">
          <choice>
            <element ref="diggs:AbstractGeometry"/>
            <!--DSB: REMOVED FROM PROFILE
        <element ref="gml:AbstractTimeObject"/>
        -->
          </choice>
        </sequence>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
      </restriction>
    </complexContent>
  </complexType>
  <element name="location" substitutionGroup="gml:domainSet">
    <complexType>
      <complexContent>
        <extension base="diggs:TestLocationPropertyType"> </extension>
      </complexContent>
    </complexType>
  </element>
  <element name="ResultSet" substitutionGroup="gml:DataBlock" type="diggs:ResultSetType"/>
  <complexType name="ResultSetType">
    <complexContent>
      <restriction base="gml:DataBlockType">
        <sequence>
          <element ref="diggs:parameters"/>
          <choice>
            <element ref="diggs:dataValues"/>
          </choice>
        </sequence>
      </restriction>
    </complexContent>
  </complexType>
  <element name="parameters" substitutionGroup="gml:rangeParameters"
    type="diggs:PropertyInfoPropertyType"/>
  <complexType name="PropertyInfoPropertyType">
    <complexContent>
      <restriction base="gml:AssociationRoleType">
        <sequence minOccurs="1">
          <element ref="diggs:PropertyParameters"/>
        </sequence>
      </restriction>
    </complexContent>
  </complexType>
  <element name="PropertyParameters" type="diggs:PropertyParametersType"
    substitutionGroup="gml:CompositeValue"/>
  <complexType name="PropertyParametersType">
    <complexContent>
      <restriction base="gml:CompositeValueType">
        <sequence>
          <element ref="diggs:properties"/>
        </sequence>
      </restriction>
    </complexContent>
  </complexType>
  <element name="properties" substitutionGroup="gml:valueComponents"
    type="gml:ValueArrayPropertyType"/>
  <element name="Property" type="diggs:PropertyType" substitutionGroup="gml:AbstractValue"
    abstract="false"/>
  <complexType name="PropertyType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element maxOccurs="1" minOccurs="1" name="propertyName" type="gml:CodeType">
            <annotation>
              <documentation>A code or name for the property as used by the data provider. This
                value can come from a controlled list of terms or be an uncontrolled text string.
                The value would be commonly used to label a column of a log sheet or provide other
                local meaning to the property. The value of mnemonic should be unique for all of the
                properties included in the dataValue block transmitted as part of this
                measurement.</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="1" name="typeData" type="diggs:PropertyDataTypeEnumType">
            <annotation>
              <documentation>The data type for this property (eg. double, long, string,
                etc.)</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="1" name="propertyClass"
            type="diggs:CodeWithAuthorityType">
            <annotation>
              <documentation>The official name of this property as derived from a dictionary of
                defined terms. The codespace value must be populated and should contain the URN to
                allow applications to validate this value as a known property.</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="uom" type="diggs:AllUnits">
            <annotation>
              <documentation>Unit of measurement for the property.</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="atTemperature"
            type="witsml:thermodynamicTemperatureMeasure">
            <annotation>
              <documentation>Temperature at which property value is valid, eg. for specific gravity of solids at 20 deg C, this parameter would hold the temperature value</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="measurementAxisBearing" type="witsml:planeAngleMeasure">
            <annotation>
              <documentation>Compass bearing direction (relative to true north) defining the measurement axis direction (for directional measurements, eg. component of an extensometer, accelerometer, etc.)</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="measurementAxisInclination" type="witsml:planeAngleMeasure">
            <annotation>
              <documentation>Inclination of measurement axis (measured positively down from horizontal); used for directional measurements, eg. extensometer, accelerometer, etc.
</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="nullValue" type="diggs:NullDataType">
            <annotation>
              <documentation>An empty string is the default representation of a null value for a
                property (i.e. when the null value representation is not explicitly defined). This
                value defines a value to be interpreted as null for this property in the dataValues
                block. The reason attribute can be used to define the reason for the null value,
                (eg. witheld). This can be customized with an other: qualifier (eg. other:below
                detection limit) or reference a URI for a more complete definition.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="context" type="diggs:DiggsStringType">
            <annotation>
              <documentation>If the property should be interpreted in a particular context (eg.
                value is only valid for range of overburden pressures, etc.), then the context of
                the property is described here.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="sampleFraction" type="diggs:SampleFractionEnumType">
            <annotation>
              <documentation>Fraction of total sample analyzed (from enumerated list)
</documentation>
            </annotation>
          </element>
          <element minOccurs="0" maxOccurs="unbounded" name="correctionUsed" type="gml:CodeType">
            <annotation>
              <documentation>A description of corrections used to obtain the reported result.
                Commonly used to report N-values from SPT tests, or to describe any other
                adjustments made to the reported data. Can come from a controlled
                list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="measurementTechnique"
            type="diggs:DescriptorTechniqueEnumType">
            <annotation>
              <documentation>The method by which the property value is obtained. From an enumerated
                list.</documentation>
            </annotation>
          </element>
          <element name="detectorRef" type="diggs:MetadataReferenceType" minOccurs="0" maxOccurs="1">
            <annotation>
              <appinfo source="urn:x-gml:targetElement">diggs:Equipment</appinfo>
              <documentation>A property element that supports a value by reference only. The target
                value is indicated in the appinfo element.</documentation>
              <documentation>A reference to the source tool, or sensor, of a piece of equipment,
                used to measure this property, if applicable. Generally used for well log,downhole
                logging procedures, or monitoring equipment.</documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0" name="detectionLimits"
            type="diggs:LimitPropertyType">
            <annotation>
              <documentation>Identifies the detection limits for this property in the UOM for this property</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="reportable" type="boolean" default="true">
            <annotation>
              <documentation>True or false, indicates whether the value of this property can be
                reported outside of the context of transmission via an xml instance.</documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0" name="qualifier"
            type="diggs:QualifierPropertyType"/>
          <element maxOccurs="1" minOccurs="0" name="curveState" type="witsml:LogTraceState">
            <annotation>
              <documentation>Used for well logging procedures, to define the state or status of the
                data described by the well log curve. From an enumerated list.</documentation>
            </annotation>
          </element>
        </sequence>
        <attribute name="index" type="integer" use="required">
          <annotation>
            <documentation source="http://schemas.diggsml.org/documentation/user" xml:lang="en">The
              index order of this property within a tuple in the associated dataValues block (eg.
              column order).</documentation>
          </annotation>
        </attribute>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="PropertyPropertyType">
    <sequence>
      <element minOccurs="1" ref="diggs:Property"/>
    </sequence>
  </complexType>
  <complexType name="ProcedurePropertyType">
    <sequence>
      <element minOccurs="1" ref="diggs:AbstractTestProcedure" maxOccurs="1"/>
    </sequence>
  </complexType>
  <complexType name="SpecimenConditionsType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="0" ref="diggs:sampleRef"/>
          <element minOccurs="0" name="specimenType" type="diggs:SpecimenType">
            <annotation>
              <documentation>The structural condition of the specimen being tested, defined by the following controlled terms:
1) intact - specimen prepared without disturbance from an "undisturbed" sample (eg. thin-walled sampler);
2) disturbed - specimen prepared from a disturbed sample (eg. thick walled sampler;
3) remolded - specimen prepared from a failed or otherwise disturbed intact specimen;
4) reconstituted - speciment prepared to a predetermined water content and density</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="specimenDescription" type="diggs:DiggsStringType">
            <annotation>
              <documentation>A description of the physical sample used for analysis following
                preparation. For example, if a procedure requires a collected sample to be screened
                such that the procedure operates on a specific size fraction of an overall soil
                sample, this description could be used to describe the size fraction(s) used in the
                prepared sample for analysis. However, if a more detailed and quantitative breakdown
                of size fractions is needed, the retainedSizeFraction property within the specific
                test procedure should be used to detail this information.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="sizeFraction" type="diggs:SizeFractionPropertyType">
            <annotation>
              <documentation>Size fraction from which test portion was obtained.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="drySpecimenWeight" type="witsml:massMeasure">
            <annotation>
              <documentation>The weight of the specimen prior to drying</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="wetSpecimenWeight" type="witsml:massMeasure">
            <annotation>
              <documentation>The weight of the sample following drying.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="specimenShape" type="diggs:SpecimenShapeType">
            <annotation>
              <documentation>The shape of the specimen being tested, defined by the following controlled terms:
1) cylinder; 
2) cube
3) cuboid - a square cylinder or cube with uneven sides disturbed intact specimen;
4) sphere</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="specimenHeight" type="witsml:lengthMeasure">
            <annotation>
              <documentation>The vertical dimension of the specimen</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="crossSectionalArea" type="witsml:areaMeasure">
            <annotation>
              <documentation>The vertical dimension of the specimen</documentation>
            </annotation>
          </element>
          <choice minOccurs="0">
            <element minOccurs="0" name="specimenDiameter" type="witsml:lengthMeasure">
              <annotation>
                <documentation>For cylindrical specimens, a measure of the cylinder's
                  diameter</documentation>
              </annotation>
            </element>
            <sequence minOccurs="0">
              <element minOccurs="0" name="specimenLength" type="witsml:lengthMeasure">
                <annotation>
                  <documentation>A measure of one of the cross-sectional, or horizontal, dimensions
                    of the prepared sample.</documentation>
                </annotation>
              </element>
              <element minOccurs="0" name="specimenWidth" type="witsml:lengthMeasure">
                <annotation>
                  <documentation>A measure of the other of the cross-sectional, or horizontal,
                    dimensions of the prepared sample</documentation>
                </annotation>
              </element>
            </sequence>
          </choice>
          <element minOccurs="0" name="specimenVolume" type="witsml:volumeMeasure">
            <annotation>
              <documentation>The vertical dimension of the specimen</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="dilutionFactor" type="witsml:unitlessQuantity"/>
          <element minOccurs="0" name="leachatePreparationMethod" type="diggs:DiggsStringType"/>
          <element minOccurs="0" name="leachatePreparationDateTime" type="diggs:UnifiedDateTimeType"/>
          <element minOccurs="0" name="otherSpecimenProperty" type="diggs:ParameterPropertyType"
            maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="SpecimenConditions" type="diggs:SpecimenConditionsType">
    <annotation>
      <documentation>An object that describes the procedure(s) used to prepare a sample for a
        particular test. It can optionally reference a sample (if this preparation procedure occurs
        on a specific sample as part of another test procedure that uses more than one sample. The
        gml:description field is used to carry the description of the preparation
        procedure.</documentation>
    </annotation>
  </element>
  <complexType name="SpecimenConditionsPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:SpecimenConditions"/>
    </sequence>
  </complexType>
  <element abstract="false" name="Detector" substitutionGroup="diggs:AbstractObject"
    type="diggs:DetectorType">
    <annotation>
      <documentation>A component of a sensor that measures one specific property (measurand), optionally along a single geometric axis</documentation>
    </annotation>
  </element>
  <complexType name="DetectorType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="0" name="detectorLocation" type="diggs:LocationPropertyType">
            <annotation>
              <documentation>The location that the detector measures (eg response zone of the detector)</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="measurand" type="diggs:CodeWithAuthorityType">
            <annotation>
              <documentation>Contains the code value of the property being measured. Codespace must
                be defined and the value should occur within a dictionary</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="type" type="gml:CodeType"/>
          <element minOccurs="0" name="measurementAxisBearing" type="witsml:planeAngleMeasure">
            <annotation>
              <documentation>Compass bearing direction (relative to true north) defining the measurement axis direction (for directional measurements, eg. component of an extensometer, accelerometer, etc.)</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="measurementAxisInclination" type="witsml:planeAngleMeasure">
            <annotation>
              <documentation>Inclination of measurement axis (measured positively down from horizontal); used for directional measurements, eg. extensometer, accelerometer, etc.
</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="DetectorPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:Detector"/>
    </sequence>
  </complexType>
  <complexType name="DetectorLocationPropertyType">
    <sequence>
      <element minOccurs="1" ref="diggs:AbstractGeometry"/>
    </sequence>
  </complexType>
  <element name="TestResult" type="diggs:TestResultType" substitutionGroup="gml:AbstractCoverage"/>
  <!-- 2015-04-10 PwD add substitutionGroup -->
  <complexType name="TestResultPropertyType">
    <sequence>
      <element ref="diggs:TestResult"/>
    </sequence>
  </complexType>
  <element abstract="false" name="Limit" substitutionGroup="gml:AbstractGML" type="diggs:LimitType"/>
  <complexType name="LimitType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="constraint" type="gml:CodeType">
            <annotation>
              <documentation>The constraint defines a condition under which the limit applies</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="limitType" type="diggs:LimitEnumType"> </element>
          <element maxOccurs="1" minOccurs="0" name="value" type="diggs:DiggsStringType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="LimitPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:Limit"/>
    </sequence>
  </complexType>
  <element abstract="false" name="Qualifier" substitutionGroup="gml:AbstractGML"
    type="diggs:ParameterType">
    <annotation>
      <documentation>An enumeration of various parameters upon which the property result may be
        qualified</documentation>
    </annotation>
  </element>
  <complexType name="QualifierPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:Qualifier"/>
    </sequence>
  </complexType>
  <!--<element abstract="false" name="Well" substitutionGroup="diggs:AbstractLinearSamplingFeature"
    type="diggs:WellType">
    <annotation>
      <documentation>A sampling feature that is an installation within a borehole, used for
        observing, withdrawing, or injecting fluids. Although wells are discrete sampling features
        in their own right, they are installed within boreholes, and should reference a borehole
        feature within the parentBorehole property, if the associated borehole feature is
        instantiated. Multiple wells within a borehole should be contained within a group feature
        and referenced in the groups property.</documentation>
    </annotation>
  </element>
  <complexType name="WellType">
    <complexContent>
      <extension base="diggs:AbstractLinearSamplingFeatureType">
        <sequence>
          <element minOccurs="0" name="parentBorehole" type="diggs:FeatureReferenceType">
            <annotation>
              <appinfo>diggs:Borehole</appinfo>
              <documentation>A reference to the Borehole feature within which this well is
                installed</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="wellDepth" type="witsml:lengthMeasure">
            <annotation>
              <documentation>The measured depth to the bottom of the well, measured in the well's
                linear referencing system.</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="wellPurpose" type="gml:CodeType">
            <annotation>
              <documentation>A description of the purpose for installing the hole (eg. ground water
                withdrawal, observation, etc.). Intended to come from a controlled
                list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="fluidPurpose" type="gml:CodeType">
            <annotation>
              <documentation>If a production or extraction well, a code or description of the
                purpose for the fluid (eg. public supply, municipal, etc.)</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="sanitarySealType" type="gml:CodeType">
            <annotation>
              <documentation>The type of material used for the sanitary or surface seal (eg.
                bentonite, grout, etc.)</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="sanitarySealLocation" type="diggs:PointLocationPropertyType">
            <annotation>
              <documentation>Depth to the base of the sanitary seal</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="wellFinishType" type="gml:CodeType">
            <annotation>
              <documentation>Description of how the well is finished (eg. gravel pack with
                perforations, open end, sand point, etc.) </documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="initialDevelopmentMethod" type="gml:CodeType">
            <annotation>
              <documentation>Description of the method used to develop the well after initial
                construction (eg. compressed air, surged, etc.)</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="initialDevelopmentTime" type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>Time required for initial development </documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="wellSpecialTreatment" type="diggs:DiggsStringType">
            <annotation>
              <documentation>Description of any special procedures employed upon initial development
                of well.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="maintenanceEvent" type="diggs:WellEventPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on the occurrence and activities involved in well
                maintenance and servicing.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="wellAbandonment" type="diggs:WellEventPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on the occurrence and procedures performed upon abandoning
                the well</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="casing" type="diggs:CasingPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>Information on the well casing installed.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="opening" type="diggs:WellOpeningPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on the location and type of well openings (perforations)
                installed to allow fluid communication between the well and adjacent earth
                material</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
-->
  <!--  </complexType>
  <element name="WellEvent" type="diggs:WellEventType"/>
  <complexType name="WellEventType">
    <complexContent>
      <extension base="diggs:AbstractEventType"/>
    </complexContent>
  </complexType>
  <complexType name="WellEventPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:WellEvent"/>
    </sequence>
  </complexType>
  <element name="WellOpening" type="diggs:WellOpeningType"/>
  <complexType name="WellOpeningType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="1" name="openInterval" type="diggs:LinearExtentPropertyType">
            <annotation>
              <documentation>The depth interval in which the well openings occur. Recorded in a
                linear reference system for the well.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="filterPackInterval" type="diggs:LinearExtentPropertyType">
            <annotation>
              <documentation>The depth interval in which the filter pack surrounding the well screen
                or well openings occur.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="openingLength" type="witsml:lengthMeasure"/>
          <element minOccurs="0" name="openingWidth" type="witsml:lengthMeasure"/>
          <element minOccurs="0" name="openingDiameter" type="witsml:lengthMeasure"/>
          <element minOccurs="0" name="openingType" type="gml:CodeType">
            <annotation>
              <documentation>The type of well screen or perforation (eg. wire-wound screen, louvered
                or shuttered, perforated casing, etc.)</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="openingMaterial" type="gml:CodeType">
            <annotation>
              <documentation>The type of material that the well screen or perforation interval is
                composed of.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
-->
  <!--  <complexType name="WellOpeningPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:WellOpening"/>
    </sequence>
  </complexType>
-->
  <element name="AbstractMeasurement" type="diggs:AbstractMeasurementType" abstract="true"
    substitutionGroup="diggs:AbstractNamedFeature">
    <!-- 2015-04-10 PwD add substitution gruop -->
    <annotation>
      <documentation/>
    </annotation>
  </element>
  <complexType name="AbstractMeasurementType">
    <complexContent>
      <extension base="diggs:AbstractNamedFeatureType">
        <sequence>
          <element ref="diggs:investigationTarget"/>
          <choice>
            <element minOccurs="1" ref="diggs:samplingFeatureRef" maxOccurs="unbounded"/>
            <element maxOccurs="unbounded" minOccurs="1" ref="diggs:sampleRef"/>
          </choice>
          <element minOccurs="0" ref="diggs:measurementRef" maxOccurs="unbounded"/>
          <element minOccurs="0" name="measurementParameter" type="diggs:ParameterPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>This will typically be used to record environmental parameters, or
                event-specific parameters that are not tightly bound to either the earth materials
                for which properties are being estimated, or the procedure. Parameters that are
                tightly bound to the procedure should be encoded within the procedure
                object.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="Sensor" type="diggs:SensorType" substitutionGroup="diggs:AbstractEquipment"
    abstract="false"/>
  <complexType name="SensorType">
    <complexContent>
      <extension base="diggs:AbstractEquipmentType">
        <sequence>
          <element minOccurs="0" name="referencePoint" type="diggs:PointLocationPropertyType">
            <annotation>
              <documentation>Identifies the reference point location for the sensor. This may be the top of casing for a tape used to detect water level or it could be a location within the response zone itself.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="dateInstalled" type="diggs:TimeIntervalPropertyType"/>
          <element name="detector" type="diggs:DetectorPropertyType" minOccurs="0"
            maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="SensorPropertyType">
    <sequence>
      <element ref="diggs:Sensor" minOccurs="1" maxOccurs="1"/>
    </sequence>
  </complexType>

  <!--  <element name="Face" substitutionGroup="diggs:AbstractPlanarSamplingFeature" type="diggs:FaceType">
    <annotation>
      <documentation>A generic planar sampling feature that extends across a surface of an
        investigation target (eg the ground); used to represent features such as outcrop,
        embankment, etc.)</documentation>
    </annotation>
  </element>
  <complexType name="FaceType">
    <complexContent>
      <extension base="diggs:AbstractPlanarSamplingFeatureType">
        <sequence> </sequence>
      </extension>
    </complexContent>
  </complexType>
-->
  <!--  <element abstract="false" name="Transect" substitutionGroup="diggs:AbstractLinearSamplingFeature"
    type="diggs:TransectType">
    <annotation>
      <documentation>A generic linear sampling feature that extends along the surface of an
        investigation target; used for such features as transects, measured sections,
        etc.</documentation>
    </annotation>
  </element>
  <complexType name="TransectType">
    <complexContent>
      <extension base="diggs:AbstractLinearSamplingFeatureType">
        <sequence> </sequence>
      </extension>
    </complexContent>
  </complexType>
-->
  <!--
  <complexType name="MonitoringResultType">
    <complexContent>
      <restriction base="diggs:AbstractObjectType">
        <sequence>
          <sequence>
            <element minOccurs="0" ref="gml:description"/>
          </sequence>
          <sequence>
            <element minOccurs="0" name="status" type="gml:CodeType">
              <annotation>
                <documentation>A text string to provide information about the status of the object to
                be used to track QA/QC controls, review or release status, etc. The values used are
                intended to come from a controlled list of terms maintained by an
                organization.</documentation>
              </annotation>
            </element>
            <element maxOccurs="1" minOccurs="0" name="remarks" type="diggs:RemarkPropertyType"/>
          </sequence>
        </sequence>
      </restriction>
    </complexContent>
  </complexType>
  -->
  <element name="investigationTarget" type="diggs:investigationTargetEnumType">
    <annotation>
      <documentation>A controlled list that indicates the target being investigated by this feature:

Deep Foundation - investigation of deep foundation elements

Earthworks - earth materials excavated and/or emplaced by engineering activity

Ground Water - hydrology and chemistry of ground water;

Indoor Atmosphere - meteorology and chemistry of air in indoor spaces

Natural Ground - earth materials sampled in natural or undisturbed state;

Outdoor Atmosphere - meteorology and chemistry of air in outdoor spaces

Surface Water - hydrology and chemistry of surface water;

</documentation>
    </annotation>
  </element>

  <simpleType name="investigationTargetEnumType">
    <restriction>
      <simpleType>
        <restriction base="string">
          <enumeration value="Deep Foundation"/>
          <enumeration value="Earthworks"/>
          <enumeration value="Ground Water"/>
          <enumeration value="Indoor Atmosphere"/>
          <enumeration value="Natural Ground"/>
          <enumeration value="Outdoor Atmosphere"/>
          <enumeration value="Surface Water"/>
        </restriction>
      </simpleType>
    </restriction>
  </simpleType>
  <element name="Monitor" type="diggs:MonitorType" substitutionGroup="diggs:AbstractMeasurement">
    <annotation>
      <documentation>An act ("event"), whose results are estimates of the value of a property of the
        investigation target, measured at a time instant or within a time interval, and at a
        location or series of locations, derived from a test procedure.</documentation>
    </annotation>
  </element>
  <complexType name="MonitorType">
    <complexContent>
      <extension base="diggs:AbstractMeasurementType">
        <sequence>
          <element name="reading" type="diggs:ReadingGroupPropertyType" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="ReadingGroupPropertyType">
    <sequence maxOccurs="1" minOccurs="1">
      <element maxOccurs="1" minOccurs="1" ref="diggs:Reading"/>
    </sequence>
  </complexType>
  <complexType name="ReadingType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element name="responseZoneLocation" type="diggs:LocationPropertyType">
            <annotation>
              <documentation>Identifies the location of the response zone within the sampling feature that is being monitored. For example, for a water level measurement, the location would be the depth interval in the well where perforations are located (or where water enters the well)</documentation>
            </annotation>
          </element>
          <element name="outcome" type="diggs:MonitorResultPropertyType">
            <annotation>
              <documentation>A property that contains the information about what properties are
                being measured, the results of the measurement, and the associated locations that
                the measurement results relate to.</documentation>
            </annotation>
          </element>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element minOccurs="1" maxOccurs="1" ref="diggs:sensorRef"/>
            <element name="sensor" type="gml:CodeType"/>
          </choice>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="Reading" type="diggs:ReadingType"/>
  <complexType name="MonitorResultPropertyType">
    <sequence>
      <element ref="diggs:MonitorResult"/>
    </sequence>
  </complexType>
  <element name="MonitorResult" type="diggs:MonitorResultType"
    substitutionGroup="gml:AbstractCoverage"/>
  <complexType name="MonitorResultType">
    <complexContent>
      <restriction base="gml:AbstractCoverageType">
        <sequence>
          <element ref="diggs:timeDomain"/>
          <element ref="diggs:results"/>
        </sequence>
      </restriction>
    </complexContent>
  </complexType>
  <element name="AbstractTimeObject" substitutionGroup="gml:AbstractTimeObject"
    type="diggs:AbstractTimeObjectType"/>
  <complexType name="AbstractTimeObjectBaseType">
    <complexContent>
      <restriction base="gml:AbstractTimeObjectType">
        <sequence>
          <element ref="gml:description" minOccurs="0"/>
        </sequence>
      </restriction>
    </complexContent>
  </complexType>

  <complexType abstract="true" name="AbstractTimeObjectType">
    <complexContent>
      <extension base="diggs:AbstractTimeObjectBaseType">
        <sequence>
          <element minOccurs="0" name="status" type="gml:CodeType">
            <annotation>
              <documentation>A text string to provide information about the status of the object to
                be used to track QA/QC controls, review or release status, etc. The values used are
                intended to come from a controlled list of terms maintained by an
                organization.</documentation>
            </annotation>
          </element>
          <element name="remark" type="diggs:RemarkPropertyType" minOccurs="0" maxOccurs="unbounded"/>
          <element minOccurs="0" name="role" type="diggs:RolePropertyType" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="timeDomain" type="diggs:TimeDomainType" substitutionGroup="gml:domainSet"/>

  <complexType name="TimeDomainType">
    <complexContent>
      <restriction base="gml:DomainSetType">
        <sequence minOccurs="0">
          <element ref="diggs:MultiTimeInstant"/>
        </sequence>
      </restriction>
    </complexContent>
  </complexType>

  <element name="MultiTimeInstant" type="diggs:MultiTimeInstantType"
    substitutionGroup="gml:AbstractTimeObject"/>

  <complexType name="MultiTimeInstantType">
    <complexContent>
      <extension base="diggs:AbstractTimeObjectType">
        <sequence>
          <element name="timeMember" type="diggs:TimeArrayPropertyType" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element final="" name="TimeInstant" substitutionGroup="gml:AbstractTimeGeometricPrimitive"
    type="diggs:TimeInstantType"/>
  <complexType mixed="false" name="TimeInstantType">
    <complexContent>
      <extension base="gml:AbstractTimeGeometricPrimitiveType">
        <sequence>
          <element minOccurs="0" name="role" type="diggs:RolePropertyType" maxOccurs="unbounded"/>
          <element name="remark" type="diggs:RemarkPropertyType" minOccurs="0" maxOccurs="unbounded"/>
          <element ref="gml:timePosition"/>
          <element minOccurs="0" name="status" type="gml:CodeType">
            <annotation>
              <documentation>A text string to provide information about the status of the object to
                be used to track QA/QC controls, review or release status, etc. The values used are
                intended to come from a controlled list of terms maintained by an
                organization.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="TimeArrayPropertyType">
    <sequence maxOccurs="1" minOccurs="1">
      <element ref="diggs:TimeInstant"/>
    </sequence>
  </complexType>
  <simpleType name="LimitEnumType">
    <union memberTypes="diggs:OtherNameType diggs:QualifierEnumType"/>
  </simpleType>
  <!-- Deprecate these custom types and only allow xsd:boolean type instead of more liberal use of terms for t/f DJP 12-15-2015
  <simpleType name="BooleanEnumType">
    <union memberTypes="boolean diggs:DiggsBooleanEnumType"/>
  </simpleType>
  <simpleType name="DiggsBooleanEnumType">
    <restriction base="string">
      <enumeration value="True"/>
      <enumeration value="False"/>
      <enumeration value="Yes"/>
      <enumeration value="No"/>
      <enumeration value="yes"/>
      <enumeration value="no"/>
    </restriction>
  </simpleType>
  -->
  <simpleType name="SampleFractionEnumType">
    <union memberTypes="diggs:OtherNameType diggs:FractionEnumType"/>
  </simpleType>
  <simpleType name="FractionEnumType">
    <restriction base="string">
      <enumeration value="Bed Sediment"/>
      <enumeration value="Dissolved"/>
      <enumeration value="Free Available"/>
      <enumeration value="Non-filterable"/>
      <enumeration value="Non-settleable"/>
      <enumeration value="Recoverable"/>
      <enumeration value="Suspended"/>
      <enumeration value="Total"/>
      <enumeration value="Total Residual"/>
      <enumeration value="Vapor"/>
    </restriction>
  </simpleType>
  <simpleType name="PercentEnumType">
    <union memberTypes="witsml:PercentUom diggs:PermilEnumType"/>
  </simpleType>
  <simpleType name="PermilEnumType">
    <restriction base="string">
      <enumeration value="per mil"/>
    </restriction>
  </simpleType>
  <simpleType name="IntegerEnumType">
    <restriction base="string">
      <enumeration value="integer">
        <annotation>
          <documentation>Short integer data value.</documentation>
        </annotation>
      </enumeration>
    </restriction>
  </simpleType>
  <simpleType name="PropertyDataTypeEnumType">
    <union memberTypes="witsml:LogDataType diggs:IntegerEnumType"/>
  </simpleType>
  <complexType name="SizeFractionPropertyType">
    <annotation>
      <documentation>This is the property that contains the Grading object(s).  It is needed to satisfy the GML object-property rule when Grading is used as an element in another test.</documentation>
    </annotation>
    <choice>
      <element ref="diggs:SizeFraction"/>
    </choice>
  </complexType>
  <complexType name="SizeFractionType">
    <annotation>
      <documentation/>
    </annotation>
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="0" name="minimumGrainSize" type="witsml:lengthMeasure">
            <annotation>
              <documentation>The smallest grain size in the sample fraction used for this procedure</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="maximumGrainSize" type="witsml:lengthMeasure">
            <annotation>
              <documentation>The largest grain size in the sample fraction used for this procedure</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="percentOfTotalSample" type="diggs:PercentMeasureType">
            <annotation>
              <documentation>The fraction of the total sample used for the procedure (eg. fraction of the total sample represented by the size fraction used for the procedure</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="SizeFraction" type="diggs:SizeFractionType">
    <annotation>
      <documentation>The range of grain sizes used for this test procedure; expressed as minimum grain size (for a sample with grain sizes above a certain size), or maximum grain size (for a sample with grain sizes below a certain). Both minimumGrainSize and maximumGrainSize may be populated to represent a sample with grain sizes between the two specified.</documentation>
    </annotation>
  </element>
  <element abstract="false" name="Well" substitutionGroup="diggs:AbstractLinearSamplingFeature"
    type="diggs:WellType">
    <annotation>
      <documentation>A sampling feature that is an installation within a borehole, used for
        observing, withdrawing, or injecting fluids. Although wells are discrete sampling features
        in their own right, they are installed within boreholes, and should reference a borehole
        feature within the parentBorehole property, if the associated borehole feature is
        instantiated. Multiple wells within a borehole should be contained within a group feature
        and referenced in the groups property.</documentation>
    </annotation>
  </element>
  <complexType name="WellType">
    <complexContent>
      <extension base="diggs:AbstractLinearSamplingFeatureType">
        <sequence>
          <element minOccurs="0" name="parentBorehole" type="diggs:FeatureReferenceType">
            <annotation>
              <appinfo>diggs:Borehole</appinfo>
              <documentation>A reference to the Borehole feature within which this well is
                installed</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="wellDepth" type="witsml:lengthMeasure">
            <annotation>
              <documentation>The measured depth to the bottom of the well, measured in the well's
                linear referencing system.</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="wellPurpose" type="gml:CodeType">
            <annotation>
              <documentation>A description of the purpose for installing the hole (eg. ground water
                withdrawal, observation, etc.). Intended to come from a controlled
                list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="fluidPurpose" type="gml:CodeType">
            <annotation>
              <documentation>If a production or extraction well, a code or description of the
                purpose for the fluid (eg. public supply, municipal, etc.)</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="sanitarySealType" type="gml:CodeType">
            <annotation>
              <documentation>The type of material used for the sanitary or surface seal (eg.
                bentonite, grout, etc.)</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="sanitarySealLocation" type="diggs:PointLocationPropertyType">
            <annotation>
              <documentation>Depth to the base of the sanitary seal</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="wellFinishType" type="gml:CodeType">
            <annotation>
              <documentation>Description of how the well is finished (eg. gravel pack with
                perforations, open end, sand point, etc.) </documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="initialDevelopmentMethod" type="gml:CodeType">
            <annotation>
              <documentation>Description of the method used to develop the well after initial
                construction (eg. compressed air, surged, etc.)</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="initialDevelopmentTime" type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>Time required for initial development </documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="wellSpecialTreatment" type="diggs:DiggsStringType">
            <annotation>
              <documentation>Description of any special procedures employed upon initial development
                of well.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="maintenanceEvent" type="diggs:WellEventPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on the occurrence and activities involved in well
                maintenance and servicing.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="wellAbandonment" type="diggs:WellEventPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on the occurrence and procedures performed upon abandoning
                the well</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="casing" type="diggs:CasingPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>Information on the well casing installed.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="opening" type="diggs:WellOpeningPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on the location and type of well openings (perforations)
                installed to allow fluid communication between the well and adjacent earth
                material</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="WellEvent" type="diggs:WellEventType"/>
  <complexType name="WellEventType">
    <complexContent>
      <extension base="diggs:AbstractEventType"/>
    </complexContent>
  </complexType>
  <complexType name="WellEventPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:WellEvent"/>
    </sequence>
  </complexType>
  <element name="WellOpening" type="diggs:WellOpeningType"/>
  <complexType name="WellOpeningType">
    <complexContent>
      <extension base="diggs:AbstractObjectType">
        <sequence>
          <element minOccurs="1" name="openInterval" type="diggs:LinearExtentPropertyType">
            <annotation>
              <documentation>The depth interval in which the well openings occur. Recorded in a
                linear reference system for the well.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="filterPackInterval" type="diggs:LinearExtentPropertyType">
            <annotation>
              <documentation>The depth interval in which the filter pack surrounding the well screen
                or well openings occur.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="openingLength" type="witsml:lengthMeasure"/>
          <element minOccurs="0" name="openingWidth" type="witsml:lengthMeasure"/>
          <element minOccurs="0" name="openingDiameter" type="witsml:lengthMeasure"/>
          <element minOccurs="0" name="openingType" type="gml:CodeType">
            <annotation>
              <documentation>The type of well screen or perforation (eg. wire-wound screen, louvered
                or shuttered, perforated casing, etc.)</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="openingMaterial" type="gml:CodeType">
            <annotation>
              <documentation>The type of material that the well screen or perforation interval is
                composed of.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="WellOpeningPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:WellOpening"/>
    </sequence>
  </complexType>
  <element name="TrenchWall" substitutionGroup="diggs:AbstractPlanarSamplingFeature"
    type="diggs:TrenchWallType">
    <annotation>
      <documentation>A wall of a trench or pit dug into the ground and represented by a planar
        surface.</documentation>
    </annotation>
  </element>
  <complexType name="TrenchWallType">
    <complexContent>
      <extension base="diggs:AbstractPlanarSamplingFeatureType">
        <sequence>
          <element name="shoring" type="diggs:DiggsStringType" minOccurs="0" maxOccurs="1">
            <annotation>
              <documentation>Description of shoring equipment and method used for the
                trench.</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="trenchPurpose" type="gml:CodeType">
            <annotation>
              <documentation>A description of the purpose for excavating the trench (eg.
                exploratory). Intended to come from a controlled list.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="backfill" type="diggs:BackfillPropertyType">
            <annotation>
              <documentation>Information on construction of the trench backfill covering the trench
                wall exposure.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="constructionMethod"
            type="diggs:TrenchConstructionMethodPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>Information regarding construction of the pit over different depth
                intervals</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="constructionEvent" type="diggs:TrialPitEventPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on construction of the trench with time</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element abstract="false" name="Sounding" substitutionGroup="diggs:AbstractLinearSamplingFeature"
    type="diggs:SoundingType">
    <annotation>
      <documentation>A sampling feature feature that is created by a measurement activity through insertion of a probe into the ground. </documentation>
    </annotation>
  </element>
  <complexType name="SoundingType">
    <complexContent>
      <extension base="diggs:AbstractLinearSamplingFeatureType">
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="whenConstructed"
            type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>The period of time when the hole is constructed. This should include the entire time the drill rig is on site.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="totalMeasuredDepth" type="witsml:lengthMeasure">
            <annotation>
              <documentation>The measured depth to the bottom of the hole, measured in a hole's
                linear referencing system.</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="soundingPurpose" type="gml:CodeType">
            <annotation>
              <documentation>A description of the purpose for the sounding. Intended to come from a controlled list (eg. CPT, Flat Dilatometer, etc).</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="backfill" type="diggs:BackfillPropertyType">
            <annotation>
              <documentation>Information on construction of the backfill after
                the sounding is made.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="casing" type="diggs:CasingPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>Information on the borehole casing installed following or during the sounding</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="constructionMethod"
            type="diggs:BoreholeConstructionMethodPropertyType" maxOccurs="unbounded">
            <annotation>
              <documentation>Information regarding construction of the sounding over different depth
                intervals</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="constructionEvent" type="diggs:BoreholeEventPropertyType"
            maxOccurs="unbounded">
            <annotation>
              <documentation>Information on sounding construction events with time.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element abstract="false" name="Transect" substitutionGroup="diggs:AbstractLinearSamplingFeature"
    type="diggs:TransectType">
    <annotation>
      <documentation>A generic linear sampling feature that extends along the surface of an
        investigation target; used for such features as transects, measured sections,
        etc.</documentation>
    </annotation>
  </element>
  <complexType name="TransectType">
    <complexContent>
      <extension base="diggs:AbstractLinearSamplingFeatureType">
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="whenTransectRun"
            type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>The period of time when during which the transect is run.</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="totalTransectLength" type="witsml:lengthMeasure">
            <annotation>
              <documentation>The total length of the transect, measured in the transect's
                linear referencing system.</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="transectPurpose" type="gml:CodeType">
            <annotation>
              <documentation>A description of the purpose for running the transect. Intended to come from a controlled
                list.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="TrenchConstructionMethod" type="diggs:TrenchConstructionMethodType"/>
  <complexType name="TrenchConstructionMethodType">
    <complexContent>
      <extension base="diggs:AbstractFeatureType">
        <sequence>
          <element minOccurs="0" name="methodLocation" type="diggs:LocationPropertyType">
            <annotation>
              <documentation>The location within the sampling feature that corresponds to the
                particular construction method being referenced here. If omitted, it is assumed that
                the procedures specified apply to the entire extent of the sampling
                feature</documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="methodTime"
            type="diggs:TimeIntervalPropertyType">
            <annotation>
              <documentation>The period of time during which the construction event is occurring</documentation>
            </annotation>
          </element>
          <element minOccurs="0" name="trenchStability" type="diggs:DiggsStringType">
            <annotation>
              <documentation>Uncontrolled string describing stability conditions of the trench during this interval</documentation>
            </annotation>
          </element>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element name="procedureRef" type="diggs:MetadataReferenceType" minOccurs="1"
              maxOccurs="1">
              <annotation>
                <appinfo source="urn:x-gml:targetElement">diggs:Specification</appinfo>
                <documentation>A property element that supports a value by reference only. The
                  target value is indicated in the appinfo element.</documentation>
              </annotation>
            </element>
            <element name="procedure" type="gml:CodeType"/>
          </choice>
          <choice maxOccurs="unbounded" minOccurs="0">
            <element name="equipmentUsedRef" type="diggs:MetadataReferenceType" minOccurs="1"
              maxOccurs="1">
              <annotation>
                <documentation>A property element that supports a value by reference only. The
                  target value is indicated in the appinfo element.</documentation>
                <appinfo source="urn:x-gml:targetElement">diggs:BusinessAssociate</appinfo>
              </annotation>
            </element>
            <element name="equipmentUsed" type="gml:CodeType"/>
          </choice>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <complexType name="TrenchConstructionMethodPropertyType">
    <sequence>
      <element maxOccurs="1" minOccurs="1" ref="diggs:TrenchConstructionMethod"/>
    </sequence>
  </complexType>
</schema>
