<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!-- String Type -->
	<xsd:simpleType name="StringType">
		<xsd:annotation>
			<xsd:documentation>Base type for a string</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType>
	<xsd:simpleType name="LocalCodeType">
		<xsd:annotation>
			<xsd:documentation>Local code, 4 numeric values</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[0-9]{4}"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ThreeAlphaIdentifierType">
		<xsd:annotation>
			<xsd:documentation>3 alpha values</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[a-zA-Z]{3}"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="IdentifierTypes">
		<xsd:annotation>
			<xsd:documentation>########AAA</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[0-9]{8}[a-zA-Z]{3}"/>
			<xsd:pattern value="[0-9]{11}"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ZeroOrOneType">
		<xsd:annotation>
			<xsd:documentation>0 or 1 values</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[0-1]{1}"/>
		</xsd:restriction>
	</xsd:simpleType>
	<!-- Date Type in the format of YYYY-MM-DD -->
	<xsd:simpleType name="DateType">
		<xsd:annotation>
			<xsd:documentation>Base type for a date</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:date">
			<xsd:pattern value="[1-9][0-9]{3}\-.*"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="LongIntegerType">
		<xsd:annotation>
			<xsd:documentation>Base type for a long integer. Range of values is: -9,223,372,036,854,775,808 thru 9,223,372,036,854,775,807</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:long"/>
	</xsd:simpleType>
	<xsd:simpleType name="IntegerType">
		<xsd:annotation>
			<xsd:documentation>Base type for a long integer. Range of values is: -9,223,372,036,854,775,808 thru 9,223,372,036,854,775,807</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:int"/>
	</xsd:simpleType>
	<!-- US Currency Type -->
	<xsd:simpleType name="USCurType">
		<xsd:annotation>
			<xsd:documentation>A decimal with  2 fraction digits</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:decimal">
			<xsd:fractionDigits value="2"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="BTCHDRType">
		<xsd:sequence>
			<xsd:element name="BatchID" type="StringType"/>
			<xsd:element name="BatchType" type="StringType"/>
			<xsd:element name="AccountType" type="StringType"/>
			<xsd:element name="BatchSource" type="StringType"/>
			<xsd:element name="PostmarkDate" type="DateType"/>
			<xsd:element name="BatchDate" type="DateType"/>
			<xsd:element name="FilingPeriod" type="DateType"/>
			<xsd:element name="TotalItems" type="IntegerType"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="NGSDTLType">
		<xsd:sequence>
			<xsd:element name="IdentifierType" type="ThreeAlphaIdentifierType"/>
			<xsd:element name="Identifier" type="IdentifierTypes"/>
			<xsd:element name="Amended" type="ZeroOrOneType"/>
			<xsd:element name="FilingPeriod" type="DateType"/>
			<xsd:element name="ReceivedDate" type="DateType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="Name" type="StringType"/>
			<xsd:element name="Line1B" type="IntegerType"/>
			<xsd:element name="Line1C" type="IntegerType"/>
			<xsd:element name="Line1D" type="IntegerType"/>
			<xsd:element name="Line1E" type="IntegerType"/>
			<xsd:element name="Line1F" type="IntegerType"/>
			<xsd:element name="Line1G" type="IntegerType"/>
			<xsd:element name="Line1H" type="IntegerType"/>
			<xsd:element name="Line1Total" type="IntegerType"/>
			<xsd:element name="Line2B" type="IntegerType"/>
			<xsd:element name="Line2C" type="IntegerType"/>
			<xsd:element name="Line2D" type="IntegerType"/>
			<xsd:element name="Line2E" type="IntegerType"/>
			<xsd:element name="Line2F" type="IntegerType"/>
			<xsd:element name="Line2G" type="IntegerType"/>
			<xsd:element name="Line2H" type="IntegerType"/>
			<xsd:element name="Line2Total" type="IntegerType"/>
			<xsd:element name="Line3B" type="IntegerType"/>
			<xsd:element name="Line3C" type="IntegerType"/>
			<xsd:element name="Line3D" type="IntegerType"/>
			<xsd:element name="Line3E" type="IntegerType"/>
			<xsd:element name="Line3F" type="IntegerType"/>
			<xsd:element name="Line3G" type="IntegerType"/>
			<xsd:element name="Line3H" type="IntegerType"/>
			<xsd:element name="Line3Total" type="IntegerType"/>
			<xsd:element name="Line4B" type="IntegerType"/>
			<xsd:element name="Line4C" type="IntegerType"/>
			<xsd:element name="Line4D" type="IntegerType"/>
			<xsd:element name="Line4E" type="IntegerType"/>
			<xsd:element name="Line4F" type="IntegerType"/>
			<xsd:element name="Line4G" type="IntegerType"/>
			<xsd:element name="Line4H" type="IntegerType"/>
			<xsd:element name="Line4Total" type="IntegerType"/>
			<xsd:element name="Line5B" type="IntegerType"/>
			<xsd:element name="Line5C" type="IntegerType"/>
			<xsd:element name="Line5D" type="IntegerType"/>
			<xsd:element name="Line5E" type="IntegerType"/>
			<xsd:element name="Line5F" type="IntegerType"/>
			<xsd:element name="Line5G" type="IntegerType"/>
			<xsd:element name="Line5H" type="IntegerType"/>
			<xsd:element name="Line5Total" type="IntegerType"/>
			<xsd:element name="Line6B" type="IntegerType"/>
			<xsd:element name="Line6C" type="IntegerType"/>
			<xsd:element name="Line6D" type="IntegerType"/>
			<xsd:element name="Line6E" type="IntegerType"/>
			<xsd:element name="Line6F" type="IntegerType"/>
			<xsd:element name="Line6G" type="IntegerType"/>
			<xsd:element name="Line6H" type="IntegerType"/>
			<xsd:element name="Line6Total" type="IntegerType"/>
			<xsd:element name="Line7B" type="IntegerType"/>
			<xsd:element name="Line7C" type="IntegerType"/>
			<xsd:element name="Line7D" type="IntegerType"/>
			<xsd:element name="Line7E" type="IntegerType"/>
			<xsd:element name="Line7F" type="IntegerType"/>
			<xsd:element name="Line7G" type="IntegerType"/>
			<xsd:element name="Line7H" type="IntegerType"/>
			<xsd:element name="Line7Total" type="IntegerType"/>
			<xsd:element name="Line8B" type="IntegerType"/>
			<xsd:element name="Line8C" type="IntegerType"/>
			<xsd:element name="Line8D" type="IntegerType"/>
			<xsd:element name="Line8E" type="IntegerType"/>
			<xsd:element name="Line8F" type="IntegerType"/>
			<xsd:element name="Line8G" type="IntegerType"/>
			<xsd:element name="Line8H" type="IntegerType"/>
			<xsd:element name="Line8Total" type="IntegerType"/>
			<xsd:element name="Line9B" type="USCurType"/>
			<xsd:element name="Line9C" type="USCurType"/>
			<xsd:element name="Line9D" type="USCurType"/>
			<xsd:element name="Line9E" type="USCurType"/>
			<xsd:element name="Line9F" type="USCurType"/>
			<xsd:element name="Line9G" type="USCurType"/>
			<xsd:element name="Line9H" type="USCurType"/>
			<xsd:element name="Line9Total" type="USCurType"/>
			<xsd:element name="Line10B" type="USCurType"/>
			<xsd:element name="Line10C" type="USCurType"/>
			<xsd:element name="Line10D" type="USCurType"/>
			<xsd:element name="Line10E" type="USCurType"/>
			<xsd:element name="Line10F" type="USCurType"/>
			<xsd:element name="Line10G" type="USCurType"/>
			<xsd:element name="Line10H" type="USCurType"/>
			<xsd:element name="Line10Total" type="USCurType"/>
			<xsd:element name="Line11B" type="USCurType"/>
			<xsd:element name="Line11C" type="USCurType"/>
			<xsd:element name="Line11D" type="USCurType"/>
			<xsd:element name="Line11E" type="USCurType"/>
			<xsd:element name="Line11F" type="USCurType"/>
			<xsd:element name="Line11G" type="USCurType"/>
			<xsd:element name="Line11H" type="USCurType"/>
			<xsd:element name="Line11Total" type="USCurType"/>
			<xsd:element name="Line12B" type="USCurType"/>
			<xsd:element name="Line12C" type="USCurType"/>
			<xsd:element name="Line12D" type="USCurType"/>
			<xsd:element name="Line12E" type="USCurType"/>
			<xsd:element name="Line12F" type="USCurType"/>
			<xsd:element name="Line12G" type="USCurType"/>
			<xsd:element name="Line12H" type="USCurType"/>
			<xsd:element name="Line12Total" type="USCurType"/>
			<xsd:element name="Line13B" type="USCurType"/>
			<xsd:element name="Line13C" type="USCurType"/>
			<xsd:element name="Line13D" type="USCurType"/>
			<xsd:element name="Line13E" type="USCurType"/>
			<xsd:element name="Line13F" type="USCurType"/>
			<xsd:element name="Line13G" type="USCurType"/>
			<xsd:element name="Line13H" type="USCurType"/>
			<xsd:element name="Line13Total" type="USCurType"/>
			<xsd:element name="Line15B" type="USCurType"/>
			<xsd:element name="Line15C" type="USCurType"/>
			<xsd:element name="Line15D" type="USCurType"/>
			<xsd:element name="Line15E" type="USCurType"/>
			<xsd:element name="Line15F" type="USCurType"/>
			<xsd:element name="Line15G" type="USCurType"/>
			<xsd:element name="Line15H" type="USCurType"/>
			<xsd:element name="NetSeveranceTaxDue" type="USCurType"/>
			<xsd:element name="TotalMcfByOperatorProd" type="IntegerType"/>
			<xsd:element name="TotalMcfByOtherNonOper" type="IntegerType"/>
			<xsd:element name="NetMcfByOperatorProd" type="IntegerType"/>
			<xsd:element name="TotalMcfByThisNonOper" type="IntegerType"/>
			<xsd:element name="TotalMcfSoldByThisOper" type="IntegerType"/>
			<xsd:element name="TotalMcfSold" type="IntegerType"/>
			<xsd:element name="TotalValueSold" type="USCurType"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="MT180SType">
		<xsd:sequence>
			<xsd:element name="WellPeriod" type="DateType"/>
			<xsd:element name="WellPermitNumber" type="StringType"/>
			<xsd:element name="WellName" type="StringType"/>
			<xsd:element name="TotalMcfByOperatorProducer" type="IntegerType"/>
			<xsd:element name="TotalMcfByOtherNonOperatorProd" type="IntegerType"/>
			<xsd:element name="NetMcfByOperatorProducer" type="IntegerType"/>
			<xsd:element name="TotalMcfByThisNonOperatorProd" type="IntegerType"/>
			<xsd:element name="TotalMcfSoldByThisOperatorProd" type="IntegerType"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="RTN18SType">
		<xsd:sequence>
			<xsd:element name="MT180S" type="MT180SType" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="MT178Type">
		<xsd:sequence>
			<xsd:element name="FirstPurchaserPeriod" type="DateType"/>
			<xsd:element name="FirstPurchaserAccountID" type="StringType"/>
			<xsd:element name="FirstPurchaserName" type="StringType"/>
			<xsd:element name="FirstPurchaserStreet" type="StringType"/>
			<xsd:element name="FirstPurchaserCity" type="StringType"/>
			<xsd:element name="FirstPurchaserState" type="StringType"/>
			<xsd:element name="FirstPurchaserZip" type="StringType"/>
			<xsd:element name="TotalMcfSold" type="IntegerType"/>
			<xsd:element name="TotalValueSold" type="USCurType"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="RTN178Type">
		<xsd:sequence>
			<xsd:element name="MT178" type="MT178Type" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="NGSReturnType">
		<xsd:sequence>
			<xsd:element name="NGSDTL" type="NGSDTLType"/>
			<xsd:element name="RTN18S" type="RTN18SType" minOccurs="0"/>
			<xsd:element name="RTN178" type="RTN178Type" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="RtnFile">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="BTCHDR" type="BTCHDRType" minOccurs="0" maxOccurs="0"/>
				<xsd:element name="NGSReturn" type="NGSReturnType" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>
