<?xml version="1.0" encoding="UTF-8"?>
<!-- target namespace is a URL by popular convention.  It is an idenfitier only, such that no pysical resource is required at this URL. -->
<schema targetNamespace="http://www.for.gov.bc.ca/schema/results" xmlns:rst="http://www.for.gov.bc.ca/schema/results" xmlns:mof="http://www.for.gov.bc.ca/schema/base" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1">
	<annotation>
		<documentation>BC MOF Results Submission schema for use in the Electronic Submission Framework.  Copyright (c) 2002 BC Ministry of Forests, All Rights Reserved.</documentation>
	</annotation>
	<!-- import MOF Base constructs -->
	<import namespace="http://www.for.gov.bc.ca/schema/base" schemaLocation="mof-base.xsd"/>
	<!-- import constructs from the GML Feature and Geometry schemas -->
	<import namespace="http://www.opengis.net/gml"/>
	<import namespace="http://www.w3.org/1999/xlink"/>
	<!-- ========================= Submission Types ==================================== -->
	<complexType name="AbstractResultsFeatureCollectionBaseType" abstract="true">
		<annotation>
			<documentation>Removes generic gml:featureMember property.</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:AbstractFeatureCollectionType">
				<sequence>
					<element ref="gml:description" minOccurs="0"/>
					<element ref="gml:name" minOccurs="0"/>
					<element ref="gml:boundedBy"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<element name="ResultsSubmission" type="rst:ResultsSubmissionType" substitutionGroup="gml:_FeatureCollection"/>
	<complexType name="ResultsSubmissionType">
		<annotation>
			<documentation>Adds metadata and submissionItem properties.</documentation>
		</annotation>
		<complexContent>
			<extension base="rst:AbstractResultsFeatureCollectionBaseType">
				<sequence>
					<element name="submissionMetadataProperty" type="rst:ResultsSubmissionMetadataAssociationType"/>
					<element ref="rst:submissionItem" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="ResultsSubmissionMetadataAssociationType">
		<sequence>
			<element name="SubmissionMetadata" type="rst:ResultsSubmissionMetadataType"/>
		</sequence>
	</complexType>
	<complexType name="ResultsSubmissionMetadataType">
		<sequence>
			<element name="districtCode" type="mof:AlphaNumeric3"/>
			<element name="clientCode" type="mof:AlphaNumeric8"/>
			<element name="clientLocationCode" type="mof:AlphaNumeric2"/>
			<element name="licenseeContact" type="mof:AlphaNumeric50"/>
			<element name="telephoneNumber" type="mof:TelephoneNumberType"/>
			<element name="emailAddress" type="anyURI"/>
			<element name="batchReferenceDate" type="date"/>
			<element name="validationIndicator" type="boolean"/>
		</sequence>
	</complexType>
	<element name="submissionItem" type="rst:ResultsSubmissionItemAssociationType" substitutionGroup="gml:featureMember"/>
	<complexType name="ResultsSubmissionItemAssociationType">
		<annotation>
			<documentation>Asserts that allowable content includes only valid Openings.</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:FeatureAssociationType">
				<sequence>
					<element ref="rst:Opening"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<element name="_ResultsFeature" type="gml:AbstractFeatureType" abstract="true" substitutionGroup="gml:_Feature"/>
	<!-- ========================= Opening Types ==================================== -->
	<complexType name="AbstractOpeningBaseType" abstract="true">
		<annotation>
			<documentation>Removes generic gml:featureMember property.</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:AbstractFeatureCollectionType">
				<sequence>
					<element ref="gml:description" minOccurs="0"/>
					<element ref="gml:name" minOccurs="0"/>
					<element ref="gml:boundedBy"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<complexType name="OpeningType">
		<annotation>
			<documentation>Adds metadata and submissionItem properties.</documentation>
		</annotation>
		<complexContent>
			<extension base="rst:AbstractOpeningBaseType">
				<sequence>
					<group ref="rst:OpeningKeyGroup"/>
					<element ref="rst:definedBy" minOccurs="0"/>
					<element ref="rst:openingItem" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="openingItem" type="rst:OpeningItemAssociationType" substitutionGroup="gml:featureMember"/>
	<element name="definedBy" type="rst:OpeningDefinitionAssociationType" substitutionGroup="gml:featureMember"/>
	<element name="Opening" type="rst:OpeningType" substitutionGroup="gml:_FeatureCollection"/>
	<complexType name="OpeningDefinitionAssociationType">
		<annotation>
			<documentation>Asserts that allowable content includes only valid Opening Definition Features.</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:FeatureAssociationType">
				<sequence>
					<element ref="rst:OpeningDefinition"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<complexType name="OpeningItemAssociationType">
		<annotation>
			<documentation>Asserts that allowable content includes only valid Opening Features that substitute for &lt;_OpeningFeature&gt;.</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:FeatureAssociationType">
				<sequence>
					<element ref="rst:_OpeningFeature"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<element name="_OpeningFeature" type="gml:AbstractFeatureType" abstract="true" substitutionGroup="gml:_Feature"/>
	<!-- ========================= Simple Types  ==================================== -->
	<simpleType name="SpeciesCodeType">
		<restriction base="string">
			<minLength value="1"/>
			<maxLength value="4"/>
		</restriction>
	</simpleType>
	<!-- ========================= Element Groups  =================================== -->
	<group name="OpeningKeyGroup">
		<annotation>
			<documentation>Results features must be identified by one and only one of the following four keys: (openingNumber | (timberMark, block) | licenceNumber, cuttingPermitID, block) | openingID).</documentation>
		</annotation>
		<sequence>
			<element name="openingNumberKey" type="rst:OpeningNumberKeyType" minOccurs="0"/>
			<element name="timberMarkKey" type="rst:TimberMarkKeyType" minOccurs="0"/>
			<element ref="rst:tenureKey" minOccurs="0"/>
			<element name="openingID" type="mof:Integer10D" minOccurs="0"/>
		</sequence>
	</group>
	<complexType name="OpeningNumberKeyType">
		<annotation>
			<documentation>The group of fields which define an opening number key.</documentation>
		</annotation>
		<sequence>
			<element name="mapsheetGrid" type="mof:NonNegativeInteger3D"/>
			<element name="mapsheetLetter" type="mof:Alpha1"/>
			<element name="mapsheetSquare" type="mof:AlphaNumeric3"/>
			<element name="mapsheetQuad" type="mof:NonNegativeInteger1D"/>
			<element name="mapsheetSubQuad" type="mof:NonNegativeInteger1D"/>
			<element name="openingNumber" type="mof:AlphaNumeric4"/>
		</sequence>
	</complexType>
	<complexType name="TimberMarkKeyType">
		<annotation>
			<documentation>The group of fields which define the timber mark key.</documentation>
		</annotation>
		<sequence>
			<element name="timberMark" type="mof:AlphaNumeric6"/>
			<element ref="rst:cutblock"/>
		</sequence>
	</complexType>
	<complexType name="TenureKeyType">
		<annotation>
			<documentation>The group of fields which define a key for a tenure.</documentation>
		</annotation>
		<sequence>
			<element ref="rst:licenceNumber"/>
			<element ref="rst:cuttingPermitID"/>
			<element ref="rst:cutblock"/>
		</sequence>
	</complexType>
	<element name="tenureKey" type="rst:TenureKeyType"/>
	<!-- These elements are declared globally so that they may be referred to within different type definitions. -->
	<element name="licenceNumber" type="mof:AlphaNumeric10"/>
	<element name="cuttingPermitID" type="mof:AlphaNumeric3"/>
	<element name="cutblock" type="mof:AlphaNumeric10"/>
	<!-- ========================= Opening Definition ================================== -->
	<element name="OpeningDefinition" type="rst:OpeningDefinitionType"/>
	<complexType name="OpeningDefinitionType">
		<annotation>
			<documentation>OpeningDefinition carries the properties for an entire Opening.</documentation>
		</annotation>
		<complexContent>
			<extension base="mof:AbstractMOFFeatureType">
				<sequence>
					<element ref="rst:extentOf"/>
					<element name="previousStandType" type="mof:AlphaNumeric3" minOccurs="0"/>
					<element name="previousSpecies1Code" type="rst:SpeciesCodeType" minOccurs="0"/>
					<element name="previousSpecies2Code" type="rst:SpeciesCodeType" minOccurs="0"/>
					<element name="previousAgeClassCode" type="mof:AlphaNumeric1" minOccurs="0"/>
					<element name="previousHeightClassCode" type="mof:AlphaNumeric1" minOccurs="0"/>
					<element name="previousStockClassCode" type="mof:AlphaNumeric1" minOccurs="0"/>
					<element name="previousSiteIndex" type="mof:NonNegativeInteger2D" minOccurs="0"/>
					<element name="previousSiteIndexSource" type="mof:AlphaNumeric1" minOccurs="0"/>
					<element name="openingGrossArea" type="mof:Decimal6D1d"/>
					<element name="maximumAllowablePermanentAccessPercentage" type="mof:Decimal3D1d" minOccurs="0"/>
					<element name="sitePlanExemption" type="mof:Alpha1" minOccurs="0"/>
					<element name="openingCategoryCode" type="mof:Alpha7" minOccurs="0"/>
					<element name="openingLocationName" type="mof:AlphaNumeric30" minOccurs="0"/>
					<element ref="rst:licenseeID" minOccurs="0"/>
					<element ref="rst:actionCode"/>
					<element name="tenureProperty" type="rst:TenureAssociationType" minOccurs="0" maxOccurs="unbounded"/>
					<element name="standardsProperty" type="rst:StandardsAssociationType" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="extentOf" type="mof:SingleOrMultiplePolygonPropertyType"/>
	<element name="licenseeID" type="mof:AlphaNumeric30"/>
	<element name="actionCode" type="mof:ActionCodeType"/>
	<complexType name="TenureAssociationType">
		<annotation>
			<documentation>Composition association to a Tenure data object.</documentation>
		</annotation>
		<sequence>
			<element ref="rst:Tenure"/>
		</sequence>
	</complexType>
	<complexType name="StandardsAssociationType">
		<annotation>
			<documentation>Association to a Standards Feature.</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:FeatureAssociationType">
				<sequence>
					<element ref="rst:Standards"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<!-- ========================= Tenure Feature ================================================== -->
	<element name="Tenure" type="rst:TenureType"/>
	<complexType name="TenureType">
		<annotation>
			<documentation>Tenure authorizing an Opening.  Includes tenureKey properties (licenceNumber, cuttingPermitID, block) that may have the same property values as for an Opening.</documentation>
		</annotation>
		<sequence>
			<element ref="rst:tenureKey"/>
			<element name="primeLicenceIndicator" type="boolean"/>
		</sequence>
	</complexType>
	<!-- ========================= Standards Feature =============================================== -->
	<element name="Standards" type="rst:StandardsType" substitutionGroup="gml:_Feature"/>
	<complexType name="StandardsType">
		<annotation>
			<documentation>A Standards Unit relates to an OpeningDefinition.</documentation>
		</annotation>
		<complexContent>
			<extension base="mof:AbstractMOFFeatureType">
				<sequence>
					<element ref="rst:extentOf"/>
					<element ref="rst:standardsUnitID"/>
					<element name="netArea" type="mof:Decimal6D1d"/>
					<element name="bgcZone" type="mof:AlphaNumeric4"/>
					<element name="bgcSubzone" type="mof:AlphaNumeric3"/>
					<element name="bgcVariant" type="mof:AlphaNumeric1" minOccurs="0"/>
					<element name="bgcPhase" type="mof:AlphaNumeric1" minOccurs="0"/>
					<element name="bgcSiteSeries" type="mof:AlphaNumeric2" minOccurs="0"/>
					<element name="bgcSiteType" type="mof:AlphaNumeric2" minOccurs="0"/>
					<element name="maximumAllowableSoilDisturbancePercentage" type="mof:Decimal3D1d" minOccurs="0"/>
					<element name="standardsRegimeID" type="mof:NonNegativeInteger10D" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="standardsUnitID" type="mof:AlphaNumeric1"/>
	<!-- ========================= Disturbance Feature ============================================= -->
	<element name="Disturbance" type="rst:DisturbanceType" substitutionGroup="rst:_OpeningFeature"/>
	<complexType name="DisturbanceType">
		<annotation>
			<documentation/>
		</annotation>
		<complexContent>
			<extension base="mof:AbstractMOFFeatureType">
				<sequence>
					<element ref="rst:extentOf"/>
					<element ref="rst:tenureKey" minOccurs="0"/>
					<element name="disturbanceCode" type="mof:AlphaNumeric1"/>
					<element name="silviculturalSystem" type="mof:AlphaNumeric5" minOccurs="0"/>
					<element name="silviculturalVariant" type="mof:AlphaNumeric3" minOccurs="0"/>
					<element name="silviculturalCutPhase" type="mof:AlphaNumeric5" minOccurs="0"/>
					<element name="disturbanceStartDate" type="date"/>
					<element name="disturbanceCompleteDate" type="date" minOccurs="0"/>
					<element name="grossArea" type="mof:Decimal6D1d"/>
					<element name="harvestCompleteOnCutBlock" type="boolean" minOccurs="0"/>
					<element ref="rst:licenseeID" minOccurs="0"/>
					<element ref="rst:actionCode"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ========================= Activity Feature ================================================ -->
	<element name="SilviculturalActivity" type="rst:SilviculturalActivityType" substitutionGroup="rst:_OpeningFeature"/>
	<complexType name="SilviculturalActivityType">
		<annotation>
			<documentation>Silvicultural activity related to an Opening.</documentation>
		</annotation>
		<complexContent>
			<extension base="mof:AbstractMOFFeatureType">
				<sequence>
					<element ref="rst:extentOf" minOccurs="0"/>
					<element name="activityBase" type="mof:AlphaNumeric2"/>
					<element name="activityTechnique" type="mof:AlphaNumeric2" minOccurs="0"/>
					<element name="activityMethod" type="mof:AlphaNumeric5" minOccurs="0"/>
					<element name="objective1" type="mof:AlphaNumeric3" minOccurs="0"/>
					<element name="objective2" type="mof:AlphaNumeric3" minOccurs="0"/>
					<element name="objective3" type="mof:AlphaNumeric3" minOccurs="0"/>
					<element name="fundingSource" type="mof:AlphaNumeric3" minOccurs="0"/>
					<element name="fundingProject" type="mof:AlphaNumeric10" minOccurs="0"/>
					<element name="actualDateIndicator" type="boolean" minOccurs="0"/>
					<element name="activityDate" type="date"/>
					<element name="netAreaTreated" type="mof:Decimal6D1d" minOccurs="0"/>
					<element ref="rst:licenseeID" minOccurs="0"/>
					<element ref="rst:actionCode"/>
					<element name="plantingStockProperty" type="rst:PlantingStockAssociationType" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="PlantingStockAssociationType">
		<annotation>
			<documentation>Composition association to a PlantingStock data object.</documentation>
		</annotation>
		<sequence>
			<element ref="rst:PlantingStock"/>
		</sequence>
	</complexType>
	<!-- ========================= PlantingStock Data Object ======================================= -->
	<element name="PlantingStock" type="rst:PlantingStockType"/>
	<complexType name="PlantingStockType">
		<annotation>
			<documentation>Planting stock information for a SilvicultureActivity.</documentation>
		</annotation>
		<sequence>
			<element name="seedlot-Veglot" type="mof:AlphaNumeric5"/>
			<element name="species" type="rst:SpeciesCodeType"/>
			<element name="numberPlanted" type="mof:NonNegativeInteger7D"/>
		</sequence>
	</complexType>
	<!-- ========================= ForestCoverPolygon Feature ====================================== -->
	<element name="ForestCoverPolygon" type="rst:ForestCoverPolygonType" substitutionGroup="rst:_OpeningFeature"/>
	<complexType name="ForestCoverPolygonType">
		<annotation>
			<documentation>ForestCover related to an Opening.</documentation>
		</annotation>
		<complexContent>
			<extension base="mof:AbstractMOFFeatureType">
				<sequence>
					<element ref="rst:extentOf"/>
					<element ref="rst:standardsUnitID" minOccurs="0"/>
					<element name="polygonStrata" type="mof:AlphaNumeric4"/>
					<element name="area" type="mof:Decimal6D1d"/>
					<element name="referenceYear" type="gYear"/>
					<element name="reserveTypeCode" type="mof:AlphaNumeric1" minOccurs="0"/>
					<element name="reserveObjectiveCode" type="mof:AlphaNumeric3" minOccurs="0"/>
					<element name="siteIndex" type="mof:NonNegativeInteger2D" minOccurs="0"/>
					<element name="siteIndexSource" type="mof:AlphaNumeric1" minOccurs="0"/>
					<element name="treeCoverPattern" type="mof:AlphaNumeric1" minOccurs="0"/>
					<element name="re-entryYear" type="gYear" minOccurs="0"/>
					<element name="stockingStatus" type="mof:AlphaNumeric3"/>
					<element name="stockingType" type="mof:AlphaNumeric3" minOccurs="0"/>
					<element name="layerList" type="rst:LayerAssociationType" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="LayerAssociationType">
		<annotation>
			<documentation>Composition association to 0 to many Layer data objects.</documentation>
		</annotation>
		<sequence>
			<element ref="rst:Layer" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<!-- ========================= Layer Data Object =============================================== -->
	<element name="Layer" type="rst:LayerType"/>
	<complexType name="LayerType">
		<annotation>
			<documentation>Layer information for a ForestCoverPolygon.</documentation>
		</annotation>
		<sequence>
			<element name="layerCode" type="mof:AlphaNumeric2"/>
			<element name="crownClosure" type="mof:NonNegativeInteger3D" minOccurs="0"/>
			<element name="totalStems" type="mof:NonNegativeInteger6D" minOccurs="0"/>
			<element name="totalWellSpaced" type="mof:NonNegativeInteger6D" minOccurs="0"/>
			<element name="wellSpaced" type="mof:NonNegativeInteger6D" minOccurs="0"/>
			<element name="freeGrowing" type="mof:NonNegativeInteger6D" minOccurs="0"/>
			<element name="basalArea" type="mof:NonNegativeInteger3D" minOccurs="0"/>
			<element name="treeSpeciesList" type="rst:TreeSpeciesAssociation" minOccurs="0"/>
			<element name="damageAgentList" type="rst:DamageAgentAssociation" minOccurs="0"/>
		</sequence>
	</complexType>
	<complexType name="TreeSpeciesAssociation">
		<annotation>
			<documentation>Composition association to 0 to many TreeSpecies data objects.</documentation>
		</annotation>
		<sequence>
			<element ref="rst:TreeSpecies" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<complexType name="DamageAgentAssociation">
		<annotation>
			<documentation>Composition association to 0 to many Pest data objects.</documentation>
		</annotation>
		<sequence>
			<element ref="rst:DamageAgent" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<!-- ========================= TreeSpecies Data Object ========================================= -->
	<element name="TreeSpecies" type="rst:TreeSpeciesType"/>
	<complexType name="TreeSpeciesType">
		<annotation>
			<documentation>Tree species information relating to a Layer.</documentation>
		</annotation>
		<sequence>
			<element name="speciesCode" type="rst:SpeciesCodeType"/>
			<element name="speciesPercent" type="mof:NonNegativeInteger3D" minOccurs="0"/>
			<element name="averageAge" type="mof:NonNegativeInteger3D" minOccurs="0"/>
			<element name="averageHeight" type="mof:Decimal3D1d" minOccurs="0"/>
		</sequence>
	</complexType>
	<!-- ========================= Pest Data Object ================================================ -->
	<element name="DamageAgent" type="rst:DamageAgentType"/>
	<complexType name="DamageAgentType">
		<annotation>
			<documentation>DamageAgent information relating to a Layer.</documentation>
		</annotation>
		<sequence>
			<element name="damageAgentCode" type="mof:AlphaNumeric3"/>
			<element name="incidencePercent" type="mof:NonNegativeInteger3D" minOccurs="0"/>
			<element name="incidenceArea" type="mof:Decimal6D1d" minOccurs="0"/>
		</sequence>
	</complexType>
	<!-- ========================= MilestoneDeclaration Feature ==================================== -->
	<element name="MilestoneDeclaration" type="rst:MilestoneDeclarationType" substitutionGroup="rst:_OpeningFeature"/>
	<complexType name="MilestoneDeclarationType">
		<annotation>
			<documentation>Milestone information.  Extends gml:AbstractFeatureType so that it may substitute for &lt;_ResultsFeature&gt;.  It has no spatial properties, which is valid for a GML Feature.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractFeatureType">
				<sequence>
					<element ref="rst:standardsUnitID"/>
					<element name="milestoneType" type="mof:AlphaNumeric2"/>
					<element name="declarationDate" type="date"/>
					<element name="comment" type="mof:AlphaNumeric2000" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
</schema>
