<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.state.gov/export/forms"
	xmlns="http://www.state.gov/export/forms"
	xmlns:exp="http://www.state.gov/export/forms"
	xmlns:ifs="http://northropgrumman.com/inflowsuite/submission"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
	xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
	jaxb:extensionBindingPrefixes="xjc"
	elementFormDefault="qualified">

<!--
****************************************************************************************************
   
     
  	D-TRADE DSP-74 FORM XML SCHEMA DEFINITION
	VERSION 4.0
	CORRESPONDING FORM VERSION: 4.0

	Revision History 01/10/2009
	
	1. Now the Schema version number is the same as the corresponding pureEdge form version number.
	2. Added element USMLCategory
		
****************************************************************************************************

   D-TRADE DSP-74 FORM XML SCHEMA DEFINITION
	VERSION 1.1

	Revision History 12/12/2006
	
	1. Added element DTCCompliance
	2. Added element ComplianceDisclosureNumber
	3. Updated ApplicantStatementCertificationType with two new restrictions

****************************************************************************************************

	D-TRADE DSP-74 FORM XML SCHEMA DEFINITION
	VERSION 1.1
	Correspoonds to DSP-74 form version 1.1

	Revision History
	
	09/14/2006
	1. Changed "ApprovalLetterDate" to "AcknowledgementLetterDate"
	2. Removed "DeleteForeignFreightForwarder" for block 16 ModificationType
	3. Removed "DeleteUSConsigneeFreightForwarder" from ModificationUSConsignorType element restriction
	4. Increased the maxOccurs of the "SummaryOfAmendment" element to 13.
****************************************************************************************************
****************************************************************************************************

	INITIAL VERSION: 2/27/2006

****************************************************************************************************

