<!-- DTD for ecert online batch submission --> 

<!ELEMENT batch_request(
  raise_export_certificate*,
  resubmit_export_certificate*,
  cancel_export_certificate*,
  amend_export_certificate*,
  raise_eligibility_document*,
  resubmit_eligibility_document*,
  exhaust_eligibility_document*,
  exhaust_eligibility_document_products*,
  cancel_eligibility_document*,
  amend_eligibility_document*
)>    
  
<!ELEMENT raise_export_certificate
   (Certificate)>

<!ELEMENT resubmit_export_certificate
   (Certificate)>

<!ELEMENT cancel_export_certificate
   (shoulder_number,
    comment)>

<!ELEMENT amend_export_certificate
   (Certificate)>

<!ELEMENT raise_eligibility_document
   (EligibilityDocument)>

<!ELEMENT resubmit_eligibility_document
   (EligibilityDocument)>

<!ELEMENT exhaust_eligibility_document
   (shoulder_number)>

<!ELEMENT exhaust_eligibility_document_products
   (shoulder_number,
    product_number+)>

<!ELEMENT cancel_eligibility_document
   (shoulder_number,
    comment)>

<!ELEMENT amend_eligibility_document
   (EligibilityDocument)>

<!ELEMENT shoulder_number (#PCDATA)>
<!ELEMENT product_number (#PCDATA)>

<!ELEMENT Certificate 
   (Form?, 
   Status?, 
   ControlTotal*, 
   Issue?, 
   Loading?, 
   Departure?, 
   EstimatedArrival?, 
   ShipStores?, 
   Comment?, 
   OfficalInformation?, 
   Consignee, 
   ImportingCountry, 
   FinalDestination?, 
   Consignor, 
   ExportingCountry?, 
   ThirdParty*, 
   LoadingPort*, 
   TransitCountry*, 
   DischargePort*, 
   InspectionPort?, 
   RelatedDocument*, 
   Title?, 
   Subtitle*, 
   Transport*, 
   Product+, 
   Approval*,
   Dispatch?)>

<!ATTLIST Certificate 
  number CDATA #REQUIRED> 

<!ELEMENT Form (#PCDATA)> 
<!ATTLIST Form 
   code CDATA #REQUIRED> 

<!ELEMENT Status (#PCDATA)> 
<!ATTLIST Status 
   code CDATA #REQUIRED> 

<!ELEMENT ControlTotal (#PCDATA)> 
<!ATTLIST ControlTotal 
   type CDATA #REQUIRED 
   value CDATA #REQUIRED> 
 
<!ELEMENT Issue (Datetime)> 

<!ELEMENT Datetime (#PCDATA)> 
<!ATTLIST Datetime 
   day CDATA #IMPLIED 
   month CDATA #IMPLIED 
   year CDATA #IMPLIED 
   hour CDATA #IMPLIED 
   minute CDATA #IMPLIED 
   second CDATA #IMPLIED> 

<!ELEMENT Loading (Date)> 

<!ELEMENT Date (#PCDATA)> 
<!ATTLIST Date 
   day CDATA #IMPLIED 
   month CDATA #IMPLIED 
   year CDATA #IMPLIED> 

<!ELEMENT Departure (Date)> 

<!ELEMENT EstimatedArrival (Date)> 

<!ELEMENT ShipStores (#PCDATA)> 

<!ELEMENT Comment (#PCDATA)> 
<!ATTLIST Comment 
   language CDATA #IMPLIED>

<!ELEMENT OfficialInformation (#PCDATA)> 
<!ATTLIST OfficialInformation 
   language CDATA #IMPLIED> 

<!ELEMENT Consignee (Name?,Address*,Representative?)> 
<!ATTLIST Consignee 
   identifier CDATA #IMPLIED> 

<!ELEMENT Name (#PCDATA)> 

<!ELEMENT Address (#PCDATA)> 
<!ATTLIST Address 
   type CDATA #IMPLIED 
   lineOne CDATA #IMPLIED 
   lineTwo CDATA #IMPLIED 
   lineThree CDATA #IMPLIED 
   lineFour CDATA #IMPLIED 
   lineFive CDATA #IMPLIED 
   cityName CDATA #IMPLIED 
   city CDATA #IMPLIED 
   postcode CDATA #IMPLIED 
   countrySubdivision CDATA #IMPLIED 
   countryName CDATA #IMPLIED 
   country CDATA #IMPLIED> 

<!ELEMENT Representative (#PCDATA)> 

<!ELEMENT ImportingCountry (Country)> 

<!ELEMENT Country (#PCDATA)> 
<!ATTLIST Country 
   code CDATA #REQUIRED> 
 
<!ELEMENT FinalDestination (#PCDATA)> 
<!ATTLIST FinalDestination 
   code CDATA #IMPLIED> 
 
<!ELEMENT Consignor (Name?,Address*,Representative?)> 
<!ATTLIST Consignor 
   identifier CDATA #IMPLIED> 

<!ELEMENT ExportingCountry (Country, CompetentAuthority?)> 

<!ELEMENT CompetentAuthority (#PCDATA)> 
<!ATTLIST CompetentAuthority 
   code CDATA #IMPLIED> 

<!ELEMENT ThirdParty (Name?,Address*,Representative?)> 
<!ATTLIST ThirdParty 
   identifier CDATA #REQUIRED> 

<!ELEMENT LoadingPort (#PCDATA)> 
<!ATTLIST LoadingPort 
   code CDATA #IMPLIED> 

<!ELEMENT TransitCountry (Country, TransitPoint*)> 

<!ELEMENT TransitPoint (#PCDATA)> 
<!ATTLIST TransitPoint 
   code CDATA #REQUIRED> 

<!ELEMENT DischargePort (#PCDATA)> 
<!ATTLIST DischargePort 
   code CDATA #REQUIRED> 

<!ELEMENT InspectionPort (#PCDATA)> 
<!ATTLIST InspectionPort 
   code CDATA #REQUIRED> 

<!ELEMENT RelatedDocument (Purpose, Type?, Datetime?)> 
<!ATTLIST RelatedDocument 
   number CDATA #REQUIRED>
 
<!ELEMENT Purpose (#PCDATA)> 
<!ATTLIST Purpose 
   code CDATA #REQUIRED> 

<!ELEMENT Type (#PCDATA)> 
<!ATTLIST Type 
   code CDATA #REQUIRED> 

<!ELEMENT Title (Text+)> 

<!ELEMENT Text (#PCDATA)> 
<!ATTLIST Text 
   language CDATA #IMPLIED> 

<!ELEMENT Subtitle (Text+)> 
<!ATTLIST Subtitle 
   code CDATA #IMPLIED>

<!ELEMENT Transport
   (Mode,
   Type?, 
   Craft?, 
   ConveyanceRef?, 
   Carrier?, 
   TransportSeals*)> 

<!ELEMENT Mode (#PCDATA)> 
<!ATTLIST Mode 
   code CDATA #REQUIRED> 

<!ELEMENT Craft (#PCDATA)> 

<!ELEMENT ConveyanceRef (#PCDATA)> 
 
<!ELEMENT Carrier (Name?,Address*,Representative?)> 

<!ELEMENT TransportSeals EMPTY> 
<!ATTLIST TransportSeals 
   start CDATA #REQUIRED 
   end CDATA #REQUIRED> 

<!ELEMENT Product ( 
   Description*, 
   Preparation*, 
   Species*, 
   ScientificName?, 
   IntendedUse?, 
   Marks*, 
   Lot?, 
   Durability?, 
   Comment*, 
   Classification*, 
   OriginSource*, 
   Package*, 
   Weight+, 
   Document*, 
   Container*, 
   Storage?, 
   Processing*, 
   Inspection*)> 
<!ATTLIST Product 
   item CDATA #REQUIRED
   exhaust CDATA #IMPLIED> 

<!ELEMENT Description (#PCDATA)> 
<!ATTLIST Description 
   code CDATA #IMPLIED 
   language CDATA #IMPLIED> 

<!ELEMENT Preparation (#PCDATA)> 
<!ATTLIST Preparation 
   code CDATA #IMPLIED 
   language CDATA #IMPLIED> 

<!ELEMENT Species (#PCDATA)> 
<!ATTLIST Species 
   code CDATA #IMPLIED
   language CDATA #IMPLIED> 

<!ELEMENT ScientificName (#PCDATA)> 

<!ELEMENT IntendedUse (#PCDATA)> 
<!ATTLIST IntendedUse 
   code CDATA #IMPLIED> 

<!ELEMENT Marks (#PCDATA)> 

<!ELEMENT Lot (#PCDATA)> 

<!ELEMENT Durability (Date)> 

<!ELEMENT Classification (Class, Type)> 

<!ELEMENT Class (#PCDATA)> 
<!ATTLIST Class 
   code CDATA #REQUIRED> 

<!ELEMENT OriginSource (#PCDATA)> 
<!ATTLIST OriginSource 
   countryCode CDATA #REQUIRED 
   region CDATA #IMPLIED> 

<!ELEMENT Package (Type, Unit?)> 
<!ATTLIST Package 
   level CDATA #IMPLIED 
   count CDATA #REQUIRED 
   size CDATA #IMPLIED> 

<!ELEMENT Unit (#PCDATA)> 
<!ATTLIST Unit 
   code CDATA #REQUIRED 
   symbol CDATA #IMPLIED> 

<!ELEMENT Weight (Type, Unit)> 
<!ATTLIST Weight 
   value CDATA #REQUIRED> 

<!ELEMENT Document (Purpose?, Type?, Datetime?)> 
<!ATTLIST Document 
   number CDATA #REQUIRED 
   item CDATA #REQUIRED 
   inQuantity CDATA #IMPLIED 
   outQuantity CDATA #REQUIRED> 
 
<!ELEMENT Container EMPTY> 
<!ATTLIST Container 
   number CDATA #IMPLIED 
   seal CDATA #IMPLIED> 

<!ELEMENT Storage (Temperature?)> 

<!ELEMENT Temperature (Unit)> 
<!ATTLIST Temperature 
   value CDATA #REQUIRED> 

<!ELEMENT Processing (
   Type,
   StartDate?,
   EndDate?,
   Characteristic*,
   Locality?,
   Premises?)>
<!ATTLIST Processing 
   dateOverride CDATA #IMPLIED> 
 
<!ELEMENT StartDate (#PCDATA)> 
<!ATTLIST StartDate 
   day CDATA #IMPLIED 
   month CDATA #IMPLIED 
   year CDATA #IMPLIED> 
 
<!ELEMENT EndDate (#PCDATA)> 
<!ATTLIST EndDate 
   day CDATA #IMPLIED 
   month CDATA #IMPLIED 
   year CDATA #IMPLIED> 

<!ELEMENT Characteristic (Type, Unit, Description*)> 
<!ATTLIST Characteristic 
   value  CDATA #REQUIRED> 

<!ELEMENT Locality (#PCDATA)> 
<!ATTLIST Locality 
   code CDATA #IMPLIED 
   partyIdentifier CDATA #IMPLIED 
   type CDATA #REQUIRED> 

<!ELEMENT Premises (Name?,Address*)> 
<!ATTLIST Premises 
   identifier CDATA #IMPLIED> 

<!ELEMENT Inspection (
   Type?,
   Name?, 
   Qualifications?, 
   Registration?, 
   Role?, 
   Location?, 
   Premises?, 
   Datetime?, 
   EndDatetime?, 
   Declaration*)> 

<!ELEMENT Qualifications (#PCDATA)> 

<!ELEMENT Registration (#PCDATA)> 

<!ELEMENT Role (#PCDATA)> 
<!ATTLIST Role 
   code CDATA #IMPLIED> 

<!ELEMENT Location (#PCDATA)> 
<!ATTLIST Location 
   code CDATA #IMPLIED> 

<!ELEMENT EndDatetime (#PCDATA)> 
<!ATTLIST EndDatetime 
   day CDATA #IMPLIED 
   month CDATA #IMPLIED 
   year CDATA #IMPLIED 
   hour CDATA #IMPLIED 
   minute CDATA #IMPLIED 
   second CDATA #IMPLIED> 

<!ELEMENT Declaration (Statement*, Insert*)> 
<!ATTLIST Declaration 
   code CDATA #IMPLIED> 

<!ELEMENT Statement (#PCDATA)> 
<!ATTLIST Statement 
   language CDATA #IMPLIED> 

<!ELEMENT Insert (#PCDATA)> 
<!ATTLIST Insert 
   order CDATA #REQUIRED> 

<!ELEMENT Approval (
   Type?,
   Name?, 
   Qualifications?, 
   Registration?, 
   Role?, 
   Comment?, 
   Location?, 
   Premises?, 
   Datetime?, 
   Enddatetime?, 
   Declaration*)> 
<!ATTLIST Approval 
   form CDATA #IMPLIED> 

<!ELEMENT Dispatch (
   Locality?,
   Method, 
   PickupDetails?, 
   Urgency?, 
   Email?, 
   Datetime?)> 

<!ELEMENT Method (#PCDATA)> 
<!ATTLIST Method 
   code CDATA #IMPLIED> 

<!ELEMENT PickupDetails (#PCDATA)> 

<!ELEMENT Urgency (Unit)> 
<!ATTLIST Urgency 
   value CDATA #IMPLIED> 

<!ELEMENT Email (#PCDATA)> 

<!ELEMENT EligibilityDocument 
   (Form?, 
   Status?, 
   ControlTotal*, 
   Issue?, 
   Loading?, 
   Departure?, 
   EstimatedArrival?, 
   Comment?, 
   Consignee, 
   FinalDestination?, 
   Consignor, 
   ThirdParty*, 
   LoadingPort*, 
   RelatedDocument*, 
   Transport*, 
   Product+, 
   Approval*)>

<!ATTLIST EligibilityDocument 
  number CDATA #REQUIRED 
  exhaustion CDATA #IMPLIED> 

