<xsd:schema targetNamespace="http://www.irs.gov/efile" xmlns="http://www.irs.gov/efile"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<xsd:annotation>
<xsd:documentation>
<Description>IRS e-file 94x Schema - Content models for the transmission header, origin headers, base return header and acknowledgement</Description>
<Version>Release 2.11</Version>
<ReleaseDate>October 14, 2010</ReleaseDate>
</xsd:documentation>
</xsd:annotation>
<xsd:include schemaLocation="../efileTypes.xsd" />
<!-- ================================== -->
<!-- ===== TRANSMISSION HEADER AND TYPE ===== -->
<!-- ================================== -->
<xsd:element name="TransmissionHeader" type="TransmissionHeaderType" />
<xsd:complexType name="TransmissionHeaderType">
<xsd:sequence>
<xsd:element name="TransmissionId" type="IdType">
<xsd:annotation>
<xsd:documentation>Use a unique, for you and your system, value that will identify the transmission</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Timestamp" type="TimestampType">
<xsd:annotation>
<xsd:documentation>The time stamp at the time of transmission</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Transmitter">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ETIN" type="ETINType">
<xsd:annotation>
<xsd:documentation>The ETIN of the transmitter</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ProcessType">
<xsd:simpleType>
<xsd:restriction base="StringType">
<xsd:enumeration value="T">
<xsd:annotation>
<xsd:documentation>Test</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="P">
<xsd:annotation>
<xsd:documentation>Production</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="TransmissionManifest">
<xsd:annotation>
<xsd:documentation>A list of the origin headers in the transmission</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="OriginHeaderReference" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="originId" type="IdType" use="required">
<xsd:annotation>
<xsd:documentation>The value of the originId attribute must match the OriginId of this origin. Must be unique within the transmission. Use a unique, for you and your system, value that will identify the grouping of items batched under the Origin.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="originHeaderCount" type="IntegerPosType" use="required">
<xsd:annotation>
<xsd:documentation>The number of origin headers in this transmission</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ================================== -->
<!-- ===== ORIGIN HEADERS ===== -->
<!-- ================================== -->
<xsd:element name="OriginHeaders">
<xsd:annotation>
<xsd:documentation>Contains the PINRegistrationOriginHeader or contains the ReturnOriginHeader</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:choice>
<xsd:annotation>
<xsd:documentation>PIN Registrations and Tax Return Submissions may not be mixed in the same transmission</xsd:documentation>
</xsd:annotation>
<xsd:element ref="ReturnOriginHeader" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Indicates return origin header(s) are transmitted</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element ref="PINRegistrationOriginHeader" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Indicates PIN registration(s) are transmitted</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- ============================= -->
<!-- ===== ORIGIN HEADER AND TYPE ===== -->
<!-- ============================= -->
<xsd:element name="OriginHeader" type="OriginHeaderType" />
<xsd:complexType name="OriginHeaderType">
<xsd:sequence>
<xsd:element name="OriginId" type="IdType">
<xsd:annotation>
<xsd:documentation>Must be unique within the transmission file</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Timestamp" type="TimestampType">
<xsd:annotation>
<xsd:documentation>The time stamp at the time the origin was created</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="OriginManifest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ItemReference" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="contentLocation" use="required">
<xsd:annotation>
<xsd:documentation>There must be a one for one match between the following three items in a transmission: the contentLocation attribute, the value of MIME Content-Location: line, and the ContentLocation</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:anyURI">
<xsd:pattern value="[A-Za-z0-9:.\-]{1,30}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="itemCount" type="IntegerPosType" use="required">
<xsd:annotation>
<xsd:documentation>The number of items in this origin</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ============================================ -->
<!-- PINRegistration OriginHeader and PINRegistration OriginHeader Type -->
<!-- ============================================ -->
<xsd:element name="PINRegistrationOriginHeader" type="PINRegistrationOriginHeaderType" />
<xsd:complexType name="PINRegistrationOriginHeaderType">
<xsd:complexContent>
<xsd:extension base="OriginHeaderType">
<xsd:sequence>
<xsd:element name="Originator">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="EFIN" type="EFINType" />
<xsd:element name="Type" type="OriginatorType" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ================================== -->
<!-- Return Origin Header and Return Origin Header Type -->
<!-- ================================== -->
<xsd:element name="ReturnOriginHeader" type="ReturnOriginHeaderType" />
<xsd:complexType name="ReturnOriginHeaderType">
<xsd:complexContent>
<xsd:extension base="OriginHeaderType">
<xsd:sequence>
<xsd:element name="Originator">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="EFIN" type="EFINType" />
<xsd:element name="Type" type="OriginatorType" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ReportingAgentSignature" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
<Description>Use only if you are approved by the IRS to sign for all the Returns referenced by this ReturnOriginHeader Manifest</Description>
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="PIN" type="PINType" />
<xsd:element name="ETIN" type="ETINType" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ISPNumber" type="SBINType" minOccurs="0" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ======================= -->
<!-- ===== ACTION AND TYPE ===== -->
<!-- ======================= -->
<xsd:element name="Action" type="ActionType" />
<xsd:complexType name="ActionType" />
<!-- ======= -->
<!-- ItemType -->
<!-- ======= -->
<xsd:complexType name="ItemType">
<xsd:sequence>
<xsd:element name="ContentLocation" type="IdType">
<xsd:annotation>
<xsd:documentation>Must be unique within the transmission file and must match the value on the MIME Content-Location: line</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- =============== -->
<!-- Return Header Type -->
<!-- =============== -->
<xsd:complexType name="ReturnHeaderType">
<xsd:sequence>
<xsd:element name="ElectronicPostmark" type="TimestampType" minOccurs="0" />
<xsd:element name="TaxPeriodEndDate" type="DateType" />
<xsd:element name="DisasterRelief" type="LineExplanationType" minOccurs="0" />
<xsd:element name="ISPNumber" type="SBINType" minOccurs="0" />
<xsd:element name="PreparerFirm" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Paid Preparers: A paid preparer must provide the information requested in the Paid preparer’s use only section: PreparerFirm structure, if the preparer was paid to prepare the Return and is not an employee of the filing entity. The preparer must give you a copy of the return in addition to the copy to be filed with the IRS. Do not complete the Paid Preparer’s Use Only section if you are filing the return as a reporting agent and have a valid Form 8655, Reporting Agent Authorization, on file with the IRS.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="EIN" type="EINType" />
<xsd:element name="BusinessName1" type="BusinessName1Type" />
<xsd:element name="BusinessName2" type="BusinessName2Type" minOccurs="0" />
<xsd:element name="Address1" type="StreetAddressType" />
<xsd:element name="Address2" type="StreetAddressType" minOccurs="0" />
<xsd:element name="City" type="CityType" />
<xsd:element name="State" type="StateType" />
<xsd:element name="ZIPCode" type="ZIPCodeType" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ========================================== -->
<!-- ===== TRANSMISSION ACKNOWLEDGEMENT AND TYPE ===== -->
<!-- ========================================== -->
<!-- ==================== -->
<!-- Acknowledgement Action Type -->
<!-- ==================== -->
<xsd:element name="AcknowledgementAction" type="AcknowledgementActionType" />
<xsd:complexType name="AcknowledgementActionType">
<xsd:complexContent>
<xsd:extension base="ActionType">
<xsd:sequence>
<xsd:element name="Acknowledgement" type="AcknowledgementType" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- =============== -->
<!-- Acknowledgement Type -->
<!-- =============== -->
<xsd:complexType name="AcknowledgementType">
<xsd:sequence>
<xsd:element name="AcknowledgementId" type="IdType" minOccurs="0" />
<xsd:element name="AcknowledgementTimestamp" type="TimestampType" />
<xsd:element name="TransmissionAcknowledgement" type="TransmissionAcknowledgementType" />
</xsd:sequence>
</xsd:complexType>
<!-- ======================== -->
<!-- TransmissionAcknowledgement Type -->
<!-- ======================== -->
<xsd:complexType name="TransmissionAcknowledgementType">
<xsd:sequence>
<xsd:element name="TransmissionId" type="IdType" />
<xsd:element name="TransmissionTimestamp" type="TimestampType" />
<xsd:element name="TransmissionStatus" type="StatusType" />
<!-- Process Type -->
<xsd:element name="ProcessType" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="StringType">
<xsd:enumeration value="T">
<xsd:annotation>
<xsd:documentation>Test</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="P">
<xsd:annotation>
<xsd:documentation>Production</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element ref="Errors" minOccurs="0" />
<xsd:element name="OriginAcknowledgement" type="OriginAcknowledgementType" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<!-- =================== -->
<!-- OriginAcknowledgement Type -->
<!-- =================== -->
<xsd:complexType name="OriginAcknowledgementType">
<xsd:sequence>
<xsd:element name="OriginId" type="IdType" />
<xsd:element name="OriginTimestamp" type="TimestampType" />
<xsd:element name="OriginStatus" type="StatusType" />
<xsd:element ref="Errors" minOccurs="0" />
<xsd:element name="ItemAcknowledgement" type="ItemAcknowledgementType" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<!-- =================== -->
<!-- ItemAcknowledgement Type -->
<!-- =================== -->
<xsd:complexType name="ItemAcknowledgementType">
<xsd:sequence>
<xsd:element name="OrigTransContentLocation" type="IdType" >
<xsd:annotation>
<xsd:documentation>The value on the MIME Content-Location: line of the original transmission</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="EIN" type="EINType" />
<xsd:element name="ReturnType" type="StringType"/>
<xsd:element name="ItemStatus" type="StatusType" />
<xsd:element name="PaymentIndicator" type="PaymentIndicatorType" minOccurs="0" />
<xsd:element ref="Errors" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
<!-- Status Type-->
<xsd:simpleType name="StatusType">
<xsd:restriction base="StringType">
<xsd:enumeration value="A">
<xsd:annotation>
<xsd:documentation>Accepted</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="R">
<xsd:annotation>
<xsd:documentation>Rejected</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<!-- Payment Indicator Type -->
<xsd:simpleType name="PaymentIndicatorType">
<xsd:restriction base="StringType">
<xsd:enumeration value="Payment Request Received" />
</xsd:restriction>
</xsd:simpleType>
<!-- Errors -->
<xsd:element name="Errors">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Error" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="XPath" type="StringType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>The XPath expression indicating the full path from the root to the error element or attribute</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ErrorCode" type="StringType" />
<xsd:element name="ErrorMessage" type="StringType" />
</xsd:sequence>
<xsd:attribute name="errorId" use="required">
<xsd:simpleType>
<xsd:restriction base="IntegerPosType">
<xsd:totalDigits value="6" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="errorCount" type="IntegerNNType" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
|