-->

	<xsd:annotation>
		<xsd:documentation>
			This is the schema for the DSP-74 Version 1.1.  It imports the common.schema.xsd.

			Definitions are in alphabetical order with the exception of the DSP74 complex type
			and element definition are last.
		</xsd:documentation>
	</xsd:annotation>

	<xsd:annotation>
		<xsd:documentation>
			(C)Northrop Grumman Corporation. 2005. All rights reserved.  No part of this
			copyrighted work may be reproduced, modified or distributed in
			any form or by any means or stored in any database or retrieval system,
			without the prior written permission of Northrop Grumman Corporation.
			Violation of copyright carries civil and criminal penalties.
		</xsd:documentation>
	</xsd:annotation>


	<!-- Import the common schema, defining common data elements across different form types -->
	<xsd:import namespace="http://northropgrumman.com/inflowsuite/submission" schemaLocation="../../common/common.schema.xsd"/>


	<!-- field type definitions -->
	
	<xsd:simpleType name="AdditionalDetailsType">
		<xsd:annotation>
			<xsd:documentation>
				Additional information that may useful in reviewing the transaction.
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="1000"/>
			<xsd:minLength value="1"/>
		</xsd:restriction>
	</xsd:simpleType>	
	
	<xsd:simpleType name="ComplianceDisclosureNumberType">
		<xsd:annotation>
			<xsd:documentation>
				The Compliance Disclosure field on the form.  The format is ##-#######, where the first two digits before the dash
				are supposed to be a year. 
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="\d{2}-\d{7}"/>
		</xsd:restriction>
	</xsd:simpleType>		

	<xsd:simpleType name="AmendmentCFRType">
		<xsd:annotation>
			<xsd:documentation>
				Defines an applicatant statememt certification type.
				Allowable values are restricted to '22 CFR 123.25' and '22 CFR 122.4'.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="22 CFR 123.25|22 CFR 122.4"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="AmendmentSummaryType">
		<xsd:annotation>
			<xsd:documentation>
				Collection of one or more amendment types to the DSP-5 license that the applicant wishes to make.
			</xsd:documentation>
		</xsd:annotation>		
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="AcknowledgementLetter|ApplicantCode|ApplicantSubsidiary|CommodityQuantity|CommodityDescription|CommodityValue|Manufacturer|ForeignIntermediateConsignee|Source|TemporaryForeignConsignee|ConsignorFreightForwarder|TemporaryForeignEndUser|AircraftOrVesselCommander|TotalCommodityValue"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:complexType name="AmendForeignLocationType">
		<xsd:annotation>
			<xsd:documentation>
				Definition of a foreign location
			</xsd:documentation>		
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="OriginalName" type="ifs:NameType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="OriginalStreetAddress" type="ifs:AddressType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="OriginalCity" type="ifs:CityType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="OriginalCountryCode" type="ifs:ForeignCountryCodeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewName" type="ifs:NameType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewStreetAddress" type="ifs:AddressType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewCity" type="ifs:CityType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewCountryCode" type="ifs:ForeignCountryCodeType" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>	

	<xsd:complexType name="AmendSourceType">
		<xsd:annotation>
			<xsd:documentation>
				Defines a Source/Manufacturer type.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ReasonForChange" type="exp:ReasonForChangeType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="OriginalName" type="ifs:NameType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="OriginalStreetAddress" type="ifs:AddressType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="OriginalCity" type="ifs:CityType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="OriginalStateCode" type="ifs:StateCodeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="OriginalPostalCode" type="ifs:PostalCodeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="OriginalCountryCode" type="ifs:CountryCodeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewName" type="ifs:NameType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewStreetAddress" type="ifs:AddressType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewCity" type="ifs:CityType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewStateCode" type="ifs:StateCodeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewPostalCode" type="ifs:PostalCodeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewCountryCode" type="ifs:CountryCodeType" minOccurs="0" maxOccurs="1"/>			
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="AmendUSLocationType">
		<xsd:annotation>
			<xsd:documentation>
				Defines an U.S. location type.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ReasonForChange" type="exp:ReasonForChangeType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="OriginalName" type="ifs:NameType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="OriginalStreetAddress" type="ifs:AddressType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="OriginalCity" type="ifs:CityType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="OriginalStateCode" type="ifs:StateCodeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="OriginalPostalCode" type="ifs:PostalCodeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewName" type="ifs:NameType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewStreetAddress" type="ifs:AddressType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewCity" type="ifs:CityType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewStateCode" type="ifs:StateCodeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewPostalCode" type="ifs:PostalCodeType" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>	
	
	<xsd:complexType name="ApplicantContactType">
		<xsd:annotation>
			<xsd:documentation>
				Defines an application contact (name, phone, extension).
				SequenceNumber must be unique across all ApplicantContactType entries.
				This is currently not enforced via unique constraints in the schema, but is enforced by the software (duplicate SequenceNumber values will cause an error).
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="SequenceNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="Name" type="ifs:ShortNameType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="PhoneNumber" type="ifs:PhoneNumberType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="Extension" type="ifs:ExtensionType" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>	

	<xsd:simpleType name="ApplicantStatementCertificationType">
		<xsd:annotation>
			<xsd:documentation>
				Defines an applicatant statememt certification type.
				Allowable values are restricted to 'AuthEligible' for authorized eligible, 'AuthNotEligible' for authorized not eligible, 'AuthNotEligibleException' or 'NotAuthEligible', or 'NotAuthNotEligible'or 'NotAuthNotEligibleException'
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="AuthEligible|AuthNotEligible|AuthNotEligibleException|NotAuthEligible|NotAuthNotEligible|NotAuthNotEligibleException"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:complexType name="ChangeApplicantSubsidiaryType">
		<xsd:annotation>
			<xsd:documentation>
				Groups values to change an Applicant or Subsidiary.
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:complexContent>
			<xsd:extension base="AmendUSLocationType">
				<xsd:sequence>
					<xsd:element name="SequenceNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>	
					<xsd:element name="OriginalAttention" type="ifs:AttentionType" minOccurs="0" maxOccurs="1"/>
					<xsd:element name="NewAttention" type="ifs:AttentionType" minOccurs="0" maxOccurs="1"/>								
					<xsd:element name="ModificationType" type="exp:ModificationApplicantType" minOccurs="1" maxOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="ChangeAircraftOrVesselType">
		<xsd:annotation>
			<xsd:documentation>
				Groups values to change an aircraft or vessel information.
			</xsd:documentation>
		</xsd:annotation>		
		<xsd:sequence>
			<xsd:element name="SequenceNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="ModificationType" type="exp:ModificationAircraftOrVesselType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="ReasonForChange" type="exp:ReasonForChangeType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="AircraftOrVesselItemNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="RegistrationNumber" type="exp:LongDescriptionType" minOccurs="1" maxOccurs="1"/>	
			<xsd:element name="CommanderLineItemNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>	
			<xsd:element name="CommanderName" type="ifs:NameType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="OperatorLicenseNumber" type="exp:OperatorLicenseNumberType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="StreetAddress" type="ifs:AddressType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="City" type="ifs:CityType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="StateCode" type="ifs:StateCodeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="PostalCode" type="ifs:PostalCodeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="CountryCode" type="ifs:CountryCodeType" minOccurs="1" maxOccurs="1"/>			
			<xsd:element name="PhoneNumber" type="ifs:PhoneNumberType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="Extension" type="ifs:ExtensionType" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>		
	
	<xsd:complexType name="ChangeCommodityDescriptionType">
		<xsd:annotation>
			<xsd:documentation>
				Groups values to change a commodity description.
			</xsd:documentation>
		</xsd:annotation>		
		<xsd:sequence>
			<xsd:element name="SequenceNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="ChangePartNumber" type="ifs:BooleanType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="CorrectTypo" type="ifs:BooleanType" minOccurs="1" maxOccurs="1"/>			
			<xsd:element name="ReasonForChange" type="exp:ReasonForChangeType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="OriginalLineItemNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="OriginalCommodityDescription" type="ifs:CommmodityDescriptionType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="NewLineItemNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="NewCommodityDescription" type="ifs:CommmodityDescriptionType" minOccurs="1" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>	
	
	<xsd:complexType name="ChangeCommodityQuantityValueType">
		<xsd:annotation>
			<xsd:documentation>
				Groups values to change the commodity quantity or values.
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:sequence>
			<xsd:element name="SequenceNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="CorrectQuantity" type="ifs:BooleanType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="CorrectValue" type="ifs:BooleanType" minOccurs="1" maxOccurs="1"/>			
			<xsd:element name="ReasonForChange" type="exp:ReasonForChangeType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="OriginalLineItemNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="OriginalQuantity" type="ifs:IntegerType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="OriginalUnitPrice" type="ifs:DecimalType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="OriginalMonetaryValue" type="ifs:IntegerType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="OriginalUnitOfMeasure" type="ifs:UnitOfMeasureType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="NewLineItemNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="NewQuantity" type="ifs:IntegerType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewUnitPrice" type="ifs:DecimalType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewMonetaryValue" type="ifs:IntegerType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="NewUnitOfMeasure" type="ifs:UnitOfMeasureType" minOccurs="1" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="ChangeForeignIntermediateConsigneeType">
		<xsd:annotation>
			<xsd:documentation>
				Groups values to change a foreign intermediate consignee.
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:complexContent>
			<xsd:extension base="AmendForeignLocationType">
				<xsd:sequence>
					<xsd:element name="SequenceNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>	
					<xsd:element name="ReasonForChange" type="exp:ReasonForChangeType" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="ModificationType" type="exp:ModificationForeignIntermediateConsigneeType" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="Type" type="exp:ForeignIntermediateConsigneeTypeType" minOccurs="1" maxOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>		
	
	<xsd:complexType name="ChangeManufacturerType">
		<xsd:annotation>
			<xsd:documentation>
				Groups values to change a manufacturer.
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:complexContent>
			<xsd:extension base="AmendSourceType">
				<xsd:sequence>
					<xsd:element name="SequenceNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>				
					<xsd:element name="ModificationType" type="exp:ModificationManufacturerType" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="Type" type="exp:ManufacturerTypeType" minOccurs="1" maxOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="ChangeSourceType">
		<xsd:annotation>
			<xsd:documentation>
				Groups values to change a source.
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:complexContent>
			<xsd:extension base="AmendSourceType">
				<xsd:sequence>
					<xsd:element name="SequenceNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>				
					<xsd:element name="ModificationType" type="exp:ModificationSourceType" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="Type" type="exp:SourceTypeType" minOccurs="1" maxOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>	
	
	<xsd:complexType name="ChangeTemporaryForeignConsigneeType">
		<xsd:annotation>
			<xsd:documentation>
				Groups values to change a temporary foreign consignee.
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:complexContent>
			<xsd:extension base="AmendForeignLocationType">
				<xsd:sequence>
					<xsd:element name="SequenceNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>	
					<xsd:element name="ModificationType" type="exp:ModificationTemporaryForeignConsigneeType" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="NameChange" type="ifs:BooleanType" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="LocationChange" type="ifs:BooleanType" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="CompletedAmendment" type="exp:CompletedAmendmentType" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="Type" type="exp:TemporaryForeignConsigneeTypeType" minOccurs="1" maxOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>		
	
	<xsd:complexType name="ChangeTemporaryForeignEndUserType">
		<xsd:annotation>
			<xsd:documentation>
				Groups values to change a temporary foreign end user.
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:complexContent>
			<xsd:extension base="AmendForeignLocationType">
				<xsd:sequence>
					<xsd:element name="SequenceNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>	
					<xsd:element name="ModificationType" type="exp:ModificationTemporaryForeignEndUserType" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="ReasonForChange" type="exp:ReasonForChangeType" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="Type" type="exp:TemporaryForeignEndUserTypeType" minOccurs="1" maxOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>			
	
	<xsd:complexType name="ChangeUSConsignorType">
		<xsd:annotation>
			<xsd:documentation>
				Groups values to change an US Consignor.
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:complexContent>
			<xsd:extension base="AmendUSLocationType">
				<xsd:sequence>
					<xsd:element name="SequenceNumber" type="ifs:SequenceNumberType" minOccurs="1" maxOccurs="1"/>				
					<xsd:element name="ModificationType" type="exp:ModificationUSConsignorType" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="Type" type="exp:ConsignorTypeType" minOccurs="1" maxOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>				
	
	<xsd:simpleType name="CompletedAmendmentType">
		<xsd:annotation>
			<xsd:documentation>
				A collection of choices to determine compliance requirements  with Part 124.
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="Yes|No|Not Applicable"/>
		</xsd:restriction>
	</xsd:simpleType>	
	
	<xsd:simpleType name="ComplianceCaseNumberType">
		<xsd:annotation>
			<xsd:documentation>
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="10"/>
			<xsd:minLength value="1"/>
		</xsd:restriction>
	</xsd:simpleType>	

	<xsd:simpleType name="ConsignorTypeType">
		<xsd:annotation>
			<xsd:documentation>
				Fixed-value element used to identify an entity as a consignor.  Value must equal "Consignor".
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="Consignor"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="DSP74ApplicantType">
		<xsd:annotation>
			<xsd:documentation>
				Defines an applicant type.
				Allowable values are formatted either 4 or 5 digit numbers prefixed by upper or lower case letter (either M, B, F, or G).
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="(M-[0-9][0-9][0-9][0-9])|(B-[0-9][0-9][0-9][0-9])|(F-[0-9][0-9][0-9][0-9])|(G-[0-9][0-9][0-9][0-9])|(M[0-9][0-9][0-9][0-9][0-9])|(B[0-9][0-9][0-9][0-9][0-9])|(F[0-9][0-9][0-9][0-9][0-9])|(G[0-9][0-9][0-9][0-9][0-9])|(m-[0-9][0-9][0-9][0-9])|(f-[0-9][0-9][0-9][0-9])|(g-[0-9][0-9][0-9][0-9])|(m[0-9][0-9][0-9][0-9][0-9])|(b[0-9][0-9][0-9][0-9][0-9])|(f[0-9][0-9][0-9][0-9][0-9])|(g[0-9][0-9][0-9][0-9][0-9])"/>
		</xsd:restriction>
	</xsd:simpleType>	
	
	<xsd:simpleType name="ForeignIntermediateConsigneeTypeType">
		<xsd:annotation>
			<xsd:documentation>
				Fixed-value element used to identify an entity as an intermediate consignee.  Value must equal "IntermediateConsignee".
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="IntermediateConsignee"/>
		</xsd:restriction>
	</xsd:simpleType>	
	
 	<xsd:simpleType name="LongDescriptionType">
		<xsd:annotation>
			<xsd:documentation>
				Defines a description for lengths up to 100 characters.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="100"/>
			<xsd:minLength value="1"/>
		</xsd:restriction>
	</xsd:simpleType>	

	<xsd:simpleType name="ManufacturerTypeType">
		<xsd:annotation>
			<xsd:documentation>
				Fixed-value element used to identify an entity as a manufacturer.  Value must equal "Manufacturer".
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="Manufacturer"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="ModificationAircraftOrVesselType">
		<xsd:annotation>
			<xsd:documentation>
				Collection of of modifications that can be made for an aircraft or vessel
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="AddCommander|DeleteCommander"/>
		</xsd:restriction>
	</xsd:simpleType>	
	
	<xsd:simpleType name="ModificationApplicantType">
		<xsd:annotation>
			<xsd:documentation>
				Collection of eight types of modifications that can be made for applicant/subsidiary.
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="ApplicantName|ApplicantAddress|ApplicantNameAddress|AddSubsidiary|DeleteSubsidiary|SubsidiaryName|SubsidiaryAddress|SubsidiaryNameAddress"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="ModificationForeignIntermediateConsigneeType">
		<xsd:annotation>
			<xsd:documentation>
				License amendments modifications for changes in   Foreign Intermediate Consignee (DSP-5, license Block 18).
			</xsd:documentation>
		</xsd:annotation>		
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="AddForeignFreightForwarder|ForeignFreightForwarderName|ForeignFreightForwarderAddress|ForeignFreightForwarderNameAddress"/>
		</xsd:restriction>
	</xsd:simpleType>	
	
	<xsd:simpleType name="ModificationManufacturerType">
		<xsd:annotation>
			<xsd:documentation>
				License amendments modifications for changes in Manufacturer of Commodity (DSP-5 License, Block 15).
			</xsd:documentation>
		</xsd:annotation>		
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="AddManufacturer|DeleteManufacturer|ManufacturerName|ManufacturerAddress|ManufacturerNameAddress"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="ModificationSourceType">
		<xsd:annotation>
			<xsd:documentation>
				License amendments modifications for changes in  Source of Commodity (DSP-5 license, Block 17).
			</xsd:documentation>
		</xsd:annotation>		
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="AddSource|DeleteSource|SourceName|SourceAddress|SourceNameAddress"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="ModificationTemporaryForeignConsigneeType">
		<xsd:annotation>
			<xsd:documentation>
				License amendments modifications for changes in Original Temporary Foreign Consignees (DSP-5, license Block 16).
			</xsd:documentation>
		</xsd:annotation>		
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="TemporaryForeignConsigneeName|TemporaryForeignConsigneeAddress|TemporaryForeignConsigneeNameAddress"/>
		</xsd:restriction>
	</xsd:simpleType>	
	
	<xsd:simpleType name="ModificationTemporaryForeignEndUserType">
		<xsd:annotation>
			<xsd:documentation>
				License amendments modifications for changes in Original Temporary Foreign End Users  (DSP-5, license Block 16).
			</xsd:documentation>
		</xsd:annotation>		
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="TemporaryForeignEndUserName|TemporaryForeignEndUserAddress|TemporaryForeignEndUserNameAddress"/>
		</xsd:restriction>
	</xsd:simpleType>		
	
	<xsd:simpleType name="ModificationUSConsignorType">
		<xsd:annotation>
			<xsd:documentation>
				Collection of 5  types of modifications that can be made for U.S. Consignor and/or U.S. Freight Forwarder (DSP-5 license, Block 21).
			</xsd:documentation>
		</xsd:annotation>		
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="AddUSConsigneeFreightForwarder|USConsigneeFreightForwarderName|USConsigneeFreightForwarderAddress|USConsigneeFreightForwarderNameAddress"/>
		</xsd:restriction>
	</xsd:simpleType>	
	
 	<xsd:simpleType name="OperatorLicenseNumberType">
		<xsd:annotation>
			<xsd:documentation>
				Defines a description for lengths up to 126 characters.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="126"/>
			<xsd:minLength value="1"/>
		</xsd:restriction>
	</xsd:simpleType>		
	
	<xsd:simpleType name="ReasonForChangeType">
		<xsd:annotation>
			<xsd:documentation>
				Defines the a reason for change
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="500"/>
			<xsd:minLength value="1"/>
		</xsd:restriction>
	</xsd:simpleType>		

	<xsd:simpleType name="SourceTypeType">
		<xsd:annotation>
			<xsd:documentation>
				Fixed-value element used to identify an entity as a source.  Value must equal "Source".
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="Source"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:complexType name="SummaryOfAmendmentType">
		<xsd:annotation>
			<xsd:documentation>
				Groups elements for the summary of amendments
			</xsd:documentation>
		</xsd:annotation>	
		<xsd:sequence>
			<xsd:element name="AmendmentSummary" type="exp:AmendmentSummaryType" minOccurs="1" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>	
	
	<xsd:simpleType name="TemporaryForeignConsigneeTypeType">
		<xsd:annotation>
			<xsd:documentation>
				Fixed-value element used to identify an entity as a temporary foreign consignee.  Value must equal "TempForeignConsignee".
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="TempForeignConsignee"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="TemporaryForeignEndUserTypeType">
		<xsd:annotation>
			<xsd:documentation>
				Fixed-value element used to identify an entity as a temporary foreign end user.  Value must equal "TempForeignEndUser".
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="TempForeignEndUser"/>
		</xsd:restriction>
	</xsd:simpleType>		

	<xsd:simpleType name="TransactionIDType">
		<xsd:annotation>
			<xsd:documentation>
				Defines a transaction id type - unique identifier used for tracking purposes by external system submitting the case.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="40"/>
			<xsd:minLength value="1"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="USMLCategoryType">
		<xsd:annotation>
			<xsd:documentation>
				Defines a USML category type.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="I|II|III|IV|V|VI|VII|VIII|IX|X|XI|XII|XIII|XIV|XV|XVI|XVII|XVIII|XX|XXI"/>
		</xsd:restriction>
	</xsd:simpleType>	

	<xsd:complexType name="DSP74Type">
		<xsd:annotation>
			<xsd:documentation>
				Defines a DSP-74 form type.
				Corresponding Block number from the paper and electronic forms are included for clarification purposes.
				The field sequence is organized to be consistent with the paper form.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<!-- Cover Letter Fields -->
			<xsd:element name="TransactionID" type="exp:TransactionIDType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="ClassifiedInformation" type="ifs:BooleanType" minOccurs="1" maxOccurs="1"/>
			<!-- Block 1 Fields -->
			<xsd:element name="PreparedDate" type="ifs:DateType" minOccurs="1" maxOccurs="1"/>
			<!-- Block 2 Fields -->
			<xsd:element name="ApplicantID" type="exp:DSP74ApplicantType" minOccurs="1" maxOccurs="1"/>
			<!-- Block 3 Fields -->
			<xsd:element name="ApplicantName" type="ifs:NameType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="ApplicantAttention" type="ifs:AttentionType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="ApplicantStreetAddress" type="ifs:AddressType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="ApplicantCity" type="ifs:CityType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="ApplicantStateCode" type="ifs:StateCodeType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="ApplicantPostalCode" type="ifs:PostalCodeType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="ApplicantPhoneNumber" type="ifs:PhoneNumberType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="ApplicantExtension" type="ifs:ExtensionType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="HasSubsidiary" type="ifs:BooleanType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="SubsidiaryName" type="ifs:NameType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="SubsidiaryAttention" type="ifs:AttentionType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="SubsidiaryStreetAddress" type="ifs:AddressType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="SubsidiaryCity" type="ifs:CityType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="SubsidiaryStateCode" type="ifs:StateCodeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="SubsidiaryPostalCode" type="ifs:PostalCodeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="SubsidiaryPhoneNumber" type="ifs:PhoneNumberType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="SubsidiaryExtension" type="ifs:ExtensionType" minOccurs="0" maxOccurs="1"/>			
			<!-- Block 4 Fields -->
			<xsd:element name="AmendmentLicenseNumber" type="ifs:LicenseNumberType" minOccurs="1" maxOccurs="1"/>
			<!-- Block 5 Fields -->
			<xsd:element name="AmendmentCFR" type="exp:AmendmentCFRType" minOccurs="1" maxOccurs="1"/>			
			<!-- Block 6 Fields -->
			<xsd:element name="ComplianceCaseNumber" type="exp:ComplianceCaseNumberType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="AcknowledgementLetterDate" type="ifs:DateType" minOccurs="0" maxOccurs="1"/>
			<!-- Block 7 Fields -->
			<xsd:element name="ApplicantContact" type="exp:ApplicantContactType" minOccurs="0" maxOccurs="unbounded"/>
			<!-- Block 8 Fields -->			
			<xsd:element name="SummaryOfAmendment" type="exp:SummaryOfAmendmentType" minOccurs="1" maxOccurs="13"/>			
			<!-- Block 9 Fields -->
			<xsd:element name="ApplicantIDReasonForChange" type="exp:ReasonForChangeType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="OriginalApplicantCode" type="exp:DSP74ApplicantType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="NewApplicantCode" type="exp:DSP74ApplicantType" minOccurs="0" maxOccurs="1"/>
			<!-- Block 10 Fields -->
			<xsd:element name="ChangeApplicantSubsidiary" type="exp:ChangeApplicantSubsidiaryType" minOccurs="0" maxOccurs="3"/>
			<!-- Block 11 Fields -->
			<xsd:element name="ChangeCommodityDescription" type="exp:ChangeCommodityDescriptionType" minOccurs="0" maxOccurs="unbounded"/>			
			<!-- Block 12 Fields -->
			<xsd:element name="ChangeCommodityQuantityValue" type="exp:ChangeCommodityQuantityValueType" minOccurs="0" maxOccurs="unbounded"/>
			<!-- Block 13 Fields -->
			<xsd:element name="OriginalTotalMonetaryValue" type="ifs:IntegerType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="RevisedTotalMonetaryValue" type="ifs:IntegerType" minOccurs="0" maxOccurs="1"/>	
			<!-- Block 14 Fields -->
			<xsd:element name="ChangeManufacturer" type="exp:ChangeManufacturerType" minOccurs="0" maxOccurs="unbounded"/>			
			<!-- Block 15 Fields -->
			<xsd:element name="ChangeSource" type="exp:ChangeSourceType" minOccurs="0" maxOccurs="unbounded"/>			
			<!-- Block 16 Fields -->
			<xsd:element name="ChangeForeignIntermediateConsignee" type="ChangeForeignIntermediateConsigneeType" minOccurs="0" maxOccurs="unbounded"/>
			<!-- Block 17 Fields -->
			<xsd:element name="ChangeTemporaryForeignConsignee" type="exp:ChangeTemporaryForeignConsigneeType" minOccurs="0" maxOccurs="unbounded"/>			
			<!-- Block 18 Fields -->			
			<xsd:element name="ChangeUSConsignor" type="ChangeUSConsignorType" minOccurs="0" maxOccurs="unbounded"/>									
			<!-- Block 19 Fields -->
			<xsd:element name="ChangeTemporaryForeignEndUser" type="exp:ChangeTemporaryForeignEndUserType" minOccurs="0" maxOccurs="unbounded"/>						
			<!-- Block 20 Fields -->
			<xsd:element name="ChangeAircraftOrVessel" type="exp:ChangeAircraftOrVesselType" minOccurs="0" maxOccurs="unbounded"/>									
			<!--Block 21 Fields -->			
			<xsd:element name="AdditionalDetails" type="exp:AdditionalDetailsType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="DTCCompliance" type="ifs:YesNoType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="ComplianceDisclosureNumber" type="exp:ComplianceDisclosureNumberType" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="USMLCategory" type="exp:USMLCategoryType" minOccurs="1" maxOccurs="1"/>
			<!-- Block 22 Fields -->
			<xsd:element name="ApplicantStatementCertification" type="exp:ApplicantStatementCertificationType" minOccurs="1" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>

	<!-- Definition of the DSP74 -->
	<xsd:element name="DSP74" type="exp:DSP74Type"/>
</xsd:schema>
