Below is the full Forestry GIS data transfer standard XML Schema, v1.0, which references GML v2.1.2.
<?xml version="1.0" encoding="utf-8"?>
<!-- ======-->
<!-- Forestry GIS Data Transfer Draft, v1.0 -->
<!-- ======-->
<!-- Incorporating GML v2.1.2 for Polygons (Points and Lines can easily be added if required) -->
<!-- Created for Scottish Enterprise Forest Industries Cluster -->
<!-- For more information please refer to the following document: -->
<!-- "Forestry GIS Data Transfer Standard v1.0" -->
<!-- by Oliver Stephenson, Charles Kennelly, ESRI (UK) Ltd., 18th May 2004 -->
<!-- ======-->
<!-- The objects below are each equivalent to one of the "tables" in the Forestry Data Transfer -->
<!-- Standard data model for Organisation and Physical Description. No table relationships are -->
<!-- defined here; this keeps the XSD as simple and re-usable as possible. For specific -->
<!-- relationships in the data you should design/use other .XSDs for particular scenarios, e.g. WGS -->
z
<!-- Olly Stephenson, ESRI (UK) Ltd., 18-May-04 -->
<!-- ======-->
xs:schema targetNamespace=" xmlns=" xmlns:xs=" xmlns:gml=" elementFormDefault="qualified" attributeFormDefault="unqualified" id="ForestryXML_v1.0">
xs:import namespace=" schemaLocation="
xs:complexType name="OrganisationType">
xs:sequence
xs:element name="Organisation_Name" type="NameFieldType"/>
xs:element name="Organisation_ID" type="IDFieldType"/>
xs:element name="Number_Range_Start" type="xs:nonNegativeInteger" minOccurs="0"/>
xs:element name="Number_Range_End" type="xs:positiveInteger" minOccurs="0"/>
<!-- "element" default is to appear once and only once, so only put in min/max where NOT mandatory -->
</xs:sequence
<!-- "sequence" means elements must appear in the order specified -->
</xs:complexType
xs:complexType name="LandManagementUnitType">
xs:sequence
xs:element name="LMU_ID" type="IDFieldType"/>
xs:element name="Shape" type="gml:MultiPolygonPropertyType"/>
xs:element name="Area" type="AreaType"/>
xs:element name="Geometry_Quality" type="GeometryQualityType"/>
xs:element name="Level" type="LevelType"/>
xs:element name="LMU_Name" type="NameFieldType" minOccurs="0"/>
xs:element name="Ownership_Type" type="OwnershipType" minOccurs="0"/>
xs:element name="Management_Company" type="xs:string" minOccurs="0"/>
xs:element name="Plan_Name" type="xs:string" minOccurs="0"/>
xs:element name="Description" type="xs:string" minOccurs="0"/>
xs:element name="Capture_Type" type="xs:string" minOccurs="0"/>
xs:element name="Objectives_Comments" type="xs:string" minOccurs="0"/>
xs:element name="Approval_Date" type="xs:date" minOccurs="0"/>
xs:element name="Revision_Date" type="xs:date" minOccurs="0"/>
xs:element name="Expiry_Date" type="xs:date" minOccurs="0"/>
xs:element name="Designed_By" type="xs:string" minOccurs="0"/>
xs:element name="Attribute_Quality" type="AttributeQualityType" minOccurs="0"/>
</xs:sequence
</xs:complexType
xs:complexType name="CompartmentType">
xs:sequence
xs:element name="CPRT_ID" type="IDFieldType"/>
xs:element name="Reference" type="IDFieldType"/>
xs:element name="Shape" type="gml:MultiPolygonPropertyType"/>
xs:element name="Area" type="AreaType"/>
xs:element name="Geometry_Quality" type="GeometryQualityType"/>
xs:element name="Level" type="LevelType"/>
xs:element name="CPRT_Name" type="NameFieldType" minOccurs="0"/>
</xs:sequence
</xs:complexType
xs:complexType name="SubCompartmentType">
xs:sequence
xs:element name="SUB_CPRT_ID" type="IDFieldType"/>
xs:element name="Reference" type="IDFieldType"/>
xs:element name="Shape" type="gml:MultiPolygonPropertyType"/>
xs:element name="Area" type="AreaType"/>
xs:element name="Geometry_Quality" type="GeometryQualityType"/>
xs:element name="Level" type="LevelType"/>
xs:element name="SUB_CPRT_Name" type="NameFieldType" minOccurs="0"/>
xs:element name="InsuranceValue" type="CurrencyType" minOccurs="0"/>
xs:element name="Altitude" type="xs:nonNegativeInteger" minOccurs="0"/>
xs:element name="Terrain_Condition" type="TerrainType" minOccurs="0"/>
xs:element name="Terrain_Roughness" type="TerrainType" minOccurs="0"/>
xs:element name="Terrain_Slope" type="TerrainType" minOccurs="0"/>
xs:element name="Cultivation" type="CultivationType" minOccurs="0"/>
xs:element name="Soil_Type" type="SoilType" minOccurs="0"/>
xs:element name="Harvesting_Type" type="xs:string" minOccurs="0"/>
xs:element name="Aspect" type="AspectType" minOccurs="0"/>
xs:element name="Survey_Date" type="xs:date" minOccurs="0"/>
xs:element name="Attribute_Quality" type="AttributeQualityType" minOccurs="0"/>
</xs:sequence
</xs:complexType
xs:complexType name="ComponentType">
xs:sequence
xs:element name="CMPNT_ID" type="IDFieldType"/>
xs:element name="Reference" type="IDFieldType"/>
xs:element name="Percentage_SC_Area" type="PercentageType"/>
xs:element name="Landuse" type="LanduseType"/>
xs:element name="Species" type="SpeciesType"/>
xs:element name="CMPNT_Name" type="NameFieldType" minOccurs="0"/>
xs:element name="Wind_Blow_Date" type="xs:date" minOccurs="0"/>
xs:element name="Storey" type="StoreyType" minOccurs="0"/>
xs:element name="Seed_Provenance" type="SeedProvenanceType" minOccurs="0"/>
xs:element name="Seed_Origin" type="SeedOriginType" minOccurs="0"/>
xs:element name="Establishment_Method" type="EstablishmentMethodType" minOccurs="0"/>
xs:element name="Planting_Year" type="xs:gYear" minOccurs="0"/>
xs:element name="Plant_Type" type="PlantType" minOccurs="0"/>
xs:element name="Planting_Year_Accuracy" type="PlantingYearAccuracyType" minOccurs="0"/>
xs:element name="Yield_Class" type="YieldClassType" minOccurs="0"/>
xs:element name="Yield_Class_Type" type="YieldClassAccuracyType" minOccurs="0"/>
xs:element name="Rotation" type="RotationType" minOccurs="0"/>
xs:element name="Wind_Hazard" type="WindHazardType" minOccurs="0"/>
xs:element name="Established_Spacing" type="xs:short" minOccurs="0"/>
xs:element name="Stems_Per_Hectare" type="xs:short" minOccurs="0"/>
xs:element name="Stems_Survey_Date" type="xs:date" minOccurs="0"/>
xs:element name="Habitat_Type" type="xs:string" minOccurs="0"/>
xs:element name="Silvicultural_System" type="SilviculturalSystemType" minOccurs="0"/>
xs:element name="Mixture" type="MixtureType" minOccurs="0"/>
xs:element name="Production_Class" type="ProductionClassType" minOccurs="0"/>
xs:element name="Basal_Area_Per_Hectare" type="xs:nonNegativeInteger" minOccurs="0"/>
xs:element name="Basal_Area_Survey_Date" type="xs:date" minOccurs="0"/>
xs:element name="Volume_Per_Hectare" type="xs:nonNegativeInteger" minOccurs="0"/>
xs:element name="Volume_Survey_Date" type="xs:date" minOccurs="0"/>
xs:element name="Attribute_Quality" type="AttributeQualityType" minOccurs="0"/>
xs:element name="Timber_Quality" type="xs:string" minOccurs="0"/>
</xs:sequence
</xs:complexType
<!-- ======-->
<!-- Use these GML geometry types for multi-parts -->
<!-- ======-->
<!-- POLYGONS: "gml:MultiPolygonPropertyType" -->
<!-- LINES: "gml:MultiLineStringPropertyType" -->
<!-- POINTS: "gml:MultiPointPropertyType" -->
<!-- ======-->
<!-- Use these GML geometry types for single-parts -->
<!-- ======-->
<!-- POLYGONS: "gml:PolygonPropertyType" -->
<!-- LINES: "gml:LineStringPropertyType" -->
<!-- POINTS: "gml:PointPropertyType" -->
<!-- ======-->
<!-- These are all the basic Forestry type definitions -->
<!-- Most field range values come from Roger Coppock (via email), FIC, 18/05/04 -->
<!-- ======-->
xs:simpleType name="IDFieldType">
xs:restriction base="xs:integer">
xs:totalDigits value="10"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="NameFieldType">
xs:restriction base="xs:string">
xs:maxLength value="100"/>
</xs:restriction
</xs:simpleType
<!-- set Area and Length separately so we have more control in the future -->
xs:simpleType name="AreaType">
xs:restriction base="xs:decimal">
xs:totalDigits value="30"/>
xs:fractionDigits value="6"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="LengthType">
xs:restriction base="xs:decimal">
xs:totalDigits value="30"/>
xs:fractionDigits value="6"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="LevelType">
xs:restriction base="xs:string">
xs:enumeration value="LMU"/>
xs:enumeration value="Compartment"/>
xs:enumeration value="SubCompartment"/>
xs:enumeration value="Component"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="OwnershipType">
xs:restriction base="xs:string">
xs:enumeration value="Leased"/>
xs:enumeration value="Owned"/>
xs:enumeration value="Mixed Ownership"/>
xs:enumeration value="Trust"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="GeometryQualityType">
xs:restriction base="xs:string">
xs:enumeration value="1:2500"/>
xs:enumeration value="1:10000"/>
xs:enumeration value="1:25000"/>
xs:enumeration value="1:50000"/>
xs:enumeration value="OS MasterMap"/>
xs:enumeration value="Aerial Photo"/>
xs:enumeration value="GPS ±10m"/>
xs:enumeration value="GPS ±20m"/>
xs:enumeration value="GPS ±100m"/>
xs:enumeration value="pre GIS"/>
xs:enumeration value="Unknown"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="AttributeQualityType">
xs:restriction base="xs:string">
xs:enumeration value="High"/>
xs:enumeration value="Medium"/>
xs:enumeration value="Low"/>
xs:enumeration value="Unknown"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="CurrencyType">
xs:restriction base="xs:decimal">
xs:totalDigits value="15"/>
xs:fractionDigits value="2"/>
xs:minInclusive value="0"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="TerrainType">
xs:restriction base="xs:integer">
xs:minInclusive value="1"/>
xs:maxInclusive value="5"/>
xs:fractionDigits value="0"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="CultivationType">
xs:restriction base="xs:string">
xs:enumeration value="10"/>
xs:enumeration value="11"/>
xs:enumeration value="12"/>
xs:enumeration value="20"/>
xs:enumeration value="21"/>
xs:enumeration value="22"/>
xs:enumeration value="23"/>
xs:enumeration value="24"/>
xs:enumeration value="25"/>
xs:enumeration value="26"/>
xs:enumeration value="30"/>
xs:enumeration value="31"/>
xs:enumeration value="32"/>
xs:enumeration value="33"/>
xs:enumeration value="40"/>
xs:enumeration value="41"/>
xs:enumeration value="42"/>
xs:enumeration value="43"/>
xs:enumeration value="44"/>
xs:enumeration value="45"/>
xs:enumeration value="46"/>
xs:enumeration value="50"/>
xs:enumeration value="51"/>
xs:enumeration value="52"/>
xs:enumeration value="53"/>
xs:enumeration value="54"/>
xs:enumeration value="55"/>
xs:enumeration value="56"/>
xs:enumeration value="57"/>
xs:enumeration value="58"/>
xs:enumeration value="59"/>
xs:enumeration value="60"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="SoilType">
xs:restriction base="xs:string">
xs:enumeration value="10"/>
xs:enumeration value="11"/>
xs:enumeration value="12"/>
xs:enumeration value="13"/>
xs:enumeration value="20"/>
xs:enumeration value="21"/>
xs:enumeration value="22"/>
xs:enumeration value="30"/>
xs:enumeration value="31"/>
xs:enumeration value="32"/>
xs:enumeration value="33"/>
xs:enumeration value="34"/>
xs:enumeration value="35"/>
xs:enumeration value="40"/>
xs:enumeration value="41"/>
xs:enumeration value="42"/>
xs:enumeration value="43"/>
xs:enumeration value="44"/>
xs:enumeration value="50"/>
xs:enumeration value="53"/>
xs:enumeration value="54
xs:enumeration value="55"/>
xs:enumeration value="56"/>
xs:enumeration value="57"/>
xs:enumeration value="60"/>
xs:enumeration value="61"/>
xs:enumeration value="62"/>
xs:enumeration value="63"/>
xs:enumeration value="70"/>
xs:enumeration value="73"/>
xs:enumeration value="74"/>
xs:enumeration value="80"/>
xs:enumeration value="81"/>
xs:enumeration value="82"/>
xs:enumeration value="83"/>
xs:enumeration value="90"/>
xs:enumeration value="93"/>
xs:enumeration value="94"/>
xs:enumeration value="95"/>
xs:enumeration value="100"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="AspectType">
xs:restriction base="xs:string">
xs:enumeration value="N"/>
xs:enumeration value="NE"/>
xs:enumeration value="E"/>
xs:enumeration value="SE"/>
xs:enumeration value="S"/>
xs:enumeration value="SW"/>
xs:enumeration value="W"/>
xs:enumeration value="NW"/>
</xs:restriction
</xs:simpleType
<!-- Landuse from FIC/Roger Coppock 31/10/2003 -->
xs:simpleType name="LanduseType">
xs:restriction base="xs:string">
xs:enumeration value="AGR"/>
xs:enumeration value="CRC"/>
xs:enumeration value="CRH"/>
xs:enumeration value="EMM"/>
xs:enumeration value="EMO"/>
xs:enumeration value="EMP"/>
xs:enumeration value="EMR"/>
xs:enumeration value="FMC"/>
xs:enumeration value="FMD"/>
xs:enumeration value="FMG"/>
xs:enumeration value="FMN"/>
xs:enumeration value="FMQ"/>
xs:enumeration value="FMR"/>
xs:enumeration value="FMS"/>
xs:enumeration value="FMW"/>
xs:enumeration value="FRC"/>
xs:enumeration value="FRE"/>
xs:enumeration value="FRO"/>
xs:enumeration value="GOS"/>
xs:enumeration value="LHP"/>
xs:enumeration value="MAS"/>
xs:enumeration value="MOW"/>
xs:enumeration value="NAO"/>
xs:enumeration value="NAR"/>
xs:enumeration value="OPN"/>
xs:enumeration value="PBU"/>
xs:enumeration value="PFA"/>
xs:enumeration value="PFE"/>
xs:enumeration value="PHF"/>
xs:enumeration value="PIB"/>
xs:enumeration value="PRP"/>
xs:enumeration value="PSS"/>
xs:enumeration value="PWB"/>
xs:enumeration value="PWC"/>
xs:enumeration value="UNP"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="StoreyType">
xs:restriction base="xs:string">
xs:enumeration value="Single"/>
xs:enumeration value="Lower"/>
xs:enumeration value="Upper Main"/>
xs:enumeration value="Upper Subsidiary"/>
</xs:restriction
</xs:simpleType
<!-- Species from FIC/Roger Coppock 31/10/2003 -->
xs:simpleType name="SpeciesType">
xs:restriction base="xs:string">
xs:enumeration value="AR"/>
xs:enumeration value="CAR"/>
xs:enumeration value="VAR"/>
xs:enumeration value="GAR"/>
xs:enumeration value="RAR"/>
xs:enumeration value="AH"/>
xs:enumeration value="ASP"/>
xs:enumeration value="BE"/>
xs:enumeration value="BI"/>
xs:enumeration value="PBI"/>
xs:enumeration value="SBI"/>
xs:enumeration value="CH"/>
xs:enumeration value="BCH"/>
xs:enumeration value="WCH"/>
xs:enumeration value="HCH"/>
xs:enumeration value="SC"/>
xs:enumeration value="EM"/>
xs:enumeration value="EEM"/>
xs:enumeration value="SEM"/>
xs:enumeration value="WEM"/>
xs:enumeration value="HAZ"/>
xs:enumeration value="HBM"/>
xs:enumeration value="LI"/>
xs:enumeration value="CLI"/>
xs:enumeration value="LLI"/>
xs:enumeration value="SLI"/>
xs:enumeration value="FM"/>
xs:enumeration value="NOM"/>
xs:enumeration value="OK"/>
xs:enumeration value="POK"/>
xs:enumeration value="ROK"/>
xs:enumeration value="SOK"/>
xs:enumeration value="XOK"/>
xs:enumeration value="PO"/>
xs:enumeration value="GPO"/>
xs:enumeration value="BPO"/>
xs:enumeration value="NO"/>
xs:enumeration value="NOO"/>
xs:enumeration value="NOP"/>
xs:enumeration value="ROW"/>
xs:enumeration value="SY"/>
xs:enumeration value="WL"/>
xs:enumeration value="GWL"/>
xs:enumeration value="CWL"/>
xs:enumeration value="WWL"/>
xs:enumeration value="NBL"/>
xs:enumeration value="MB"/>
xs:enumeration value="WSH"/>
xs:enumeration value="XB"/>
xs:enumeration value="CED"/>
xs:enumeration value="RC"/>
xs:enumeration value="JCR"/>
xs:enumeration value="LC"/>
xs:enumeration value="LEC"/>
xs:enumeration value="FIR"/>
xs:enumeration value="DF"/>
xs:enumeration value="GF"/>
xs:enumeration value="NF"/>
xs:enumeration value="ESF"/>
xs:enumeration value="XF"/>
xs:enumeration value="LAR"/>
xs:enumeration value="EL"/>
xs:enumeration value="HL"/>
xs:enumeration value="JL"/>
xs:enumeration value="PIN"/>
xs:enumeration value="AUP"/>
xs:enumeration value="BIP"/>
xs:enumeration value="CP"/>
xs:enumeration value="LP"/>
xs:enumeration value="MCP"/>
xs:enumeration value="MAP"/>
xs:enumeration value="MOP"/>
xs:enumeration value="XP"/>
xs:enumeration value="PDP"/>
xs:enumeration value="RAP"/>
xs:enumeration value="SP"/>
xs:enumeration value="SPC"/>
xs:enumeration value="WEP"/>
xs:enumeration value="RW"/>
xs:enumeration value="RSQ"/>
xs:enumeration value="WSQ"/>
xs:enumeration value="SPR"/>
xs:enumeration value="NS"/>
xs:enumeration value="OMS"/>
xs:enumeration value="XS"/>
xs:enumeration value="SS"/>
xs:enumeration value="WH"/>
xs:enumeration value="YEW"/>
xs:enumeration value="MC"/>
xs:enumeration value="XC"/>
xs:enumeration value="CAP"/>
xs:enumeration value="WST"/>
xs:enumeration value="WHI"/>
xs:enumeration value="WAL"/>
xs:enumeration value="LPL"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="SeedProvenanceType">
xs:restriction base="xs:string">
xs:enumeration value="10"/>
xs:enumeration value="20"/>
xs:enumeration value="30"/>
xs:enumeration value="40"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="SeedOriginType">
xs:restriction base="xs:string">
xs:enumeration value="Lodgepole - Alaskan (A)"/>
xs:enumeration value="Lodgepole - Central and northern interior (C)"/>
xs:enumeration value="Lodgepole - North coastal (N)"/>
xs:enumeration value="Lodgepole - Skeena river (K)"/>
xs:enumeration value="Lodgepole - South coastal (S)"/>
xs:enumeration value="Lodgepole - Southern Interior (I)"/>
xs:enumeration value="Sitka - Alaskan (A)"/>
xs:enumeration value="Sitka - Oregon (R)"/>
xs:enumeration value="Sitka - Queen Charlotte Islands (Q)"/>
xs:enumeration value="Sitka - Washington (W)"/>
xs:enumeration value="Scots Pine - Caledonian (C)"/>
xs:enumeration value="Oak - Pedunculate (P)"/>
xs:enumeration value="Oak - Sessile (S)"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="EstablishmentMethodType">
xs:restriction base="xs:string">
xs:enumeration value="Naturally regenerated"/>
xs:enumeration value="Direct seed"/>
xs:enumeration value="Hand plant"/>
xs:enumeration value="Mechanical plant"/>
xs:enumeration value="Enrichment"/>
xs:enumeration value="Unknown"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="PlantType">
xs:restriction base="xs:string">
xs:enumeration value="Bare root"/>
xs:enumeration value="Cutting"/>
xs:enumeration value="Seed"/>
xs:enumeration value="Vegetatively propagated bare root"/>
xs:enumeration value="Vegetatively propagated containerised"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="PlantingYearAccuracyType">
xs:restriction base="xs:string">
xs:enumeration value="Actual"/>
xs:enumeration value="Estimated"/>
xs:enumeration value="Effective PY"/>
xs:enumeration value="Unknown"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="YieldClassType">
xs:restriction base="xs:integer">
xs:minInclusive value="0"/>
xs:maxInclusive value="34"/>
xs:fractionDigits value="0"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="YieldClassAccuracyType">
xs:restriction base="xs:string">
xs:enumeration value="Estimated"/>
xs:enumeration value="General YC"/>
xs:enumeration value="Local YC"/>
xs:enumeration value="Surveyed"/>
xs:enumeration value="Unknown"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="RotationType">
xs:restriction base="xs:string">
xs:enumeration value="1st rotation on formerly bare land"/>
xs:enumeration value="2nd and subsequent rotations"/>
xs:enumeration value="Ancient semi-natural woodland"/>
xs:enumeration value="Historically woodland"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="WindHazardType">
xs:restriction base="xs:integer">
xs:minInclusive value="1"/>
xs:maxInclusive value="6"/>
xs:fractionDigits value="0"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="SilviculturalSystemType">
xs:restriction base="xs:string">
xs:enumeration value="Clear Fell"/>
xs:enumeration value="Continuous Cover"/>
xs:enumeration value="Coppice"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="MixtureType">
xs:restriction base="xs:string">
xs:enumeration value="Blocky"/>
xs:enumeration value="Intimate"/>
xs:enumeration value="Pure Crops"/>
xs:enumeration value="Row"/>
xs:enumeration value="Undefined"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="ProductionClassType">
xs:restriction base="xs:string">
xs:enumeration value="A"/>
xs:enumeration value="B"/>
xs:enumeration value="C"/>
</xs:restriction
</xs:simpleType
xs:simpleType name="PercentageType">
xs:restriction base="xs:integer">
xs:minInclusive value="0"/>
xs:maxInclusive value="100"/>
xs:fractionDigits value="0"/>
</xs:restriction
</xs:simpleType
</xs:schema
<end of document>