<?xml version="1.0" encoding="UTF-8"?>
<!-- Harvest Billing System: Billing History Request Schema - Version 3 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="gov.bc.ca/forests/hbs/v2" targetNamespace="gov.bc.ca/forests/hbs/v2" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
  <xs:element name="hbs-request">
    <xs:annotation>
      <xs:documentation>Billing History Request</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="xml-mbh-request-header">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="mbh-request-id">
                <xs:simpleType>
                  <xs:restriction base="xs:decimal">
                    <xs:totalDigits value="12"/>
                    <xs:fractionDigits value="0"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="datetime-created">
                <xs:simpleType>
                  <xs:restriction base="xs:dateTime">
									</xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="doc-count">
                <xs:simpleType>
                  <xs:restriction base="xs:decimal">
                    <xs:totalDigits value="6"/>
                    <xs:fractionDigits value="0"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requestor-email" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="128"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requestor-relationship" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="8"/>
                    <xs:enumeration value="Industry"/>
                    <xs:enumeration value="Ministry"/>
                    <xs:enumeration value="Public"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requestor-client" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="8"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requestor-client-location" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="2"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-from-billing-year">
                <xs:simpleType>
                  <xs:restriction base="xs:decimal">
                    <xs:totalDigits value="4"/>
                    <xs:fractionDigits value="0"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-from-billing-month">
                <xs:simpleType>
                  <xs:restriction base="xs:decimal">
                    <xs:totalDigits value="2"/>
                    <xs:fractionDigits value="0"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-to-billing-year">
                <xs:simpleType>
                  <xs:restriction base="xs:decimal">
                    <xs:totalDigits value="4"/>
                    <xs:fractionDigits value="0"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-to-billing-month">
                <xs:simpleType>
                  <xs:restriction base="xs:decimal">
                    <xs:totalDigits value="2"/>
                    <xs:fractionDigits value="0"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-region-district-harvested">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="50"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-mark-holder-client-number" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="8"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-mark-holder-client-location" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="2"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-file-type" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="40"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-mgmt-unit-type" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="30"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-mgmt-unit-id" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="4"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-forest-file-id" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="10"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-timber-mark" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="90"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-species">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="20"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-product">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="30"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-grade">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="50"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="requested-billing-type">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="30"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="fine-print" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="2048"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="mark-monthly-billing-history" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="mbh-request-id">
                <xs:simpleType>
                  <xs:restriction base="xs:decimal">
                    <xs:totalDigits value="12"/>
                    <xs:fractionDigits value="0"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="billing-year">
                <xs:simpleType>
                  <xs:restriction base="xs:decimal">
                    <xs:totalDigits value="4"/>
                    <xs:fractionDigits value="0"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="billing-month">
                <xs:simpleType>
                  <xs:restriction base="xs:decimal">
                    <xs:totalDigits value="2"/>
                    <xs:fractionDigits value="0"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="billing-type">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:length value="2"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="timber-mark">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="6"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="species-code">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="2"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="product-code">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="2"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="grade-code">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:length value="1"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="total-amount-billed">
                <xs:simpleType>
                  <xs:restriction base="xs:decimal">
                    <xs:totalDigits value="15"/>
                    <xs:fractionDigits value="2"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="total-volume-billed">
                <xs:simpleType>
                  <xs:restriction base="xs:decimal">
                    <xs:totalDigits value="15"/>
                    <xs:fractionDigits value="3"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="billing-type-description">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="120"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="species-description">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="120"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="product-description">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="120"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="grade-description">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="120"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="region-harvested-code">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="2"/>
                    <xs:maxLength value="4"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="region-harvested-description">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="120"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="district-harvested-code">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="2"/>
                    <xs:maxLength value="4"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="district-harvested-description">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="120"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="forest-file-id">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="10"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="file-type-code">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="3"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="file-type-description">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="120"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="mgmt-unit-type-code" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:length value="1"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="mgmt-unit-type-description" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="120"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="mgmt-unit-id" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="4"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="mark-holder-client-type-code">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:length value="1"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="mark-holder-client-type-description">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="120"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="mark-holder-client-number">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:length value="8"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="mark-holder-client-name">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="120"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="mark-holder-client-location-code">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:length value="2"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="mark-holder-client-location-name" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="120"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

