gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libeufin] branch master updated: Add Pain validation to tests.


From: gnunet
Subject: [libeufin] branch master updated: Add Pain validation to tests.
Date: Tue, 07 Jul 2020 18:15:10 +0200

This is an automated email from the git hooks/post-receive script.

ms pushed a commit to branch master
in repository libeufin.

The following commit(s) were added to refs/heads/master by this push:
     new 92dcf07  Add Pain validation to tests.
92dcf07 is described below

commit 92dcf07c794da7cd5d6e39c4033d7c78d7c9f052
Author: MS <ms@taler.net>
AuthorDate: Tue Jul 7 18:14:55 2020 +0200

    Add Pain validation to tests.
---
 nexus/src/test/kotlin/PainTest.kt               |  32 +
 sandbox/src/test/kotlin/CamtTest.kt             |   2 +-
 util/src/main/kotlin/XMLUtil.kt                 |   3 +-
 util/src/main/resources/xsd/pain.001.001.03.xsd | 922 ++++++++++++++++++++++++
 4 files changed, 957 insertions(+), 2 deletions(-)

diff --git a/nexus/src/test/kotlin/PainTest.kt 
b/nexus/src/test/kotlin/PainTest.kt
new file mode 100644
index 0000000..4e4b85b
--- /dev/null
+++ b/nexus/src/test/kotlin/PainTest.kt
@@ -0,0 +1,32 @@
+import ch.qos.logback.core.joran.spi.XMLUtil
+import org.junit.Test
+import tech.libeufin.nexus.iso20022.NexusPaymentInitiationData
+import tech.libeufin.nexus.iso20022.createPain001document
+import kotlin.test.assertTrue
+
+class PainTest {
+
+    @Test
+    fun validationTest() {
+        val xml = createPain001document(
+            NexusPaymentInitiationData(
+                debtorIban = "GB33BUKB20201222222222",
+                debtorBic = "BUKBGB33",
+                debtorName = "Oliver Smith",
+                currency = "EUR",
+                amount = "1",
+                creditorIban = "GB33BUKB20201222222222",
+                creditorName = "Oliver Smith",
+                messageId = "message id",
+                paymentInformationId = "payment information id",
+                preparationTimestamp = 0,
+                subject = "subject",
+                instructionId = "instruction id",
+                endToEndId = "end to end id"
+            )
+        )
+        assertTrue {
+            tech.libeufin.util.XMLUtil.validateFromString(xml)
+        }
+    }
+}
\ No newline at end of file
diff --git a/sandbox/src/test/kotlin/CamtTest.kt 
b/sandbox/src/test/kotlin/CamtTest.kt
index b2f34a8..c04c6b3 100644
--- a/sandbox/src/test/kotlin/CamtTest.kt
+++ b/sandbox/src/test/kotlin/CamtTest.kt
@@ -7,7 +7,7 @@ import kotlin.test.assertTrue
 class CamtTest {
 
     @Test
-    fun camtTest() {
+    fun validationTest() {
         val payment = RawPayment(
             creditorIban = "GB33BUKB20201222222222",
             creditorName = "Oliver Smith",
diff --git a/util/src/main/kotlin/XMLUtil.kt b/util/src/main/kotlin/XMLUtil.kt
index 816571f..e738538 100644
--- a/util/src/main/kotlin/XMLUtil.kt
+++ b/util/src/main/kotlin/XMLUtil.kt
@@ -158,7 +158,8 @@ class XMLUtil private constructor() {
                 "xsd/ebics_hev.xsd",
                 "xsd/camt.052.001.02.xsd",
                 "xsd/camt.053.001.02.xsd",
-                "xsd/camt.054.001.02.xsd"
+                "xsd/camt.054.001.02.xsd",
+                "xsd/pain.001.001.03.xsd"
             ).map {
                 val stream =
                     classLoader.getResourceAsStream(it) ?: throw 
FileNotFoundException("Schema file $it not found.")
diff --git a/util/src/main/resources/xsd/pain.001.001.03.xsd 
b/util/src/main/resources/xsd/pain.001.001.03.xsd
new file mode 100644
index 0000000..96a3ef2
--- /dev/null
+++ b/util/src/main/resources/xsd/pain.001.001.03.xsd
@@ -0,0 +1,922 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- edited with XMLSpy v2011 rel. 3 sp1 (x64) (http://www.altova.com) by 
Antero Mäenpää (XMLdation.com Oy) -->
+<!--Generated by SWIFTStandards Workstation (build:R6.1.0.2) on 2009 Jan 08 
17:30:53-->
+<xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
targetNamespace="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" 
elementFormDefault="qualified">
+       <xs:element name="Document" type="Document"/>
+       <xs:complexType name="AccountIdentification4Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="IBAN" 
type="IBAN2007Identifier"/>
+                               <xs:element name="Othr" 
type="GenericAccountIdentification1"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="AccountSchemeName1Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" 
type="ExternalAccountIdentification1Code"/>
+                               <xs:element name="Prtry" type="Max35Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
+               <xs:restriction base="xs:decimal">
+                       <xs:minInclusive value="0"/>
+                       <xs:fractionDigits value="5"/>
+                       <xs:totalDigits value="18"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="ActiveOrHistoricCurrencyAndAmount">
+               <xs:simpleContent>
+                       <xs:extension 
base="ActiveOrHistoricCurrencyAndAmount_SimpleType">
+                               <xs:attribute name="Ccy" 
type="ActiveOrHistoricCurrencyCode" use="required"/>
+                       </xs:extension>
+               </xs:simpleContent>
+       </xs:complexType>
+       <xs:simpleType name="ActiveOrHistoricCurrencyCode">
+               <xs:restriction base="xs:string">
+                       <xs:pattern value="[A-Z]{3,3}"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="AddressType2Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="ADDR"/>
+                       <xs:enumeration value="PBOX"/>
+                       <xs:enumeration value="HOME"/>
+                       <xs:enumeration value="BIZZ"/>
+                       <xs:enumeration value="MLTO"/>
+                       <xs:enumeration value="DLVY"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="AmountType3Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="InstdAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
+                               <xs:element name="EqvtAmt" 
type="EquivalentAmount2"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="AnyBICIdentifier">
+               <xs:restriction base="xs:string">
+                       <xs:pattern 
value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="Authorisation1Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" 
type="Authorisation1Code"/>
+                               <xs:element name="Prtry" type="Max128Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="Authorisation1Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="AUTH"/>
+                       <xs:enumeration value="FDET"/>
+                       <xs:enumeration value="FSUM"/>
+                       <xs:enumeration value="ILEV"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="BICIdentifier">
+               <xs:restriction base="xs:string">
+                       <xs:pattern 
value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="BaseOneRate">
+               <xs:restriction base="xs:decimal">
+                       <xs:fractionDigits value="10"/>
+                       <xs:totalDigits value="11"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="BatchBookingIndicator">
+               <xs:restriction base="xs:boolean"/>
+       </xs:simpleType>
+       <xs:complexType name="BranchAndFinancialInstitutionIdentification4">
+               <xs:sequence>
+                       <xs:element name="FinInstnId" 
type="FinancialInstitutionIdentification7"/>
+                       <xs:element name="BrnchId" type="BranchData2" 
minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="BranchData2">
+               <xs:sequence>
+                       <xs:element name="Id" type="Max35Text" minOccurs="0"/>
+                       <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
+                       <xs:element name="PstlAdr" type="PostalAddress6" 
minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="CashAccount16">
+               <xs:sequence>
+                       <xs:element name="Id" 
type="AccountIdentification4Choice"/>
+                       <xs:element name="Tp" type="CashAccountType2" 
minOccurs="0"/>
+                       <xs:element name="Ccy" 
type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
+                       <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="CashAccountType2">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" 
type="CashAccountType4Code"/>
+                               <xs:element name="Prtry" type="Max35Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="CashAccountType4Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="CASH"/>
+                       <xs:enumeration value="CHAR"/>
+                       <xs:enumeration value="COMM"/>
+                       <xs:enumeration value="TAXE"/>
+                       <xs:enumeration value="CISH"/>
+                       <xs:enumeration value="TRAS"/>
+                       <xs:enumeration value="SACC"/>
+                       <xs:enumeration value="CACC"/>
+                       <xs:enumeration value="SVGS"/>
+                       <xs:enumeration value="ONDP"/>
+                       <xs:enumeration value="MGLD"/>
+                       <xs:enumeration value="NREX"/>
+                       <xs:enumeration value="MOMA"/>
+                       <xs:enumeration value="LOAN"/>
+                       <xs:enumeration value="SLRY"/>
+                       <xs:enumeration value="ODFT"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="CategoryPurpose1Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" 
type="ExternalCategoryPurpose1Code"/>
+                               <xs:element name="Prtry" type="Max35Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="ChargeBearerType1Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="DEBT"/>
+                       <xs:enumeration value="CRED"/>
+                       <xs:enumeration value="SHAR"/>
+                       <xs:enumeration value="SLEV"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="Cheque6">
+               <xs:sequence>
+                       <xs:element name="ChqTp" type="ChequeType2Code" 
minOccurs="0"/>
+                       <xs:element name="ChqNb" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="ChqFr" type="NameAndAddress10" 
minOccurs="0"/>
+                       <xs:element name="DlvryMtd" 
type="ChequeDeliveryMethod1Choice" minOccurs="0"/>
+                       <xs:element name="DlvrTo" type="NameAndAddress10" 
minOccurs="0"/>
+                       <xs:element name="InstrPrty" type="Priority2Code" 
minOccurs="0"/>
+                       <xs:element name="ChqMtrtyDt" type="ISODate" 
minOccurs="0"/>
+                       <xs:element name="FrmsCd" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="MemoFld" type="Max35Text" 
minOccurs="0" maxOccurs="2"/>
+                       <xs:element name="RgnlClrZone" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="PrtLctn" type="Max35Text" 
minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="ChequeDelivery1Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="MLDB"/>
+                       <xs:enumeration value="MLCD"/>
+                       <xs:enumeration value="MLFA"/>
+                       <xs:enumeration value="CRDB"/>
+                       <xs:enumeration value="CRCD"/>
+                       <xs:enumeration value="CRFA"/>
+                       <xs:enumeration value="PUDB"/>
+                       <xs:enumeration value="PUCD"/>
+                       <xs:enumeration value="PUFA"/>
+                       <xs:enumeration value="RGDB"/>
+                       <xs:enumeration value="RGCD"/>
+                       <xs:enumeration value="RGFA"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="ChequeDeliveryMethod1Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" 
type="ChequeDelivery1Code"/>
+                               <xs:element name="Prtry" type="Max35Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="ChequeType2Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="CCHQ"/>
+                       <xs:enumeration value="CCCH"/>
+                       <xs:enumeration value="BCHQ"/>
+                       <xs:enumeration value="DRFT"/>
+                       <xs:enumeration value="ELDR"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="ClearingSystemIdentification2Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" 
type="ExternalClearingSystemIdentification1Code"/>
+                               <xs:element name="Prtry" type="Max35Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="ClearingSystemMemberIdentification2">
+               <xs:sequence>
+                       <xs:element name="ClrSysId" 
type="ClearingSystemIdentification2Choice" minOccurs="0"/>
+                       <xs:element name="MmbId" type="Max35Text"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="ContactDetails2">
+               <xs:sequence>
+                       <xs:element name="NmPrfx" type="NamePrefix1Code" 
minOccurs="0"/>
+                       <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
+                       <xs:element name="PhneNb" type="PhoneNumber" 
minOccurs="0"/>
+                       <xs:element name="MobNb" type="PhoneNumber" 
minOccurs="0"/>
+                       <xs:element name="FaxNb" type="PhoneNumber" 
minOccurs="0"/>
+                       <xs:element name="EmailAdr" type="Max2048Text" 
minOccurs="0"/>
+                       <xs:element name="Othr" type="Max35Text" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="CountryCode">
+               <xs:restriction base="xs:string">
+                       <xs:pattern value="[A-Z]{2,2}"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="CreditDebitCode">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="CRDT"/>
+                       <xs:enumeration value="DBIT"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="CreditTransferTransactionInformation10">
+               <xs:sequence>
+                       <xs:element name="PmtId" type="PaymentIdentification1"/>
+                       <xs:element name="PmtTpInf" 
type="PaymentTypeInformation19" minOccurs="0"/>
+                       <xs:element name="Amt" type="AmountType3Choice"/>
+                       <xs:element name="XchgRateInf" 
type="ExchangeRateInformation1" minOccurs="0"/>
+                       <xs:element name="ChrgBr" type="ChargeBearerType1Code" 
minOccurs="0"/>
+                       <xs:element name="ChqInstr" type="Cheque6" 
minOccurs="0"/>
+                       <xs:element name="UltmtDbtr" 
type="PartyIdentification32" minOccurs="0"/>
+                       <xs:element name="IntrmyAgt1" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
+                       <xs:element name="IntrmyAgt1Acct" type="CashAccount16" 
minOccurs="0"/>
+                       <xs:element name="IntrmyAgt2" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
+                       <xs:element name="IntrmyAgt2Acct" type="CashAccount16" 
minOccurs="0"/>
+                       <xs:element name="IntrmyAgt3" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
+                       <xs:element name="IntrmyAgt3Acct" type="CashAccount16" 
minOccurs="0"/>
+                       <xs:element name="CdtrAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
+                       <xs:element name="CdtrAgtAcct" type="CashAccount16" 
minOccurs="0"/>
+                       <xs:element name="Cdtr" type="PartyIdentification32" 
minOccurs="0"/>
+                       <xs:element name="CdtrAcct" type="CashAccount16" 
minOccurs="0"/>
+                       <xs:element name="UltmtCdtr" 
type="PartyIdentification32" minOccurs="0"/>
+                       <xs:element name="InstrForCdtrAgt" 
type="InstructionForCreditorAgent1" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="InstrForDbtrAgt" type="Max140Text" 
minOccurs="0"/>
+                       <xs:element name="Purp" type="Purpose2Choice" 
minOccurs="0"/>
+                       <xs:element name="RgltryRptg" 
type="RegulatoryReporting3" minOccurs="0" maxOccurs="10"/>
+                       <xs:element name="Tax" type="TaxInformation3" 
minOccurs="0"/>
+                       <xs:element name="RltdRmtInf" 
type="RemittanceLocation2" minOccurs="0" maxOccurs="10"/>
+                       <xs:element name="RmtInf" type="RemittanceInformation5" 
minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="CreditorReferenceInformation2">
+               <xs:sequence>
+                       <xs:element name="Tp" type="CreditorReferenceType2" 
minOccurs="0"/>
+                       <xs:element name="Ref" type="Max35Text" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="CreditorReferenceType1Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" type="DocumentType3Code"/>
+                               <xs:element name="Prtry" type="Max35Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="CreditorReferenceType2">
+               <xs:sequence>
+                       <xs:element name="CdOrPrtry" 
type="CreditorReferenceType1Choice"/>
+                       <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="CustomerCreditTransferInitiationV03">
+               <xs:sequence>
+                       <xs:element name="GrpHdr" type="GroupHeader32"/>
+                       <xs:element name="PmtInf" 
type="PaymentInstructionInformation3" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="DateAndPlaceOfBirth">
+               <xs:sequence>
+                       <xs:element name="BirthDt" type="ISODate"/>
+                       <xs:element name="PrvcOfBirth" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="CityOfBirth" type="Max35Text"/>
+                       <xs:element name="CtryOfBirth" type="CountryCode"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="DatePeriodDetails">
+               <xs:sequence>
+                       <xs:element name="FrDt" type="ISODate"/>
+                       <xs:element name="ToDt" type="ISODate"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="DecimalNumber">
+               <xs:restriction base="xs:decimal">
+                       <xs:fractionDigits value="17"/>
+                       <xs:totalDigits value="18"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="Document">
+               <xs:sequence>
+                       <xs:element name="CstmrCdtTrfInitn" 
type="CustomerCreditTransferInitiationV03"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="DocumentAdjustment1">
+               <xs:sequence>
+                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
+                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
+                       <xs:element name="Rsn" type="Max4Text" minOccurs="0"/>
+                       <xs:element name="AddtlInf" type="Max140Text" 
minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="DocumentType3Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="RADM"/>
+                       <xs:enumeration value="RPIN"/>
+                       <xs:enumeration value="FXDR"/>
+                       <xs:enumeration value="DISP"/>
+                       <xs:enumeration value="PUOR"/>
+                       <xs:enumeration value="SCOR"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="DocumentType5Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="MSIN"/>
+                       <xs:enumeration value="CNFA"/>
+                       <xs:enumeration value="DNFA"/>
+                       <xs:enumeration value="CINV"/>
+                       <xs:enumeration value="CREN"/>
+                       <xs:enumeration value="DEBN"/>
+                       <xs:enumeration value="HIRI"/>
+                       <xs:enumeration value="SBIN"/>
+                       <xs:enumeration value="CMCN"/>
+                       <xs:enumeration value="SOAC"/>
+                       <xs:enumeration value="DISP"/>
+                       <xs:enumeration value="BOLD"/>
+                       <xs:enumeration value="VCHR"/>
+                       <xs:enumeration value="AROI"/>
+                       <xs:enumeration value="TSUT"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="EquivalentAmount2">
+               <xs:sequence>
+                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
+                       <xs:element name="CcyOfTrf" 
type="ActiveOrHistoricCurrencyCode"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="ExchangeRateInformation1">
+               <xs:sequence>
+                       <xs:element name="XchgRate" type="BaseOneRate" 
minOccurs="0"/>
+                       <xs:element name="RateTp" type="ExchangeRateType1Code" 
minOccurs="0"/>
+                       <xs:element name="CtrctId" type="Max35Text" 
minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="ExchangeRateType1Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="SPOT"/>
+                       <xs:enumeration value="SALE"/>
+                       <xs:enumeration value="AGRD"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="ExternalAccountIdentification1Code">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="4"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="ExternalCategoryPurpose1Code">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="4"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="ExternalClearingSystemIdentification1Code">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="5"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="ExternalFinancialInstitutionIdentification1Code">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="4"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="ExternalLocalInstrument1Code">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="35"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="ExternalOrganisationIdentification1Code">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="4"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="ExternalPersonIdentification1Code">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="4"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="ExternalPurpose1Code">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="4"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="ExternalServiceLevel1Code">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="4"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="FinancialIdentificationSchemeName1Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" 
type="ExternalFinancialInstitutionIdentification1Code"/>
+                               <xs:element name="Prtry" type="Max35Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="FinancialInstitutionIdentification7">
+               <xs:sequence>
+                       <xs:element name="BIC" type="BICIdentifier" 
minOccurs="0"/>
+                       <xs:element name="ClrSysMmbId" 
type="ClearingSystemMemberIdentification2" minOccurs="0"/>
+                       <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
+                       <xs:element name="PstlAdr" type="PostalAddress6" 
minOccurs="0"/>
+                       <xs:element name="Othr" 
type="GenericFinancialIdentification1" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="GenericAccountIdentification1">
+               <xs:sequence>
+                       <xs:element name="Id" type="Max34Text"/>
+                       <xs:element name="SchmeNm" 
type="AccountSchemeName1Choice" minOccurs="0"/>
+                       <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="GenericFinancialIdentification1">
+               <xs:sequence>
+                       <xs:element name="Id" type="Max35Text"/>
+                       <xs:element name="SchmeNm" 
type="FinancialIdentificationSchemeName1Choice" minOccurs="0"/>
+                       <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="GenericOrganisationIdentification1">
+               <xs:sequence>
+                       <xs:element name="Id" type="Max35Text"/>
+                       <xs:element name="SchmeNm" 
type="OrganisationIdentificationSchemeName1Choice" minOccurs="0"/>
+                       <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="GenericPersonIdentification1">
+               <xs:sequence>
+                       <xs:element name="Id" type="Max35Text"/>
+                       <xs:element name="SchmeNm" 
type="PersonIdentificationSchemeName1Choice" minOccurs="0"/>
+                       <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="GroupHeader32">
+               <xs:sequence>
+                       <xs:element name="MsgId" type="Max35Text"/>
+                       <xs:element name="CreDtTm" type="ISODateTime"/>
+                       <xs:element name="Authstn" type="Authorisation1Choice" 
minOccurs="0" maxOccurs="2"/>
+                       <xs:element name="NbOfTxs" type="Max15NumericText"/>
+                       <xs:element name="CtrlSum" type="DecimalNumber" 
minOccurs="0"/>
+                       <xs:element name="InitgPty" 
type="PartyIdentification32"/>
+                       <xs:element name="FwdgAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="IBAN2007Identifier">
+               <xs:restriction base="xs:string">
+                       <xs:pattern 
value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="ISODate">
+               <xs:restriction base="xs:date"/>
+       </xs:simpleType>
+       <xs:simpleType name="ISODateTime">
+               <xs:restriction base="xs:dateTime"/>
+       </xs:simpleType>
+       <xs:simpleType name="Instruction3Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="CHQB"/>
+                       <xs:enumeration value="HOLD"/>
+                       <xs:enumeration value="PHOB"/>
+                       <xs:enumeration value="TELB"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="InstructionForCreditorAgent1">
+               <xs:sequence>
+                       <xs:element name="Cd" type="Instruction3Code" 
minOccurs="0"/>
+                       <xs:element name="InstrInf" type="Max140Text" 
minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="LocalInstrument2Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" 
type="ExternalLocalInstrument1Code"/>
+                               <xs:element name="Prtry" type="Max35Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="Max10Text">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="10"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="Max128Text">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="128"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="Max140Text">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="140"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="Max15NumericText">
+               <xs:restriction base="xs:string">
+                       <xs:pattern value="[0-9]{1,15}"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="Max16Text">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="16"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="Max2048Text">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="2048"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="Max34Text">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="34"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="Max35Text">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="35"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="Max4Text">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="4"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="Max70Text">
+               <xs:restriction base="xs:string">
+                       <xs:minLength value="1"/>
+                       <xs:maxLength value="70"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="NameAndAddress10">
+               <xs:sequence>
+                       <xs:element name="Nm" type="Max140Text"/>
+                       <xs:element name="Adr" type="PostalAddress6"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="NamePrefix1Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="DOCT"/>
+                       <xs:enumeration value="MIST"/>
+                       <xs:enumeration value="MISS"/>
+                       <xs:enumeration value="MADM"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="Number">
+               <xs:restriction base="xs:decimal">
+                       <xs:fractionDigits value="0"/>
+                       <xs:totalDigits value="18"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="OrganisationIdentification4">
+               <xs:sequence>
+                       <xs:element name="BICOrBEI" type="AnyBICIdentifier" 
minOccurs="0"/>
+                       <xs:element name="Othr" 
type="GenericOrganisationIdentification1" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" 
type="ExternalOrganisationIdentification1Code"/>
+                               <xs:element name="Prtry" type="Max35Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="Party6Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="OrgId" 
type="OrganisationIdentification4"/>
+                               <xs:element name="PrvtId" 
type="PersonIdentification5"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="PartyIdentification32">
+               <xs:sequence>
+                       <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
+                       <xs:element name="PstlAdr" type="PostalAddress6" 
minOccurs="0"/>
+                       <xs:element name="Id" type="Party6Choice" 
minOccurs="0"/>
+                       <xs:element name="CtryOfRes" type="CountryCode" 
minOccurs="0"/>
+                       <xs:element name="CtctDtls" type="ContactDetails2" 
minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="PaymentIdentification1">
+               <xs:sequence>
+                       <xs:element name="InstrId" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="EndToEndId" type="Max35Text"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="PaymentInstructionInformation3">
+               <xs:sequence>
+                       <xs:element name="PmtInfId" type="Max35Text"/>
+                       <xs:element name="PmtMtd" type="PaymentMethod3Code"/>
+                       <xs:element name="BtchBookg" 
type="BatchBookingIndicator" minOccurs="0"/>
+                       <xs:element name="NbOfTxs" type="Max15NumericText" 
minOccurs="0"/>
+                       <xs:element name="CtrlSum" type="DecimalNumber" 
minOccurs="0"/>
+                       <xs:element name="PmtTpInf" 
type="PaymentTypeInformation19" minOccurs="0"/>
+                       <xs:element name="ReqdExctnDt" type="ISODate"/>
+                       <xs:element name="PoolgAdjstmntDt" type="ISODate" 
minOccurs="0"/>
+                       <xs:element name="Dbtr" type="PartyIdentification32"/>
+                       <xs:element name="DbtrAcct" type="CashAccount16"/>
+                       <xs:element name="DbtrAgt" 
type="BranchAndFinancialInstitutionIdentification4"/>
+                       <xs:element name="DbtrAgtAcct" type="CashAccount16" 
minOccurs="0"/>
+                       <xs:element name="UltmtDbtr" 
type="PartyIdentification32" minOccurs="0"/>
+                       <xs:element name="ChrgBr" type="ChargeBearerType1Code" 
minOccurs="0"/>
+                       <xs:element name="ChrgsAcct" type="CashAccount16" 
minOccurs="0"/>
+                       <xs:element name="ChrgsAcctAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
+                       <xs:element name="CdtTrfTxInf" 
type="CreditTransferTransactionInformation10" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="PaymentMethod3Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="CHK"/>
+                       <xs:enumeration value="TRF"/>
+                       <xs:enumeration value="TRA"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="PaymentTypeInformation19">
+               <xs:sequence>
+                       <xs:element name="InstrPrty" type="Priority2Code" 
minOccurs="0"/>
+                       <xs:element name="SvcLvl" type="ServiceLevel8Choice" 
minOccurs="0"/>
+                       <xs:element name="LclInstrm" 
type="LocalInstrument2Choice" minOccurs="0"/>
+                       <xs:element name="CtgyPurp" 
type="CategoryPurpose1Choice" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="PercentageRate">
+               <xs:restriction base="xs:decimal">
+                       <xs:fractionDigits value="10"/>
+                       <xs:totalDigits value="11"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="PersonIdentification5">
+               <xs:sequence>
+                       <xs:element name="DtAndPlcOfBirth" 
type="DateAndPlaceOfBirth" minOccurs="0"/>
+                       <xs:element name="Othr" 
type="GenericPersonIdentification1" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="PersonIdentificationSchemeName1Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" 
type="ExternalPersonIdentification1Code"/>
+                               <xs:element name="Prtry" type="Max35Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="PhoneNumber">
+               <xs:restriction base="xs:string">
+                       <xs:pattern value="\+[0-9]{1,3}-[0-9()+\-]{1,30}"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="PostalAddress6">
+               <xs:sequence>
+                       <xs:element name="AdrTp" type="AddressType2Code" 
minOccurs="0"/>
+                       <xs:element name="Dept" type="Max70Text" minOccurs="0"/>
+                       <xs:element name="SubDept" type="Max70Text" 
minOccurs="0"/>
+                       <xs:element name="StrtNm" type="Max70Text" 
minOccurs="0"/>
+                       <xs:element name="BldgNb" type="Max16Text" 
minOccurs="0"/>
+                       <xs:element name="PstCd" type="Max16Text" 
minOccurs="0"/>
+                       <xs:element name="TwnNm" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="CtrySubDvsn" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="Ctry" type="CountryCode" 
minOccurs="0"/>
+                       <xs:element name="AdrLine" type="Max70Text" 
minOccurs="0" maxOccurs="7"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="Priority2Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="HIGH"/>
+                       <xs:enumeration value="NORM"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="Purpose2Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" 
type="ExternalPurpose1Code"/>
+                               <xs:element name="Prtry" type="Max35Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="ReferredDocumentInformation3">
+               <xs:sequence>
+                       <xs:element name="Tp" type="ReferredDocumentType2" 
minOccurs="0"/>
+                       <xs:element name="Nb" type="Max35Text" minOccurs="0"/>
+                       <xs:element name="RltdDt" type="ISODate" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="ReferredDocumentType1Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" type="DocumentType5Code"/>
+                               <xs:element name="Prtry" type="Max35Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="ReferredDocumentType2">
+               <xs:sequence>
+                       <xs:element name="CdOrPrtry" 
type="ReferredDocumentType1Choice"/>
+                       <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="RegulatoryAuthority2">
+               <xs:sequence>
+                       <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
+                       <xs:element name="Ctry" type="CountryCode" 
minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="RegulatoryReporting3">
+               <xs:sequence>
+                       <xs:element name="DbtCdtRptgInd" 
type="RegulatoryReportingType1Code" minOccurs="0"/>
+                       <xs:element name="Authrty" type="RegulatoryAuthority2" 
minOccurs="0"/>
+                       <xs:element name="Dtls" 
type="StructuredRegulatoryReporting3" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="RegulatoryReportingType1Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="CRED"/>
+                       <xs:enumeration value="DEBT"/>
+                       <xs:enumeration value="BOTH"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="RemittanceAmount1">
+               <xs:sequence>
+                       <xs:element name="DuePyblAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
+                       <xs:element name="DscntApldAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
+                       <xs:element name="CdtNoteAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
+                       <xs:element name="TaxAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
+                       <xs:element name="AdjstmntAmtAndRsn" 
type="DocumentAdjustment1" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="RmtdAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="RemittanceInformation5">
+               <xs:sequence>
+                       <xs:element name="Ustrd" type="Max140Text" 
minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="Strd" 
type="StructuredRemittanceInformation7" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="RemittanceLocation2">
+               <xs:sequence>
+                       <xs:element name="RmtId" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="RmtLctnMtd" 
type="RemittanceLocationMethod2Code" minOccurs="0"/>
+                       <xs:element name="RmtLctnElctrncAdr" type="Max2048Text" 
minOccurs="0"/>
+                       <xs:element name="RmtLctnPstlAdr" 
type="NameAndAddress10" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="RemittanceLocationMethod2Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="FAXI"/>
+                       <xs:enumeration value="EDIC"/>
+                       <xs:enumeration value="URID"/>
+                       <xs:enumeration value="EMAL"/>
+                       <xs:enumeration value="POST"/>
+                       <xs:enumeration value="SMSM"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="ServiceLevel8Choice">
+               <xs:sequence>
+                       <xs:choice>
+                               <xs:element name="Cd" 
type="ExternalServiceLevel1Code"/>
+                               <xs:element name="Prtry" type="Max35Text"/>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="StructuredRegulatoryReporting3">
+               <xs:sequence>
+                       <xs:element name="Tp" type="Max35Text" minOccurs="0"/>
+                       <xs:element name="Dt" type="ISODate" minOccurs="0"/>
+                       <xs:element name="Ctry" type="CountryCode" 
minOccurs="0"/>
+                       <xs:element name="Cd" type="Max10Text" minOccurs="0"/>
+                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
+                       <xs:element name="Inf" type="Max35Text" minOccurs="0" 
maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="StructuredRemittanceInformation7">
+               <xs:sequence>
+                       <xs:element name="RfrdDocInf" 
type="ReferredDocumentInformation3" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="RfrdDocAmt" type="RemittanceAmount1" 
minOccurs="0"/>
+                       <xs:element name="CdtrRefInf" 
type="CreditorReferenceInformation2" minOccurs="0"/>
+                       <xs:element name="Invcr" type="PartyIdentification32" 
minOccurs="0"/>
+                       <xs:element name="Invcee" type="PartyIdentification32" 
minOccurs="0"/>
+                       <xs:element name="AddtlRmtInf" type="Max140Text" 
minOccurs="0" maxOccurs="3"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="TaxAmount1">
+               <xs:sequence>
+                       <xs:element name="Rate" type="PercentageRate" 
minOccurs="0"/>
+                       <xs:element name="TaxblBaseAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
+                       <xs:element name="TtlAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
+                       <xs:element name="Dtls" type="TaxRecordDetails1" 
minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="TaxAuthorisation1">
+               <xs:sequence>
+                       <xs:element name="Titl" type="Max35Text" minOccurs="0"/>
+                       <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="TaxInformation3">
+               <xs:sequence>
+                       <xs:element name="Cdtr" type="TaxParty1" minOccurs="0"/>
+                       <xs:element name="Dbtr" type="TaxParty2" minOccurs="0"/>
+                       <xs:element name="AdmstnZn" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="RefNb" type="Max140Text" 
minOccurs="0"/>
+                       <xs:element name="Mtd" type="Max35Text" minOccurs="0"/>
+                       <xs:element name="TtlTaxblBaseAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
+                       <xs:element name="TtlTaxAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
+                       <xs:element name="Dt" type="ISODate" minOccurs="0"/>
+                       <xs:element name="SeqNb" type="Number" minOccurs="0"/>
+                       <xs:element name="Rcrd" type="TaxRecord1" minOccurs="0" 
maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="TaxParty1">
+               <xs:sequence>
+                       <xs:element name="TaxId" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="RegnId" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="TaxTp" type="Max35Text" 
minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="TaxParty2">
+               <xs:sequence>
+                       <xs:element name="TaxId" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="RegnId" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="TaxTp" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="Authstn" type="TaxAuthorisation1" 
minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="TaxPeriod1">
+               <xs:sequence>
+                       <xs:element name="Yr" type="ISODate" minOccurs="0"/>
+                       <xs:element name="Tp" type="TaxRecordPeriod1Code" 
minOccurs="0"/>
+                       <xs:element name="FrToDt" type="DatePeriodDetails" 
minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="TaxRecord1">
+               <xs:sequence>
+                       <xs:element name="Tp" type="Max35Text" minOccurs="0"/>
+                       <xs:element name="Ctgy" type="Max35Text" minOccurs="0"/>
+                       <xs:element name="CtgyDtls" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="DbtrSts" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="CertId" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="FrmsCd" type="Max35Text" 
minOccurs="0"/>
+                       <xs:element name="Prd" type="TaxPeriod1" minOccurs="0"/>
+                       <xs:element name="TaxAmt" type="TaxAmount1" 
minOccurs="0"/>
+                       <xs:element name="AddtlInf" type="Max140Text" 
minOccurs="0"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="TaxRecordDetails1">
+               <xs:sequence>
+                       <xs:element name="Prd" type="TaxPeriod1" minOccurs="0"/>
+                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:simpleType name="TaxRecordPeriod1Code">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="MM01"/>
+                       <xs:enumeration value="MM02"/>
+                       <xs:enumeration value="MM03"/>
+                       <xs:enumeration value="MM04"/>
+                       <xs:enumeration value="MM05"/>
+                       <xs:enumeration value="MM06"/>
+                       <xs:enumeration value="MM07"/>
+                       <xs:enumeration value="MM08"/>
+                       <xs:enumeration value="MM09"/>
+                       <xs:enumeration value="MM10"/>
+                       <xs:enumeration value="MM11"/>
+                       <xs:enumeration value="MM12"/>
+                       <xs:enumeration value="QTR1"/>
+                       <xs:enumeration value="QTR2"/>
+                       <xs:enumeration value="QTR3"/>
+                       <xs:enumeration value="QTR4"/>
+                       <xs:enumeration value="HLF1"/>
+                       <xs:enumeration value="HLF2"/>
+               </xs:restriction>
+       </xs:simpleType>
+</xs:schema>
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]