gnunet-svn
[Top][All Lists]
Advanced

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

[libeufin] branch master updated (90e9e680 -> 3b0aa461)


From: gnunet
Subject: [libeufin] branch master updated (90e9e680 -> 3b0aa461)
Date: Tue, 12 Mar 2024 11:03:10 +0100

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

antoine pushed a change to branch master
in repository libeufin.

    from 90e9e680 project vesion 0.9.4a
     new c5f106dd Simplify ebics mess
     new 509c14f4 Ebics3 HAC
     new 2cd837fe Use XML builder for Ebics3 download initialization
     new b0387f14 Use XML builder for all Ebics3 download phases
     new 4044e693 Use XML builder for all Ebics3 upload phases
     new ff7e7905 Replace all Ebics3 JAXB logic with custom XML DSL
     new c7344ce7 Clean EBICS3 protocol logic
     new 86749086 Replace all Ebics2 JAXB logic with custom XML DSL
     new ce979222 Replace JAXB everywhere
     new 6f079d64 Merge ebics and nexus module
     new 854803e6 Clean some code
     new 8b0ca3db Clean & reafactor & optimize
     new 298557c7 More simplification & refactoring
     new 16b5d74c Better error message during ebics-setup
     new 30eefb68 Eager base64 decoding for EBICS order data
     new 861389ea Clean EBICS dialect logic
     new 0d62875d Support both 2.5 and 3 EBICS version for download
     new 0cc7f2a6 Clean code and fix tests
     new 3b0aa461 Clean EBICS implementation, replace JAXB code with Kotlin DSL 
XML combinators

The 19 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 Makefile                                           |    4 -
 common/src/main/kotlin/Cli.kt                      |    2 +-
 common/src/main/kotlin/crypto/utils.kt             |   48 +-
 common/src/main/kotlin/{Stream.kt => helpers.kt}   |   49 +-
 common/src/main/kotlin/strings.kt                  |   90 -
 common/src/test/kotlin/CryptoUtilTest.kt           |   18 +-
 ebics/build.gradle                                 |   28 -
 ebics/src/main/kotlin/Ebics.kt                     |  438 ----
 ebics/src/main/kotlin/EbicsOrderUtil.kt            |   88 -
 ebics/src/main/kotlin/XMLUtil.kt                   |  548 -----
 .../ebics_h004/EbicsKeyManagementResponse.kt       |  102 -
 .../src/main/kotlin/ebics_h004/EbicsNpkdRequest.kt |  135 --
 ebics/src/main/kotlin/ebics_h004/EbicsRequest.kt   |  504 ----
 ebics/src/main/kotlin/ebics_h004/EbicsResponse.kt  |  348 ---
 ebics/src/main/kotlin/ebics_h004/EbicsTypes.kt     |  402 ----
 .../kotlin/ebics_h004/EbicsUnsecuredRequest.kt     |  223 --
 .../main/kotlin/ebics_h004/HIARequestOrderData.kt  |   33 -
 .../main/kotlin/ebics_h004/HKDResponseOrderData.kt |   14 -
 .../main/kotlin/ebics_h004/HPBResponseOrderData.kt |   21 -
 .../main/kotlin/ebics_h004/HTDResponseOrderData.kt |   14 -
 ebics/src/main/kotlin/ebics_h004/package-info.java |   13 -
 ebics/src/main/kotlin/ebics_h005/Ebics3Request.kt  |  587 -----
 ebics/src/main/kotlin/ebics_h005/Ebics3Response.kt |  347 ---
 ebics/src/main/kotlin/ebics_h005/Ebics3Types.kt    |  401 ----
 ebics/src/main/kotlin/ebics_h005/package-info.java |   13 -
 ebics/src/main/kotlin/ebics_hev/EbicsMessages.kt   |   92 -
 ebics/src/main/kotlin/ebics_hev/package-info.java  |   13 -
 ebics/src/main/kotlin/ebics_s001/SignatureTypes.kt |   92 -
 .../main/kotlin/ebics_s001/UserSignatureData.kt    |   27 -
 ebics/src/main/kotlin/ebics_s001/package-info.java |   13 -
 ebics/src/main/kotlin/ebics_s002/SignatureTypes.kt |   91 -
 .../kotlin/ebics_s002/UserSignatureDataEbics3.kt   |   27 -
 ebics/src/main/kotlin/ebics_s002/package-info.java |   13 -
 ebics/src/main/resources/version.txt               |    1 -
 ebics/src/main/resources/xsd/camt.052.001.02.xsd   | 1299 -----------
 ebics/src/main/resources/xsd/camt.053.001.02.xsd   | 1299 -----------
 ebics/src/main/resources/xsd/camt.054.001.02.xsd   | 1240 ----------
 ebics/src/main/resources/xsd/ebics_H004.xsd        |   11 -
 ebics/src/main/resources/xsd/ebics_H005.xsd        |   11 -
 ebics/src/main/resources/xsd/ebics_hev.xsd         |  135 --
 .../resources/xsd/ebics_keymgmt_request_H004.xsd   |  543 -----
 .../resources/xsd/ebics_keymgmt_request_H005.xsd   |  523 -----
 .../resources/xsd/ebics_keymgmt_response_H004.xsd  |  137 --
 .../resources/xsd/ebics_keymgmt_response_H005.xsd  |  137 --
 ebics/src/main/resources/xsd/ebics_orders_H004.xsd | 1892 ---------------
 ebics/src/main/resources/xsd/ebics_orders_H005.xsd | 2094 -----------------
 .../src/main/resources/xsd/ebics_request_H004.xsd  |  355 ---
 .../src/main/resources/xsd/ebics_request_H005.xsd  |  349 ---
 .../src/main/resources/xsd/ebics_response_H004.xsd |  166 --
 .../src/main/resources/xsd/ebics_response_H005.xsd |  167 --
 .../main/resources/xsd/ebics_signature_S002.xsd    |  177 --
 ebics/src/main/resources/xsd/ebics_signatures.xsd  |  217 --
 ebics/src/main/resources/xsd/ebics_types_H004.xsd  | 2426 --------------------
 ebics/src/main/resources/xsd/ebics_types_H005.xsd  | 1885 ---------------
 .../main/resources/xsd/pain.001.001.03.ch.02.xsd   | 1212 ----------
 ebics/src/main/resources/xsd/pain.001.001.03.xsd   |  922 --------
 .../main/resources/xsd/pain.001.001.09.ch.03.xsd   | 1733 --------------
 ebics/src/main/resources/xsd/pain.002.001.13.xsd   | 1253 ----------
 .../src/main/resources/xsd/xmldsig-core-schema.xsd |  318 ---
 ebics/src/test/kotlin/EbicsMessagesTest.kt         |  365 ---
 ebics/src/test/kotlin/EbicsOrderUtilTest.kt        |  308 ---
 ebics/src/test/kotlin/SignatureDataTest.kt         |   97 -
 ebics/src/test/kotlin/XmlCombinatorsTest.kt        |   67 -
 ebics/src/test/kotlin/XmlUtilTest.kt               |  191 --
 ebics/src/test/resources/ebics_hev.xml             |    4 -
 ebics/src/test/resources/ebics_ini_inner_key.xml   |   14 -
 .../test/resources/ebics_ini_request_sample.xml    |   25 -
 ebics/src/test/resources/hia_request.xml           |   26 -
 .../src/test/resources/hia_request_order_data.xml  |   23 -
 ebics/src/test/resources/hpb_request.xml           |   43 -
 nexus/build.gradle                                 |    4 -
 {ebics => nexus}/codegen.py                        |    4 +-
 .../main/kotlin/tech/libeufin/nexus/EbicsFetch.kt  |   74 +-
 .../main/kotlin/tech/libeufin/nexus/EbicsSetup.kt  |  136 +-
 .../main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt |  114 +-
 .../main/kotlin/tech/libeufin/nexus/Iso20022.kt    |    5 +-
 .../tech/libeufin/nexus}/Iso20022CodeSets.kt       |    2 +-
 .../tech/libeufin/nexus}/Iso20022Constants.kt      |    2 +-
 nexus/src/main/kotlin/tech/libeufin/nexus/Log.kt   |    4 +-
 nexus/src/main/kotlin/tech/libeufin/nexus/PDF.kt   |  115 +
 .../src/main/kotlin/tech/libeufin/nexus/XMLUtil.kt |  175 ++
 .../kotlin/tech/libeufin/nexus}/XmlCombinators.kt  |  123 +-
 .../kotlin/tech/libeufin/nexus/ebics/Ebics2.kt     |  379 ---
 .../kotlin/tech/libeufin/nexus/ebics/Ebics3.kt     |  443 ----
 .../kotlin/tech/libeufin/nexus/ebics/EbicsBTS.kt   |  347 +++
 .../tech/libeufin/nexus/ebics/EbicsCommon.kt       |  616 ++---
 .../tech/libeufin/nexus/ebics/EbicsKeyMng.kt       |  210 ++
 .../kotlin/tech/libeufin/nexus/ebics/EbicsOrder.kt |   59 +
 nexus/src/test/kotlin/Ebics.kt                     |   90 -
 nexus/src/test/kotlin/EbicsTest.kt                 |   70 +
 nexus/src/test/kotlin/XmlCombinatorsTest.kt        |   76 +
 nexus/src/test/kotlin/XmlUtilTest.kt               |   73 +
 .../src/test/resources/signature1/doc.xml          |    0
 .../src/test/resources/signature1/public_key.txt   |    0
 settings.gradle                                    |    3 +-
 testbench/src/main/kotlin/Main.kt                  |    3 +-
 96 files changed, 1648 insertions(+), 27982 deletions(-)
 rename common/src/main/kotlin/{Stream.kt => helpers.kt} (55%)
 delete mode 100644 common/src/main/kotlin/strings.kt
 delete mode 100644 ebics/build.gradle
 delete mode 100644 ebics/src/main/kotlin/Ebics.kt
 delete mode 100644 ebics/src/main/kotlin/EbicsOrderUtil.kt
 delete mode 100644 ebics/src/main/kotlin/XMLUtil.kt
 delete mode 100644 
ebics/src/main/kotlin/ebics_h004/EbicsKeyManagementResponse.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_h004/EbicsNpkdRequest.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_h004/EbicsRequest.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_h004/EbicsResponse.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_h004/EbicsTypes.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_h004/EbicsUnsecuredRequest.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_h004/HIARequestOrderData.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_h004/HKDResponseOrderData.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_h004/HPBResponseOrderData.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_h004/HTDResponseOrderData.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_h004/package-info.java
 delete mode 100644 ebics/src/main/kotlin/ebics_h005/Ebics3Request.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_h005/Ebics3Response.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_h005/Ebics3Types.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_h005/package-info.java
 delete mode 100644 ebics/src/main/kotlin/ebics_hev/EbicsMessages.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_hev/package-info.java
 delete mode 100644 ebics/src/main/kotlin/ebics_s001/SignatureTypes.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_s001/UserSignatureData.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_s001/package-info.java
 delete mode 100644 ebics/src/main/kotlin/ebics_s002/SignatureTypes.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_s002/UserSignatureDataEbics3.kt
 delete mode 100644 ebics/src/main/kotlin/ebics_s002/package-info.java
 delete mode 100644 ebics/src/main/resources/version.txt
 delete mode 100644 ebics/src/main/resources/xsd/camt.052.001.02.xsd
 delete mode 100644 ebics/src/main/resources/xsd/camt.053.001.02.xsd
 delete mode 100644 ebics/src/main/resources/xsd/camt.054.001.02.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_H004.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_H005.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_hev.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_keymgmt_request_H004.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_keymgmt_request_H005.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_keymgmt_response_H004.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_keymgmt_response_H005.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_orders_H004.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_orders_H005.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_request_H004.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_request_H005.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_response_H004.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_response_H005.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_signature_S002.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_signatures.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_types_H004.xsd
 delete mode 100644 ebics/src/main/resources/xsd/ebics_types_H005.xsd
 delete mode 100644 ebics/src/main/resources/xsd/pain.001.001.03.ch.02.xsd
 delete mode 100644 ebics/src/main/resources/xsd/pain.001.001.03.xsd
 delete mode 100644 ebics/src/main/resources/xsd/pain.001.001.09.ch.03.xsd
 delete mode 100644 ebics/src/main/resources/xsd/pain.002.001.13.xsd
 delete mode 100644 ebics/src/main/resources/xsd/xmldsig-core-schema.xsd
 delete mode 100644 ebics/src/test/kotlin/EbicsMessagesTest.kt
 delete mode 100644 ebics/src/test/kotlin/EbicsOrderUtilTest.kt
 delete mode 100644 ebics/src/test/kotlin/SignatureDataTest.kt
 delete mode 100644 ebics/src/test/kotlin/XmlCombinatorsTest.kt
 delete mode 100644 ebics/src/test/kotlin/XmlUtilTest.kt
 delete mode 100644 ebics/src/test/resources/ebics_hev.xml
 delete mode 100644 ebics/src/test/resources/ebics_ini_inner_key.xml
 delete mode 100644 ebics/src/test/resources/ebics_ini_request_sample.xml
 delete mode 100644 ebics/src/test/resources/hia_request.xml
 delete mode 100644 ebics/src/test/resources/hia_request_order_data.xml
 delete mode 100644 ebics/src/test/resources/hpb_request.xml
 rename {ebics => nexus}/codegen.py (95%)
 rename {ebics/src/main/kotlin => 
nexus/src/main/kotlin/tech/libeufin/nexus}/Iso20022CodeSets.kt (99%)
 rename {ebics/src/main/kotlin => 
nexus/src/main/kotlin/tech/libeufin/nexus}/Iso20022Constants.kt (97%)
 create mode 100644 nexus/src/main/kotlin/tech/libeufin/nexus/PDF.kt
 create mode 100644 nexus/src/main/kotlin/tech/libeufin/nexus/XMLUtil.kt
 rename {ebics/src/main/kotlin => 
nexus/src/main/kotlin/tech/libeufin/nexus}/XmlCombinators.kt (52%)
 delete mode 100644 nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics2.kt
 delete mode 100644 nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics3.kt
 create mode 100644 nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsBTS.kt
 create mode 100644 
nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsKeyMng.kt
 create mode 100644 
nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsOrder.kt
 delete mode 100644 nexus/src/test/kotlin/Ebics.kt
 create mode 100644 nexus/src/test/kotlin/EbicsTest.kt
 create mode 100644 nexus/src/test/kotlin/XmlCombinatorsTest.kt
 create mode 100644 nexus/src/test/kotlin/XmlUtilTest.kt
 rename {ebics => nexus}/src/test/resources/signature1/doc.xml (100%)
 rename {ebics => nexus}/src/test/resources/signature1/public_key.txt (100%)

diff --git a/Makefile b/Makefile
index 864bff0c..004dc256 100644
--- a/Makefile
+++ b/Makefile
@@ -103,10 +103,6 @@ bank-test: install-nobuild-files
 nexus-test: install-nobuild-files
        ./gradlew :nexus:test --tests $(test) -i
 
-.PHONY: ebics-test
-ebics-test: install-nobuild-files
-       ./gradlew :ebics:test --tests $(test) -i
-
 .PHONY: common-test
 common-test: install-nobuild-files
        ./gradlew :common:test --tests $(test) -i
diff --git a/common/src/main/kotlin/Cli.kt b/common/src/main/kotlin/Cli.kt
index 52c3ada3..fcf17688 100644
--- a/common/src/main/kotlin/Cli.kt
+++ b/common/src/main/kotlin/Cli.kt
@@ -46,7 +46,7 @@ fun Throwable.fmtLog(logger: Logger) {
         cause = cause.cause
     }
     logger.error(msg.toString())
-    logger.debug("{}", this)
+    logger.trace("", this)
 }
 
 fun cliCmd(logger: Logger, level: Level, lambda: suspend () -> Unit) {
diff --git a/common/src/main/kotlin/crypto/utils.kt 
b/common/src/main/kotlin/crypto/utils.kt
index 6bad9741..2f98e064 100644
--- a/common/src/main/kotlin/crypto/utils.kt
+++ b/common/src/main/kotlin/crypto/utils.kt
@@ -50,10 +50,7 @@ object CryptoUtil {
         val encryptedTransactionKey: ByteArray,
         val pubKeyDigest: ByteArray,
         val encryptedData: ByteArray,
-        /**
-         * This key needs to be reused between different upload phases.
-         */
-        val plainTransactionKey: SecretKey? = null
+        val plainTransactionKey: SecretKey
     )
 
     private val bouncyCastleProvider = BouncyCastleProvider()
@@ -80,6 +77,22 @@ object CryptoUtil {
         return pub
     }
 
+    /**
+     * Load an RSA public key from its components.
+     *
+     * @param exponent
+     * @param modulus
+     * @return key
+     */
+    fun loadRsaPublicKeyFromComponents(modulus: ByteArray, exponent: 
ByteArray): RSAPublicKey {
+        val modulusBigInt = BigInteger(1, modulus)
+        val exponentBigInt = BigInteger(1, exponent)
+
+        val keyFactory = KeyFactory.getInstance("RSA")
+        val tmp = RSAPublicKeySpec(modulusBigInt, exponentBigInt)
+        return keyFactory.generatePublic(tmp) as RSAPublicKey
+    }
+
     /**
      * Load an RSA public key from its binary X509 encoding.
      */
@@ -109,36 +122,19 @@ object CryptoUtil {
         return RsaCrtKeyPair(priv, pub)
     }
 
-    /**
-     * Load an RSA public key from its components.
-     *
-     * @param exponent
-     * @param modulus
-     * @return key
-     */
-    fun loadRsaPublicKeyFromComponents(modulus: ByteArray, exponent: 
ByteArray): RSAPublicKey {
-        val modulusBigInt = BigInteger(1, modulus)
-        val exponentBigInt = BigInteger(1, exponent)
-
-        val keyFactory = KeyFactory.getInstance("RSA")
-        val tmp = RSAPublicKeySpec(modulusBigInt, exponentBigInt)
-        return keyFactory.generatePublic(tmp) as RSAPublicKey
-    }
-
     /**
      * Hash an RSA public key according to the EBICS standard (EBICS 2.5: 
4.4.1.2.3).
      */
     fun getEbicsPublicKeyHash(publicKey: RSAPublicKey): ByteArray {
         val keyBytes = ByteArrayOutputStream()
-        
keyBytes.writeBytes(publicKey.publicExponent.toUnsignedHexString().lowercase().trimStart('0').toByteArray())
+        
keyBytes.writeBytes(publicKey.publicExponent.encodeHex().trimStart('0').toByteArray())
         keyBytes.write(' '.code)
-        
keyBytes.writeBytes(publicKey.modulus.toUnsignedHexString().lowercase().trimStart('0').toByteArray())
-        // println("buffer before hashing: 
'${keyBytes.toString(Charsets.UTF_8)}'")
+        
keyBytes.writeBytes(publicKey.modulus.encodeHex().trimStart('0').toByteArray())
         val digest = MessageDigest.getInstance("SHA-256")
         return digest.digest(keyBytes.toByteArray())
     }
 
-    fun encryptEbicsE002(data: ByteArray, encryptionPublicKey: RSAPublicKey): 
EncryptionResult {
+    fun encryptEbicsE002(data: InputStream, encryptionPublicKey: 
RSAPublicKey): EncryptionResult {
         val keygen = KeyGenerator.getInstance("AES", bouncyCastleProvider)
         keygen.init(128)
         val transactionKey = keygen.generateKey()
@@ -152,7 +148,7 @@ object CryptoUtil {
      * Encrypt data according to the EBICS E002 encryption process.
      */
     fun encryptEbicsE002withTransactionKey(
-        data: ByteArray,
+        data: InputStream,
         encryptionPublicKey: RSAPublicKey,
         transactionKey: SecretKey
     ): EncryptionResult {
@@ -162,7 +158,7 @@ object CryptoUtil {
         )
         val ivParameterSpec = IvParameterSpec(ByteArray(16))
         symmetricCipher.init(Cipher.ENCRYPT_MODE, transactionKey, 
ivParameterSpec)
-        val encryptedData = symmetricCipher.doFinal(data)
+        val encryptedData = CipherInputStream(data, 
symmetricCipher).readAllBytes()
         val asymmetricCipher = Cipher.getInstance(
             "RSA/None/PKCS1Padding",
             bouncyCastleProvider
diff --git a/common/src/main/kotlin/Stream.kt 
b/common/src/main/kotlin/helpers.kt
similarity index 55%
rename from common/src/main/kotlin/Stream.kt
rename to common/src/main/kotlin/helpers.kt
index f20740d7..cd803f64 100644
--- a/common/src/main/kotlin/Stream.kt
+++ b/common/src/main/kotlin/helpers.kt
@@ -19,12 +19,48 @@
 
 package tech.libeufin.common
 
-import java.io.FilterInputStream
-import java.io.InputStream
+import java.math.BigInteger
 import java.util.*
 import java.util.zip.DeflaterInputStream
 import java.util.zip.InflaterInputStream
 import java.util.zip.ZipInputStream
+import java.io.FilterInputStream
+import java.io.InputStream
+import java.io.ByteArrayOutputStream
+
+fun getQueryParam(uriQueryString: String, param: String): String? {
+    // TODO replace with ktor API ?
+    uriQueryString.split('&').forEach {
+        val kv = it.split('=')
+        if (kv[0] == param)
+            return kv[1]
+    }
+    return null
+}
+
+/* ----- String ----- */
+
+fun String.decodeBase64(): ByteArray = Base64.getDecoder().decode(this)
+fun String.decodeUpHex(): ByteArray = 
HexFormat.of().withUpperCase().parseHex(this)
+
+fun String.splitOnce(pat: String): Pair<String, String>? {
+    val split = split(pat, limit=2)
+    if (split.size != 2) return null
+    return Pair(split[0], split[1])
+}
+
+/* ----- BigInteger -----*/
+
+fun BigInteger.encodeHex(): String = this.toByteArray().encodeHex()
+fun BigInteger.encodeBase64(): String = this.toByteArray().encodeBase64()
+
+/* ----- ByteArray ----- */
+
+fun ByteArray.encodeHex(): String = HexFormat.of().formatHex(this)
+fun ByteArray.encodeUpHex(): String = 
HexFormat.of().withUpperCase().formatHex(this)
+fun ByteArray.encodeBase64(): String = Base64.getEncoder().encodeToString(this)
+
+/* ----- InputStream ----- */
 
 /** Unzip an input stream and run [lambda] over each entry */
 fun InputStream.unzipEach(lambda: (String, InputStream) -> Unit) {
@@ -46,6 +82,15 @@ fun InputStream.unzipEach(lambda: (String, InputStream) -> 
Unit) {
 fun InputStream.decodeBase64(): InputStream 
     = Base64.getDecoder().wrap(this)
 
+/** Decode a base64 an input stream */
+fun InputStream.encodeBase64(): String {
+    val w = ByteArrayOutputStream()
+    val encoded = Base64.getEncoder().wrap(w)
+    transferTo(encoded)
+    encoded.close()
+    return w.toString(Charsets.UTF_8)
+}
+
 /** Deflate an input stream */
 fun InputStream.deflate(): DeflaterInputStream 
     = DeflaterInputStream(this)
diff --git a/common/src/main/kotlin/strings.kt 
b/common/src/main/kotlin/strings.kt
deleted file mode 100644
index 3fa5f564..00000000
--- a/common/src/main/kotlin/strings.kt
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2024 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-package tech.libeufin.common
-
-import java.math.BigInteger
-import java.util.*
-
-fun ByteArray.toHexString(): String {
-    return this.joinToString("") {
-        java.lang.String.format("%02X", it)
-    }
-}
-
-private fun toDigit(hexChar: Char): Int {
-    val digit = Character.digit(hexChar, 16)
-    require(digit != -1) { "Invalid Hexadecimal Character: $hexChar" }
-    return digit
-}
-
-private fun hexToByte(hexString: String): Byte {
-    val firstDigit: Int = toDigit(hexString[0])
-    val secondDigit: Int = toDigit(hexString[1])
-    return ((firstDigit shl 4) + secondDigit).toByte()
-}
-
-fun decodeHexString(hexString: String): ByteArray {
-    val hs = hexString.replace(" ", "").replace("\n", "")
-    require(hs.length % 2 != 1) { "Invalid hexadecimal String supplied." }
-    val bytes = ByteArray(hs.length / 2)
-    var i = 0
-    while (i < hs.length) {
-        bytes[i / 2] = hexToByte(hs.substring(i, i + 2))
-        i += 2
-    }
-    return bytes
-}
-
-
-fun ByteArray.encodeBase64(): String {
-    return Base64.getEncoder().encodeToString(this)
-}
-
-fun String.decodeBase64(): ByteArray {
-    return Base64.getDecoder().decode(this)
-}
-
-// used mostly in RSA math, never as amount.
-fun BigInteger.toUnsignedHexString(): String {
-    val signedValue = this.toByteArray()
-    require(this.signum() > 0) { "number must be positive" }
-    val start = if (signedValue[0] == 0.toByte()) {
-        1
-    } else {
-        0
-    }
-    val bytes = Arrays.copyOfRange(signedValue, start, signedValue.size)
-    return bytes.toHexString()
-}
-
-fun getQueryParam(uriQueryString: String, param: String): String? {
-    uriQueryString.split('&').forEach {
-        val kv = it.split('=')
-        if (kv[0] == param)
-            return kv[1]
-    }
-    return null
-}
-
-fun String.splitOnce(pat: String): Pair<String, String>? {
-    val split = split(pat, limit=2)
-    if (split.size != 2) return null
-    return Pair(split[0], split[1])
-}
\ No newline at end of file
diff --git a/common/src/test/kotlin/CryptoUtilTest.kt 
b/common/src/test/kotlin/CryptoUtilTest.kt
index 11d87055..82f18ab9 100644
--- a/common/src/test/kotlin/CryptoUtilTest.kt
+++ b/common/src/test/kotlin/CryptoUtilTest.kt
@@ -66,7 +66,7 @@ class CryptoUtilTest {
     fun testEbicsE002() {
         val data = "Hello, World!".toByteArray()
         val keyPair = CryptoUtil.generateRsaKeyPair(1024)
-        val enc = CryptoUtil.encryptEbicsE002(data, keyPair.public)
+        val enc = CryptoUtil.encryptEbicsE002(data.inputStream(), 
keyPair.public)
         val dec = CryptoUtil.decryptEbicsE002(enc, keyPair.private)
         assertTrue(data.contentEquals(dec))
     }
@@ -86,7 +86,7 @@ class CryptoUtilTest {
 
         /* encrypt with original key */
         val data = "Hello, World!".toByteArray(Charsets.UTF_8)
-        val secret = CryptoUtil.encryptEbicsE002(data, keyPair.public)
+        val secret = CryptoUtil.encryptEbicsE002(data.inputStream(), 
keyPair.public)
 
         /* encrypt and decrypt private key */
         val encPriv = CryptoUtil.encryptKey(keyPair.private.encoded, "secret")
@@ -103,7 +103,7 @@ class CryptoUtilTest {
 
     @Test
     fun testEbicsPublicKeyHashing() {
-        val exponentStr = "01 00 01"
+        val exponentStr = "01 00 01".replace(" ", "")
         val moduloStr = """
             EB BD B8 E3 73 45 60 06 44 A1 AD 6A 25 33 65 F5
             9C EB E5 93 E0 51 72 77 90 6B F0 58 A8 89 EB 00
@@ -121,7 +121,7 @@ class CryptoUtilTest {
             D5 BE 0D 0E F8 E7 E0 A9 C3 10 51 A1 3E A4 4F 67
             5E 75 8C 9D E6 FE 27 B6 3C CF 61 9B 31 D4 D0 22
             B9 2E 4C AF 5F D6 4B 1F F0 4D 06 5F 68 EB 0B 71
-        """.trimIndent()
+        """.trimIndent().replace(" ", "").replace("\n", "")
         val expectedHashStr = """
             72 71 D5 83 B4 24 A6 DA 0B 7B 22 24 3B E2 B8 8C
             6E A6 0F 9F 76 11 FD 18 BE 2C E8 8B 21 03 A9 41
@@ -129,17 +129,17 @@ class CryptoUtilTest {
 
         val expectedHash = expectedHashStr.replace(" ", "").replace("\n", 
"").toByteArray(Charsets.UTF_8)
 
-        val pub = 
CryptoUtil.loadRsaPublicKeyFromComponents(decodeHexString(moduloStr), 
decodeHexString(exponentStr))
+        val pub = 
CryptoUtil.loadRsaPublicKeyFromComponents(moduloStr.decodeUpHex(), 
exponentStr.decodeUpHex())
 
-        println("echoed pub exp: ${pub.publicExponent.toUnsignedHexString()}")
-        println("echoed pub mod: ${pub.modulus.toUnsignedHexString()}")
+        println("echoed pub exp: ${pub.publicExponent.encodeHex()}")
+        println("echoed pub mod: ${pub.modulus.encodeHex()}")
 
         val pubHash = CryptoUtil.getEbicsPublicKeyHash(pub)
 
-        println("our pubHash: ${pubHash.toHexString()}")
+        println("our pubHash: ${pubHash.encodeUpHex()}")
         println("expected pubHash: ${expectedHash.toString(Charsets.UTF_8)}")
 
-        assertEquals(expectedHash.toString(Charsets.UTF_8), 
pubHash.toHexString())
+        assertEquals(expectedHash.toString(Charsets.UTF_8), 
pubHash.encodeUpHex())
     }
 
     @Test
diff --git a/ebics/build.gradle b/ebics/build.gradle
deleted file mode 100644
index 59a3c51b..00000000
--- a/ebics/build.gradle
+++ /dev/null
@@ -1,28 +0,0 @@
-plugins {
-    id("java")
-    id("kotlin")
-}
-
-version = rootProject.version
-
-java {
-    sourceCompatibility = JavaVersion.VERSION_17
-    targetCompatibility = JavaVersion.VERSION_17
-}
-
-compileKotlin.kotlinOptions.jvmTarget = "17"
-compileTestKotlin.kotlinOptions.jvmTarget = "17"
-
-sourceSets.main.java.srcDirs = ["src/main/kotlin"]
-
-dependencies {
-    implementation(project(":common"))
-
-    // XML Stuff
-    implementation("jakarta.xml.bind:jakarta.xml.bind-api:2.3.3")
-    implementation("org.glassfish.jaxb:jaxb-runtime:2.3.9")
-    implementation("org.apache.santuario:xmlsec:2.3.4")
-    
-    implementation("io.ktor:ktor-http:$ktor_version")
-    implementation("org.jetbrains.kotlin:kotlin-test:$kotlin_version")
-}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/Ebics.kt b/ebics/src/main/kotlin/Ebics.kt
deleted file mode 100644
index e335e502..00000000
--- a/ebics/src/main/kotlin/Ebics.kt
+++ /dev/null
@@ -1,438 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2024 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-/**
- * This is the main "EBICS library interface".  Functions here are stateless 
helpers
- * used to implement both an EBICS server and EBICS client.
- */
-
-package tech.libeufin.ebics
-
-import io.ktor.http.*
-import org.w3c.dom.Document
-import tech.libeufin.common.crypto.CryptoUtil
-import tech.libeufin.ebics.ebics_h004.EbicsRequest
-import tech.libeufin.ebics.ebics_h004.EbicsResponse
-import tech.libeufin.ebics.ebics_h004.EbicsTypes
-import tech.libeufin.ebics.ebics_h004.HPBResponseOrderData
-import tech.libeufin.ebics.ebics_h005.Ebics3Response
-import tech.libeufin.ebics.ebics_s001.UserSignatureData
-import java.io.InputStream
-import java.security.SecureRandom
-import java.security.interfaces.RSAPrivateCrtKey
-import java.security.interfaces.RSAPublicKey
-import java.time.Instant
-import java.time.ZoneId
-import java.time.ZonedDateTime
-import javax.xml.bind.JAXBElement
-import javax.xml.datatype.DatatypeFactory
-import javax.xml.datatype.XMLGregorianCalendar
-
-data class EbicsProtocolError(
-    val httpStatusCode: HttpStatusCode,
-    val reason: String,
-    /**
-     * This class is also used when Nexus finds itself
-     * in an inconsistent state, without interacting with the
-     * bank.  In this case, the EBICS code below can be left
-     * null.
-     */
-    val ebicsTechnicalCode: EbicsReturnCode? = null
-) : Exception(reason)
-
-data class EbicsDateRange(
-    val start: Instant,
-    val end: Instant
-)
-
-sealed interface EbicsOrderParams
-data class EbicsStandardOrderParams(
-    val dateRange: EbicsDateRange? = null
-) : EbicsOrderParams
-
-data class EbicsGenericOrderParams(
-    val params: Map<String, String> = mapOf()
-) : EbicsOrderParams
-
-enum class EbicsInitState {
-    SENT, NOT_SENT, UNKNOWN
-}
-
-/**
- * This class is a mere container that keeps data found
- * in the database and that is further needed to sign / verify
- * / make messages.  And not all the values are needed all
- * the time.
- */
-data class EbicsClientSubscriberDetails(
-    val partnerId: String,
-    val userId: String,
-    var bankAuthPub: RSAPublicKey?,
-    var bankEncPub: RSAPublicKey?,
-    val ebicsUrl: String,
-    val hostId: String,
-    val customerEncPriv: RSAPrivateCrtKey,
-    val customerAuthPriv: RSAPrivateCrtKey,
-    val customerSignPriv: RSAPrivateCrtKey,
-    val ebicsIniState: EbicsInitState,
-    val ebicsHiaState: EbicsInitState,
-    var dialect: String? = null
-)
-
-/**
- * @param size in bits
- */
-fun getNonce(size: Int): ByteArray {
-    val sr = SecureRandom()
-    val ret = ByteArray(size / 8)
-    sr.nextBytes(ret)
-    return ret
-}
-
-fun getXmlDate(i: Instant): XMLGregorianCalendar {
-    val zonedTimestamp = ZonedDateTime.ofInstant(i, ZoneId.of("UTC"))
-    return getXmlDate(zonedTimestamp)
-}
-fun getXmlDate(d: ZonedDateTime): XMLGregorianCalendar {
-    return DatatypeFactory.newInstance()
-        .newXMLGregorianCalendar(
-            d.year,
-            d.monthValue,
-            d.dayOfMonth,
-            0,
-            0,
-            0,
-            0,
-            d.offset.totalSeconds / 60
-        )
-}
-
-fun makeOrderParams(orderParams: EbicsOrderParams): EbicsRequest.OrderParams {
-    return when (orderParams) {
-        is EbicsStandardOrderParams -> {
-            EbicsRequest.StandardOrderParams().apply {
-                val r = orderParams.dateRange
-                if (r != null) {
-                    this.dateRange = EbicsRequest.DateRange().apply {
-                        this.start = getXmlDate(r.start)
-                        this.end = getXmlDate(r.end)
-                    }
-                }
-            }
-        }
-        is EbicsGenericOrderParams -> {
-            EbicsRequest.GenericOrderParams().apply {
-                this.parameterList = orderParams.params.map { entry ->
-                    EbicsTypes.Parameter().apply {
-                        this.name = entry.key
-                        this.value = entry.value
-                        this.type = "string"
-                    }
-                }
-            }
-        }
-    }
-}
-
-fun signOrder(
-    orderBlob: ByteArray,
-    signKey: RSAPrivateCrtKey,
-    partnerId: String,
-    userId: String
-): UserSignatureData {
-    val ES_signature = CryptoUtil.signEbicsA006(
-        CryptoUtil.digestEbicsOrderA006(orderBlob),
-        signKey
-    )
-    val userSignatureData = UserSignatureData().apply {
-        orderSignatureList = listOf(
-            UserSignatureData.OrderSignatureData().apply {
-                signatureVersion = "A006"
-                signatureValue = ES_signature
-                partnerID = partnerId
-                userID = userId
-            }
-        )
-    }
-    return userSignatureData
-}
-
-fun signOrderEbics3(
-    orderBlob: ByteArray,
-    signKey: RSAPrivateCrtKey,
-    partnerId: String,
-    userId: String
-): tech.libeufin.ebics.ebics_s002.UserSignatureDataEbics3 {
-    val ES_signature = CryptoUtil.signEbicsA006(
-        CryptoUtil.digestEbicsOrderA006(orderBlob),
-        signKey
-    )
-    val userSignatureData = 
tech.libeufin.ebics.ebics_s002.UserSignatureDataEbics3().apply {
-        orderSignatureList = listOf(
-            
tech.libeufin.ebics.ebics_s002.UserSignatureDataEbics3.OrderSignatureData().apply
 {
-                signatureVersion = "A006"
-                signatureValue = ES_signature
-                partnerID = partnerId
-                userID = userId
-            }
-        )
-    }
-    return userSignatureData
-}
-
-data class PreparedUploadData(
-    val transactionKey: ByteArray,
-    val userSignatureDataEncrypted: ByteArray,
-    val dataDigest: ByteArray,
-    val encryptedPayloadChunks: List<String>
-) {
-    override fun equals(other: Any?): Boolean {
-        if (this === other) return true
-        if (javaClass != other?.javaClass) return false
-
-        other as PreparedUploadData
-
-        if (!transactionKey.contentEquals(other.transactionKey)) return false
-        if 
(!userSignatureDataEncrypted.contentEquals(other.userSignatureDataEncrypted)) 
return false
-        if (encryptedPayloadChunks != other.encryptedPayloadChunks) return 
false
-
-        return true
-    }
-
-    override fun hashCode(): Int {
-        var result = transactionKey.contentHashCode()
-        result = 31 * result + userSignatureDataEncrypted.contentHashCode()
-        result = 31 * result + encryptedPayloadChunks.hashCode()
-        return result
-    }
-}
-
-data class DataEncryptionInfo(
-    val transactionKey: ByteArray,
-    val bankPubDigest: ByteArray
-) {
-    override fun equals(other: Any?): Boolean {
-        if (this === other) return true
-        if (javaClass != other?.javaClass) return false
-
-        other as DataEncryptionInfo
-
-        if (!transactionKey.contentEquals(other.transactionKey)) return false
-        if (!bankPubDigest.contentEquals(other.bankPubDigest)) return false
-
-        return true
-    }
-
-    override fun hashCode(): Int {
-        var result = transactionKey.contentHashCode()
-        result = 31 * result + bankPubDigest.contentHashCode()
-        return result
-    }
-}
-
-
-// TODO import missing using a script
-@Suppress("SpellCheckingInspection")
-enum class EbicsReturnCode(val errorCode: String) {
-    EBICS_OK("000000"),
-    EBICS_DOWNLOAD_POSTPROCESS_DONE("011000"),
-    EBICS_DOWNLOAD_POSTPROCESS_SKIPPED("011001"),
-    EBICS_TX_SEGMENT_NUMBER_UNDERRUN("011101"),
-    EBICS_AUTHENTICATION_FAILED("061001"),
-    EBICS_INVALID_REQUEST("061002"),
-    EBICS_INTERNAL_ERROR("061099"),
-    EBICS_TX_RECOVERY_SYNC("061101"),
-    EBICS_AUTHORISATION_ORDER_IDENTIFIER_FAILED("090003"),
-    EBICS_NO_DOWNLOAD_DATA_AVAILABLE("090005"),
-    EBICS_INVALID_USER_OR_USER_STATE("091002"),
-    EBICS_USER_UNKNOWN("091003"),
-    EBICS_EBICS_INVALID_USER_STATE("091004"),
-    EBICS_INVALID_ORDER_IDENTIFIER("091005"),
-    EBICS_UNSUPPORTED_ORDER_TYPE("091006"),
-    EBICS_INVALID_XML("091010"),
-    EBICS_TX_MESSAGE_REPLAY("091103"),
-    EBICS_PROCESSING_ERROR("091116"),
-    EBICS_ACCOUNT_AUTHORISATION_FAILED("091302"),
-    EBICS_AMOUNT_CHECK_FAILED("091303");
-
-    companion object {
-        fun lookup(errorCode: String): EbicsReturnCode {
-            for (x in entries) {
-                if (x.errorCode == errorCode) {
-                    return x
-                }
-            }
-            throw Exception(
-                "Unknown EBICS status code: $errorCode"
-            )
-        }
-    }
-}
-
-data class EbicsResponseContent(
-    val transactionID: String?,
-    val orderID: String?,
-    val dataEncryptionInfo: DataEncryptionInfo?,
-    val orderDataEncChunk: String?,
-    val technicalReturnCode: EbicsReturnCode,
-    val bankReturnCode: EbicsReturnCode,
-    val reportText: String,
-    val segmentNumber: Int?,
-    // Only present in init phase
-    val numSegments: Int?
-)
-
-data class EbicsKeyManagementResponseContent(
-    val technicalReturnCode: EbicsReturnCode,
-    val bankReturnCode: EbicsReturnCode?,
-    val orderData: ByteArray?
-)
-
-
-class HpbResponseData(
-    val hostID: String,
-    val encryptionPubKey: RSAPublicKey,
-    val encryptionVersion: String,
-    val authenticationPubKey: RSAPublicKey,
-    val authenticationVersion: String
-)
-
-fun parseEbicsHpbOrder(orderDataRaw: InputStream): HpbResponseData {
-    val resp = try {
-        XMLUtil.convertToJaxb<HPBResponseOrderData>(orderDataRaw)
-    } catch (e: Exception) {
-        throw EbicsProtocolError(HttpStatusCode.InternalServerError, "Invalid 
XML (as HPB response) received from bank")
-    }
-    val encPubKey = CryptoUtil.loadRsaPublicKeyFromComponents(
-        resp.value.encryptionPubKeyInfo.pubKeyValue.rsaKeyValue.modulus,
-        resp.value.encryptionPubKeyInfo.pubKeyValue.rsaKeyValue.exponent
-    )
-    val authPubKey = CryptoUtil.loadRsaPublicKeyFromComponents(
-        resp.value.authenticationPubKeyInfo.pubKeyValue.rsaKeyValue.modulus,
-        resp.value.authenticationPubKeyInfo.pubKeyValue.rsaKeyValue.exponent
-    )
-    return HpbResponseData(
-        hostID = resp.value.hostID,
-        encryptionPubKey = encPubKey,
-        encryptionVersion = resp.value.encryptionPubKeyInfo.encryptionVersion,
-        authenticationPubKey = authPubKey,
-        authenticationVersion = 
resp.value.authenticationPubKeyInfo.authenticationVersion
-    )
-}
-
-fun ebics3toInternalRepr(response: Document): EbicsResponseContent {
-    // logger.debug("Converting bank resp to internal repr.: $response")
-    val resp: JAXBElement<Ebics3Response> = try {
-        XMLUtil.convertDomToJaxb(response)
-    } catch (e: Exception) {
-        throw EbicsProtocolError(
-            HttpStatusCode.InternalServerError,
-            "Could not transform string-response from bank into JAXB"
-        )
-    }
-    val bankReturnCodeStr = resp.value.body.returnCode.value
-    val bankReturnCode = EbicsReturnCode.lookup(bankReturnCodeStr)
-
-    val techReturnCodeStr = resp.value.header.mutable.returnCode
-    val techReturnCode = EbicsReturnCode.lookup(techReturnCodeStr)
-
-    val reportText = resp.value.header.mutable.reportText
-
-    val daeXml = resp.value.body.dataTransfer?.dataEncryptionInfo
-    val dataEncryptionInfo = if (daeXml == null) {
-        null
-    } else {
-        DataEncryptionInfo(daeXml.transactionKey, 
daeXml.encryptionPubKeyDigest.value)
-    }
-
-    return EbicsResponseContent(
-        transactionID = resp.value.header._static.transactionID,
-        orderID = resp.value.header.mutable.orderID,
-        bankReturnCode = bankReturnCode,
-        technicalReturnCode = techReturnCode,
-        reportText = reportText,
-        orderDataEncChunk = resp.value.body.dataTransfer?.orderData?.value,
-        dataEncryptionInfo = dataEncryptionInfo,
-        numSegments = resp.value.header._static.numSegments?.toInt(),
-        segmentNumber = resp.value.header.mutable.segmentNumber?.value?.toInt()
-    )
-}
-
-fun ebics25toInternalRepr(response: Document): EbicsResponseContent {
-    val resp: JAXBElement<EbicsResponse> = try {
-        XMLUtil.convertDomToJaxb(response)
-    } catch (e: Exception) {
-        throw EbicsProtocolError(
-            HttpStatusCode.InternalServerError,
-            "Could not transform string-response from bank into JAXB"
-        )
-    }
-    val bankReturnCodeStr = resp.value.body.returnCode.value
-    val bankReturnCode = EbicsReturnCode.lookup(bankReturnCodeStr)
-
-    val techReturnCodeStr = resp.value.header.mutable.returnCode
-    val techReturnCode = EbicsReturnCode.lookup(techReturnCodeStr)
-
-    val reportText = resp.value.header.mutable.reportText
-
-    val daeXml = resp.value.body.dataTransfer?.dataEncryptionInfo
-    val dataEncryptionInfo = if (daeXml == null) {
-        null
-    } else {
-        DataEncryptionInfo(daeXml.transactionKey, 
daeXml.encryptionPubKeyDigest.value)
-    }
-
-    return EbicsResponseContent(
-        transactionID = resp.value.header._static.transactionID,
-        orderID = resp.value.header.mutable.orderID,
-        bankReturnCode = bankReturnCode,
-        technicalReturnCode = techReturnCode,
-        reportText = reportText,
-        orderDataEncChunk = resp.value.body.dataTransfer?.orderData?.value,
-        dataEncryptionInfo = dataEncryptionInfo,
-        numSegments = resp.value.header._static.numSegments?.toInt(),
-        segmentNumber = resp.value.header.mutable.segmentNumber?.value?.toInt()
-    )
-}
-
-/**
- * Get the private key that matches the given public key digest.
- */
-fun getDecryptionKey(subscriberDetails: EbicsClientSubscriberDetails, 
pubDigest: ByteArray): RSAPrivateCrtKey {
-    val authPub = 
CryptoUtil.getRsaPublicFromPrivate(subscriberDetails.customerAuthPriv)
-    val encPub = 
CryptoUtil.getRsaPublicFromPrivate(subscriberDetails.customerEncPriv)
-    val authPubDigest = CryptoUtil.getEbicsPublicKeyHash(authPub)
-    val encPubDigest = CryptoUtil.getEbicsPublicKeyHash(encPub)
-    if (pubDigest.contentEquals(authPubDigest)) {
-        return subscriberDetails.customerAuthPriv
-    }
-    if (pubDigest.contentEquals(encPubDigest)) {
-        return subscriberDetails.customerEncPriv
-    }
-    throw EbicsProtocolError(HttpStatusCode.NotFound, "Could not find 
customer's public key")
-}
-
-data class EbicsVersionSpec(
-    val protocol: String,
-    val version: String
-)
-
-data class EbicsHevDetails(
-    val versions: List<EbicsVersionSpec>
-)
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/EbicsOrderUtil.kt 
b/ebics/src/main/kotlin/EbicsOrderUtil.kt
deleted file mode 100644
index 79c78a29..00000000
--- a/ebics/src/main/kotlin/EbicsOrderUtil.kt
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2024 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-package tech.libeufin.ebics
-
-import tech.libeufin.common.deflate
-import tech.libeufin.common.inflate
-import tech.libeufin.common.toHexString
-import java.security.SecureRandom
-
-/**
- * Helpers for dealing with order compression, encryption, decryption, 
chunking and re-assembly.
- */
-object EbicsOrderUtil {
-
-    inline fun <reified T> decodeOrderDataXml(encodedOrderData: ByteArray): T {
-        return encodedOrderData.inputStream().inflate().use {
-            XMLUtil.convertToJaxb<T>(it).value
-        }
-    }
-
-    inline fun <reified T> encodeOrderDataXml(obj: T): ByteArray {
-        val bytes = XMLUtil.convertJaxbToBytes(obj)
-        return bytes.inputStream().deflate().readAllBytes()
-    }
-
-    @ExperimentalStdlibApi
-    fun generateTransactionId(): String {
-        val rng = SecureRandom()
-        val res = ByteArray(16)
-        rng.nextBytes(res)
-        return res.toHexString().uppercase()
-    }
-
-    /**
-     * Calculate the resulting size of base64-encoding data of the given 
length,
-     * including padding.
-     */
-    fun calculateBase64EncodedLength(dataLength: Int): Int {
-        val blocks = (dataLength + 3 - 1) / 3
-        return blocks * 4
-    }
-
-    fun checkOrderIDOverflow(n: Int): Boolean {
-        if (n <= 0)
-            throw IllegalArgumentException()
-        val base = 10 + 26
-        return n >= base * base
-    }
-
-    private fun getDigitChar(x: Int): Char {
-        if (x < 10) {
-            return '0' + x
-        }
-        return 'A' + (x - 10)
-    }
-
-    fun computeOrderIDFromNumber(n: Int): String {
-        if (n <= 0)
-            throw IllegalArgumentException()
-        if (checkOrderIDOverflow(n))
-            throw IllegalArgumentException()
-        var ni = n
-        val base = 10 + 26
-        val x1 = ni % base
-        ni = ni / base
-        val x2 = ni % base
-        val c1 = getDigitChar(x1)
-        val c2 = getDigitChar(x2)
-        return String(charArrayOf('O', 'R', c2, c1))
-    }
-}
diff --git a/ebics/src/main/kotlin/XMLUtil.kt b/ebics/src/main/kotlin/XMLUtil.kt
deleted file mode 100644
index fbebc124..00000000
--- a/ebics/src/main/kotlin/XMLUtil.kt
+++ /dev/null
@@ -1,548 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2024 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-package tech.libeufin.ebics
-
-import com.sun.xml.bind.marshaller.NamespacePrefixMapper
-import io.ktor.http.*
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-import org.w3c.dom.Document
-import org.w3c.dom.Node
-import org.w3c.dom.NodeList
-import org.w3c.dom.ls.LSInput
-import org.w3c.dom.ls.LSResourceResolver
-import org.xml.sax.ErrorHandler
-import org.xml.sax.InputSource
-import org.xml.sax.SAXException
-import org.xml.sax.SAXParseException
-import tech.libeufin.ebics.ebics_h004.EbicsResponse
-import java.io.*
-import java.security.PrivateKey
-import java.security.PublicKey
-import java.security.interfaces.RSAPrivateCrtKey
-import javax.xml.XMLConstants
-import javax.xml.bind.JAXBContext
-import javax.xml.bind.JAXBElement
-import javax.xml.bind.Marshaller
-import javax.xml.crypto.*
-import javax.xml.crypto.dom.DOMURIReference
-import javax.xml.crypto.dsig.*
-import javax.xml.crypto.dsig.dom.DOMSignContext
-import javax.xml.crypto.dsig.dom.DOMValidateContext
-import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec
-import javax.xml.crypto.dsig.spec.TransformParameterSpec
-import javax.xml.namespace.NamespaceContext
-import javax.xml.parsers.DocumentBuilderFactory
-import javax.xml.transform.OutputKeys
-import javax.xml.transform.Source
-import javax.xml.transform.TransformerFactory
-import javax.xml.transform.dom.DOMSource
-import javax.xml.transform.stream.StreamResult
-import javax.xml.transform.stream.StreamSource
-import javax.xml.validation.SchemaFactory
-import javax.xml.validation.Validator
-import javax.xml.xpath.XPath
-import javax.xml.xpath.XPathConstants
-import javax.xml.xpath.XPathFactory
-
-private val logger: Logger = LoggerFactory.getLogger("libeufin-xml")
-
-class DefaultNamespaces : NamespacePrefixMapper() {
-    override fun getPreferredPrefix(namespaceUri: String?, suggestion: 
String?, requirePrefix: Boolean): String? {
-        if (namespaceUri == "http://www.w3.org/2000/09/xmldsig#";) return "ds"
-        if (namespaceUri == XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI) 
return "xsi"
-        return null
-    }
-}
-
-class DOMInputImpl : LSInput {
-    var fPublicId: String? = null
-    var fSystemId: String? = null
-    var fBaseSystemId: String? = null
-    var fByteStream: InputStream? = null
-    var fCharStream: Reader? = null
-    var fData: String? = null
-    var fEncoding: String? = null
-    var fCertifiedText = false
-
-    override fun getByteStream(): InputStream? {
-        return fByteStream
-    }
-
-    override fun setByteStream(byteStream: InputStream) {
-        fByteStream = byteStream
-    }
-
-    override fun getCharacterStream(): Reader? {
-        return fCharStream
-    }
-
-    override fun setCharacterStream(characterStream: Reader) {
-        fCharStream = characterStream
-    }
-
-    override fun getStringData(): String? {
-        return fData
-    }
-
-    override fun setStringData(stringData: String) {
-        fData = stringData
-    }
-
-    override fun getEncoding(): String? {
-        return fEncoding
-    }
-
-    override fun setEncoding(encoding: String) {
-        fEncoding = encoding
-    }
-
-    override fun getPublicId(): String? {
-        return fPublicId
-    }
-
-    override fun setPublicId(publicId: String) {
-        fPublicId = publicId
-    }
-
-    override fun getSystemId(): String? {
-        return fSystemId
-    }
-
-    override fun setSystemId(systemId: String) {
-        fSystemId = systemId
-    }
-
-    override fun getBaseURI(): String? {
-        return fBaseSystemId
-    }
-
-    override fun setBaseURI(baseURI: String) {
-        fBaseSystemId = baseURI
-    }
-
-    override fun getCertifiedText(): Boolean {
-        return fCertifiedText
-    }
-
-    override fun setCertifiedText(certifiedText: Boolean) {
-        fCertifiedText = certifiedText
-    }
-}
-
-
-/**
- * Helpers for dealing with XML in EBICS.
- */
-class XMLUtil private constructor() {
-    /**
-     * This URI dereferencer allows handling the resource reference used for
-     * XML signatures in EBICS.
-     */
-    private class EbicsSigUriDereferencer : URIDereferencer {
-        override fun dereference(myRef: URIReference?, myCtx: 
XMLCryptoContext?): Data {
-            val ebicsXpathExpr = "//*[@authenticate='true']"
-            if (myRef !is DOMURIReference)
-                throw Exception("invalid type")
-            if (myRef.uri != "#xpointer($ebicsXpathExpr)")
-                throw Exception("invalid EBICS XML signature URI: 
'${myRef.uri}'")
-            val xp: XPath = XPathFactory.newInstance().newXPath()
-            val nodeSet = 
xp.compile("//*[@authenticate='true']/descendant-or-self::node()").evaluate(
-                myRef.here.ownerDocument, XPathConstants.NODESET
-            )
-            if (nodeSet !is NodeList)
-                throw Exception("invalid type")
-            if (nodeSet.length <= 0) {
-                throw Exception("no nodes to sign")
-            }
-            val nodeList = ArrayList<Node>()
-            for (i in 0 until nodeSet.length) {
-                val node = nodeSet.item(i)
-                nodeList.add(node)
-            }
-            return NodeSetData { nodeList.iterator() }
-        }
-    }
-
-    companion object {
-        private var cachedEbicsValidator: Validator? = null
-        private fun getEbicsValidator(): Validator {
-            val currentValidator = cachedEbicsValidator
-            if (currentValidator != null)
-                return currentValidator
-            val classLoader = ClassLoader.getSystemClassLoader()
-            val sf = 
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI)
-            sf.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "file")
-            sf.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, "")
-            sf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true)
-            sf.errorHandler = object : ErrorHandler {
-                override fun warning(p0: SAXParseException?) {
-                    println("Warning: $p0")
-                }
-
-                override fun error(p0: SAXParseException?) {
-                    println("Error: $p0")
-                }
-
-                override fun fatalError(p0: SAXParseException?) {
-                    println("Fatal error: $p0")
-                }
-            }
-            sf.resourceResolver = object : LSResourceResolver {
-                override fun resolveResource(
-                    type: String?,
-                    namespaceURI: String?,
-                    publicId: String?,
-                    systemId: String?,
-                    baseUri: String?
-                ): LSInput? {
-                    if (type != "http://www.w3.org/2001/XMLSchema";) {
-                        return null
-                    }
-                    val res = classLoader.getResourceAsStream("xsd/$systemId") 
?: return null
-                    return DOMInputImpl().apply {
-                        fPublicId = publicId
-                        fSystemId = systemId
-                        fBaseSystemId = baseUri
-                        fByteStream = res
-                        fEncoding = "UTF-8"
-                    }
-                }
-            }
-            val schemaInputs: Array<Source> = listOf(
-                "xsd/ebics_H004.xsd",
-                "xsd/ebics_H005.xsd",
-                "xsd/ebics_hev.xsd",
-                "xsd/camt.052.001.02.xsd",
-                "xsd/camt.053.001.02.xsd",
-                "xsd/camt.054.001.02.xsd",
-                "xsd/pain.001.001.03.xsd",
-                // "xsd/pain.001.001.03.ch.02.xsd", // Swiss 2013 version.
-                "xsd/pain.001.001.09.ch.03.xsd" // Swiss 2019 version.
-            ).map {
-                val stream =
-                    classLoader.getResourceAsStream(it) ?: throw 
FileNotFoundException("Schema file $it not found.")
-                StreamSource(stream)
-            }.toTypedArray()
-            val bundle = sf.newSchema(schemaInputs)
-            val newValidator = bundle.newValidator()
-            cachedEbicsValidator = newValidator
-            return newValidator
-        }
-
-        /**
-         *
-         * @param xmlDoc the XML document to validate
-         * @return true when validation passes, false otherwise
-         */
-        @Synchronized fun validate(xmlDoc: StreamSource): Boolean {
-            try {
-                getEbicsValidator().validate(xmlDoc)
-            } catch (e: Exception) {
-                /**
-                 * Would be convenient to return also the error
-                 * message to the caller, so that it can link it
-                 * to a document ID in the logs.
-                 */
-                logger.warn("Validation failed: ${e}")
-                return false
-            }
-            return true
-        }
-
-        /**
-         * Validates the DOM against the Schema(s) of this object.
-         * @param domDocument DOM to validate
-         * @return true/false if the document is valid/invalid
-         */
-        @Synchronized fun validateFromDom(domDocument: Document): Boolean {
-            try {
-                getEbicsValidator().validate(DOMSource(domDocument))
-            } catch (e: SAXException) {
-                e.printStackTrace()
-                return false
-            }
-            return true
-        }
-
-        /**
-         * Craft object to be passed to the XML validator.
-         * @param xmlString XML body, as read from the POST body.
-         * @return InputStream object, as wanted by the validator.
-         */
-        fun validateFromBytes(xml: ByteArray): Boolean {
-            return validate(StreamSource(xml.inputStream()))
-        }
-
-        inline fun <reified T> convertJaxbToBytes(
-            obj: T,
-            withSchemaLocation: String? = null
-            ): ByteArray {
-            val w = ByteArrayOutputStream()
-            val jc = JAXBContext.newInstance(T::class.java)
-            val m = jc.createMarshaller()
-            m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true)
-            if (withSchemaLocation != null) {
-                m.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, 
withSchemaLocation)
-            }
-            m.setProperty("com.sun.xml.bind.namespacePrefixMapper", 
DefaultNamespaces())
-            m.marshal(obj, w)
-            return w.toByteArray()
-        }
-
-        inline fun <reified T> convertJaxbToDocument(
-            obj: T,
-            withSchemaLocation: String? = null
-        ): Document {
-            val dbf: DocumentBuilderFactory = 
DocumentBuilderFactory.newInstance()
-            dbf.isNamespaceAware = true
-            val doc = dbf.newDocumentBuilder().newDocument()
-            val jc = JAXBContext.newInstance(T::class.java)
-            val m = jc.createMarshaller()
-            m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true)
-            if (withSchemaLocation != null) {
-                m.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, 
withSchemaLocation)
-            }
-            m.setProperty("com.sun.xml.bind.namespacePrefixMapper", 
DefaultNamespaces())
-            m.marshal(obj, doc)
-            return doc
-        }
-
-        /**
-         * Convert XML bytes to the JAXB representation.
-         *
-         * @param documentBytes the bytes to convert into JAXB.
-         * @return the JAXB object reflecting the original XML document.
-         */
-        inline fun <reified T> convertToJaxb(documentBytes: InputStream): 
JAXBElement<T> {
-            val jc = JAXBContext.newInstance(T::class.java)
-            val u = jc.createUnmarshaller()
-            return u.unmarshal(            /* Marshalling the object into the 
document.  */
-                StreamSource(documentBytes),
-                T::class.java
-            )
-        }
-
-        fun convertDomToBytes(document: Document): ByteArray {
-            /* Make Transformer.  */
-            val tf = TransformerFactory.newInstance()
-            val t = tf.newTransformer()
-
-            /* Make bytes writer.  */
-            val w = ByteArrayOutputStream()
-
-            /* Extract string.  */
-            t.transform(DOMSource(document), StreamResult(w))
-            return w.toByteArray()
-        }
-
-        /**
-         * Convert a node to a string without the XML declaration or
-         * indentation.
-         */
-        fun convertNodeToString(node: Node): String {
-            /* Make Transformer.  */
-            val tf = TransformerFactory.newInstance()
-            val t = tf.newTransformer()
-            t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes")
-            /* Make string writer.  */
-            val sw = StringWriter()
-            /* Extract string.  */
-            t.transform(DOMSource(node), StreamResult(sw))
-            return sw.toString()
-        }
-
-        /**
-         * Convert a DOM document to the JAXB representation.
-         *
-         * @param document the document to convert into JAXB.
-         * @return the JAXB object reflecting the original XML document.
-         */
-        inline fun <reified T> convertDomToJaxb(document: Document): 
JAXBElement<T> {
-            val jc = JAXBContext.newInstance(T::class.java)
-            /* Marshalling the object into the document.  */
-            val m = jc.createUnmarshaller()
-            return m.unmarshal(document, T::class.java) // document "went" 
into Jaxb
-        }
-
-        /** Parse [xml] into a XML DOM */
-        fun parseIntoDom(xml: InputStream): Document {
-            val factory = DocumentBuilderFactory.newInstance().apply {
-                isNamespaceAware = true
-            }
-            val builder = factory.newDocumentBuilder()
-            return xml.use { 
-                builder.parse(InputSource(it))
-            }
-        }
-
-        fun signEbicsResponse(ebicsResponse: EbicsResponse, privateKey: 
RSAPrivateCrtKey): ByteArray {
-            val doc = convertJaxbToDocument(ebicsResponse)
-            signEbicsDocument(doc, privateKey)
-            val signedDoc = convertDomToBytes(doc)
-            // logger.debug("response: $signedDoc")
-            return signedDoc
-        }
-
-        /**
-         * Sign an EBICS document with the authentication and identity 
signature.
-         */
-        fun signEbicsDocument(
-            doc: Document,
-            signingPriv: PrivateKey,
-            withEbics3: Boolean = false
-        ) {
-            val xpath = XPathFactory.newInstance().newXPath()
-            xpath.namespaceContext = object : NamespaceContext {
-                override fun getNamespaceURI(p0: String?): String {
-                    return when (p0) {
-                        "ebics" -> if (withEbics3) "urn:org:ebics:H005" else 
"urn:org:ebics:H004"
-                        else -> throw IllegalArgumentException()
-                    }
-                }
-
-                override fun getPrefix(p0: String?): String {
-                    throw UnsupportedOperationException()
-                }
-
-                override fun getPrefixes(p0: String?): MutableIterator<String> 
{
-                    throw UnsupportedOperationException()
-                }
-            }
-            val authSigNode = 
xpath.compile("/*[1]/ebics:AuthSignature").evaluate(doc, XPathConstants.NODE)
-            if (authSigNode !is Node)
-                throw java.lang.Exception("no AuthSignature")
-            val fac = XMLSignatureFactory.getInstance("DOM")
-            val c14n = fac.newTransform(CanonicalizationMethod.INCLUSIVE, null 
as TransformParameterSpec?)
-            val ref: Reference =
-                fac.newReference(
-                    "#xpointer(//*[@authenticate='true'])",
-                    fac.newDigestMethod(DigestMethod.SHA256, null),
-                    listOf(c14n),
-                    null,
-                    null
-                )
-            val canon: CanonicalizationMethod =
-                
fac.newCanonicalizationMethod(CanonicalizationMethod.INCLUSIVE, null as 
C14NMethodParameterSpec?)
-            val signatureMethod = 
fac.newSignatureMethod("http://www.w3.org/2001/04/xmldsig-more#rsa-sha256";, 
null)
-            val si: SignedInfo = fac.newSignedInfo(canon, signatureMethod, 
listOf(ref))
-            val sig: XMLSignature = fac.newXMLSignature(si, null)
-            val dsc = DOMSignContext(signingPriv, authSigNode)
-            dsc.defaultNamespacePrefix = "ds"
-            dsc.uriDereferencer = EbicsSigUriDereferencer()
-            dsc.setProperty("javax.xml.crypto.dsig.cacheReference", true)
-            sig.sign(dsc)
-            val innerSig = authSigNode.firstChild
-            while (innerSig.hasChildNodes()) {
-                authSigNode.appendChild(innerSig.firstChild)
-            }
-            authSigNode.removeChild(innerSig)
-        }
-
-        fun verifyEbicsDocument(
-            doc: Document,
-            signingPub: PublicKey,
-            withEbics3: Boolean = false
-        ): Boolean {
-            val xpath = XPathFactory.newInstance().newXPath()
-            xpath.namespaceContext = object : NamespaceContext {
-                override fun getNamespaceURI(p0: String?): String {
-                    return when (p0) {
-                        "ebics" -> if (withEbics3) "urn:org:ebics:H005" else 
"urn:org:ebics:H004"
-                        else -> throw IllegalArgumentException()
-                    }
-                }
-
-                override fun getPrefix(p0: String?): String {
-                    throw UnsupportedOperationException()
-                }
-
-                override fun getPrefixes(p0: String?): MutableIterator<String> 
{
-                    throw UnsupportedOperationException()
-                }
-            }
-            val doc2: Document = doc.cloneNode(true) as Document
-            val authSigNode = 
xpath.compile("/*[1]/ebics:AuthSignature").evaluate(doc2, XPathConstants.NODE)
-            if (authSigNode !is Node)
-                throw java.lang.Exception("no AuthSignature")
-            val sigEl = 
doc2.createElementNS("http://www.w3.org/2000/09/xmldsig#";, "ds:Signature")
-            authSigNode.parentNode.insertBefore(sigEl, authSigNode)
-            while (authSigNode.hasChildNodes()) {
-                sigEl.appendChild(authSigNode.firstChild)
-            }
-            authSigNode.parentNode.removeChild(authSigNode)
-            val fac = XMLSignatureFactory.getInstance("DOM")
-            val dvc = DOMValidateContext(signingPub, sigEl)
-            dvc.setProperty("javax.xml.crypto.dsig.cacheReference", true)
-            dvc.uriDereferencer = EbicsSigUriDereferencer()
-            val sig = fac.unmarshalXMLSignature(dvc)
-            // FIXME: check that parameters are okay!
-            val valResult = sig.validate(dvc)
-            sig.signedInfo.references[0].validate(dvc)
-            return valResult
-        }
-
-        fun getNodeFromXpath(doc: Document, query: String): Node {
-            val xpath = XPathFactory.newInstance().newXPath()
-            val ret = xpath.evaluate(query, doc, XPathConstants.NODE)
-                ?: throw EbicsProtocolError(HttpStatusCode.NotFound, 
"Unsuccessful XPath query string: $query")
-            return ret as Node
-        }
-
-        fun getStringFromXpath(doc: Document, query: String): String {
-            val xpath = XPathFactory.newInstance().newXPath()
-            val ret = xpath.evaluate(query, doc, XPathConstants.STRING) as 
String
-            if (ret.isEmpty()) {
-                throw EbicsProtocolError(HttpStatusCode.NotFound, 
"Unsuccessful XPath query string: $query")
-            }
-            return ret
-        }
-    }
-}
-
-fun Document.pickString(xpath: String): String {
-    return XMLUtil.getStringFromXpath(this, xpath)
-}
-
-fun Document.pickStringWithRootNs(xpathQuery: String): String {
-    val doc = this
-    val xpath = XPathFactory.newInstance().newXPath()
-    xpath.namespaceContext = object : NamespaceContext {
-        override fun getNamespaceURI(p0: String?): String {
-            return when (p0) {
-                "root" -> doc.documentElement.namespaceURI
-                else -> throw IllegalArgumentException()
-            }
-        }
-
-        override fun getPrefix(p0: String?): String {
-            throw UnsupportedOperationException()
-        }
-
-        override fun getPrefixes(p0: String?): MutableIterator<String> {
-            throw UnsupportedOperationException()
-        }
-    }
-    val ret = xpath.evaluate(xpathQuery, this, XPathConstants.STRING) as String
-    if (ret.isEmpty()) {
-        throw EbicsProtocolError(HttpStatusCode.NotFound, "Unsuccessful XPath 
query string: $xpathQuery")
-    }
-    return ret
-}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_h004/EbicsKeyManagementResponse.kt 
b/ebics/src/main/kotlin/ebics_h004/EbicsKeyManagementResponse.kt
deleted file mode 100644
index 74d99c94..00000000
--- a/ebics/src/main/kotlin/ebics_h004/EbicsKeyManagementResponse.kt
+++ /dev/null
@@ -1,102 +0,0 @@
-package tech.libeufin.ebics.ebics_h004
-
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.NormalizedStringAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(name = "", propOrder = ["header", "body"])
-@XmlRootElement(name = "ebicsKeyManagementResponse")
-class EbicsKeyManagementResponse {
-    @get:XmlElement(required = true)
-    lateinit var header: Header
-
-    @get:XmlElement(required = true)
-    lateinit var body: Body
-
-    @get:XmlAttribute(name = "Version", required = true)
-    @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-    lateinit var version: String
-
-    @get:XmlAttribute(name = "Revision")
-    var revision: Int? = null
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["_static", "mutable"])
-    class Header {
-        @get:XmlElement(name = "static", required = true)
-        lateinit var _static: EmptyStaticHeader
-
-        @get:XmlElement(required = true)
-        lateinit var mutable: MutableHeaderType
-
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["orderID", "returnCode", "reportText"])
-    class MutableHeaderType {
-        @get:XmlElement(name = "OrderID")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        var orderID: String? = null
-
-        @get:XmlElement(name = "ReturnCode", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        lateinit var returnCode: String
-
-        @get:XmlElement(name = "ReportText", required = true)
-        @get:XmlJavaTypeAdapter(NormalizedStringAdapter::class)
-        @get:XmlSchemaType(name = "normalizedString")
-        lateinit var reportText: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "")
-    class EmptyStaticHeader
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["dataTransfer", "returnCode", 
"timestampBankParameter"])
-    class Body {
-        @get:XmlElement(name = "DataTransfer")
-        var dataTransfer: DataTransfer? = null
-
-        @get:XmlElement(name = "ReturnCode", required = true)
-        lateinit var returnCode: ReturnCode
-
-        @get:XmlElement(name = "TimestampBankParameter")
-        var timestampBankParameter: EbicsTypes.TimestampBankParameter? = null
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class ReturnCode {
-        @get:XmlValue
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var value: String
-
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["dataEncryptionInfo", "orderData"])
-    class DataTransfer {
-        @get:XmlElement(name = "DataEncryptionInfo")
-        var dataEncryptionInfo: EbicsTypes.DataEncryptionInfo? = null
-
-        @get:XmlElement(name = "OrderData", required = true)
-        lateinit var orderData: OrderData
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class OrderData {
-        @get:XmlValue
-        lateinit var value: String
-    }
-}
diff --git a/ebics/src/main/kotlin/ebics_h004/EbicsNpkdRequest.kt 
b/ebics/src/main/kotlin/ebics_h004/EbicsNpkdRequest.kt
deleted file mode 100644
index 2330ca0b..00000000
--- a/ebics/src/main/kotlin/ebics_h004/EbicsNpkdRequest.kt
+++ /dev/null
@@ -1,135 +0,0 @@
-package tech.libeufin.ebics.ebics_h004
-
-import org.apache.xml.security.binding.xmldsig.SignatureType
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.HexBinaryAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-import javax.xml.datatype.XMLGregorianCalendar
-
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(name = "", propOrder = ["header", "authSignature", "body"])
-@XmlRootElement(name = "ebicsNoPubKeyDigestsRequest")
-class EbicsNpkdRequest {
-    @get:XmlAttribute(name = "Version", required = true)
-    @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-    lateinit var version: String
-
-    @get:XmlAttribute(name = "Revision")
-    var revision: Int? = null
-
-    @get:XmlElement(name = "header", required = true)
-    lateinit var header: Header
-
-    @get:XmlElement(name = "AuthSignature", required = true)
-    lateinit var authSignature: SignatureType
-
-    @get:XmlElement(required = true)
-    lateinit var body: EmptyBody
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["static", "mutable"])
-    class Header {
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-
-        @get:XmlElement(name = "static", required = true)
-        lateinit var static: StaticHeaderType
-
-        @get:XmlElement(required = true)
-        lateinit var mutable: EmptyMutableHeader
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "StaticHeader",
-        propOrder = ["hostID", "nonce", "timestamp", "partnerID", "userID", 
"systemID", "product", "orderDetails", "securityMedium"]
-    )
-    class StaticHeaderType {
-        @get:XmlElement(name = "HostID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var hostID: String
-
-        @get:XmlElement(name = "Nonce", type = String::class)
-        @get:XmlJavaTypeAdapter(HexBinaryAdapter::class)
-        @get:XmlSchemaType(name = "hexBinary")
-        lateinit var nonce: ByteArray
-
-        @get:XmlElement(name = "Timestamp")
-        @get:XmlSchemaType(name = "dateTime")
-        var timestamp: XMLGregorianCalendar? = null
-
-        @get:XmlElement(name = "PartnerID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var partnerID: String
-
-        @get:XmlElement(name = "UserID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var userID: String
-
-        @get:XmlElement(name = "SystemID")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        var systemID: String? = null
-
-        @get:XmlElement(name = "Product")
-        val product: EbicsTypes.Product? = null
-
-        @get:XmlElement(name = "OrderDetails", required = true)
-        lateinit var orderDetails: OrderDetails
-
-        @get:XmlElement(name = "SecurityMedium", required = true)
-        lateinit var securityMedium: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["orderType", "orderAttribute"])
-    class OrderDetails {
-        @get:XmlElement(name = "OrderType", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var orderType: String
-
-        @get:XmlElement(name = "OrderAttribute", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var orderAttribute: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "")
-    class EmptyMutableHeader
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class EmptyBody
-
-    companion object {
-        fun createRequest(
-            hostId: String,
-            partnerId: String,
-            userId: String,
-            aNonce: ByteArray,
-            date: XMLGregorianCalendar
-        ): EbicsNpkdRequest {
-            return EbicsNpkdRequest().apply {
-                version = "H004"
-                revision = 1
-                header = Header().apply {
-                    authenticate = true
-                    mutable = EmptyMutableHeader()
-                    static = StaticHeaderType().apply {
-                        hostID = hostId
-                        partnerID = partnerId
-                        userID = userId
-                        securityMedium = "0000"
-                        orderDetails = OrderDetails()
-                        orderDetails.orderType = "HPB"
-                        orderDetails.orderAttribute = "DZHNN"
-                        nonce = aNonce
-                        timestamp = date
-                    }
-                }
-                body = EmptyBody()
-                authSignature = SignatureType()
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_h004/EbicsRequest.kt 
b/ebics/src/main/kotlin/ebics_h004/EbicsRequest.kt
deleted file mode 100644
index 7ca7c6b9..00000000
--- a/ebics/src/main/kotlin/ebics_h004/EbicsRequest.kt
+++ /dev/null
@@ -1,504 +0,0 @@
-package tech.libeufin.ebics.ebics_h004
-
-import org.apache.xml.security.binding.xmldsig.SignatureType
-import tech.libeufin.common.crypto.CryptoUtil
-import java.math.BigInteger
-import java.security.interfaces.RSAPublicKey
-import java.util.*
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.HexBinaryAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-import javax.xml.datatype.XMLGregorianCalendar
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(name = "", propOrder = ["header", "authSignature", "body"])
-@XmlRootElement(name = "ebicsRequest")
-class EbicsRequest {
-    @get:XmlAttribute(name = "Version", required = true)
-    @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-    lateinit var version: String
-
-    @get:XmlAttribute(name = "Revision")
-    var revision: Int? = null
-
-    @get:XmlElement(name = "header", required = true)
-    lateinit var header: Header
-
-    @get:XmlElement(name = "AuthSignature", required = true)
-    lateinit var authSignature: SignatureType
-
-    @get:XmlElement(name = "body")
-    lateinit var body: Body
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["static", "mutable"])
-    class Header {
-        @get:XmlElement(name = "static", required = true)
-        lateinit var static: StaticHeaderType
-
-        @get:XmlElement(required = true)
-        lateinit var mutable: MutableHeader
-
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "",
-        propOrder = [
-            "hostID", "nonce", "timestamp", "partnerID", "userID", "systemID",
-            "product", "orderDetails", "bankPubKeyDigests", "securityMedium",
-            "numSegments", "transactionID"
-        ]
-    )
-    class StaticHeaderType {
-        @get:XmlElement(name = "HostID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var hostID: String
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "Nonce", type = String::class)
-        @get:XmlJavaTypeAdapter(HexBinaryAdapter::class)
-        @get:XmlSchemaType(name = "hexBinary")
-        var nonce: ByteArray? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "Timestamp")
-        @get:XmlSchemaType(name = "dateTime")
-        var timestamp: XMLGregorianCalendar? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "PartnerID")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        var partnerID: String? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "UserID")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        var userID: String? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "SystemID")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        var systemID: String? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "Product")
-        var product: EbicsTypes.Product? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "OrderDetails")
-        var orderDetails: OrderDetails? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "BankPubKeyDigests")
-        var bankPubKeyDigests: BankPubKeyDigests? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "SecurityMedium")
-        var securityMedium: String? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "NumSegments")
-        var numSegments: BigInteger? = null
-
-        /**
-         * Present only in the transaction / finalization phase.
-         */
-        @get:XmlElement(name = "TransactionID")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        var transactionID: String? = null
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["transactionPhase", "segmentNumber"])
-    class MutableHeader {
-        @get:XmlElement(name = "TransactionPhase", required = true)
-        @get:XmlSchemaType(name = "token")
-        lateinit var transactionPhase: EbicsTypes.TransactionPhaseType
-
-        /**
-         * Number of the currently transmitted segment, if this message
-         * contains order data.
-         */
-        @get:XmlElement(name = "SegmentNumber")
-        var segmentNumber: EbicsTypes.SegmentNumber? = null
-
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "",
-        propOrder = ["orderType", "orderID", "orderAttribute", "orderParams"]
-    )
-    class OrderDetails {
-        @get:XmlElement(name = "OrderType", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var orderType: String
-
-        /**
-         * Only present if this ebicsRequest is an upload order
-         * relating to an already existing order.
-         */
-        @get:XmlElement(name = "OrderID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        var orderID: String? = null
-
-        @get:XmlElement(name = "OrderAttribute", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var orderAttribute: String
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElements(
-            XmlElement(
-                name = "StandardOrderParams",
-                type = StandardOrderParams::class
-            ),
-            XmlElement(
-                name = "GenericOrderParams",
-                type = GenericOrderParams::class
-            )
-        )
-        var orderParams: OrderParams? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(propOrder = ["preValidation", "dataTransfer", "transferReceipt"])
-    class Body {
-        @get:XmlElement(name = "PreValidation")
-        var preValidation: PreValidation? = null
-
-        @get:XmlElement(name = "DataTransfer")
-        var dataTransfer: DataTransfer? = null
-
-        @get:XmlElement(name = "TransferReceipt")
-        var transferReceipt: TransferReceipt? = null
-    }
-
-    /**
-     * FIXME: not implemented yet
-     */
-    @XmlAccessorType(XmlAccessType.NONE)
-    class PreValidation {
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class SignatureData {
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-
-        @get:XmlValue
-        var value: ByteArray? = null
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(propOrder = ["dataEncryptionInfo", "signatureData", "orderData", 
"hostId"])
-    class DataTransfer {
-
-        @get:XmlElement(name = "DataEncryptionInfo")
-        var dataEncryptionInfo: EbicsTypes.DataEncryptionInfo? = null
-
-        @get:XmlElement(name = "SignatureData")
-        var signatureData: SignatureData? = null
-
-        @get:XmlElement(name = "OrderData")
-        var orderData: String? = null
-
-        @get:XmlElement(name = "HostID")
-        var hostId: String? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["receiptCode"])
-    class TransferReceipt {
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-
-        @get:XmlElement(name = "ReceiptCode")
-        var receiptCode: Int? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    abstract class OrderParams
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["dateRange"])
-    class StandardOrderParams : OrderParams() {
-        @get:XmlElement(name = "DateRange")
-        var dateRange: DateRange? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["parameterList"])
-    class GenericOrderParams : OrderParams() {
-        @get:XmlElement(type = EbicsTypes.Parameter::class)
-        var parameterList: List<EbicsTypes.Parameter> = LinkedList()
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["start", "end"])
-    class DateRange {
-        @get:XmlElement(name = "Start")
-        @get:XmlSchemaType(name = "date")
-        lateinit var start: XMLGregorianCalendar
-
-        @get:XmlElement(name = "End")
-        @get:XmlSchemaType(name = "date")
-        lateinit var end: XMLGregorianCalendar
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["authentication", "encryption"])
-    class BankPubKeyDigests {
-        @get:XmlElement(name = "Authentication")
-        lateinit var authentication: EbicsTypes.PubKeyDigest
-
-        @get:XmlElement(name = "Encryption")
-        lateinit var encryption: EbicsTypes.PubKeyDigest
-    }
-
-    companion object {
-        fun createForDownloadReceiptPhase(
-            transactionId: String,
-            hostId: String,
-            success: Boolean
-        ): EbicsRequest {
-            return EbicsRequest().apply {
-                header = Header().apply {
-                    version = "H004"
-                    revision = 1
-                    authenticate = true
-                    static = StaticHeaderType().apply {
-                        hostID = hostId
-                        transactionID = transactionId
-                    }
-                    mutable = MutableHeader().apply {
-                        transactionPhase = 
EbicsTypes.TransactionPhaseType.RECEIPT
-                    }
-                }
-                authSignature = SignatureType()
-
-                body = Body().apply {
-                    transferReceipt = TransferReceipt().apply {
-                        authenticate = true
-                        receiptCode = if (success) 0 else 1
-                    }
-                }
-            }
-        }
-
-        fun createForDownloadInitializationPhase(
-            userId: String,
-            partnerId: String,
-            hostId: String,
-            nonceArg: ByteArray,
-            date: XMLGregorianCalendar,
-            bankEncPub: RSAPublicKey,
-            bankAuthPub: RSAPublicKey,
-            myOrderType: String,
-            myOrderParams: OrderParams
-        ): EbicsRequest {
-            return EbicsRequest().apply {
-                version = "H004"
-                revision = 1
-                authSignature = SignatureType()
-                body = Body()
-                header = Header().apply {
-                    authenticate = true
-                    static = StaticHeaderType().apply {
-                        userID = userId
-                        partnerID = partnerId
-                        hostID = hostId
-                        nonce = nonceArg
-                        timestamp = date
-                        partnerID = partnerId
-                        orderDetails = OrderDetails().apply {
-                            orderType = myOrderType
-                            orderAttribute = "DZHNN"
-                            orderParams = myOrderParams
-                        }
-                        bankPubKeyDigests = BankPubKeyDigests().apply {
-                            authentication = EbicsTypes.PubKeyDigest().apply {
-                                algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                                version = "X002"
-                                value = 
CryptoUtil.getEbicsPublicKeyHash(bankAuthPub)
-                            }
-                            encryption = EbicsTypes.PubKeyDigest().apply {
-                                algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                                version = "E002"
-                                value = 
CryptoUtil.getEbicsPublicKeyHash(bankEncPub)
-                            }
-                            securityMedium = "0000"
-                        }
-                    }
-                    mutable = MutableHeader().apply {
-                        transactionPhase =
-                            EbicsTypes.TransactionPhaseType.INITIALISATION
-                    }
-                }
-            }
-        }
-
-        fun createForUploadInitializationPhase(
-            encryptedTransactionKey: ByteArray,
-            encryptedSignatureData: ByteArray,
-            hostId: String,
-            nonceArg: ByteArray,
-            partnerId: String,
-            userId: String,
-            date: XMLGregorianCalendar,
-            bankAuthPub: RSAPublicKey,
-            bankEncPub: RSAPublicKey,
-            segmentsNumber: BigInteger,
-            aOrderType: String,
-            aOrderParams: OrderParams
-        ): EbicsRequest {
-
-            return EbicsRequest().apply {
-                header = Header().apply {
-                    version = "H004"
-                    revision = 1
-                    authenticate = true
-                    static = StaticHeaderType().apply {
-                        hostID = hostId
-                        nonce = nonceArg
-                        timestamp = date
-                        partnerID = partnerId
-                        userID = userId
-                        orderDetails = OrderDetails().apply {
-                            orderType = aOrderType
-                            orderAttribute = "OZHNN"
-                            orderParams = aOrderParams
-                        }
-                        bankPubKeyDigests = BankPubKeyDigests().apply {
-                            authentication = EbicsTypes.PubKeyDigest().apply {
-                                algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                                version = "X002"
-                                value = 
CryptoUtil.getEbicsPublicKeyHash(bankAuthPub)
-                            }
-                            encryption = EbicsTypes.PubKeyDigest().apply {
-                                algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                                version = "E002"
-                                value = 
CryptoUtil.getEbicsPublicKeyHash(bankEncPub)
-                            }
-                        }
-                        securityMedium = "0000"
-                        numSegments = segmentsNumber
-                    }
-                    mutable = MutableHeader().apply {
-                        transactionPhase =
-                            EbicsTypes.TransactionPhaseType.INITIALISATION
-                    }
-                }
-                authSignature = SignatureType()
-                body = Body().apply {
-                    dataTransfer = DataTransfer().apply {
-                        signatureData = SignatureData().apply {
-                            authenticate = true
-                            value = encryptedSignatureData
-                        }
-                        dataEncryptionInfo = 
EbicsTypes.DataEncryptionInfo().apply {
-                            transactionKey = encryptedTransactionKey
-                            authenticate = true
-                            encryptionPubKeyDigest = 
EbicsTypes.PubKeyDigest().apply {
-                                algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                                version = "E002"
-                                value = 
CryptoUtil.getEbicsPublicKeyHash(bankEncPub)
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        fun createForUploadTransferPhase(
-            hostId: String,
-            transactionId: String?,
-            segNumber: BigInteger,
-            encryptedData: String
-        ): EbicsRequest {
-            return EbicsRequest().apply {
-                header = Header().apply {
-                    version = "H004"
-                    revision = 1
-                    authenticate = true
-                    static = StaticHeaderType().apply {
-                        hostID = hostId
-                        transactionID = transactionId
-                    }
-                    mutable = MutableHeader().apply {
-                        transactionPhase = 
EbicsTypes.TransactionPhaseType.TRANSFER
-                        segmentNumber = EbicsTypes.SegmentNumber().apply {
-                            lastSegment = true
-                            value = segNumber
-                        }
-                    }
-                }
-
-                authSignature = SignatureType()
-                body = Body().apply {
-                    dataTransfer = DataTransfer().apply {
-                        orderData = encryptedData
-                    }
-                }
-            }
-        }
-
-        fun createForDownloadTransferPhase(
-            hostID: String,
-            transactionID: String?,
-            segmentNumber: Int,
-            numSegments: Int
-        ): EbicsRequest {
-            return EbicsRequest().apply {
-                version = "H004"
-                revision = 1
-                authSignature = SignatureType()
-                body = Body()
-                header = Header().apply {
-                    authenticate = true
-                    static = StaticHeaderType().apply {
-                        this.hostID = hostID
-                        this.transactionID = transactionID
-                    }
-                    mutable = MutableHeader().apply {
-                        transactionPhase =
-                            EbicsTypes.TransactionPhaseType.TRANSFER
-                        this.segmentNumber = EbicsTypes.SegmentNumber().apply {
-                            this.value = 
BigInteger.valueOf(segmentNumber.toLong())
-                            this.lastSegment = segmentNumber == numSegments
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_h004/EbicsResponse.kt 
b/ebics/src/main/kotlin/ebics_h004/EbicsResponse.kt
deleted file mode 100644
index 373bb8f3..00000000
--- a/ebics/src/main/kotlin/ebics_h004/EbicsResponse.kt
+++ /dev/null
@@ -1,348 +0,0 @@
-package tech.libeufin.ebics.ebics_h004
-
-import org.apache.xml.security.binding.xmldsig.SignatureType
-import tech.libeufin.common.crypto.CryptoUtil
-import java.math.BigInteger
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.NormalizedStringAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-import kotlin.math.min
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(name = "", propOrder = ["header", "authSignature", "body"])
-@XmlRootElement(name = "ebicsResponse")
-class EbicsResponse {
-    @get:XmlAttribute(name = "Version", required = true)
-    @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-    lateinit var version: String
-
-    @get:XmlAttribute(name = "Revision")
-    var revision: Int? = null
-
-    @get:XmlElement(required = true)
-    lateinit var header: Header
-
-    @get:XmlElement(name = "AuthSignature", required = true)
-    lateinit var authSignature: SignatureType
-
-    @get:XmlElement(required = true)
-    lateinit var body: Body
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["_static", "mutable"])
-    class Header {
-        @get:XmlElement(name = "static", required = true)
-        lateinit var _static: StaticHeaderType
-
-        @get:XmlElement(required = true)
-        lateinit var mutable: MutableHeaderType
-
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["dataTransfer", "returnCode", 
"timestampBankParameter"])
-    class Body {
-        @get:XmlElement(name = "DataTransfer")
-        var dataTransfer: DataTransferResponseType? = null
-
-        @get:XmlElement(name = "ReturnCode", required = true)
-        lateinit var returnCode: ReturnCode
-
-        @get:XmlElement(name = "TimestampBankParameter")
-        var timestampBankParameter: EbicsTypes.TimestampBankParameter? = null
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "",
-        propOrder = ["transactionPhase", "segmentNumber", "orderID", 
"returnCode", "reportText"]
-    )
-    class MutableHeaderType {
-        @get:XmlElement(name = "TransactionPhase", required = true)
-        @get:XmlSchemaType(name = "token")
-        lateinit var transactionPhase: EbicsTypes.TransactionPhaseType
-
-        @get:XmlElement(name = "SegmentNumber")
-        var segmentNumber: EbicsTypes.SegmentNumber? = null
-
-        @get:XmlElement(name = "OrderID")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        var orderID: String? = null
-
-        @get:XmlElement(name = "ReturnCode", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        lateinit var returnCode: String
-
-        @get:XmlElement(name = "ReportText", required = true)
-        @get:XmlJavaTypeAdapter(NormalizedStringAdapter::class)
-        @get:XmlSchemaType(name = "normalizedString")
-        lateinit var reportText: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class OrderData {
-        @get:XmlValue
-        lateinit var value: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class ReturnCode {
-        @get:XmlValue
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var value: String
-
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "DataTransferResponseType", propOrder = 
["dataEncryptionInfo", "orderData"])
-    class DataTransferResponseType {
-        @get:XmlElement(name = "DataEncryptionInfo")
-        var dataEncryptionInfo: EbicsTypes.DataEncryptionInfo? = null
-
-        @get:XmlElement(name = "OrderData", required = true)
-        lateinit var orderData: OrderData
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "ResponseStaticHeaderType", propOrder = ["transactionID", 
"numSegments"])
-    class StaticHeaderType {
-        @get:XmlElement(name = "TransactionID")
-        var transactionID: String? = null
-
-        @get:XmlElement(name = "NumSegments")
-        @get:XmlSchemaType(name = "positiveInteger")
-        var numSegments: BigInteger? = null
-    }
-
-    companion object {
-
-        fun createForUploadWithError(
-            errorText: String, errorCode: String, phase: 
EbicsTypes.TransactionPhaseType
-        ): EbicsResponse {
-            val resp = EbicsResponse().apply {
-                this.version = "H004"
-                this.revision = 1
-                this.header = Header().apply {
-                    this.authenticate = true
-                    this.mutable = MutableHeaderType().apply {
-                        this.reportText = errorText
-                        this.returnCode = errorCode
-                        this.transactionPhase = phase
-                    }
-                    _static = StaticHeaderType()
-                }
-                this.authSignature = SignatureType()
-                this.body = Body().apply {
-                    this.returnCode = ReturnCode().apply {
-                        this.authenticate = true
-                        this.value = errorCode
-                    }
-                }
-            }
-            return resp
-        }
-
-        fun createForUploadInitializationPhase(transactionID: String, orderID: 
String): EbicsResponse {
-            return EbicsResponse().apply {
-                this.version = "H004"
-                this.revision = 1
-                this.header = Header().apply {
-                    this.authenticate = true
-                    this._static = StaticHeaderType().apply {
-                        this.transactionID = transactionID
-                    }
-                    this.mutable = MutableHeaderType().apply {
-                        this.transactionPhase =
-                            EbicsTypes.TransactionPhaseType.INITIALISATION
-                        this.orderID = orderID
-                        this.reportText = "[EBICS_OK] OK"
-                        this.returnCode = "000000"
-                    }
-                }
-                this.authSignature = SignatureType()
-                this.body = Body().apply {
-                    this.returnCode = ReturnCode().apply {
-                        this.authenticate = true
-                        this.value = "000000"
-                    }
-                }
-            }
-        }
-
-        fun createForDownloadReceiptPhase(transactionID: String, positiveAck: 
Boolean): EbicsResponse {
-            return EbicsResponse().apply {
-                this.version = "H004"
-                this.revision = 1
-                this.header = Header().apply {
-                    this.authenticate = true
-                    this._static = StaticHeaderType().apply {
-                        this.transactionID = transactionID
-                    }
-                    this.mutable = MutableHeaderType().apply {
-                        this.transactionPhase =
-                            EbicsTypes.TransactionPhaseType.RECEIPT
-                        if (positiveAck) {
-                            this.reportText = 
"[EBICS_DOWNLOAD_POSTPROCESS_DONE] Received positive receipt"
-                            this.returnCode = "011000"
-                        } else {
-                            this.reportText = 
"[EBICS_DOWNLOAD_POSTPROCESS_SKIPPED] Received negative receipt"
-                            this.returnCode = "011001"
-                        }
-                    }
-                }
-                this.authSignature = SignatureType()
-                this.body = Body().apply {
-                    this.returnCode = ReturnCode().apply {
-                        this.authenticate = true
-                        this.value = "000000"
-                    }
-                }
-            }
-        }
-
-        fun createForUploadTransferPhase(
-            transactionID: String,
-            segmentNumber: Int,
-            lastSegment: Boolean,
-            orderID: String
-        ): EbicsResponse {
-            return EbicsResponse().apply {
-                this.version = "H004"
-                this.revision = 1
-                this.header = Header().apply {
-                    this.authenticate = true
-                    this._static = StaticHeaderType().apply {
-                        this.transactionID = transactionID
-                    }
-                    this.mutable = MutableHeaderType().apply {
-                        this.transactionPhase =
-                            EbicsTypes.TransactionPhaseType.TRANSFER
-                        this.segmentNumber = EbicsTypes.SegmentNumber().apply {
-                            this.value = 
BigInteger.valueOf(segmentNumber.toLong())
-                            if (lastSegment) {
-                                this.lastSegment = true
-                            }
-                        }
-                        this.orderID = orderID
-                        this.reportText = "[EBICS_OK] OK"
-                        this.returnCode = "000000"
-                    }
-                }
-                this.authSignature = SignatureType()
-                this.body = Body().apply {
-                    this.returnCode = ReturnCode().apply {
-                        this.authenticate = true
-                        this.value = "000000"
-                    }
-                }
-            }
-        }
-
-        /**
-         * @param requestedSegment requested segment as a 1-based index
-         */
-        fun createForDownloadTransferPhase(
-            transactionID: String,
-            numSegments: Int,
-            segmentSize: Int,
-            encodedData: String,
-            requestedSegment: Int
-        ): EbicsResponse {
-            return EbicsResponse().apply {
-                this.version = "H004"
-                this.revision = 1
-                this.header = Header().apply {
-                    this.authenticate = true
-                    this._static = StaticHeaderType().apply {
-                        this.transactionID = transactionID
-                        this.numSegments = 
BigInteger.valueOf(numSegments.toLong())
-                    }
-                    this.mutable = MutableHeaderType().apply {
-                        this.transactionPhase =
-                            EbicsTypes.TransactionPhaseType.TRANSFER
-                        this.segmentNumber = EbicsTypes.SegmentNumber().apply {
-                            this.lastSegment = numSegments == requestedSegment
-                            this.value = 
BigInteger.valueOf(requestedSegment.toLong())
-                        }
-                        this.reportText = "[EBICS_OK] OK"
-                        this.returnCode = "000000"
-                    }
-                }
-                this.authSignature = SignatureType()
-                this.body = Body().apply {
-                    this.returnCode = ReturnCode().apply {
-                        this.authenticate = true
-                        this.value = "000000"
-                    }
-                    this.dataTransfer = DataTransferResponseType().apply {
-                        this.orderData = OrderData().apply {
-                            val start = segmentSize * (requestedSegment - 1)
-                            this.value = encodedData.substring(start, 
min(start + segmentSize, encodedData.length))
-                        }
-                    }
-                }
-            }
-        }
-
-        fun createForDownloadInitializationPhase(
-            transactionID: String,
-            numSegments: Int,
-            segmentSize: Int,
-            enc: CryptoUtil.EncryptionResult,
-            encodedData: String
-        ): EbicsResponse {
-            return EbicsResponse().apply {
-                this.version = "H004"
-                this.revision = 1
-                this.header = Header().apply {
-                    this.authenticate = true
-                    this._static = StaticHeaderType().apply {
-                        this.transactionID = transactionID
-                        this.numSegments = 
BigInteger.valueOf(numSegments.toLong())
-                    }
-                    this.mutable = MutableHeaderType().apply {
-                        this.transactionPhase =
-                            EbicsTypes.TransactionPhaseType.INITIALISATION
-                        this.segmentNumber = EbicsTypes.SegmentNumber().apply {
-                            this.lastSegment = (numSegments == 1)
-                            this.value = BigInteger.valueOf(1)
-                        }
-                        this.reportText = "[EBICS_OK] OK"
-                        this.returnCode = "000000"
-                    }
-                }
-                this.authSignature = SignatureType()
-                this.body = Body().apply {
-                    this.returnCode = ReturnCode().apply {
-                        this.authenticate = true
-                        this.value = "000000"
-                    }
-                    this.dataTransfer = DataTransferResponseType().apply {
-                        this.dataEncryptionInfo = 
EbicsTypes.DataEncryptionInfo().apply {
-                            this.authenticate = true
-                            this.encryptionPubKeyDigest = 
EbicsTypes.PubKeyDigest()
-                                .apply {
-                                this.algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                                this.version = "E002"
-                                this.value = enc.pubKeyDigest
-                            }
-                            this.transactionKey = enc.encryptedTransactionKey
-                        }
-                        this.orderData = OrderData().apply {
-                            this.value = encodedData.substring(0, 
min(segmentSize, encodedData.length))
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/ebics/src/main/kotlin/ebics_h004/EbicsTypes.kt 
b/ebics/src/main/kotlin/ebics_h004/EbicsTypes.kt
deleted file mode 100644
index a2486408..00000000
--- a/ebics/src/main/kotlin/ebics_h004/EbicsTypes.kt
+++ /dev/null
@@ -1,402 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2019 Stanisci and Dold.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-package tech.libeufin.ebics.ebics_h004
-
-import org.apache.xml.security.binding.xmldsig.RSAKeyValueType
-import org.w3c.dom.Element
-import java.math.BigInteger
-import java.util.*
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.NormalizedStringAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-import javax.xml.datatype.XMLGregorianCalendar
-
-
-/**
- * EBICS type definitions that are shared between other requests / responses / 
order types.
- */
-object EbicsTypes {
-    /**
-     * EBICS client product.  Identifies the software that accesses the EBICS 
host.
-     */
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "Product", propOrder = ["value"])
-    class Product {
-        @get:XmlValue
-        @get:XmlJavaTypeAdapter(NormalizedStringAdapter::class)
-        lateinit var value: String
-
-        @get:XmlAttribute(name = "Language", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var language: String
-
-        @get:XmlAttribute(name = "InstituteID")
-        @get:XmlJavaTypeAdapter(NormalizedStringAdapter::class)
-        var instituteID: String? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["value"])
-    class SegmentNumber {
-        @XmlValue
-        lateinit var value: BigInteger
-
-        @XmlAttribute(name = "lastSegment")
-        var lastSegment: Boolean? = null
-    }
-
-
-    @XmlType(name = "", propOrder = ["encryptionPubKeyDigest", 
"transactionKey"])
-    @XmlAccessorType(XmlAccessType.NONE)
-    class DataEncryptionInfo {
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-
-        @get:XmlElement(name = "EncryptionPubKeyDigest", required = true)
-        lateinit var encryptionPubKeyDigest: PubKeyDigest
-
-        @get:XmlElement(name = "TransactionKey", required = true)
-        lateinit var transactionKey: ByteArray
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["value"])
-    class PubKeyDigest {
-        /**
-         * Version of the *digest* of the public key.
-         */
-        @get:XmlAttribute(name = "Version", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var version: String
-
-        @XmlAttribute(name = "Algorithm", required = true)
-        @XmlSchemaType(name = "anyURI")
-        lateinit var algorithm: String
-
-        @get:XmlValue
-        lateinit var value: ByteArray
-    }
-
-    @Suppress("UNUSED_PARAMETER")
-    enum class TransactionPhaseType(value: String) {
-        @XmlEnumValue("Initialisation")
-        INITIALISATION("Initialisation"),
-
-        /**
-         * Auftragsdatentransfer
-         *
-         */
-        @XmlEnumValue("Transfer")
-        TRANSFER("Transfer"),
-
-        /**
-         * Quittungstransfer
-         *
-         */
-        @XmlEnumValue("Receipt")
-        RECEIPT("Receipt");
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "")
-    class TimestampBankParameter {
-        @get:XmlValue
-        lateinit var value: XMLGregorianCalendar
-
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-    }
-
-
-
-    @XmlType(
-        name = "PubKeyValueType", propOrder = [
-            "rsaKeyValue",
-            "timeStamp"
-        ]
-    )
-    @XmlAccessorType(XmlAccessType.NONE)
-    class PubKeyValueType {
-        @get:XmlElement(name = "RSAKeyValue", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, required = true)
-        lateinit var rsaKeyValue: RSAKeyValueType
-
-        @get:XmlElement(name = "TimeStamp", required = false)
-        @get:XmlSchemaType(name = "dateTime")
-        var timeStamp: XMLGregorianCalendar? = null
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "AuthenticationPubKeyInfoType", propOrder = [
-            "x509Data",
-            "pubKeyValue",
-            "authenticationVersion"
-        ]
-    )
-    class AuthenticationPubKeyInfoType {
-        @get:XmlAnyElement()
-        var x509Data: Element? = null
-
-        @get:XmlElement(name = "PubKeyValue", required = true)
-        lateinit var pubKeyValue: PubKeyValueType
-
-        @get:XmlElement(name = "AuthenticationVersion", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        lateinit var authenticationVersion: String
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "EncryptionPubKeyInfoType", propOrder = [
-            "x509Data",
-            "pubKeyValue",
-            "encryptionVersion"
-        ]
-    )
-    class EncryptionPubKeyInfoType {
-        @get:XmlAnyElement()
-        var x509Data: Element? = null
-
-        @get:XmlElement(name = "PubKeyValue", required = true)
-        lateinit var pubKeyValue: PubKeyValueType
-
-        @get:XmlElement(name = "EncryptionVersion", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        lateinit var encryptionVersion: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class FileFormatType {
-        @get:XmlAttribute(name = "CountryCode")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var language: String
-
-        @get:XmlValue
-        @get:XmlJavaTypeAdapter(NormalizedStringAdapter::class)
-        lateinit var value: String
-    }
-
-    /**
-     * Generic key-value pair.
-     */
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["name", "value"])
-    class Parameter {
-        @get:XmlAttribute(name = "Type", required = true)
-        lateinit var type: String
-
-        @get:XmlElement(name = "Name", required = true)
-        lateinit var name: String
-
-        @get:XmlElement(name = "Value", required = true)
-        lateinit var value: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["addressInfo", "bankInfo", 
"accountInfoList", "orderInfoList"])
-    class PartnerInfo {
-        @get:XmlElement(name = "AddressInfo", required = true)
-        lateinit var addressInfo: AddressInfo
-
-        @get:XmlElement(name = "BankInfo", required = true)
-        lateinit var bankInfo: BankInfo
-
-        @get:XmlElement(name = "AccountInfo", type = AccountInfo::class)
-        var accountInfoList: List<AccountInfo>? = LinkedList<AccountInfo>()
-
-        @get:XmlElement(name = "OrderInfo", type = AuthOrderInfoType::class)
-        var orderInfoList: List<AuthOrderInfoType> = 
LinkedList<AuthOrderInfoType>()
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "",
-        propOrder = ["orderType", "fileFormat", "transferType", "orderFormat", 
"description", "numSigRequired"]
-    )
-    class AuthOrderInfoType {
-        @get:XmlElement(name = "OrderType")
-        lateinit var orderType: String
-
-        @get:XmlElement(name = "FileFormat")
-        val fileFormat: FileFormatType? = null
-
-        @get:XmlElement(name = "TransferType")
-        lateinit var transferType: String
-
-        @get:XmlElement(name = "OrderFormat", required = false)
-        var orderFormat: String? = null
-
-        @get:XmlElement(name = "Description")
-        lateinit var description: String
-
-        @get:XmlElement(name = "NumSigRequired")
-        var numSigRequired: Int? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class UserIDType {
-        @get:XmlValue
-        lateinit var value: String
-
-        @get:XmlAttribute(name = "Status")
-        var status: Int? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["userID", "name", "permissionList"])
-    class UserInfo {
-        @get:XmlElement(name = "UserID", required = true)
-        lateinit var userID: UserIDType
-
-        @get:XmlElement(name = "Name")
-        var name: String? = null
-
-        @get:XmlElement(name = "Permission", type = UserPermission::class)
-        var permissionList: List<UserPermission>? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["orderTypes", "fileFormat", "accountID", 
"maxAmount"])
-    class UserPermission {
-        @get:XmlAttribute(name = "AuthorizationLevel")
-        var authorizationLevel: String? = null
-
-        @get:XmlElement(name = "OrderTypes")
-        var orderTypes: String? = null
-
-        @get:XmlElement(name = "FileFormat")
-        val fileFormat: FileFormatType? = null
-
-        @get:XmlElement(name = "AccountID")
-        val accountID: String? = null
-
-        @get:XmlElement(name = "MaxAmount")
-        val maxAmount: String? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["name", "street", "postCode", "city", 
"region", "country"])
-    class AddressInfo {
-        @get:XmlElement(name = "Name")
-        var name: String? = null
-
-        @get:XmlElement(name = "Street")
-        var street: String? = null
-
-        @get:XmlElement(name = "PostCode")
-        var postCode: String? = null
-
-        @get:XmlElement(name = "City")
-        var city: String? = null
-
-        @get:XmlElement(name = "Region")
-        var region: String? = null
-
-        @get:XmlElement(name = "Country")
-        var country: String? = null
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class BankInfo {
-        @get:XmlElement(name = "HostID")
-        lateinit var hostID: String
-
-        @get:XmlElement(type = Parameter::class)
-        var parameters: List<Parameter>? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["accountNumberList", "bankCodeList", 
"accountHolder"])
-    class AccountInfo {
-        @get:XmlAttribute(name = "Currency")
-        var currency: String? = null
-
-        @get:XmlAttribute(name = "ID")
-        lateinit var id: String
-
-        @get:XmlAttribute(name = "Description")
-        var description: String? = null
-
-        @get:XmlElements(
-            XmlElement(name = "AccountNumber", type = 
GeneralAccountNumber::class),
-            XmlElement(name = "NationalAccountNumber", type = 
NationalAccountNumber::class)
-        )
-        var accountNumberList: List<AbstractAccountNumber>? = 
LinkedList<AbstractAccountNumber>()
-
-        @get:XmlElements(
-            XmlElement(name = "BankCode", type = GeneralBankCode::class),
-            XmlElement(name = "NationalBankCode", type = 
NationalBankCode::class)
-        )
-        var bankCodeList: List<AbstractBankCode>? = 
LinkedList<AbstractBankCode>()
-
-        @get:XmlElement(name = "AccountHolder")
-        var accountHolder: String? = null
-    }
-
-    interface AbstractAccountNumber
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class GeneralAccountNumber : AbstractAccountNumber {
-        @get:XmlAttribute(name = "international")
-        var international: Boolean = true
-
-        @get:XmlValue
-        lateinit var value: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class NationalAccountNumber : AbstractAccountNumber {
-        @get:XmlAttribute(name = "format")
-        lateinit var format: String
-
-        @get:XmlValue
-        lateinit var value: String
-    }
-
-    interface AbstractBankCode
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class GeneralBankCode : AbstractBankCode {
-        @get:XmlAttribute(name = "prefix")
-        var prefix: String? = null
-
-        @get:XmlAttribute(name = "international")
-        var international: Boolean = true
-
-        @get:XmlValue
-        lateinit var value: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class NationalBankCode : AbstractBankCode {
-        @get:XmlValue
-        lateinit var value: String
-
-        @get:XmlAttribute(name = "format")
-        lateinit var format: String
-    }
-}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_h004/EbicsUnsecuredRequest.kt 
b/ebics/src/main/kotlin/ebics_h004/EbicsUnsecuredRequest.kt
deleted file mode 100644
index 3269f70c..00000000
--- a/ebics/src/main/kotlin/ebics_h004/EbicsUnsecuredRequest.kt
+++ /dev/null
@@ -1,223 +0,0 @@
-package tech.libeufin.ebics.ebics_h004
-
-import org.apache.xml.security.binding.xmldsig.RSAKeyValueType
-import tech.libeufin.ebics.EbicsOrderUtil
-import tech.libeufin.ebics.ebics_s001.SignatureTypes
-import java.security.interfaces.RSAPrivateCrtKey
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(name = "", propOrder = ["header", "body"])
-@XmlRootElement(name = "ebicsUnsecuredRequest")
-class EbicsUnsecuredRequest {
-    @get:XmlAttribute(name = "Version", required = true)
-    @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-    lateinit var version: String
-
-    @get:XmlAttribute(name = "Revision")
-    var revision: Int? = null
-
-    @get:XmlElement(name = "header", required = true)
-    lateinit var header: Header
-
-    @get:XmlElement(required = true)
-    lateinit var body: Body
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["static", "mutable"])
-    class Header {
-        @XmlAccessorType(XmlAccessType.NONE)
-        @XmlType(name = "")
-        class EmptyMutableHeader
-
-        @get:XmlElement(name = "static", required = true)
-        lateinit var static: StaticHeaderType
-
-        @get:XmlElement(required = true)
-        lateinit var mutable: EmptyMutableHeader
-
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["dataTransfer"])
-    class Body {
-        @get:XmlElement(name = "DataTransfer", required = true)
-        lateinit var dataTransfer: UnsecuredDataTransfer
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["orderData"])
-    class UnsecuredDataTransfer {
-        @get:XmlElement(name = "OrderData", required = true)
-        lateinit var orderData: OrderData
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "")
-    class OrderData {
-        @get:XmlValue
-        lateinit var value: ByteArray
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "",
-        propOrder = ["hostID", "partnerID", "userID", "systemID", "product", 
"orderDetails", "securityMedium"]
-    )
-    class StaticHeaderType {
-        @get:XmlElement(name = "HostID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var hostID: String
-
-        @get:XmlElement(name = "PartnerID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var partnerID: String
-
-        @get:XmlElement(name = "UserID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var userID: String
-
-        @get:XmlElement(name = "SystemID")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        var systemID: String? = null
-
-        @get:XmlElement(name = "Product")
-        val product: EbicsTypes.Product? = null
-
-        @get:XmlElement(name = "OrderDetails", required = true)
-        lateinit var orderDetails: OrderDetails
-
-        @get:XmlElement(name = "SecurityMedium", required = true)
-        lateinit var securityMedium: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["orderType", "orderAttribute"])
-    class OrderDetails {
-        @get:XmlElement(name = "OrderType", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var orderType: String
-
-        @get:XmlElement(name = "OrderAttribute", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var orderAttribute: String
-    }
-
-    companion object {
-
-        fun createHia(
-            hostId: String,
-            userId: String,
-            partnerId: String,
-            authKey: RSAPrivateCrtKey,
-            encKey: RSAPrivateCrtKey
-
-        ): EbicsUnsecuredRequest {
-
-            return EbicsUnsecuredRequest().apply {
-
-                version = "H004"
-                revision = 1
-                header = Header().apply {
-                    authenticate = true
-                    static = StaticHeaderType().apply {
-                        orderDetails = OrderDetails().apply {
-                            orderAttribute = "DZNNN"
-                            orderType = "HIA"
-                            securityMedium = "0000"
-                            hostID = hostId
-                            userID = userId
-                            partnerID = partnerId
-                        }
-                    }
-                    mutable = Header.EmptyMutableHeader()
-                }
-                body = Body().apply {
-                    dataTransfer = UnsecuredDataTransfer().apply {
-                        orderData = OrderData().apply {
-                            value = EbicsOrderUtil.encodeOrderDataXml(
-                                HIARequestOrderData().apply {
-                                    authenticationPubKeyInfo = 
EbicsTypes.AuthenticationPubKeyInfoType()
-                                        .apply {
-                                        pubKeyValue = 
EbicsTypes.PubKeyValueType().apply {
-                                            rsaKeyValue = 
RSAKeyValueType().apply {
-                                                exponent = 
authKey.publicExponent.toByteArray()
-                                                modulus = 
authKey.modulus.toByteArray()
-                                            }
-                                        }
-                                        authenticationVersion = "X002"
-                                    }
-                                    encryptionPubKeyInfo = 
EbicsTypes.EncryptionPubKeyInfoType()
-                                        .apply {
-                                        pubKeyValue = 
EbicsTypes.PubKeyValueType().apply {
-                                            rsaKeyValue = 
RSAKeyValueType().apply {
-                                                exponent = 
encKey.publicExponent.toByteArray()
-                                                modulus = 
encKey.modulus.toByteArray()
-                                            }
-                                        }
-                                        encryptionVersion = "E002"
-
-                                    }
-                                    partnerID = partnerId
-                                    userID = userId
-                                }
-                            )
-                        }
-                    }
-                }
-            }
-        }
-
-        fun createIni(
-            hostId: String,
-            userId: String,
-            partnerId: String,
-            signKey: RSAPrivateCrtKey
-
-        ): EbicsUnsecuredRequest {
-            return EbicsUnsecuredRequest().apply {
-                version = "H004"
-                revision = 1
-                header = Header().apply {
-                    authenticate = true
-                    static = StaticHeaderType().apply {
-                        orderDetails = OrderDetails().apply {
-                            orderAttribute = "DZNNN"
-                            orderType = "INI"
-                            securityMedium = "0000"
-                            hostID = hostId
-                            userID = userId
-                            partnerID = partnerId
-                        }
-                    }
-                    mutable = Header.EmptyMutableHeader()
-                }
-                body = Body().apply {
-                    dataTransfer = UnsecuredDataTransfer().apply {
-                        orderData = OrderData().apply {
-                            value = EbicsOrderUtil.encodeOrderDataXml(
-                                
SignatureTypes.SignaturePubKeyOrderData().apply {
-                                    signaturePubKeyInfo = 
SignatureTypes.SignaturePubKeyInfoType().apply {
-                                        signatureVersion = "A006"
-                                        pubKeyValue = 
SignatureTypes.PubKeyValueType().apply {
-                                            rsaKeyValue = 
RSAKeyValueType().apply {
-                                                exponent = 
signKey.publicExponent.toByteArray()
-                                                modulus = 
signKey.modulus.toByteArray()
-                                            }
-                                        }
-                                    }
-                                    userID = userId
-                                    partnerID = partnerId
-                                }
-                            )
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/ebics/src/main/kotlin/ebics_h004/HIARequestOrderData.kt 
b/ebics/src/main/kotlin/ebics_h004/HIARequestOrderData.kt
deleted file mode 100644
index 6268099b..00000000
--- a/ebics/src/main/kotlin/ebics_h004/HIARequestOrderData.kt
+++ /dev/null
@@ -1,33 +0,0 @@
-package tech.libeufin.ebics.ebics_h004
-
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(
-    name = "HIARequestOrderDataType",
-    propOrder = ["authenticationPubKeyInfo", "encryptionPubKeyInfo", 
"partnerID", "userID", "any"]
-)
-@XmlRootElement(name = "HIARequestOrderData")
-class HIARequestOrderData {
-    @get:XmlElement(name = "AuthenticationPubKeyInfo", required = true)
-    lateinit var authenticationPubKeyInfo: 
EbicsTypes.AuthenticationPubKeyInfoType
-
-    @get:XmlElement(name = "EncryptionPubKeyInfo", required = true)
-    lateinit var encryptionPubKeyInfo: EbicsTypes.EncryptionPubKeyInfoType
-
-    @get:XmlElement(name = "PartnerID", required = true)
-    @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-    @get:XmlSchemaType(name = "token")
-    lateinit var partnerID: String
-
-    @get:XmlElement(name = "UserID", required = true)
-    @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-    @get:XmlSchemaType(name = "token")
-    lateinit var userID: String
-
-    @get:XmlAnyElement(lax = true)
-    var any: List<Any>? = null
-}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_h004/HKDResponseOrderData.kt 
b/ebics/src/main/kotlin/ebics_h004/HKDResponseOrderData.kt
deleted file mode 100644
index 92930155..00000000
--- a/ebics/src/main/kotlin/ebics_h004/HKDResponseOrderData.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package tech.libeufin.ebics.ebics_h004
-
-import javax.xml.bind.annotation.*
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(name = "", propOrder = ["partnerInfo", "userInfoList"])
-@XmlRootElement(name = "HTDResponseOrderData")
-class HKDResponseOrderData {
-    @get:XmlElement(name = "PartnerInfo", required = true)
-    lateinit var partnerInfo: EbicsTypes.PartnerInfo
-
-    @get:XmlElement(name = "UserInfo", type = EbicsTypes.UserInfo::class, 
required = true)
-    lateinit var userInfoList: List<EbicsTypes.UserInfo>
-}
diff --git a/ebics/src/main/kotlin/ebics_h004/HPBResponseOrderData.kt 
b/ebics/src/main/kotlin/ebics_h004/HPBResponseOrderData.kt
deleted file mode 100644
index 65b4098b..00000000
--- a/ebics/src/main/kotlin/ebics_h004/HPBResponseOrderData.kt
+++ /dev/null
@@ -1,21 +0,0 @@
-package tech.libeufin.ebics.ebics_h004
-
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(name = "", propOrder = ["authenticationPubKeyInfo", 
"encryptionPubKeyInfo", "hostID"])
-@XmlRootElement(name = "HPBResponseOrderData")
-class HPBResponseOrderData {
-    @get:XmlElement(name = "AuthenticationPubKeyInfo", required = true)
-    lateinit var authenticationPubKeyInfo: 
EbicsTypes.AuthenticationPubKeyInfoType
-
-    @get:XmlElement(name = "EncryptionPubKeyInfo", required = true)
-    lateinit var encryptionPubKeyInfo: EbicsTypes.EncryptionPubKeyInfoType
-
-    @get:XmlElement(name = "HostID", required = true)
-    @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-    lateinit var hostID: String
-}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_h004/HTDResponseOrderData.kt 
b/ebics/src/main/kotlin/ebics_h004/HTDResponseOrderData.kt
deleted file mode 100644
index 46954355..00000000
--- a/ebics/src/main/kotlin/ebics_h004/HTDResponseOrderData.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package tech.libeufin.ebics.ebics_h004
-
-import javax.xml.bind.annotation.*
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(name = "", propOrder = ["partnerInfo", "userInfo"])
-@XmlRootElement(name = "HTDResponseOrderData")
-class HTDResponseOrderData {
-    @get:XmlElement(name = "PartnerInfo", required = true)
-    lateinit var partnerInfo: EbicsTypes.PartnerInfo
-
-    @get:XmlElement(name = "UserInfo", required = true)
-    lateinit var userInfo: EbicsTypes.UserInfo
-}
diff --git a/ebics/src/main/kotlin/ebics_h004/package-info.java 
b/ebics/src/main/kotlin/ebics_h004/package-info.java
deleted file mode 100644
index a16e907c..00000000
--- a/ebics/src/main/kotlin/ebics_h004/package-info.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * This package-info.java file defines the default namespace for the JAXB 
bindings
- * defined in the package.
- */
-
-@XmlSchema(
-        namespace = "urn:org:ebics:H004",
-        elementFormDefault = XmlNsForm.QUALIFIED
-)
-package tech.libeufin.ebics.ebics_h004;
-
-import javax.xml.bind.annotation.XmlNsForm;
-import javax.xml.bind.annotation.XmlSchema;
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_h005/Ebics3Request.kt 
b/ebics/src/main/kotlin/ebics_h005/Ebics3Request.kt
deleted file mode 100644
index c8370d4c..00000000
--- a/ebics/src/main/kotlin/ebics_h005/Ebics3Request.kt
+++ /dev/null
@@ -1,587 +0,0 @@
-package tech.libeufin.ebics.ebics_h005
-
-import org.apache.xml.security.binding.xmldsig.SignatureType
-import tech.libeufin.common.crypto.CryptoUtil
-import java.math.BigInteger
-import java.security.interfaces.RSAPublicKey
-import java.util.*
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.HexBinaryAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-import javax.xml.datatype.XMLGregorianCalendar
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(name = "", propOrder = ["header", "authSignature", "body"])
-@XmlRootElement(name = "ebicsRequest")
-class Ebics3Request {
-    @get:XmlAttribute(name = "Version", required = true)
-    @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-    lateinit var version: String
-
-    @get:XmlAttribute(name = "Revision")
-    var revision: Int? = null
-
-    @get:XmlElement(name = "header", required = true)
-    lateinit var header: Header
-
-    @get:XmlElement(name = "AuthSignature", required = true)
-    lateinit var authSignature: SignatureType
-
-    @get:XmlElement(name = "body")
-    lateinit var body: Body
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["static", "mutable"])
-    class Header {
-        @get:XmlElement(name = "static", required = true)
-        lateinit var static: StaticHeaderType
-
-        @get:XmlElement(required = true)
-        lateinit var mutable: MutableHeader
-
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "",
-        propOrder = [
-            "hostID", "nonce", "timestamp", "partnerID", "userID", "systemID",
-            "product", "orderDetails", "bankPubKeyDigests", "securityMedium",
-            "numSegments", "transactionID"
-        ]
-    )
-    class StaticHeaderType {
-        @get:XmlElement(name = "HostID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var hostID: String
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "Nonce", type = String::class)
-        @get:XmlJavaTypeAdapter(HexBinaryAdapter::class)
-        @get:XmlSchemaType(name = "hexBinary")
-        var nonce: ByteArray? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "Timestamp")
-        @get:XmlSchemaType(name = "dateTime")
-        var timestamp: XMLGregorianCalendar? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "PartnerID")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        var partnerID: String? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "UserID")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        var userID: String? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "SystemID")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        var systemID: String? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "Product")
-        var product: Ebics3Types.Product? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "OrderDetails")
-        var orderDetails: OrderDetails? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "BankPubKeyDigests")
-        var bankPubKeyDigests: BankPubKeyDigests? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "SecurityMedium")
-        var securityMedium: String? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElement(name = "NumSegments")
-        var numSegments: BigInteger? = null
-
-        /**
-         * Present only in the transaction / finalization phase.
-         */
-        @get:XmlElement(name = "TransactionID")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        var transactionID: String? = null
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["transactionPhase", "segmentNumber"])
-    class MutableHeader {
-        @get:XmlElement(name = "TransactionPhase", required = true)
-        @get:XmlSchemaType(name = "token")
-        lateinit var transactionPhase: Ebics3Types.TransactionPhaseType
-
-        /**
-         * Number of the currently transmitted segment, if this message
-         * contains order data.
-         */
-        @get:XmlElement(name = "SegmentNumber")
-        var segmentNumber: Ebics3Types.SegmentNumber? = null
-
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "",
-        propOrder = ["adminOrderType", "btdOrderParams", "btuOrderParams", 
"orderID", "orderParams"]
-    )
-    class OrderDetails {
-        @get:XmlElement(name = "AdminOrderType", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var adminOrderType: String
-
-        @XmlAccessorType(XmlAccessType.NONE)
-        @XmlType(propOrder = ["serviceName", "scope", "serviceOption", 
"container", "messageName"])
-        class Service {
-            @get:XmlElement(name = "ServiceName", required = true)
-            @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-            lateinit var serviceName: String
-
-            @get:XmlElement(name = "Scope", required = true)
-            @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-            lateinit var scope: String
-
-            @XmlAccessorType(XmlAccessType.NONE)
-            @XmlType(name = "", propOrder = ["value"])
-            class MessageName {
-                @XmlValue
-                lateinit var value: String
-
-                @XmlAttribute(name = "version")
-                var version: String? = null
-            }
-
-            @get:XmlElement(name = "MsgName", required = true)
-            lateinit var messageName: MessageName
-
-            @get:XmlElement(name = "ServiceOption", required = true)
-            @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-            var serviceOption: String? = null
-
-            @XmlAccessorType(XmlAccessType.NONE)
-            class Container {
-                @XmlAttribute(name = "containerType")
-                lateinit var containerType: String
-            }
-
-            @get:XmlElement(name = "Container", required = true)
-            var container: Container? = null
-        }
-
-        @XmlAccessorType(XmlAccessType.NONE)
-        @XmlType(propOrder = ["service", "signatureFlag", "dateRange"])
-        class BTUOrderParams {
-            @get:XmlElement(name = "Service", required = true)
-            lateinit var service: Service
-
-            /**
-             * This element activates the ES signature scheme (disabling
-             * hence the EDS).  It *would* admit a @requestEDS attribute,
-             * but its omission means false.
-             */
-            @get:XmlElement(name = "SignatureFlag", required = true)
-            var signatureFlag: Boolean = true
-
-            @get:XmlElement(name = "DateRange", required = true)
-            var dateRange: DateRange? = null
-        }
-
-        @XmlAccessorType(XmlAccessType.NONE)
-        @XmlType(propOrder = ["service", "dateRange"])
-        class BTDOrderParams {
-            @get:XmlElement(name = "Service", required = true)
-            lateinit var service: Service
-
-            @get:XmlElement(name = "DateRange", required = true)
-            var dateRange: DateRange? = null
-        }
-
-        @get:XmlElement(name = "BTUOrderParams", required = true)
-        var btuOrderParams: BTUOrderParams? = null
-
-        @get:XmlElement(name = "BTDOrderParams", required = true)
-        var btdOrderParams: BTDOrderParams? = null
-
-        /**
-         * Only present if this ebicsRequest is an upload order
-         * relating to an already existing order.
-         */
-        @get:XmlElement(name = "OrderID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        var orderID: String? = null
-
-        /**
-         * Present only in the initialization phase.
-         */
-        @get:XmlElements(
-            XmlElement(
-                name = "StandardOrderParams",
-                type = StandardOrderParams::class // OrderParams inheritor
-            ),
-            XmlElement(
-                name = "GenericOrderParams",
-                type = GenericOrderParams::class // OrderParams inheritor
-            )
-        )
-        // Same as the 2.5 version.
-        var orderParams: OrderParams? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(propOrder = ["preValidation", "dataTransfer", "transferReceipt"])
-    class Body {
-        @get:XmlElement(name = "PreValidation")
-        var preValidation: PreValidation? = null
-
-        @get:XmlElement(name = "DataTransfer")
-        var dataTransfer: DataTransfer? = null
-
-        @get:XmlElement(name = "TransferReceipt")
-        var transferReceipt: TransferReceipt? = null
-    }
-
-    /**
-     * FIXME: not implemented yet
-     */
-    @XmlAccessorType(XmlAccessType.NONE)
-    class PreValidation {
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class SignatureData {
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-
-        @get:XmlValue
-        var value: ByteArray? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(propOrder = ["dataEncryptionInfo", "signatureData", "dataDigest", 
"orderData", "hostId"])
-    class DataTransfer {
-
-        @get:XmlElement(name = "DataEncryptionInfo")
-        var dataEncryptionInfo: Ebics3Types.DataEncryptionInfo? = null
-
-        @get:XmlElement(name = "SignatureData")
-        var signatureData: SignatureData? = null
-
-        @XmlAccessorType(XmlAccessType.NONE)
-        class DataDigest {
-            @get:XmlAttribute(name = "SignatureVersion", required = true)
-            var signatureVersion: String = "A006"
-
-            @get:XmlValue
-            var value: ByteArray? = null
-        }
-
-        @get:XmlElement(name = "DataDigest")
-        var dataDigest: DataDigest? = null
-
-        @get:XmlElement(name = "OrderData")
-        var orderData: String? = null
-
-        @get:XmlElement(name = "HostID")
-        var hostId: String? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["receiptCode"])
-    class TransferReceipt {
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-
-        @get:XmlElement(name = "ReceiptCode")
-        var receiptCode: Int? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    abstract class  OrderParams
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["dateRange"])
-    class StandardOrderParams : OrderParams() {
-        @get:XmlElement(name = "DateRange")
-        var dateRange: DateRange? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["parameterList"])
-    class GenericOrderParams : OrderParams() {
-        @get:XmlElement(type = Ebics3Types.Parameter::class)
-        var parameterList: List<Ebics3Types.Parameter> = LinkedList()
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["start", "end"])
-    class DateRange {
-        @get:XmlElement(name = "Start")
-        @get:XmlSchemaType(name = "date")
-        lateinit var start: XMLGregorianCalendar
-
-        @get:XmlElement(name = "End")
-        @get:XmlSchemaType(name = "date")
-        lateinit var end: XMLGregorianCalendar
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["authentication", "encryption"])
-    class BankPubKeyDigests {
-        @get:XmlElement(name = "Authentication")
-        lateinit var authentication: Ebics3Types.PubKeyDigest
-
-        @get:XmlElement(name = "Encryption")
-        lateinit var encryption: Ebics3Types.PubKeyDigest
-    }
-
-    companion object {
-
-        fun createForDownloadReceiptPhase(
-            transactionId: String,
-            hostId: String,
-            success: Boolean
-        ): Ebics3Request {
-            return Ebics3Request().apply {
-                header = Header().apply {
-                    version = "H005"
-                    revision = 1
-                    authenticate = true
-                    static = StaticHeaderType().apply {
-                        hostID = hostId
-                        transactionID = transactionId
-                    }
-                    mutable = MutableHeader().apply {
-                        transactionPhase = 
Ebics3Types.TransactionPhaseType.RECEIPT
-                    }
-                }
-                authSignature = SignatureType()
-
-                body = Body().apply {
-                    transferReceipt = TransferReceipt().apply {
-                        authenticate = true
-                        receiptCode = if (success) 0 else 1
-                    }
-                }
-            }
-        }
-
-        fun createForDownloadInitializationPhase(
-            userId: String,
-            partnerId: String,
-            hostId: String,
-            nonceArg: ByteArray,
-            date: XMLGregorianCalendar,
-            bankEncPub: RSAPublicKey,
-            bankAuthPub: RSAPublicKey,
-            myOrderParams: OrderDetails.BTDOrderParams
-        ): Ebics3Request {
-            return Ebics3Request().apply {
-                version = "H005"
-                revision = 1
-                authSignature = SignatureType()
-                body = Body()
-                header = Header().apply {
-                    authenticate = true
-                    static = StaticHeaderType().apply {
-                        userID = userId
-                        partnerID = partnerId
-                        hostID = hostId
-                        nonce = nonceArg
-                        timestamp = date
-                        partnerID = partnerId
-                        orderDetails = OrderDetails().apply {
-                            this.adminOrderType = "BTD"
-                            this.btdOrderParams = myOrderParams
-                        }
-                        bankPubKeyDigests = BankPubKeyDigests().apply {
-                            authentication = Ebics3Types.PubKeyDigest().apply {
-                                algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                                version = "X002"
-                                value = 
CryptoUtil.getEbicsPublicKeyHash(bankAuthPub)
-                            }
-                            encryption = Ebics3Types.PubKeyDigest().apply {
-                                algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                                version = "E002"
-                                value = 
CryptoUtil.getEbicsPublicKeyHash(bankEncPub)
-                            }
-                            securityMedium = "0000"
-                        }
-                    }
-                    mutable = MutableHeader().apply {
-                        transactionPhase =
-                            Ebics3Types.TransactionPhaseType.INITIALISATION
-                    }
-                }
-            }
-        }
-
-        fun createForUploadInitializationPhase(
-            encryptedTransactionKey: ByteArray,
-            encryptedSignatureData: ByteArray,
-            aDataDigest: ByteArray,
-            hostId: String,
-            nonceArg: ByteArray,
-            partnerId: String,
-            userId: String,
-            date: XMLGregorianCalendar,
-            bankAuthPub: RSAPublicKey,
-            bankEncPub: RSAPublicKey,
-            segmentsNumber: BigInteger,
-            aOrderService: OrderDetails.Service,
-        ): Ebics3Request {
-
-            return Ebics3Request().apply {
-                header = Header().apply {
-                    version = "H005"
-                    revision = 1
-                    authenticate = true
-                    static = StaticHeaderType().apply {
-                        hostID = hostId
-                        nonce = nonceArg
-                        timestamp = date
-                        partnerID = partnerId
-                        userID = userId
-                        orderDetails = OrderDetails().apply {
-                            this.adminOrderType = "BTU"
-                            this.btuOrderParams = 
OrderDetails.BTUOrderParams().apply {
-                                service = aOrderService
-                            }
-                        }
-                        bankPubKeyDigests = BankPubKeyDigests().apply {
-                            authentication = Ebics3Types.PubKeyDigest().apply {
-                                algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                                version = "X002"
-                                value = 
CryptoUtil.getEbicsPublicKeyHash(bankAuthPub)
-                            }
-                            encryption = Ebics3Types.PubKeyDigest().apply {
-                                algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                                version = "E002"
-                                value = 
CryptoUtil.getEbicsPublicKeyHash(bankEncPub)
-                            }
-                        }
-                        securityMedium = "0000"
-                        numSegments = segmentsNumber
-                    }
-                    mutable = MutableHeader().apply {
-                        transactionPhase =
-                            Ebics3Types.TransactionPhaseType.INITIALISATION
-                    }
-                }
-                authSignature = SignatureType()
-                body = Body().apply {
-                    dataTransfer = DataTransfer().apply {
-                        signatureData = SignatureData().apply {
-                            authenticate = true
-                            value = encryptedSignatureData
-                        }
-                        dataDigest = DataTransfer.DataDigest().apply {
-                            value = aDataDigest
-                        }
-                        dataEncryptionInfo = 
Ebics3Types.DataEncryptionInfo().apply {
-                            transactionKey = encryptedTransactionKey
-                            authenticate = true
-                            encryptionPubKeyDigest = 
Ebics3Types.PubKeyDigest().apply {
-                                algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                                version = "E002"
-                                value = 
CryptoUtil.getEbicsPublicKeyHash(bankEncPub)
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        fun createForUploadTransferPhase(
-            hostId: String,
-            transactionId: String?,
-            segNumber: BigInteger,
-            encryptedData: String
-        ): Ebics3Request {
-            return Ebics3Request().apply {
-                header = Header().apply {
-                    version = "H005"
-                    revision = 1
-                    authenticate = true
-                    static = StaticHeaderType().apply {
-                        hostID = hostId
-                        transactionID = transactionId
-                    }
-                    mutable = MutableHeader().apply {
-                        transactionPhase = 
Ebics3Types.TransactionPhaseType.TRANSFER
-                        segmentNumber = Ebics3Types.SegmentNumber().apply {
-                            lastSegment = true
-                            value = segNumber
-                        }
-                    }
-                }
-
-                authSignature = SignatureType()
-                body = Body().apply {
-                    dataTransfer = DataTransfer().apply {
-                        orderData = encryptedData
-                    }
-                }
-            }
-        }
-
-        fun createForDownloadTransferPhase(
-            hostID: String,
-            transactionID: String?,
-            segmentNumber: Int,
-            numSegments: Int
-        ): Ebics3Request {
-            return Ebics3Request().apply {
-                version = "H005"
-                revision = 1
-                authSignature = SignatureType()
-                body = Body()
-                header = Header().apply {
-                    authenticate = true
-                    static = StaticHeaderType().apply {
-                        this.hostID = hostID
-                        this.transactionID = transactionID
-                    }
-                    mutable = MutableHeader().apply {
-                        transactionPhase =
-                            Ebics3Types.TransactionPhaseType.TRANSFER
-                        this.segmentNumber = Ebics3Types.SegmentNumber().apply 
{
-                            this.value = 
BigInteger.valueOf(segmentNumber.toLong())
-                            this.lastSegment = segmentNumber == numSegments
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_h005/Ebics3Response.kt 
b/ebics/src/main/kotlin/ebics_h005/Ebics3Response.kt
deleted file mode 100644
index dd4b18a2..00000000
--- a/ebics/src/main/kotlin/ebics_h005/Ebics3Response.kt
+++ /dev/null
@@ -1,347 +0,0 @@
-package tech.libeufin.ebics.ebics_h005
-
-import org.apache.xml.security.binding.xmldsig.SignatureType
-import tech.libeufin.common.crypto.CryptoUtil
-import tech.libeufin.ebics.ebics_h004.EbicsTypes
-import java.math.BigInteger
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.NormalizedStringAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-import kotlin.math.min
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(name = "", propOrder = ["header", "authSignature", "body"])
-@XmlRootElement(name = "ebicsResponse")
-class Ebics3Response {
-    @get:XmlAttribute(name = "Version", required = true)
-    @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-    lateinit var version: String
-
-    @get:XmlAttribute(name = "Revision")
-    var revision: Int? = null
-
-    @get:XmlElement(required = true)
-    lateinit var header: Header
-
-    @get:XmlElement(name = "AuthSignature", required = true)
-    lateinit var authSignature: SignatureType
-
-    @get:XmlElement(required = true)
-    lateinit var body: Body
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["_static", "mutable"])
-    class Header {
-        @get:XmlElement(name = "static", required = true)
-        lateinit var _static: StaticHeaderType
-
-        @get:XmlElement(required = true)
-        lateinit var mutable: MutableHeaderType
-
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["dataTransfer", "returnCode", 
"timestampBankParameter"])
-    class Body {
-        @get:XmlElement(name = "DataTransfer")
-        var dataTransfer: DataTransferResponseType? = null
-
-        @get:XmlElement(name = "ReturnCode", required = true)
-        lateinit var returnCode: ReturnCode
-
-        @get:XmlElement(name = "TimestampBankParameter")
-        var timestampBankParameter: EbicsTypes.TimestampBankParameter? = null
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "",
-        propOrder = ["transactionPhase", "segmentNumber", "orderID", 
"returnCode", "reportText"]
-    )
-    class MutableHeaderType {
-        @get:XmlElement(name = "TransactionPhase", required = true)
-        @get:XmlSchemaType(name = "token")
-        lateinit var transactionPhase: EbicsTypes.TransactionPhaseType
-
-        @get:XmlElement(name = "SegmentNumber")
-        var segmentNumber: EbicsTypes.SegmentNumber? = null
-
-        @get:XmlElement(name = "OrderID")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        var orderID: String? = null
-
-        @get:XmlElement(name = "ReturnCode", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        lateinit var returnCode: String
-
-        @get:XmlElement(name = "ReportText", required = true)
-        @get:XmlJavaTypeAdapter(NormalizedStringAdapter::class)
-        @get:XmlSchemaType(name = "normalizedString")
-        lateinit var reportText: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class OrderData {
-        @get:XmlValue
-        lateinit var value: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class ReturnCode {
-        @get:XmlValue
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var value: String
-
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "DataTransferResponseType", propOrder = 
["dataEncryptionInfo", "orderData"])
-    class DataTransferResponseType {
-        @get:XmlElement(name = "DataEncryptionInfo")
-        var dataEncryptionInfo: Ebics3Types.DataEncryptionInfo? = null
-
-        @get:XmlElement(name = "OrderData", required = true)
-        lateinit var orderData: OrderData
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "ResponseStaticHeaderType", propOrder = ["transactionID", 
"numSegments"])
-    class StaticHeaderType {
-        @get:XmlElement(name = "TransactionID")
-        var transactionID: String? = null
-
-        @get:XmlElement(name = "NumSegments")
-        @get:XmlSchemaType(name = "positiveInteger")
-        var numSegments: BigInteger? = null
-    }
-
-    companion object {
-
-        fun createForUploadWithError(
-            errorText: String, errorCode: String, phase: 
EbicsTypes.TransactionPhaseType
-        ): Ebics3Response {
-            val resp = Ebics3Response().apply {
-                this.version = "H005"
-                this.revision = 1
-                this.header = Header().apply {
-                    this.authenticate = true
-                    this.mutable = MutableHeaderType().apply {
-                        this.reportText = errorText
-                        this.returnCode = errorCode
-                        this.transactionPhase = phase
-                    }
-                    _static = StaticHeaderType()
-                }
-                this.authSignature = SignatureType()
-                this.body = Body().apply {
-                    this.returnCode = ReturnCode().apply {
-                        this.authenticate = true
-                        this.value = errorCode
-                    }
-                }
-            }
-            return resp
-        }
-
-        fun createForUploadInitializationPhase(transactionID: String, orderID: 
String): Ebics3Response {
-            return Ebics3Response().apply {
-                this.version = "H005"
-                this.revision = 1
-                this.header = Header().apply {
-                    this.authenticate = true
-                    this._static = StaticHeaderType().apply {
-                        this.transactionID = transactionID
-                    }
-                    this.mutable = MutableHeaderType().apply {
-                        this.transactionPhase =
-                            EbicsTypes.TransactionPhaseType.INITIALISATION
-                        this.orderID = orderID
-                        this.reportText = "[EBICS_OK] OK"
-                        this.returnCode = "000000"
-                    }
-                }
-                this.authSignature = SignatureType()
-                this.body = Body().apply {
-                    this.returnCode = ReturnCode().apply {
-                        this.authenticate = true
-                        this.value = "000000"
-                    }
-                }
-            }
-        }
-
-        fun createForDownloadReceiptPhase(transactionID: String, positiveAck: 
Boolean): Ebics3Response {
-            return Ebics3Response().apply {
-                this.version = "H005"
-                this.revision = 1
-                this.header = Header().apply {
-                    this.authenticate = true
-                    this._static = StaticHeaderType().apply {
-                        this.transactionID = transactionID
-                    }
-                    this.mutable = MutableHeaderType().apply {
-                        this.transactionPhase =
-                            EbicsTypes.TransactionPhaseType.RECEIPT
-                        if (positiveAck) {
-                            this.reportText = 
"[EBICS_DOWNLOAD_POSTPROCESS_DONE] Received positive receipt"
-                            this.returnCode = "011000"
-                        } else {
-                            this.reportText = 
"[EBICS_DOWNLOAD_POSTPROCESS_SKIPPED] Received negative receipt"
-                            this.returnCode = "011001"
-                        }
-                    }
-                }
-                this.authSignature = SignatureType()
-                this.body = Body().apply {
-                    this.returnCode = ReturnCode().apply {
-                        this.authenticate = true
-                        this.value = "000000"
-                    }
-                }
-            }
-        }
-
-        fun createForUploadTransferPhase(
-            transactionID: String,
-            segmentNumber: Int,
-            lastSegment: Boolean,
-            orderID: String
-        ): Ebics3Response {
-            return Ebics3Response().apply {
-                this.version = "H005"
-                this.revision = 1
-                this.header = Header().apply {
-                    this.authenticate = true
-                    this._static = StaticHeaderType().apply {
-                        this.transactionID = transactionID
-                    }
-                    this.mutable = MutableHeaderType().apply {
-                        this.transactionPhase =
-                            EbicsTypes.TransactionPhaseType.TRANSFER
-                        this.segmentNumber = EbicsTypes.SegmentNumber().apply {
-                            this.value = 
BigInteger.valueOf(segmentNumber.toLong())
-                            if (lastSegment) {
-                                this.lastSegment = true
-                            }
-                        }
-                        this.orderID = orderID
-                        this.reportText = "[EBICS_OK] OK"
-                        this.returnCode = "000000"
-                    }
-                }
-                this.authSignature = SignatureType()
-                this.body = Body().apply {
-                    this.returnCode = ReturnCode().apply {
-                        this.authenticate = true
-                        this.value = "000000"
-                    }
-                }
-            }
-        }
-
-        /**
-         * @param requestedSegment requested segment as a 1-based index
-         */
-        fun createForDownloadTransferPhase(
-            transactionID: String,
-            numSegments: Int,
-            segmentSize: Int,
-            encodedData: String,
-            requestedSegment: Int
-        ): Ebics3Response {
-            return Ebics3Response().apply {
-                this.version = "H005"
-                this.revision = 1
-                this.header = Header().apply {
-                    this.authenticate = true
-                    this._static = StaticHeaderType().apply {
-                        this.transactionID = transactionID
-                        this.numSegments = 
BigInteger.valueOf(numSegments.toLong())
-                    }
-                    this.mutable = MutableHeaderType().apply {
-                        this.transactionPhase =
-                            EbicsTypes.TransactionPhaseType.TRANSFER
-                        this.segmentNumber = EbicsTypes.SegmentNumber().apply {
-                            this.lastSegment = numSegments == requestedSegment
-                            this.value = 
BigInteger.valueOf(requestedSegment.toLong())
-                        }
-                        this.reportText = "[EBICS_OK] OK"
-                        this.returnCode = "000000"
-                    }
-                }
-                this.authSignature = SignatureType()
-                this.body = Body().apply {
-                    this.returnCode = ReturnCode().apply {
-                        this.authenticate = true
-                        this.value = "000000"
-                    }
-                    this.dataTransfer = DataTransferResponseType().apply {
-                        this.orderData = OrderData().apply {
-                            val start = segmentSize * (requestedSegment - 1)
-                            this.value = encodedData.substring(start, 
min(start + segmentSize, encodedData.length))
-                        }
-                    }
-                }
-            }
-        }
-        fun createForDownloadInitializationPhase(
-            transactionID: String,
-            numSegments: Int,
-            segmentSize: Int,
-            enc: CryptoUtil.EncryptionResult,
-            encodedData: String
-        ): Ebics3Response {
-            return Ebics3Response().apply {
-                this.version = "H005"
-                this.revision = 1
-                this.header = Header().apply {
-                    this.authenticate = true
-                    this._static = StaticHeaderType().apply {
-                        this.transactionID = transactionID
-                        this.numSegments = 
BigInteger.valueOf(numSegments.toLong())
-                    }
-                    this.mutable = MutableHeaderType().apply {
-                        this.transactionPhase =
-                            EbicsTypes.TransactionPhaseType.INITIALISATION
-                        this.segmentNumber = EbicsTypes.SegmentNumber().apply {
-                            this.lastSegment = (numSegments == 1)
-                            this.value = BigInteger.valueOf(1)
-                        }
-                        this.reportText = "[EBICS_OK] OK"
-                        this.returnCode = "000000"
-                    }
-                }
-                this.authSignature = SignatureType()
-                this.body = Body().apply {
-                    this.returnCode = ReturnCode().apply {
-                        this.authenticate = true
-                        this.value = "000000"
-                    }
-                    this.dataTransfer = DataTransferResponseType().apply {
-                        this.dataEncryptionInfo = 
Ebics3Types.DataEncryptionInfo().apply {
-                            this.authenticate = true
-                            this.encryptionPubKeyDigest = 
Ebics3Types.PubKeyDigest()
-                                .apply {
-                                this.algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                                this.version = "E002"
-                                this.value = enc.pubKeyDigest
-                            }
-                            this.transactionKey = enc.encryptedTransactionKey
-                        }
-                        this.orderData = OrderData().apply {
-                            this.value = encodedData.substring(0, 
min(segmentSize, encodedData.length))
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/ebics/src/main/kotlin/ebics_h005/Ebics3Types.kt 
b/ebics/src/main/kotlin/ebics_h005/Ebics3Types.kt
deleted file mode 100644
index a469217c..00000000
--- a/ebics/src/main/kotlin/ebics_h005/Ebics3Types.kt
+++ /dev/null
@@ -1,401 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2019 Stanisci and Dold.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-package tech.libeufin.ebics.ebics_h005
-
-import org.apache.xml.security.binding.xmldsig.RSAKeyValueType
-import org.w3c.dom.Element
-import java.math.BigInteger
-import java.util.*
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.NormalizedStringAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-import javax.xml.datatype.XMLGregorianCalendar
-
-
-/**
- * EBICS type definitions that are shared between other requests / responses / 
order types.
- */
-object Ebics3Types {
-    /**
-     * EBICS client product.  Identifies the software that accesses the EBICS 
host.
-     */
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "Product", propOrder = ["value"])
-    class Product {
-        @get:XmlValue
-        @get:XmlJavaTypeAdapter(NormalizedStringAdapter::class)
-        lateinit var value: String
-
-        @get:XmlAttribute(name = "Language", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var language: String
-
-        @get:XmlAttribute(name = "InstituteID")
-        @get:XmlJavaTypeAdapter(NormalizedStringAdapter::class)
-        var instituteID: String? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["value"])
-    class SegmentNumber {
-        @XmlValue
-        lateinit var value: BigInteger
-
-        @XmlAttribute(name = "lastSegment")
-        var lastSegment: Boolean? = null
-    }
-
-    @XmlType(name = "", propOrder = ["encryptionPubKeyDigest", 
"transactionKey"])
-    @XmlAccessorType(XmlAccessType.NONE)
-    class DataEncryptionInfo {
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-
-        @get:XmlElement(name = "EncryptionPubKeyDigest", required = true)
-        lateinit var encryptionPubKeyDigest: PubKeyDigest
-
-        @get:XmlElement(name = "TransactionKey", required = true)
-        lateinit var transactionKey: ByteArray
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["value"])
-    class PubKeyDigest {
-        /**
-         * Version of the *digest* of the public key.
-         */
-        @get:XmlAttribute(name = "Version", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var version: String
-
-        @XmlAttribute(name = "Algorithm", required = true)
-        @XmlSchemaType(name = "anyURI")
-        lateinit var algorithm: String
-
-        @get:XmlValue
-        lateinit var value: ByteArray
-    }
-
-    @Suppress("UNUSED_PARAMETER")
-    enum class TransactionPhaseType(value: String) {
-        @XmlEnumValue("Initialisation")
-        INITIALISATION("Initialisation"),
-
-        /**
-         * Auftragsdatentransfer
-         *
-         */
-        @XmlEnumValue("Transfer")
-        TRANSFER("Transfer"),
-
-        /**
-         * Quittungstransfer
-         *
-         */
-        @XmlEnumValue("Receipt")
-        RECEIPT("Receipt");
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "")
-    class TimestampBankParameter {
-        @get:XmlValue
-        lateinit var value: XMLGregorianCalendar
-
-        @get:XmlAttribute(name = "authenticate", required = true)
-        var authenticate: Boolean = false
-    }
-
-
-
-    @XmlType(
-        name = "PubKeyValueType", propOrder = [
-            "rsaKeyValue",
-            "timeStamp"
-        ]
-    )
-    @XmlAccessorType(XmlAccessType.NONE)
-    class PubKeyValueType {
-        @get:XmlElement(name = "RSAKeyValue", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, required = true)
-        lateinit var rsaKeyValue: RSAKeyValueType
-
-        @get:XmlElement(name = "TimeStamp", required = false)
-        @get:XmlSchemaType(name = "dateTime")
-        var timeStamp: XMLGregorianCalendar? = null
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "AuthenticationPubKeyInfoType", propOrder = [
-            "x509Data",
-            "pubKeyValue",
-            "authenticationVersion"
-        ]
-    )
-    class AuthenticationPubKeyInfoType {
-        @get:XmlAnyElement()
-        var x509Data: Element? = null
-
-        @get:XmlElement(name = "PubKeyValue", required = true)
-        lateinit var pubKeyValue: PubKeyValueType
-
-        @get:XmlElement(name = "AuthenticationVersion", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        lateinit var authenticationVersion: String
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "EncryptionPubKeyInfoType", propOrder = [
-            "x509Data",
-            "pubKeyValue",
-            "encryptionVersion"
-        ]
-    )
-    class EncryptionPubKeyInfoType {
-        @get:XmlAnyElement()
-        var x509Data: Element? = null
-
-        @get:XmlElement(name = "PubKeyValue", required = true)
-        lateinit var pubKeyValue: PubKeyValueType
-
-        @get:XmlElement(name = "EncryptionVersion", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        lateinit var encryptionVersion: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class FileFormatType {
-        @get:XmlAttribute(name = "CountryCode")
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var language: String
-
-        @get:XmlValue
-        @get:XmlJavaTypeAdapter(NormalizedStringAdapter::class)
-        lateinit var value: String
-    }
-
-    /**
-     * Generic key-value pair.
-     */
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["name", "value"])
-    class Parameter {
-        @get:XmlAttribute(name = "Type", required = true)
-        lateinit var type: String
-
-        @get:XmlElement(name = "Name", required = true)
-        lateinit var name: String
-
-        @get:XmlElement(name = "Value", required = true)
-        lateinit var value: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["addressInfo", "bankInfo", 
"accountInfoList", "orderInfoList"])
-    class PartnerInfo {
-        @get:XmlElement(name = "AddressInfo", required = true)
-        lateinit var addressInfo: AddressInfo
-
-        @get:XmlElement(name = "BankInfo", required = true)
-        lateinit var bankInfo: BankInfo
-
-        @get:XmlElement(name = "AccountInfo", type = AccountInfo::class)
-        var accountInfoList: List<AccountInfo>? = LinkedList<AccountInfo>()
-
-        @get:XmlElement(name = "OrderInfo", type = AuthOrderInfoType::class)
-        var orderInfoList: List<AuthOrderInfoType> = 
LinkedList<AuthOrderInfoType>()
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "",
-        propOrder = ["orderType", "fileFormat", "transferType", "orderFormat", 
"description", "numSigRequired"]
-    )
-    class AuthOrderInfoType {
-        @get:XmlElement(name = "OrderType")
-        lateinit var orderType: String
-
-        @get:XmlElement(name = "FileFormat")
-        val fileFormat: FileFormatType? = null
-
-        @get:XmlElement(name = "TransferType")
-        lateinit var transferType: String
-
-        @get:XmlElement(name = "OrderFormat", required = false)
-        var orderFormat: String? = null
-
-        @get:XmlElement(name = "Description")
-        lateinit var description: String
-
-        @get:XmlElement(name = "NumSigRequired")
-        var numSigRequired: Int? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class UserIDType {
-        @get:XmlValue
-        lateinit var value: String
-
-        @get:XmlAttribute(name = "Status")
-        var status: Int? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["userID", "name", "permissionList"])
-    class UserInfo {
-        @get:XmlElement(name = "UserID", required = true)
-        lateinit var userID: UserIDType
-
-        @get:XmlElement(name = "Name")
-        var name: String? = null
-
-        @get:XmlElement(name = "Permission", type = UserPermission::class)
-        var permissionList: List<UserPermission>? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["orderTypes", "fileFormat", "accountID", 
"maxAmount"])
-    class UserPermission {
-        @get:XmlAttribute(name = "AuthorizationLevel")
-        var authorizationLevel: String? = null
-
-        @get:XmlElement(name = "OrderTypes")
-        var orderTypes: String? = null
-
-        @get:XmlElement(name = "FileFormat")
-        val fileFormat: FileFormatType? = null
-
-        @get:XmlElement(name = "AccountID")
-        val accountID: String? = null
-
-        @get:XmlElement(name = "MaxAmount")
-        val maxAmount: String? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["name", "street", "postCode", "city", 
"region", "country"])
-    class AddressInfo {
-        @get:XmlElement(name = "Name")
-        var name: String? = null
-
-        @get:XmlElement(name = "Street")
-        var street: String? = null
-
-        @get:XmlElement(name = "PostCode")
-        var postCode: String? = null
-
-        @get:XmlElement(name = "City")
-        var city: String? = null
-
-        @get:XmlElement(name = "Region")
-        var region: String? = null
-
-        @get:XmlElement(name = "Country")
-        var country: String? = null
-    }
-
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class BankInfo {
-        @get:XmlElement(name = "HostID")
-        lateinit var hostID: String
-
-        @get:XmlElement(type = Parameter::class)
-        var parameters: List<Parameter>? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["accountNumberList", "bankCodeList", 
"accountHolder"])
-    class AccountInfo {
-        @get:XmlAttribute(name = "Currency")
-        var currency: String? = null
-
-        @get:XmlAttribute(name = "ID")
-        lateinit var id: String
-
-        @get:XmlAttribute(name = "Description")
-        var description: String? = null
-
-        @get:XmlElements(
-            XmlElement(name = "AccountNumber", type = 
GeneralAccountNumber::class),
-            XmlElement(name = "NationalAccountNumber", type = 
NationalAccountNumber::class)
-        )
-        var accountNumberList: List<AbstractAccountNumber>? = 
LinkedList<AbstractAccountNumber>()
-
-        @get:XmlElements(
-            XmlElement(name = "BankCode", type = GeneralBankCode::class),
-            XmlElement(name = "NationalBankCode", type = 
NationalBankCode::class)
-        )
-        var bankCodeList: List<AbstractBankCode>? = 
LinkedList<AbstractBankCode>()
-
-        @get:XmlElement(name = "AccountHolder")
-        var accountHolder: String? = null
-    }
-
-    interface AbstractAccountNumber
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class GeneralAccountNumber : AbstractAccountNumber {
-        @get:XmlAttribute(name = "international")
-        var international: Boolean = true
-
-        @get:XmlValue
-        lateinit var value: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class NationalAccountNumber : AbstractAccountNumber {
-        @get:XmlAttribute(name = "format")
-        lateinit var format: String
-
-        @get:XmlValue
-        lateinit var value: String
-    }
-
-    interface AbstractBankCode
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class GeneralBankCode : AbstractBankCode {
-        @get:XmlAttribute(name = "prefix")
-        var prefix: String? = null
-
-        @get:XmlAttribute(name = "international")
-        var international: Boolean = true
-
-        @get:XmlValue
-        lateinit var value: String
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class NationalBankCode : AbstractBankCode {
-        @get:XmlValue
-        lateinit var value: String
-
-        @get:XmlAttribute(name = "format")
-        lateinit var format: String
-    }
-}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_h005/package-info.java 
b/ebics/src/main/kotlin/ebics_h005/package-info.java
deleted file mode 100644
index a5e16343..00000000
--- a/ebics/src/main/kotlin/ebics_h005/package-info.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * This package-info.java file defines the default namespace for the JAXB 
bindings
- * defined in the package.
- */
-
-@XmlSchema(
-        namespace = "urn:org:ebics:H005",
-        elementFormDefault = XmlNsForm.QUALIFIED
-)
-package tech.libeufin.ebics.ebics_h005;
-
-import javax.xml.bind.annotation.XmlNsForm;
-import javax.xml.bind.annotation.XmlSchema;
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_hev/EbicsMessages.kt 
b/ebics/src/main/kotlin/ebics_hev/EbicsMessages.kt
deleted file mode 100644
index 506ba9fa..00000000
--- a/ebics/src/main/kotlin/ebics_hev/EbicsMessages.kt
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2019 Stanisci and Dold.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-package tech.libeufin.ebics.ebics_hev
-
-import java.util.*
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.NormalizedStringAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(
-    name = "HEVRequestDataType"
-)
-@XmlRootElement(name = "ebicsHEVRequest")
-class HEVRequest{
-    @get:XmlElement(name = "HostID", required = true)
-    lateinit var hostId: String
-}
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(
-    name = "HEVResponseDataType",
-    propOrder = ["systemReturnCode", "versionNumber", "any"]
-)
-@XmlRootElement(name = "ebicsHEVResponse")
-class HEVResponse {
-    @get:XmlElement(name = "SystemReturnCode", required = true)
-    lateinit var systemReturnCode: SystemReturnCodeType
-
-    @get:XmlElement(name = "VersionNumber", namespace = 
"http://www.ebics.org/H000";)
-    var versionNumber: List<VersionNumber> = LinkedList()
-
-    @get:XmlAnyElement(lax = true)
-    var any: List<Any>? = null
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    class VersionNumber {
-        @get:XmlValue
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var value: String
-
-        @get:XmlAttribute(name = "ProtocolVersion", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var protocolVersion: String
-
-        companion object {
-            fun create(protocolVersion: String, versionNumber: String): 
VersionNumber {
-                return VersionNumber().apply {
-                    this.protocolVersion = protocolVersion
-                    this.value = versionNumber
-                }
-            }
-        }
-    }
-}
-
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlType(
-    name = "SystemReturnCodeType",
-    propOrder = [
-        "returnCode",
-        "reportText"
-    ]
-)
-class SystemReturnCodeType {
-    @get:XmlElement(name = "ReturnCode", required = true)
-    @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-    lateinit var returnCode: String
-
-    @get:XmlElement(name = "ReportText", required = true)
-    @get:XmlJavaTypeAdapter(NormalizedStringAdapter::class)
-    lateinit var reportText: String
-}
diff --git a/ebics/src/main/kotlin/ebics_hev/package-info.java 
b/ebics/src/main/kotlin/ebics_hev/package-info.java
deleted file mode 100644
index 8d2c7b54..00000000
--- a/ebics/src/main/kotlin/ebics_hev/package-info.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * This package-info.java file defines the default namespace for the JAXB 
bindings
- * defined in the package.
- */
-
-@XmlSchema(
-        namespace = "http://www.ebics.org/H000";,
-        elementFormDefault = XmlNsForm.QUALIFIED
-)
-package tech.libeufin.ebics.ebics_hev;
-
-import javax.xml.bind.annotation.XmlNsForm;
-import javax.xml.bind.annotation.XmlSchema;
diff --git a/ebics/src/main/kotlin/ebics_s001/SignatureTypes.kt 
b/ebics/src/main/kotlin/ebics_s001/SignatureTypes.kt
deleted file mode 100644
index 4781ba26..00000000
--- a/ebics/src/main/kotlin/ebics_s001/SignatureTypes.kt
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2019 Stanisci and Dold.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-package tech.libeufin.ebics.ebics_s001
-
-import org.apache.xml.security.binding.xmldsig.RSAKeyValueType
-import org.apache.xml.security.binding.xmldsig.X509DataType
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-import javax.xml.datatype.XMLGregorianCalendar
-
-
-object SignatureTypes {
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "PubKeyValueType", namespace = "http://www.ebics.org/S001";, 
propOrder = [
-            "rsaKeyValue",
-            "timeStamp"
-        ]
-    )
-    class PubKeyValueType {
-        @get:XmlElement(name = "RSAKeyValue", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, required = true)
-        lateinit var rsaKeyValue: RSAKeyValueType
-
-        @get:XmlElement(name = "TimeStamp")
-        @get:XmlSchemaType(name = "dateTime")
-        var timeStamp: XMLGregorianCalendar? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "",
-        propOrder = [
-            "x509Data",
-            "pubKeyValue",
-            "signatureVersion"
-        ]
-    )
-    class SignaturePubKeyInfoType {
-        @get:XmlElement(name = "X509Data")
-        var x509Data: X509DataType? = null
-
-        @get:XmlElement(name = "PubKeyValue", required = true)
-        lateinit var pubKeyValue: PubKeyValueType
-
-        @get:XmlElement(name = "SignatureVersion", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var signatureVersion: String
-    }
-
-    /**
-     * EBICS INI payload.
-     */
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "",
-        propOrder = ["signaturePubKeyInfo", "partnerID", "userID"]
-    )
-    @XmlRootElement(name = "SignaturePubKeyOrderData")
-    class SignaturePubKeyOrderData {
-        @get:XmlElement(name = "SignaturePubKeyInfo", required = true)
-        lateinit var signaturePubKeyInfo: SignaturePubKeyInfoType
-
-        @get:XmlElement(name = "PartnerID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        lateinit var partnerID: String
-
-        @get:XmlElement(name = "UserID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        lateinit var userID: String
-    }
-}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_s001/UserSignatureData.kt 
b/ebics/src/main/kotlin/ebics_s001/UserSignatureData.kt
deleted file mode 100644
index 7eb5e0ed..00000000
--- a/ebics/src/main/kotlin/ebics_s001/UserSignatureData.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-package tech.libeufin.ebics.ebics_s001
-
-import javax.xml.bind.annotation.*
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlRootElement(name = "UserSignatureData")
-@XmlType(name = "", propOrder = ["orderSignatureList"])
-class UserSignatureData {
-    @XmlElement(name = "OrderSignatureData", type = OrderSignatureData::class)
-    var orderSignatureList: List<OrderSignatureData>? = null
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["signatureVersion", "signatureValue", 
"partnerID", "userID"])
-    class OrderSignatureData {
-        @XmlElement(name = "SignatureVersion")
-        lateinit var signatureVersion: String
-
-        @XmlElement(name = "SignatureValue")
-        lateinit var signatureValue: ByteArray
-
-        @XmlElement(name = "PartnerID")
-        lateinit var partnerID: String
-
-        @XmlElement(name = "UserID")
-        lateinit var userID: String
-    }
-}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_s001/package-info.java 
b/ebics/src/main/kotlin/ebics_s001/package-info.java
deleted file mode 100644
index adda5875..00000000
--- a/ebics/src/main/kotlin/ebics_s001/package-info.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * This package-info.java file defines the default namespace for the JAXB 
bindings
- * defined in the package.
- */
-
-@XmlSchema(
-        namespace = "http://www.ebics.org/S001";,
-        elementFormDefault = XmlNsForm.QUALIFIED
-)
-package tech.libeufin.ebics.ebics_s001;
-
-import javax.xml.bind.annotation.XmlNsForm;
-import javax.xml.bind.annotation.XmlSchema;
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_s002/SignatureTypes.kt 
b/ebics/src/main/kotlin/ebics_s002/SignatureTypes.kt
deleted file mode 100644
index c1d48e9b..00000000
--- a/ebics/src/main/kotlin/ebics_s002/SignatureTypes.kt
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2019 Stanisci and Dold.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-package tech.libeufin.ebics.ebics_s002
-
-import org.apache.xml.security.binding.xmldsig.RSAKeyValueType
-import org.apache.xml.security.binding.xmldsig.X509DataType
-import javax.xml.bind.annotation.*
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-import javax.xml.datatype.XMLGregorianCalendar
-
-
-object SignatureTypes {
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "PubKeyValueType", namespace = "http://www.ebics.org/S002";, 
propOrder = [
-            "rsaKeyValue",
-            "timeStamp"
-        ]
-    )
-    class PubKeyValueType {
-        @get:XmlElement(name = "RSAKeyValue", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, required = true)
-        lateinit var rsaKeyValue: RSAKeyValueType
-
-        @get:XmlElement(name = "TimeStamp")
-        @get:XmlSchemaType(name = "dateTime")
-        var timeStamp: XMLGregorianCalendar? = null
-    }
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "",
-        propOrder = [
-            "x509Data",
-            "pubKeyValue",
-            "signatureVersion"
-        ]
-    )
-    class SignaturePubKeyInfoType {
-        @get:XmlElement(name = "X509Data")
-        var x509Data: X509DataType? = null
-
-        @get:XmlElement(name = "PubKeyValue", required = true)
-        lateinit var pubKeyValue: PubKeyValueType
-
-        @get:XmlElement(name = "SignatureVersion", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        lateinit var signatureVersion: String
-    }
-
-    /**
-     * EBICS INI payload.
-     */
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(
-        name = "",
-        propOrder = ["signaturePubKeyInfo", "partnerID", "userID"]
-    )
-    @XmlRootElement(name = "SignaturePubKeyOrderData")
-    class SignaturePubKeyOrderData {
-        @get:XmlElement(name = "SignaturePubKeyInfo", required = true)
-        lateinit var signaturePubKeyInfo: SignaturePubKeyInfoType
-
-        @get:XmlElement(name = "PartnerID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        lateinit var partnerID: String
-
-        @get:XmlElement(name = "UserID", required = true)
-        @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
-        @get:XmlSchemaType(name = "token")
-        lateinit var userID: String
-    }
-}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_s002/UserSignatureDataEbics3.kt 
b/ebics/src/main/kotlin/ebics_s002/UserSignatureDataEbics3.kt
deleted file mode 100644
index 082d0681..00000000
--- a/ebics/src/main/kotlin/ebics_s002/UserSignatureDataEbics3.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-package tech.libeufin.ebics.ebics_s002
-
-import javax.xml.bind.annotation.*
-
-@XmlAccessorType(XmlAccessType.NONE)
-@XmlRootElement(name = "UserSignatureData")
-@XmlType(name = "", propOrder = ["orderSignatureList"])
-class UserSignatureDataEbics3 {
-    @XmlElement(name = "OrderSignatureData", type = OrderSignatureData::class)
-    var orderSignatureList: List<OrderSignatureData>? = null
-
-    @XmlAccessorType(XmlAccessType.NONE)
-    @XmlType(name = "", propOrder = ["signatureVersion", "signatureValue", 
"partnerID", "userID"])
-    class OrderSignatureData {
-        @XmlElement(name = "SignatureVersion")
-        lateinit var signatureVersion: String
-
-        @XmlElement(name = "SignatureValue")
-        lateinit var signatureValue: ByteArray
-
-        @XmlElement(name = "PartnerID")
-        lateinit var partnerID: String
-
-        @XmlElement(name = "UserID")
-        lateinit var userID: String
-    }
-}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/ebics_s002/package-info.java 
b/ebics/src/main/kotlin/ebics_s002/package-info.java
deleted file mode 100644
index 5ddb1f77..00000000
--- a/ebics/src/main/kotlin/ebics_s002/package-info.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * This package-info.java file defines the default namespace for the JAXB 
bindings
- * defined in the package.
- */
-
-@XmlSchema(
-        namespace = "http://www.ebics.org/S002";,
-        elementFormDefault = XmlNsForm.QUALIFIED
-)
-package tech.libeufin.ebics.ebics_s002;
-
-import javax.xml.bind.annotation.XmlNsForm;
-import javax.xml.bind.annotation.XmlSchema;
\ No newline at end of file
diff --git a/ebics/src/main/resources/version.txt 
b/ebics/src/main/resources/version.txt
deleted file mode 100644
index 359d0539..00000000
--- a/ebics/src/main/resources/version.txt
+++ /dev/null
@@ -1 +0,0 @@
-v0.9.4-git-8aeffb3f
\ No newline at end of file
diff --git a/ebics/src/main/resources/xsd/camt.052.001.02.xsd 
b/ebics/src/main/resources/xsd/camt.052.001.02.xsd
deleted file mode 100644
index 52abd831..00000000
--- a/ebics/src/main/resources/xsd/camt.052.001.02.xsd
+++ /dev/null
@@ -1,1299 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Mit XMLSpy v2008 rel. 2 (http://www.altova.com) von Wenzel (SIZ Bonn) 
bearbeitet -->
-<!--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:camt.052.001.02" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.052.001.02" 
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="AccountInterest2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="InterestType1Choice" 
minOccurs="0"/>
-                       <xs:element name="Rate" type="Rate3" minOccurs="0" 
maxOccurs="unbounded"/>
-                       <xs:element name="FrToDt" type="DateTimePeriodDetails" 
minOccurs="0"/>
-                       <xs:element name="Rsn" type="Max35Text" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AccountReport11">
-               <xs:sequence>
-                       <xs:element name="Id" type="Max35Text"/>
-                       <xs:element name="ElctrncSeqNb" type="Number" 
minOccurs="0"/>
-                       <xs:element name="LglSeqNb" type="Number" 
minOccurs="0"/>
-                       <xs:element name="CreDtTm" type="ISODateTime"/>
-                       <xs:element name="FrToDt" type="DateTimePeriodDetails" 
minOccurs="0"/>
-                       <xs:element name="CpyDplctInd" 
type="CopyDuplicate1Code" minOccurs="0"/>
-                       <xs:element name="RptgSrc" 
type="ReportingSource1Choice" minOccurs="0"/>
-                       <xs:element name="Acct" type="CashAccount20"/>
-                       <xs:element name="RltdAcct" type="CashAccount16" 
minOccurs="0"/>
-                       <xs:element name="Intrst" type="AccountInterest2" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="Bal" type="CashBalance3" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="TxsSummry" type="TotalTransactions2" 
minOccurs="0"/>
-                       <xs:element name="Ntry" type="ReportEntry2" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="AddtlRptInf" type="Max500Text" 
minOccurs="0"/>
-               </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,13}"/>
-               </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="AlternateSecurityIdentification2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Id" type="Max35Text"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AmountAndCurrencyExchange3">
-               <xs:sequence>
-                       <xs:element name="InstdAmt" 
type="AmountAndCurrencyExchangeDetails3" minOccurs="0"/>
-                       <xs:element name="TxAmt" 
type="AmountAndCurrencyExchangeDetails3" minOccurs="0"/>
-                       <xs:element name="CntrValAmt" 
type="AmountAndCurrencyExchangeDetails3" minOccurs="0"/>
-                       <xs:element name="AnncdPstngAmt" 
type="AmountAndCurrencyExchangeDetails3" minOccurs="0"/>
-                       <xs:element name="PrtryAmt" 
type="AmountAndCurrencyExchangeDetails4" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AmountAndCurrencyExchangeDetails3">
-               <xs:sequence>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CcyXchg" type="CurrencyExchange5" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AmountAndCurrencyExchangeDetails4">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CcyXchg" type="CurrencyExchange5" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AmountRangeBoundary1">
-               <xs:sequence>
-                       <xs:element name="BdryAmt" 
type="ImpliedCurrencyAndAmount"/>
-                       <xs:element name="Incl" type="YesNoIndicator"/>
-               </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: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:complexType name="BalanceSubType1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" 
type="ExternalBalanceSubType1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="BalanceType12">
-               <xs:sequence>
-                       <xs:element name="CdOrPrtry" type="BalanceType5Choice"/>
-                       <xs:element name="SubTp" type="BalanceSubType1Choice" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="BalanceType12Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="XPCD"/>
-                       <xs:enumeration value="OPAV"/>
-                       <xs:enumeration value="ITAV"/>
-                       <xs:enumeration value="CLAV"/>
-                       <xs:enumeration value="FWAV"/>
-                       <xs:enumeration value="CLBD"/>
-                       <xs:enumeration value="ITBD"/>
-                       <xs:enumeration value="OPBD"/>
-                       <xs:enumeration value="PRCD"/>
-                       <xs:enumeration value="INFO"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="BalanceType5Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" type="BalanceType12Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="BankToCustomerAccountReportV02">
-               <xs:sequence>
-                       <xs:element name="GrpHdr" type="GroupHeader42"/>
-                       <xs:element name="Rpt" type="AccountReport11" 
maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="BankTransactionCodeStructure4">
-               <xs:sequence>
-                       <xs:element name="Domn" 
type="BankTransactionCodeStructure5" minOccurs="0"/>
-                       <xs:element name="Prtry" 
type="ProprietaryBankTransactionCodeStructure1" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="BankTransactionCodeStructure5">
-               <xs:sequence>
-                       <xs:element name="Cd" 
type="ExternalBankTransactionDomain1Code"/>
-                       <xs:element name="Fmly" 
type="BankTransactionCodeStructure6"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="BankTransactionCodeStructure6">
-               <xs:sequence>
-                       <xs:element name="Cd" 
type="ExternalBankTransactionFamily1Code"/>
-                       <xs:element name="SubFmlyCd" 
type="ExternalBankTransactionSubFamily1Code"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="BaseOneRate">
-               <xs:restriction base="xs:decimal">
-                       <xs:fractionDigits value="10"/>
-                       <xs:totalDigits value="11"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="BatchInformation2">
-               <xs:sequence>
-                       <xs:element name="MsgId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="PmtInfId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="NbOfTxs" type="Max15NumericText" 
minOccurs="0"/>
-                       <xs:element name="TtlAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="CashAccount20">
-               <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:element name="Ownr" type="PartyIdentification32" 
minOccurs="0"/>
-                       <xs:element name="Svcr" 
type="BranchAndFinancialInstitutionIdentification4" 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="CashBalance3">
-               <xs:sequence>
-                       <xs:element name="Tp" type="BalanceType12"/>
-                       <xs:element name="CdtLine" type="CreditLine2" 
minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
-                       <xs:element name="Dt" type="DateAndDateTimeChoice"/>
-                       <xs:element name="Avlbty" 
type="CashBalanceAvailability2" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="CashBalanceAvailability2">
-               <xs:sequence>
-                       <xs:element name="Dt" 
type="CashBalanceAvailabilityDate1"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="CashBalanceAvailabilityDate1">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="NbOfDays" 
type="Max15PlusSignedNumericText"/>
-                               <xs:element name="ActlDt" type="ISODate"/>
-                       </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:simpleType name="ChargeType1Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="BRKF"/>
-                       <xs:enumeration value="COMM"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="ChargeType2Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" type="ChargeType1Code"/>
-                               <xs:element name="Prtry" 
type="GenericIdentification3"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ChargesInformation6">
-               <xs:sequence>
-                       <xs:element name="TtlChrgsAndTaxAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-                       <xs:element name="Tp" type="ChargeType2Choice" 
minOccurs="0"/>
-                       <xs:element name="Rate" type="PercentageRate" 
minOccurs="0"/>
-                       <xs:element name="Br" type="ChargeBearerType1Code" 
minOccurs="0"/>
-                       <xs:element name="Pty" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="Tax" type="TaxCharges2" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="CopyDuplicate1Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="CODU"/>
-                       <xs:enumeration value="COPY"/>
-                       <xs:enumeration value="DUPL"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="CorporateAction1">
-               <xs:sequence>
-                       <xs:element name="Cd" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="Nb" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="Prtry" 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="CreditLine2">
-               <xs:sequence>
-                       <xs:element name="Incl" type="TrueFalseIndicator"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount" 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="CurrencyAndAmountRange2">
-               <xs:sequence>
-                       <xs:element name="Amt" 
type="ImpliedCurrencyAmountRangeChoice"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-                       <xs:element name="Ccy" 
type="ActiveOrHistoricCurrencyCode"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="CurrencyExchange5">
-               <xs:sequence>
-                       <xs:element name="SrcCcy" 
type="ActiveOrHistoricCurrencyCode"/>
-                       <xs:element name="TrgtCcy" 
type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
-                       <xs:element name="UnitCcy" 
type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
-                       <xs:element name="XchgRate" type="BaseOneRate"/>
-                       <xs:element name="CtrctId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="QtnDt" type="ISODateTime" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="DateAndDateTimeChoice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Dt" type="ISODate"/>
-                               <xs:element name="DtTm" type="ISODateTime"/>
-                       </xs:choice>
-               </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:complexType name="DateTimePeriodDetails">
-               <xs:sequence>
-                       <xs:element name="FrDtTm" type="ISODateTime"/>
-                       <xs:element name="ToDtTm" type="ISODateTime"/>
-               </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="BkToCstmrAcctRpt" 
type="BankToCustomerAccountReportV02"/>
-               </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="EntryDetails1">
-               <xs:sequence>
-                       <xs:element name="Btch" type="BatchInformation2" 
minOccurs="0"/>
-                       <xs:element name="TxDtls" type="EntryTransaction2" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="EntryStatus2Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="BOOK"/>
-                       <xs:enumeration value="PDNG"/>
-                       <xs:enumeration value="INFO"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="EntryTransaction2">
-               <xs:sequence>
-                       <xs:element name="Refs" type="TransactionReferences2" 
minOccurs="0"/>
-                       <xs:element name="AmtDtls" 
type="AmountAndCurrencyExchange3" minOccurs="0"/>
-                       <xs:element name="Avlbty" 
type="CashBalanceAvailability2" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="BkTxCd" 
type="BankTransactionCodeStructure4" minOccurs="0"/>
-                       <xs:element name="Chrgs" type="ChargesInformation6" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="Intrst" type="TransactionInterest2" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="RltdPties" type="TransactionParty2" 
minOccurs="0"/>
-                       <xs:element name="RltdAgts" type="TransactionAgents2" 
minOccurs="0"/>
-                       <xs:element name="Purp" type="Purpose2Choice" 
minOccurs="0"/>
-                       <xs:element name="RltdRmtInf" 
type="RemittanceLocation2" minOccurs="0" maxOccurs="10"/>
-                       <xs:element name="RmtInf" type="RemittanceInformation5" 
minOccurs="0"/>
-                       <xs:element name="RltdDts" type="TransactionDates2" 
minOccurs="0"/>
-                       <xs:element name="RltdPric" 
type="TransactionPrice2Choice" minOccurs="0"/>
-                       <xs:element name="RltdQties" 
type="TransactionQuantities1Choice" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="FinInstrmId" 
type="SecurityIdentification4Choice" minOccurs="0"/>
-                       <xs:element name="Tax" type="TaxInformation3" 
minOccurs="0"/>
-                       <xs:element name="RtrInf" 
type="ReturnReasonInformation10" minOccurs="0"/>
-                       <xs:element name="CorpActn" type="CorporateAction1" 
minOccurs="0"/>
-                       <xs:element name="SfkpgAcct" type="CashAccount16" 
minOccurs="0"/>
-                       <xs:element name="AddtlTxInf" type="Max500Text" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="ExternalAccountIdentification1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalBalanceSubType1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalBankTransactionDomain1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalBankTransactionFamily1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalBankTransactionSubFamily1Code">
-               <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="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="ExternalReportingSource1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalReturnReason1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalTechnicalInputChannel1Code">
-               <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="FinancialInstrumentQuantityChoice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Unit" type="DecimalNumber"/>
-                               <xs:element name="FaceAmt" 
type="ImpliedCurrencyAndAmount"/>
-                               <xs:element name="AmtsdVal" 
type="ImpliedCurrencyAndAmount"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="FromToAmountRange">
-               <xs:sequence>
-                       <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
-                       <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
-               </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="GenericIdentification3">
-               <xs:sequence>
-                       <xs:element name="Id" type="Max35Text"/>
-                       <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="GroupHeader42">
-               <xs:sequence>
-                       <xs:element name="MsgId" type="Max35Text"/>
-                       <xs:element name="CreDtTm" type="ISODateTime"/>
-                       <xs:element name="MsgRcpt" type="PartyIdentification32" 
minOccurs="0"/>
-                       <xs:element name="MsgPgntn" type="Pagination" 
minOccurs="0"/>
-                       <xs:element name="AddtlInf" type="Max500Text" 
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="ISINIdentifier">
-               <xs:restriction base="xs:string">
-                       <xs:pattern value="[A-Z0-9]{12,12}"/>
-               </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:complexType name="ImpliedCurrencyAmountRangeChoice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="FrAmt" 
type="AmountRangeBoundary1"/>
-                               <xs:element name="ToAmt" 
type="AmountRangeBoundary1"/>
-                               <xs:element name="FrToAmt" 
type="FromToAmountRange"/>
-                               <xs:element name="EQAmt" 
type="ImpliedCurrencyAndAmount"/>
-                               <xs:element name="NEQAmt" 
type="ImpliedCurrencyAndAmount"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="ImpliedCurrencyAndAmount">
-               <xs:restriction base="xs:decimal">
-                       <xs:minInclusive value="0"/>
-                       <xs:fractionDigits value="5"/>
-                       <xs:totalDigits value="18"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="InterestType1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" type="InterestType1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="InterestType1Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="INDY"/>
-                       <xs:enumeration value="OVRN"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max105Text">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="105"/>
-               </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="Max15PlusSignedNumericText">
-               <xs:restriction base="xs:string">
-                       <xs:pattern value="[+]{0,1}[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="Max500Text">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="500"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max5NumericText">
-               <xs:restriction base="xs:string">
-                       <xs:pattern value="[0-9]{1,5}"/>
-               </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="MessageIdentification2">
-               <xs:sequence>
-                       <xs:element name="MsgNmId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="MsgId" type="Max35Text" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="NumberAndSumOfTransactions1">
-               <xs:sequence>
-                       <xs:element name="NbOfNtries" type="Max15NumericText" 
minOccurs="0"/>
-                       <xs:element name="Sum" type="DecimalNumber" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="NumberAndSumOfTransactions2">
-               <xs:sequence>
-                       <xs:element name="NbOfNtries" type="Max15NumericText" 
minOccurs="0"/>
-                       <xs:element name="Sum" type="DecimalNumber" 
minOccurs="0"/>
-                       <xs:element name="TtlNetNtryAmt" type="DecimalNumber" 
minOccurs="0"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="Pagination">
-               <xs:sequence>
-                       <xs:element name="PgNb" type="Max5NumericText"/>
-                       <xs:element name="LastPgInd" type="YesNoIndicator"/>
-               </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: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:complexType name="ProprietaryAgent2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Agt" 
type="BranchAndFinancialInstitutionIdentification4"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
-               <xs:sequence>
-                       <xs:element name="Cd" type="Max35Text"/>
-                       <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryDate2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Dt" type="DateAndDateTimeChoice"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryParty2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Pty" type="PartyIdentification32"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryPrice2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Pric" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryQuantity1">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Qty" type="Max35Text"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryReference1">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Ref" type="Max35Text"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="Rate3">
-               <xs:sequence>
-                       <xs:element name="Tp" type="RateType4Choice"/>
-                       <xs:element name="VldtyRg" 
type="CurrencyAndAmountRange2" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="RateType4Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Pctg" type="PercentageRate"/>
-                               <xs:element name="Othr" 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="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="ReportEntry2">
-               <xs:sequence>
-                       <xs:element name="NtryRef" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
-                       <xs:element name="RvslInd" type="TrueFalseIndicator" 
minOccurs="0"/>
-                       <xs:element name="Sts" type="EntryStatus2Code"/>
-                       <xs:element name="BookgDt" type="DateAndDateTimeChoice" 
minOccurs="0"/>
-                       <xs:element name="ValDt" type="DateAndDateTimeChoice" 
minOccurs="0"/>
-                       <xs:element name="AcctSvcrRef" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="Avlbty" 
type="CashBalanceAvailability2" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="BkTxCd" 
type="BankTransactionCodeStructure4"/>
-                       <xs:element name="ComssnWvrInd" type="YesNoIndicator" 
minOccurs="0"/>
-                       <xs:element name="AddtlInfInd" 
type="MessageIdentification2" minOccurs="0"/>
-                       <xs:element name="AmtDtls" 
type="AmountAndCurrencyExchange3" minOccurs="0"/>
-                       <xs:element name="Chrgs" type="ChargesInformation6" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="TechInptChanl" 
type="TechnicalInputChannel1Choice" minOccurs="0"/>
-                       <xs:element name="Intrst" type="TransactionInterest2" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="NtryDtls" type="EntryDetails1" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="AddtlNtryInf" type="Max500Text" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ReportingSource1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" 
type="ExternalReportingSource1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ReturnReason5Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" 
type="ExternalReturnReason1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ReturnReasonInformation10">
-               <xs:sequence>
-                       <xs:element name="OrgnlBkTxCd" 
type="BankTransactionCodeStructure4" minOccurs="0"/>
-                       <xs:element name="Orgtr" type="PartyIdentification32" 
minOccurs="0"/>
-                       <xs:element name="Rsn" type="ReturnReason5Choice" 
minOccurs="0"/>
-                       <xs:element name="AddtlInf" type="Max105Text" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="SecurityIdentification4Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="ISIN" type="ISINIdentifier"/>
-                               <xs:element name="Prtry" 
type="AlternateSecurityIdentification2"/>
-                       </xs:choice>
-               </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="TaxCharges2">
-               <xs:sequence>
-                       <xs:element name="Id" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="Rate" type="PercentageRate" 
minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount" 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:complexType name="TechnicalInputChannel1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" 
type="ExternalTechnicalInputChannel1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TotalTransactions2">
-               <xs:sequence>
-                       <xs:element name="TtlNtries" 
type="NumberAndSumOfTransactions2" minOccurs="0"/>
-                       <xs:element name="TtlCdtNtries" 
type="NumberAndSumOfTransactions1" minOccurs="0"/>
-                       <xs:element name="TtlDbtNtries" 
type="NumberAndSumOfTransactions1" minOccurs="0"/>
-                       <xs:element name="TtlNtriesPerBkTxCd" 
type="TotalsPerBankTransactionCode2" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TotalsPerBankTransactionCode2">
-               <xs:sequence>
-                       <xs:element name="NbOfNtries" type="Max15NumericText" 
minOccurs="0"/>
-                       <xs:element name="Sum" type="DecimalNumber" 
minOccurs="0"/>
-                       <xs:element name="TtlNetNtryAmt" type="DecimalNumber" 
minOccurs="0"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-                       <xs:element name="FcstInd" type="TrueFalseIndicator" 
minOccurs="0"/>
-                       <xs:element name="BkTxCd" 
type="BankTransactionCodeStructure4"/>
-                       <xs:element name="Avlbty" 
type="CashBalanceAvailability2" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionAgents2">
-               <xs:sequence>
-                       <xs:element name="DbtrAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="CdtrAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt1" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt2" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt3" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="RcvgAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="DlvrgAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="IssgAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="SttlmPlc" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="Prtry" type="ProprietaryAgent2" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionDates2">
-               <xs:sequence>
-                       <xs:element name="AccptncDtTm" type="ISODateTime" 
minOccurs="0"/>
-                       <xs:element name="TradActvtyCtrctlSttlmDt" 
type="ISODate" minOccurs="0"/>
-                       <xs:element name="TradDt" type="ISODate" minOccurs="0"/>
-                       <xs:element name="IntrBkSttlmDt" type="ISODate" 
minOccurs="0"/>
-                       <xs:element name="StartDt" type="ISODate" 
minOccurs="0"/>
-                       <xs:element name="EndDt" type="ISODate" minOccurs="0"/>
-                       <xs:element name="TxDtTm" type="ISODateTime" 
minOccurs="0"/>
-                       <xs:element name="Prtry" type="ProprietaryDate2" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionInterest2">
-               <xs:sequence>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
-                       <xs:element name="Tp" type="InterestType1Choice" 
minOccurs="0"/>
-                       <xs:element name="Rate" type="Rate3" minOccurs="0" 
maxOccurs="unbounded"/>
-                       <xs:element name="FrToDt" type="DateTimePeriodDetails" 
minOccurs="0"/>
-                       <xs:element name="Rsn" type="Max35Text" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionParty2">
-               <xs:sequence>
-                       <xs:element name="InitgPty" 
type="PartyIdentification32" minOccurs="0"/>
-                       <xs:element name="Dbtr" type="PartyIdentification32" 
minOccurs="0"/>
-                       <xs:element name="DbtrAcct" type="CashAccount16" 
minOccurs="0"/>
-                       <xs:element name="UltmtDbtr" 
type="PartyIdentification32" 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="TradgPty" 
type="PartyIdentification32" minOccurs="0"/>
-                       <xs:element name="Prtry" type="ProprietaryParty2" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionPrice2Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="DealPric" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                               <xs:element name="Prtry" 
type="ProprietaryPrice2" maxOccurs="unbounded"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionQuantities1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Qty" 
type="FinancialInstrumentQuantityChoice"/>
-                               <xs:element name="Prtry" 
type="ProprietaryQuantity1"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionReferences2">
-               <xs:sequence>
-                       <xs:element name="MsgId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="AcctSvcrRef" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="PmtInfId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="InstrId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="EndToEndId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="TxId" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="MndtId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="ChqNb" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="ClrSysRef" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="Prtry" type="ProprietaryReference1" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="TrueFalseIndicator">
-               <xs:restriction base="xs:boolean"/>
-       </xs:simpleType>
-       <xs:simpleType name="YesNoIndicator">
-               <xs:restriction base="xs:boolean"/>
-       </xs:simpleType>
-</xs:schema>
diff --git a/ebics/src/main/resources/xsd/camt.053.001.02.xsd 
b/ebics/src/main/resources/xsd/camt.053.001.02.xsd
deleted file mode 100644
index 0dc3b77e..00000000
--- a/ebics/src/main/resources/xsd/camt.053.001.02.xsd
+++ /dev/null
@@ -1,1299 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Mit XMLSpy v2008 rel. 2 (http://www.altova.com) von Wenzel (SIZ Bonn) 
bearbeitet -->
-<!--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:camt.053.001.02" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02" 
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="AccountInterest2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="InterestType1Choice" 
minOccurs="0"/>
-                       <xs:element name="Rate" type="Rate3" minOccurs="0" 
maxOccurs="unbounded"/>
-                       <xs:element name="FrToDt" type="DateTimePeriodDetails" 
minOccurs="0"/>
-                       <xs:element name="Rsn" type="Max35Text" minOccurs="0"/>
-               </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:complexType name="AccountStatement2">
-               <xs:sequence>
-                       <xs:element name="Id" type="Max35Text"/>
-                       <xs:element name="ElctrncSeqNb" type="Number" 
minOccurs="0"/>
-                       <xs:element name="LglSeqNb" type="Number" 
minOccurs="0"/>
-                       <xs:element name="CreDtTm" type="ISODateTime"/>
-                       <xs:element name="FrToDt" type="DateTimePeriodDetails" 
minOccurs="0"/>
-                       <xs:element name="CpyDplctInd" 
type="CopyDuplicate1Code" minOccurs="0"/>
-                       <xs:element name="RptgSrc" 
type="ReportingSource1Choice" minOccurs="0"/>
-                       <xs:element name="Acct" type="CashAccount20"/>
-                       <xs:element name="RltdAcct" type="CashAccount16" 
minOccurs="0"/>
-                       <xs:element name="Intrst" type="AccountInterest2" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="Bal" type="CashBalance3" 
maxOccurs="unbounded"/>
-                       <xs:element name="TxsSummry" type="TotalTransactions2" 
minOccurs="0"/>
-                       <xs:element name="Ntry" type="ReportEntry2" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="AddtlStmtInf" type="Max500Text" 
minOccurs="0"/>
-               </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,13}"/>
-               </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="AlternateSecurityIdentification2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Id" type="Max35Text"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AmountAndCurrencyExchange3">
-               <xs:sequence>
-                       <xs:element name="InstdAmt" 
type="AmountAndCurrencyExchangeDetails3" minOccurs="0"/>
-                       <xs:element name="TxAmt" 
type="AmountAndCurrencyExchangeDetails3" minOccurs="0"/>
-                       <xs:element name="CntrValAmt" 
type="AmountAndCurrencyExchangeDetails3" minOccurs="0"/>
-                       <xs:element name="AnncdPstngAmt" 
type="AmountAndCurrencyExchangeDetails3" minOccurs="0"/>
-                       <xs:element name="PrtryAmt" 
type="AmountAndCurrencyExchangeDetails4" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AmountAndCurrencyExchangeDetails3">
-               <xs:sequence>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CcyXchg" type="CurrencyExchange5" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AmountAndCurrencyExchangeDetails4">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CcyXchg" type="CurrencyExchange5" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AmountRangeBoundary1">
-               <xs:sequence>
-                       <xs:element name="BdryAmt" 
type="ImpliedCurrencyAndAmount"/>
-                       <xs:element name="Incl" type="YesNoIndicator"/>
-               </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: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:complexType name="BalanceSubType1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" 
type="ExternalBalanceSubType1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="BalanceType12">
-               <xs:sequence>
-                       <xs:element name="CdOrPrtry" type="BalanceType5Choice"/>
-                       <xs:element name="SubTp" type="BalanceSubType1Choice" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="BalanceType12Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="XPCD"/>
-                       <xs:enumeration value="OPAV"/>
-                       <xs:enumeration value="ITAV"/>
-                       <xs:enumeration value="CLAV"/>
-                       <xs:enumeration value="FWAV"/>
-                       <xs:enumeration value="CLBD"/>
-                       <xs:enumeration value="ITBD"/>
-                       <xs:enumeration value="OPBD"/>
-                       <xs:enumeration value="PRCD"/>
-                       <xs:enumeration value="INFO"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="BalanceType5Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" type="BalanceType12Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="BankToCustomerStatementV02">
-               <xs:sequence>
-                       <xs:element name="GrpHdr" type="GroupHeader42"/>
-                       <xs:element name="Stmt" type="AccountStatement2" 
maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="BankTransactionCodeStructure4">
-               <xs:sequence>
-                       <xs:element name="Domn" 
type="BankTransactionCodeStructure5" minOccurs="0"/>
-                       <xs:element name="Prtry" 
type="ProprietaryBankTransactionCodeStructure1" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="BankTransactionCodeStructure5">
-               <xs:sequence>
-                       <xs:element name="Cd" 
type="ExternalBankTransactionDomain1Code"/>
-                       <xs:element name="Fmly" 
type="BankTransactionCodeStructure6"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="BankTransactionCodeStructure6">
-               <xs:sequence>
-                       <xs:element name="Cd" 
type="ExternalBankTransactionFamily1Code"/>
-                       <xs:element name="SubFmlyCd" 
type="ExternalBankTransactionSubFamily1Code"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="BaseOneRate">
-               <xs:restriction base="xs:decimal">
-                       <xs:fractionDigits value="10"/>
-                       <xs:totalDigits value="11"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="BatchInformation2">
-               <xs:sequence>
-                       <xs:element name="MsgId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="PmtInfId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="NbOfTxs" type="Max15NumericText" 
minOccurs="0"/>
-                       <xs:element name="TtlAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="CashAccount20">
-               <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:element name="Ownr" type="PartyIdentification32" 
minOccurs="0"/>
-                       <xs:element name="Svcr" 
type="BranchAndFinancialInstitutionIdentification4" 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="CashBalance3">
-               <xs:sequence>
-                       <xs:element name="Tp" type="BalanceType12"/>
-                       <xs:element name="CdtLine" type="CreditLine2" 
minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
-                       <xs:element name="Dt" type="DateAndDateTimeChoice"/>
-                       <xs:element name="Avlbty" 
type="CashBalanceAvailability2" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="CashBalanceAvailability2">
-               <xs:sequence>
-                       <xs:element name="Dt" 
type="CashBalanceAvailabilityDate1"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="CashBalanceAvailabilityDate1">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="NbOfDays" 
type="Max15PlusSignedNumericText"/>
-                               <xs:element name="ActlDt" type="ISODate"/>
-                       </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:simpleType name="ChargeType1Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="BRKF"/>
-                       <xs:enumeration value="COMM"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="ChargeType2Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" type="ChargeType1Code"/>
-                               <xs:element name="Prtry" 
type="GenericIdentification3"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ChargesInformation6">
-               <xs:sequence>
-                       <xs:element name="TtlChrgsAndTaxAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-                       <xs:element name="Tp" type="ChargeType2Choice" 
minOccurs="0"/>
-                       <xs:element name="Rate" type="PercentageRate" 
minOccurs="0"/>
-                       <xs:element name="Br" type="ChargeBearerType1Code" 
minOccurs="0"/>
-                       <xs:element name="Pty" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="Tax" type="TaxCharges2" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="CopyDuplicate1Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="CODU"/>
-                       <xs:enumeration value="COPY"/>
-                       <xs:enumeration value="DUPL"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="CorporateAction1">
-               <xs:sequence>
-                       <xs:element name="Cd" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="Nb" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="Prtry" 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="CreditLine2">
-               <xs:sequence>
-                       <xs:element name="Incl" type="TrueFalseIndicator"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount" 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="CurrencyAndAmountRange2">
-               <xs:sequence>
-                       <xs:element name="Amt" 
type="ImpliedCurrencyAmountRangeChoice"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-                       <xs:element name="Ccy" 
type="ActiveOrHistoricCurrencyCode"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="CurrencyExchange5">
-               <xs:sequence>
-                       <xs:element name="SrcCcy" 
type="ActiveOrHistoricCurrencyCode"/>
-                       <xs:element name="TrgtCcy" 
type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
-                       <xs:element name="UnitCcy" 
type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
-                       <xs:element name="XchgRate" type="BaseOneRate"/>
-                       <xs:element name="CtrctId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="QtnDt" type="ISODateTime" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="DateAndDateTimeChoice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Dt" type="ISODate"/>
-                               <xs:element name="DtTm" type="ISODateTime"/>
-                       </xs:choice>
-               </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:complexType name="DateTimePeriodDetails">
-               <xs:sequence>
-                       <xs:element name="FrDtTm" type="ISODateTime"/>
-                       <xs:element name="ToDtTm" type="ISODateTime"/>
-               </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="BkToCstmrStmt" 
type="BankToCustomerStatementV02"/>
-               </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="EntryDetails1">
-               <xs:sequence>
-                       <xs:element name="Btch" type="BatchInformation2" 
minOccurs="0"/>
-                       <xs:element name="TxDtls" type="EntryTransaction2" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="EntryStatus2Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="BOOK"/>
-                       <xs:enumeration value="PDNG"/>
-                       <xs:enumeration value="INFO"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="EntryTransaction2">
-               <xs:sequence>
-                       <xs:element name="Refs" type="TransactionReferences2" 
minOccurs="0"/>
-                       <xs:element name="AmtDtls" 
type="AmountAndCurrencyExchange3" minOccurs="0"/>
-                       <xs:element name="Avlbty" 
type="CashBalanceAvailability2" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="BkTxCd" 
type="BankTransactionCodeStructure4" minOccurs="0"/>
-                       <xs:element name="Chrgs" type="ChargesInformation6" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="Intrst" type="TransactionInterest2" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="RltdPties" type="TransactionParty2" 
minOccurs="0"/>
-                       <xs:element name="RltdAgts" type="TransactionAgents2" 
minOccurs="0"/>
-                       <xs:element name="Purp" type="Purpose2Choice" 
minOccurs="0"/>
-                       <xs:element name="RltdRmtInf" 
type="RemittanceLocation2" minOccurs="0" maxOccurs="10"/>
-                       <xs:element name="RmtInf" type="RemittanceInformation5" 
minOccurs="0"/>
-                       <xs:element name="RltdDts" type="TransactionDates2" 
minOccurs="0"/>
-                       <xs:element name="RltdPric" 
type="TransactionPrice2Choice" minOccurs="0"/>
-                       <xs:element name="RltdQties" 
type="TransactionQuantities1Choice" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="FinInstrmId" 
type="SecurityIdentification4Choice" minOccurs="0"/>
-                       <xs:element name="Tax" type="TaxInformation3" 
minOccurs="0"/>
-                       <xs:element name="RtrInf" 
type="ReturnReasonInformation10" minOccurs="0"/>
-                       <xs:element name="CorpActn" type="CorporateAction1" 
minOccurs="0"/>
-                       <xs:element name="SfkpgAcct" type="CashAccount16" 
minOccurs="0"/>
-                       <xs:element name="AddtlTxInf" type="Max500Text" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="ExternalAccountIdentification1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalBalanceSubType1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalBankTransactionDomain1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalBankTransactionFamily1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalBankTransactionSubFamily1Code">
-               <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="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="ExternalReportingSource1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalReturnReason1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalTechnicalInputChannel1Code">
-               <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="FinancialInstrumentQuantityChoice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Unit" type="DecimalNumber"/>
-                               <xs:element name="FaceAmt" 
type="ImpliedCurrencyAndAmount"/>
-                               <xs:element name="AmtsdVal" 
type="ImpliedCurrencyAndAmount"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="FromToAmountRange">
-               <xs:sequence>
-                       <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
-                       <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
-               </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="GenericIdentification3">
-               <xs:sequence>
-                       <xs:element name="Id" type="Max35Text"/>
-                       <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="GroupHeader42">
-               <xs:sequence>
-                       <xs:element name="MsgId" type="Max35Text"/>
-                       <xs:element name="CreDtTm" type="ISODateTime"/>
-                       <xs:element name="MsgRcpt" type="PartyIdentification32" 
minOccurs="0"/>
-                       <xs:element name="MsgPgntn" type="Pagination" 
minOccurs="0"/>
-                       <xs:element name="AddtlInf" type="Max500Text" 
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="ISINIdentifier">
-               <xs:restriction base="xs:string">
-                       <xs:pattern value="[A-Z0-9]{12,12}"/>
-               </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:complexType name="ImpliedCurrencyAmountRangeChoice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="FrAmt" 
type="AmountRangeBoundary1"/>
-                               <xs:element name="ToAmt" 
type="AmountRangeBoundary1"/>
-                               <xs:element name="FrToAmt" 
type="FromToAmountRange"/>
-                               <xs:element name="EQAmt" 
type="ImpliedCurrencyAndAmount"/>
-                               <xs:element name="NEQAmt" 
type="ImpliedCurrencyAndAmount"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="ImpliedCurrencyAndAmount">
-               <xs:restriction base="xs:decimal">
-                       <xs:minInclusive value="0"/>
-                       <xs:fractionDigits value="5"/>
-                       <xs:totalDigits value="18"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="InterestType1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" type="InterestType1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="InterestType1Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="INDY"/>
-                       <xs:enumeration value="OVRN"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max105Text">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="105"/>
-               </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="Max15PlusSignedNumericText">
-               <xs:restriction base="xs:string">
-                       <xs:pattern value="[+]{0,1}[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="Max500Text">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="500"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max5NumericText">
-               <xs:restriction base="xs:string">
-                       <xs:pattern value="[0-9]{1,5}"/>
-               </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="MessageIdentification2">
-               <xs:sequence>
-                       <xs:element name="MsgNmId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="MsgId" type="Max35Text" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="NumberAndSumOfTransactions1">
-               <xs:sequence>
-                       <xs:element name="NbOfNtries" type="Max15NumericText" 
minOccurs="0"/>
-                       <xs:element name="Sum" type="DecimalNumber" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="NumberAndSumOfTransactions2">
-               <xs:sequence>
-                       <xs:element name="NbOfNtries" type="Max15NumericText" 
minOccurs="0"/>
-                       <xs:element name="Sum" type="DecimalNumber" 
minOccurs="0"/>
-                       <xs:element name="TtlNetNtryAmt" type="DecimalNumber" 
minOccurs="0"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="Pagination">
-               <xs:sequence>
-                       <xs:element name="PgNb" type="Max5NumericText"/>
-                       <xs:element name="LastPgInd" type="YesNoIndicator"/>
-               </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: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:complexType name="ProprietaryAgent2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Agt" 
type="BranchAndFinancialInstitutionIdentification4"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
-               <xs:sequence>
-                       <xs:element name="Cd" type="Max35Text"/>
-                       <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryDate2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Dt" type="DateAndDateTimeChoice"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryParty2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Pty" type="PartyIdentification32"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryPrice2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Pric" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryQuantity1">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Qty" type="Max35Text"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryReference1">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Ref" type="Max35Text"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="Rate3">
-               <xs:sequence>
-                       <xs:element name="Tp" type="RateType4Choice"/>
-                       <xs:element name="VldtyRg" 
type="CurrencyAndAmountRange2" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="RateType4Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Pctg" type="PercentageRate"/>
-                               <xs:element name="Othr" 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="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="ReportEntry2">
-               <xs:sequence>
-                       <xs:element name="NtryRef" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
-                       <xs:element name="RvslInd" type="TrueFalseIndicator" 
minOccurs="0"/>
-                       <xs:element name="Sts" type="EntryStatus2Code"/>
-                       <xs:element name="BookgDt" type="DateAndDateTimeChoice" 
minOccurs="0"/>
-                       <xs:element name="ValDt" type="DateAndDateTimeChoice" 
minOccurs="0"/>
-                       <xs:element name="AcctSvcrRef" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="Avlbty" 
type="CashBalanceAvailability2" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="BkTxCd" 
type="BankTransactionCodeStructure4"/>
-                       <xs:element name="ComssnWvrInd" type="YesNoIndicator" 
minOccurs="0"/>
-                       <xs:element name="AddtlInfInd" 
type="MessageIdentification2" minOccurs="0"/>
-                       <xs:element name="AmtDtls" 
type="AmountAndCurrencyExchange3" minOccurs="0"/>
-                       <xs:element name="Chrgs" type="ChargesInformation6" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="TechInptChanl" 
type="TechnicalInputChannel1Choice" minOccurs="0"/>
-                       <xs:element name="Intrst" type="TransactionInterest2" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="NtryDtls" type="EntryDetails1" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="AddtlNtryInf" type="Max500Text" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ReportingSource1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" 
type="ExternalReportingSource1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ReturnReason5Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" 
type="ExternalReturnReason1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ReturnReasonInformation10">
-               <xs:sequence>
-                       <xs:element name="OrgnlBkTxCd" 
type="BankTransactionCodeStructure4" minOccurs="0"/>
-                       <xs:element name="Orgtr" type="PartyIdentification32" 
minOccurs="0"/>
-                       <xs:element name="Rsn" type="ReturnReason5Choice" 
minOccurs="0"/>
-                       <xs:element name="AddtlInf" type="Max105Text" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="SecurityIdentification4Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="ISIN" type="ISINIdentifier"/>
-                               <xs:element name="Prtry" 
type="AlternateSecurityIdentification2"/>
-                       </xs:choice>
-               </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="TaxCharges2">
-               <xs:sequence>
-                       <xs:element name="Id" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="Rate" type="PercentageRate" 
minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount" 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:complexType name="TechnicalInputChannel1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" 
type="ExternalTechnicalInputChannel1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TotalTransactions2">
-               <xs:sequence>
-                       <xs:element name="TtlNtries" 
type="NumberAndSumOfTransactions2" minOccurs="0"/>
-                       <xs:element name="TtlCdtNtries" 
type="NumberAndSumOfTransactions1" minOccurs="0"/>
-                       <xs:element name="TtlDbtNtries" 
type="NumberAndSumOfTransactions1" minOccurs="0"/>
-                       <xs:element name="TtlNtriesPerBkTxCd" 
type="TotalsPerBankTransactionCode2" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TotalsPerBankTransactionCode2">
-               <xs:sequence>
-                       <xs:element name="NbOfNtries" type="Max15NumericText" 
minOccurs="0"/>
-                       <xs:element name="Sum" type="DecimalNumber" 
minOccurs="0"/>
-                       <xs:element name="TtlNetNtryAmt" type="DecimalNumber" 
minOccurs="0"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-                       <xs:element name="FcstInd" type="TrueFalseIndicator" 
minOccurs="0"/>
-                       <xs:element name="BkTxCd" 
type="BankTransactionCodeStructure4"/>
-                       <xs:element name="Avlbty" 
type="CashBalanceAvailability2" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionAgents2">
-               <xs:sequence>
-                       <xs:element name="DbtrAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="CdtrAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt1" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt2" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt3" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="RcvgAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="DlvrgAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="IssgAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="SttlmPlc" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="Prtry" type="ProprietaryAgent2" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionDates2">
-               <xs:sequence>
-                       <xs:element name="AccptncDtTm" type="ISODateTime" 
minOccurs="0"/>
-                       <xs:element name="TradActvtyCtrctlSttlmDt" 
type="ISODate" minOccurs="0"/>
-                       <xs:element name="TradDt" type="ISODate" minOccurs="0"/>
-                       <xs:element name="IntrBkSttlmDt" type="ISODate" 
minOccurs="0"/>
-                       <xs:element name="StartDt" type="ISODate" 
minOccurs="0"/>
-                       <xs:element name="EndDt" type="ISODate" minOccurs="0"/>
-                       <xs:element name="TxDtTm" type="ISODateTime" 
minOccurs="0"/>
-                       <xs:element name="Prtry" type="ProprietaryDate2" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionInterest2">
-               <xs:sequence>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
-                       <xs:element name="Tp" type="InterestType1Choice" 
minOccurs="0"/>
-                       <xs:element name="Rate" type="Rate3" minOccurs="0" 
maxOccurs="unbounded"/>
-                       <xs:element name="FrToDt" type="DateTimePeriodDetails" 
minOccurs="0"/>
-                       <xs:element name="Rsn" type="Max35Text" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionParty2">
-               <xs:sequence>
-                       <xs:element name="InitgPty" 
type="PartyIdentification32" minOccurs="0"/>
-                       <xs:element name="Dbtr" type="PartyIdentification32" 
minOccurs="0"/>
-                       <xs:element name="DbtrAcct" type="CashAccount16" 
minOccurs="0"/>
-                       <xs:element name="UltmtDbtr" 
type="PartyIdentification32" 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="TradgPty" 
type="PartyIdentification32" minOccurs="0"/>
-                       <xs:element name="Prtry" type="ProprietaryParty2" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionPrice2Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="DealPric" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                               <xs:element name="Prtry" 
type="ProprietaryPrice2" maxOccurs="unbounded"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionQuantities1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Qty" 
type="FinancialInstrumentQuantityChoice"/>
-                               <xs:element name="Prtry" 
type="ProprietaryQuantity1"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionReferences2">
-               <xs:sequence>
-                       <xs:element name="MsgId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="AcctSvcrRef" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="PmtInfId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="InstrId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="EndToEndId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="TxId" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="MndtId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="ChqNb" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="ClrSysRef" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="Prtry" type="ProprietaryReference1" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="TrueFalseIndicator">
-               <xs:restriction base="xs:boolean"/>
-       </xs:simpleType>
-       <xs:simpleType name="YesNoIndicator">
-               <xs:restriction base="xs:boolean"/>
-       </xs:simpleType>
-</xs:schema>
diff --git a/ebics/src/main/resources/xsd/camt.054.001.02.xsd 
b/ebics/src/main/resources/xsd/camt.054.001.02.xsd
deleted file mode 100644
index b284c6dd..00000000
--- a/ebics/src/main/resources/xsd/camt.054.001.02.xsd
+++ /dev/null
@@ -1,1240 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Mit XMLSpy v2008 rel. 2 (http://www.altova.com) von Wenzel (SIZ Bonn) 
bearbeitet -->
-<!--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:camt.054.001.02" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02" 
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="AccountInterest2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="InterestType1Choice" 
minOccurs="0"/>
-                       <xs:element name="Rate" type="Rate3" minOccurs="0" 
maxOccurs="unbounded"/>
-                       <xs:element name="FrToDt" type="DateTimePeriodDetails" 
minOccurs="0"/>
-                       <xs:element name="Rsn" type="Max35Text" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AccountNotification2">
-               <xs:sequence>
-                       <xs:element name="Id" type="Max35Text"/>
-                       <xs:element name="ElctrncSeqNb" type="Number" 
minOccurs="0"/>
-                       <xs:element name="LglSeqNb" type="Number" 
minOccurs="0"/>
-                       <xs:element name="CreDtTm" type="ISODateTime"/>
-                       <xs:element name="FrToDt" type="DateTimePeriodDetails" 
minOccurs="0"/>
-                       <xs:element name="CpyDplctInd" 
type="CopyDuplicate1Code" minOccurs="0"/>
-                       <xs:element name="RptgSrc" 
type="ReportingSource1Choice" minOccurs="0"/>
-                       <xs:element name="Acct" type="CashAccount20"/>
-                       <xs:element name="RltdAcct" type="CashAccount16" 
minOccurs="0"/>
-                       <xs:element name="Intrst" type="AccountInterest2" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="TxsSummry" type="TotalTransactions2" 
minOccurs="0"/>
-                       <xs:element name="Ntry" type="ReportEntry2" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="AddtlNtfctnInf" type="Max500Text" 
minOccurs="0"/>
-               </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,13}"/>
-               </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="AlternateSecurityIdentification2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Id" type="Max35Text"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AmountAndCurrencyExchange3">
-               <xs:sequence>
-                       <xs:element name="InstdAmt" 
type="AmountAndCurrencyExchangeDetails3" minOccurs="0"/>
-                       <xs:element name="TxAmt" 
type="AmountAndCurrencyExchangeDetails3" minOccurs="0"/>
-                       <xs:element name="CntrValAmt" 
type="AmountAndCurrencyExchangeDetails3" minOccurs="0"/>
-                       <xs:element name="AnncdPstngAmt" 
type="AmountAndCurrencyExchangeDetails3" minOccurs="0"/>
-                       <xs:element name="PrtryAmt" 
type="AmountAndCurrencyExchangeDetails4" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AmountAndCurrencyExchangeDetails3">
-               <xs:sequence>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CcyXchg" type="CurrencyExchange5" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AmountAndCurrencyExchangeDetails4">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CcyXchg" type="CurrencyExchange5" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="AmountRangeBoundary1">
-               <xs:sequence>
-                       <xs:element name="BdryAmt" 
type="ImpliedCurrencyAndAmount"/>
-                       <xs:element name="Incl" type="YesNoIndicator"/>
-               </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: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:complexType name="BankToCustomerDebitCreditNotificationV02">
-               <xs:sequence>
-                       <xs:element name="GrpHdr" type="GroupHeader42"/>
-                       <xs:element name="Ntfctn" type="AccountNotification2" 
maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="BankTransactionCodeStructure4">
-               <xs:sequence>
-                       <xs:element name="Domn" 
type="BankTransactionCodeStructure5" minOccurs="0"/>
-                       <xs:element name="Prtry" 
type="ProprietaryBankTransactionCodeStructure1" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="BankTransactionCodeStructure5">
-               <xs:sequence>
-                       <xs:element name="Cd" 
type="ExternalBankTransactionDomain1Code"/>
-                       <xs:element name="Fmly" 
type="BankTransactionCodeStructure6"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="BankTransactionCodeStructure6">
-               <xs:sequence>
-                       <xs:element name="Cd" 
type="ExternalBankTransactionFamily1Code"/>
-                       <xs:element name="SubFmlyCd" 
type="ExternalBankTransactionSubFamily1Code"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="BaseOneRate">
-               <xs:restriction base="xs:decimal">
-                       <xs:fractionDigits value="10"/>
-                       <xs:totalDigits value="11"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="BatchInformation2">
-               <xs:sequence>
-                       <xs:element name="MsgId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="PmtInfId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="NbOfTxs" type="Max15NumericText" 
minOccurs="0"/>
-                       <xs:element name="TtlAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="CashAccount20">
-               <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:element name="Ownr" type="PartyIdentification32" 
minOccurs="0"/>
-                       <xs:element name="Svcr" 
type="BranchAndFinancialInstitutionIdentification4" 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="CashBalanceAvailability2">
-               <xs:sequence>
-                       <xs:element name="Dt" 
type="CashBalanceAvailabilityDate1"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="CashBalanceAvailabilityDate1">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="NbOfDays" 
type="Max15PlusSignedNumericText"/>
-                               <xs:element name="ActlDt" type="ISODate"/>
-                       </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:simpleType name="ChargeType1Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="BRKF"/>
-                       <xs:enumeration value="COMM"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="ChargeType2Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" type="ChargeType1Code"/>
-                               <xs:element name="Prtry" 
type="GenericIdentification3"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ChargesInformation6">
-               <xs:sequence>
-                       <xs:element name="TtlChrgsAndTaxAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-                       <xs:element name="Tp" type="ChargeType2Choice" 
minOccurs="0"/>
-                       <xs:element name="Rate" type="PercentageRate" 
minOccurs="0"/>
-                       <xs:element name="Br" type="ChargeBearerType1Code" 
minOccurs="0"/>
-                       <xs:element name="Pty" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="Tax" type="TaxCharges2" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="CopyDuplicate1Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="CODU"/>
-                       <xs:enumeration value="COPY"/>
-                       <xs:enumeration value="DUPL"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="CorporateAction1">
-               <xs:sequence>
-                       <xs:element name="Cd" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="Nb" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="Prtry" 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="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="CurrencyAndAmountRange2">
-               <xs:sequence>
-                       <xs:element name="Amt" 
type="ImpliedCurrencyAmountRangeChoice"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-                       <xs:element name="Ccy" 
type="ActiveOrHistoricCurrencyCode"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="CurrencyExchange5">
-               <xs:sequence>
-                       <xs:element name="SrcCcy" 
type="ActiveOrHistoricCurrencyCode"/>
-                       <xs:element name="TrgtCcy" 
type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
-                       <xs:element name="UnitCcy" 
type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
-                       <xs:element name="XchgRate" type="BaseOneRate"/>
-                       <xs:element name="CtrctId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="QtnDt" type="ISODateTime" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="DateAndDateTimeChoice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Dt" type="ISODate"/>
-                               <xs:element name="DtTm" type="ISODateTime"/>
-                       </xs:choice>
-               </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:complexType name="DateTimePeriodDetails">
-               <xs:sequence>
-                       <xs:element name="FrDtTm" type="ISODateTime"/>
-                       <xs:element name="ToDtTm" type="ISODateTime"/>
-               </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="BkToCstmrDbtCdtNtfctn" 
type="BankToCustomerDebitCreditNotificationV02"/>
-               </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="EntryDetails1">
-               <xs:sequence>
-                       <xs:element name="Btch" type="BatchInformation2" 
minOccurs="0"/>
-                       <xs:element name="TxDtls" type="EntryTransaction2" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="EntryStatus2Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="BOOK"/>
-                       <xs:enumeration value="PDNG"/>
-                       <xs:enumeration value="INFO"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="EntryTransaction2">
-               <xs:sequence>
-                       <xs:element name="Refs" type="TransactionReferences2" 
minOccurs="0"/>
-                       <xs:element name="AmtDtls" 
type="AmountAndCurrencyExchange3" minOccurs="0"/>
-                       <xs:element name="Avlbty" 
type="CashBalanceAvailability2" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="BkTxCd" 
type="BankTransactionCodeStructure4" minOccurs="0"/>
-                       <xs:element name="Chrgs" type="ChargesInformation6" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="Intrst" type="TransactionInterest2" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="RltdPties" type="TransactionParty2" 
minOccurs="0"/>
-                       <xs:element name="RltdAgts" type="TransactionAgents2" 
minOccurs="0"/>
-                       <xs:element name="Purp" type="Purpose2Choice" 
minOccurs="0"/>
-                       <xs:element name="RltdRmtInf" 
type="RemittanceLocation2" minOccurs="0" maxOccurs="10"/>
-                       <xs:element name="RmtInf" type="RemittanceInformation5" 
minOccurs="0"/>
-                       <xs:element name="RltdDts" type="TransactionDates2" 
minOccurs="0"/>
-                       <xs:element name="RltdPric" 
type="TransactionPrice2Choice" minOccurs="0"/>
-                       <xs:element name="RltdQties" 
type="TransactionQuantities1Choice" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="FinInstrmId" 
type="SecurityIdentification4Choice" minOccurs="0"/>
-                       <xs:element name="Tax" type="TaxInformation3" 
minOccurs="0"/>
-                       <xs:element name="RtrInf" 
type="ReturnReasonInformation10" minOccurs="0"/>
-                       <xs:element name="CorpActn" type="CorporateAction1" 
minOccurs="0"/>
-                       <xs:element name="SfkpgAcct" type="CashAccount16" 
minOccurs="0"/>
-                       <xs:element name="AddtlTxInf" type="Max500Text" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="ExternalAccountIdentification1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalBankTransactionDomain1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalBankTransactionFamily1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalBankTransactionSubFamily1Code">
-               <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="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="ExternalReportingSource1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalReturnReason1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalTechnicalInputChannel1Code">
-               <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="FinancialInstrumentQuantityChoice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Unit" type="DecimalNumber"/>
-                               <xs:element name="FaceAmt" 
type="ImpliedCurrencyAndAmount"/>
-                               <xs:element name="AmtsdVal" 
type="ImpliedCurrencyAndAmount"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="FromToAmountRange">
-               <xs:sequence>
-                       <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
-                       <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
-               </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="GenericIdentification3">
-               <xs:sequence>
-                       <xs:element name="Id" type="Max35Text"/>
-                       <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="GroupHeader42">
-               <xs:sequence>
-                       <xs:element name="MsgId" type="Max35Text"/>
-                       <xs:element name="CreDtTm" type="ISODateTime"/>
-                       <xs:element name="MsgRcpt" type="PartyIdentification32" 
minOccurs="0"/>
-                       <xs:element name="MsgPgntn" type="Pagination" 
minOccurs="0"/>
-                       <xs:element name="AddtlInf" type="Max500Text" 
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="ISINIdentifier">
-               <xs:restriction base="xs:string">
-                       <xs:pattern value="[A-Z0-9]{12,12}"/>
-               </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:complexType name="ImpliedCurrencyAmountRangeChoice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="FrAmt" 
type="AmountRangeBoundary1"/>
-                               <xs:element name="ToAmt" 
type="AmountRangeBoundary1"/>
-                               <xs:element name="FrToAmt" 
type="FromToAmountRange"/>
-                               <xs:element name="EQAmt" 
type="ImpliedCurrencyAndAmount"/>
-                               <xs:element name="NEQAmt" 
type="ImpliedCurrencyAndAmount"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="ImpliedCurrencyAndAmount">
-               <xs:restriction base="xs:decimal">
-                       <xs:minInclusive value="0"/>
-                       <xs:fractionDigits value="5"/>
-                       <xs:totalDigits value="18"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="InterestType1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" type="InterestType1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="InterestType1Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="INDY"/>
-                       <xs:enumeration value="OVRN"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max105Text">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="105"/>
-               </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="Max15PlusSignedNumericText">
-               <xs:restriction base="xs:string">
-                       <xs:pattern value="[+]{0,1}[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="Max500Text">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="500"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max5NumericText">
-               <xs:restriction base="xs:string">
-                       <xs:pattern value="[0-9]{1,5}"/>
-               </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="MessageIdentification2">
-               <xs:sequence>
-                       <xs:element name="MsgNmId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="MsgId" type="Max35Text" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="NumberAndSumOfTransactions1">
-               <xs:sequence>
-                       <xs:element name="NbOfNtries" type="Max15NumericText" 
minOccurs="0"/>
-                       <xs:element name="Sum" type="DecimalNumber" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="NumberAndSumOfTransactions2">
-               <xs:sequence>
-                       <xs:element name="NbOfNtries" type="Max15NumericText" 
minOccurs="0"/>
-                       <xs:element name="Sum" type="DecimalNumber" 
minOccurs="0"/>
-                       <xs:element name="TtlNetNtryAmt" type="DecimalNumber" 
minOccurs="0"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="Pagination">
-               <xs:sequence>
-                       <xs:element name="PgNb" type="Max5NumericText"/>
-                       <xs:element name="LastPgInd" type="YesNoIndicator"/>
-               </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: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:complexType name="ProprietaryAgent2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Agt" 
type="BranchAndFinancialInstitutionIdentification4"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
-               <xs:sequence>
-                       <xs:element name="Cd" type="Max35Text"/>
-                       <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryDate2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Dt" type="DateAndDateTimeChoice"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryParty2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Pty" type="PartyIdentification32"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryPrice2">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Pric" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryQuantity1">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Qty" type="Max35Text"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProprietaryReference1">
-               <xs:sequence>
-                       <xs:element name="Tp" type="Max35Text"/>
-                       <xs:element name="Ref" type="Max35Text"/>
-               </xs:sequence>
-       </xs:complexType>
-       <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="Rate3">
-               <xs:sequence>
-                       <xs:element name="Tp" type="RateType4Choice"/>
-                       <xs:element name="VldtyRg" 
type="CurrencyAndAmountRange2" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="RateType4Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Pctg" type="PercentageRate"/>
-                               <xs:element name="Othr" 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="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="ReportEntry2">
-               <xs:sequence>
-                       <xs:element name="NtryRef" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
-                       <xs:element name="RvslInd" type="TrueFalseIndicator" 
minOccurs="0"/>
-                       <xs:element name="Sts" type="EntryStatus2Code"/>
-                       <xs:element name="BookgDt" type="DateAndDateTimeChoice" 
minOccurs="0"/>
-                       <xs:element name="ValDt" type="DateAndDateTimeChoice" 
minOccurs="0"/>
-                       <xs:element name="AcctSvcrRef" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="Avlbty" 
type="CashBalanceAvailability2" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="BkTxCd" 
type="BankTransactionCodeStructure4"/>
-                       <xs:element name="ComssnWvrInd" type="YesNoIndicator" 
minOccurs="0"/>
-                       <xs:element name="AddtlInfInd" 
type="MessageIdentification2" minOccurs="0"/>
-                       <xs:element name="AmtDtls" 
type="AmountAndCurrencyExchange3" minOccurs="0"/>
-                       <xs:element name="Chrgs" type="ChargesInformation6" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="TechInptChanl" 
type="TechnicalInputChannel1Choice" minOccurs="0"/>
-                       <xs:element name="Intrst" type="TransactionInterest2" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="NtryDtls" type="EntryDetails1" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="AddtlNtryInf" type="Max500Text" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ReportingSource1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" 
type="ExternalReportingSource1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ReturnReason5Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" 
type="ExternalReturnReason1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ReturnReasonInformation10">
-               <xs:sequence>
-                       <xs:element name="OrgnlBkTxCd" 
type="BankTransactionCodeStructure4" minOccurs="0"/>
-                       <xs:element name="Orgtr" type="PartyIdentification32" 
minOccurs="0"/>
-                       <xs:element name="Rsn" type="ReturnReason5Choice" 
minOccurs="0"/>
-                       <xs:element name="AddtlInf" type="Max105Text" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="SecurityIdentification4Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="ISIN" type="ISINIdentifier"/>
-                               <xs:element name="Prtry" 
type="AlternateSecurityIdentification2"/>
-                       </xs:choice>
-               </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="TaxCharges2">
-               <xs:sequence>
-                       <xs:element name="Id" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="Rate" type="PercentageRate" 
minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount" 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:complexType name="TechnicalInputChannel1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Cd" 
type="ExternalTechnicalInputChannel1Code"/>
-                               <xs:element name="Prtry" type="Max35Text"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TotalTransactions2">
-               <xs:sequence>
-                       <xs:element name="TtlNtries" 
type="NumberAndSumOfTransactions2" minOccurs="0"/>
-                       <xs:element name="TtlCdtNtries" 
type="NumberAndSumOfTransactions1" minOccurs="0"/>
-                       <xs:element name="TtlDbtNtries" 
type="NumberAndSumOfTransactions1" minOccurs="0"/>
-                       <xs:element name="TtlNtriesPerBkTxCd" 
type="TotalsPerBankTransactionCode2" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TotalsPerBankTransactionCode2">
-               <xs:sequence>
-                       <xs:element name="NbOfNtries" type="Max15NumericText" 
minOccurs="0"/>
-                       <xs:element name="Sum" type="DecimalNumber" 
minOccurs="0"/>
-                       <xs:element name="TtlNetNtryAmt" type="DecimalNumber" 
minOccurs="0"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode" 
minOccurs="0"/>
-                       <xs:element name="FcstInd" type="TrueFalseIndicator" 
minOccurs="0"/>
-                       <xs:element name="BkTxCd" 
type="BankTransactionCodeStructure4"/>
-                       <xs:element name="Avlbty" 
type="CashBalanceAvailability2" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionAgents2">
-               <xs:sequence>
-                       <xs:element name="DbtrAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="CdtrAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt1" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt2" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt3" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="RcvgAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="DlvrgAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="IssgAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="SttlmPlc" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <xs:element name="Prtry" type="ProprietaryAgent2" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionDates2">
-               <xs:sequence>
-                       <xs:element name="AccptncDtTm" type="ISODateTime" 
minOccurs="0"/>
-                       <xs:element name="TradActvtyCtrctlSttlmDt" 
type="ISODate" minOccurs="0"/>
-                       <xs:element name="TradDt" type="ISODate" minOccurs="0"/>
-                       <xs:element name="IntrBkSttlmDt" type="ISODate" 
minOccurs="0"/>
-                       <xs:element name="StartDt" type="ISODate" 
minOccurs="0"/>
-                       <xs:element name="EndDt" type="ISODate" minOccurs="0"/>
-                       <xs:element name="TxDtTm" type="ISODateTime" 
minOccurs="0"/>
-                       <xs:element name="Prtry" type="ProprietaryDate2" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionInterest2">
-               <xs:sequence>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
-                       <xs:element name="Tp" type="InterestType1Choice" 
minOccurs="0"/>
-                       <xs:element name="Rate" type="Rate3" minOccurs="0" 
maxOccurs="unbounded"/>
-                       <xs:element name="FrToDt" type="DateTimePeriodDetails" 
minOccurs="0"/>
-                       <xs:element name="Rsn" type="Max35Text" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionParty2">
-               <xs:sequence>
-                       <xs:element name="InitgPty" 
type="PartyIdentification32" minOccurs="0"/>
-                       <xs:element name="Dbtr" type="PartyIdentification32" 
minOccurs="0"/>
-                       <xs:element name="DbtrAcct" type="CashAccount16" 
minOccurs="0"/>
-                       <xs:element name="UltmtDbtr" 
type="PartyIdentification32" 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="TradgPty" 
type="PartyIdentification32" minOccurs="0"/>
-                       <xs:element name="Prtry" type="ProprietaryParty2" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionPrice2Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="DealPric" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                               <xs:element name="Prtry" 
type="ProprietaryPrice2" maxOccurs="unbounded"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionQuantities1Choice">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="Qty" 
type="FinancialInstrumentQuantityChoice"/>
-                               <xs:element name="Prtry" 
type="ProprietaryQuantity1"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TransactionReferences2">
-               <xs:sequence>
-                       <xs:element name="MsgId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="AcctSvcrRef" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="PmtInfId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="InstrId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="EndToEndId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="TxId" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="MndtId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="ChqNb" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="ClrSysRef" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="Prtry" type="ProprietaryReference1" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="TrueFalseIndicator">
-               <xs:restriction base="xs:boolean"/>
-       </xs:simpleType>
-       <xs:simpleType name="YesNoIndicator">
-               <xs:restriction base="xs:boolean"/>
-       </xs:simpleType>
-</xs:schema>
diff --git a/ebics/src/main/resources/xsd/ebics_H004.xsd 
b/ebics/src/main/resources/xsd/ebics_H004.xsd
deleted file mode 100644
index c5f7ec2c..00000000
--- a/ebics/src/main/resources/xsd/ebics_H004.xsd
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:ebics="urn:org:ebics:H004" 
targetNamespace="urn:org:ebics:H004" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <annotation>
-               <documentation xml:lang="de">ebics_H004.xsd inkludiert alle 
Schemadateien des EBICS-Protokolls, um die Eindeutigkeit von Element- und 
Typnamen im EBCIS Namespace zu erzwingen.</documentation>
-               <documentation xml:lang="en">ebics_H004.xsd includes all schema 
files for the EBICS protocol in order to enforce unique element and type names 
in the EBICS namespace.</documentation>
-       </annotation>
-       <include schemaLocation="ebics_request_H004.xsd"/>
-       <include schemaLocation="ebics_response_H004.xsd"/>
-       <include schemaLocation="ebics_keymgmt_request_H004.xsd"/>
-       <include schemaLocation="ebics_keymgmt_response_H004.xsd"/>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_H005.xsd 
b/ebics/src/main/resources/xsd/ebics_H005.xsd
deleted file mode 100644
index 149bf263..00000000
--- a/ebics/src/main/resources/xsd/ebics_H005.xsd
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:ebics="urn:org:ebics:H005" 
targetNamespace="urn:org:ebics:H005" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <annotation>
-               <documentation xml:lang="de">ebics_H005.xsd inkludiert alle 
Schemadateien des EBICS-Protokolls, um die Eindeutigkeit von Element- und 
Typnamen im EBCIS Namespace zu erzwingen.</documentation>
-               <documentation xml:lang="en">ebics_H005.xsd includes all schema 
files for the EBICS protocol in order to enforce unique element and type names 
in the EBICS namespace.</documentation>
-       </annotation>
-       <include schemaLocation="ebics_request_H005.xsd"/>
-       <include schemaLocation="ebics_response_H005.xsd"/>
-       <include schemaLocation="ebics_keymgmt_request_H005.xsd"/>
-       <include schemaLocation="ebics_keymgmt_response_H005.xsd"/>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_hev.xsd 
b/ebics/src/main/resources/xsd/ebics_hev.xsd
deleted file mode 100644
index 8ee84587..00000000
--- a/ebics/src/main/resources/xsd/ebics_hev.xsd
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:ebics="http://www.ebics.org/H000"; 
targetNamespace="http://www.ebics.org/H000"; elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <xs:annotation>
-               <xs:documentation xml:lang="de">ebics_hev.xsd ist das 
EBICS-Protokollschema entweder für Anfragen oder Rückmeldungen der Bank zu 
unterstützten EBICS-Versionen.</xs:documentation>
-               <xs:documentation xml:lang="en">ebics_hev.xsd is the 
appropriate EBICS protocol schema either for requests or responses according 
the EBICS versions supported by a bank.</xs:documentation>
-       </xs:annotation>
-       <xs:simpleType name="HostIDType">
-               <xs:annotation>
-                       <xs:documentation xml:lang="de">Datentyp für die 
Host-ID.</xs:documentation>
-                       <xs:documentation xml:lang="en">Dataype for 
Host-ID.</xs:documentation>
-               </xs:annotation>
-               <xs:restriction base="xs:token">
-                       <xs:maxLength value="35"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="OrderTBaseType">
-               <xs:annotation>
-                       <xs:documentation xml:lang="de">Datentyp für allgemeine 
Auftragsarten (Grundtyp).</xs:documentation>
-                       <xs:documentation xml:lang="en">Datatype for general 
order types (basic type).</xs:documentation>
-               </xs:annotation>
-               <xs:restriction base="xs:token">
-                       <xs:length value="3"/>
-                       <xs:pattern value="HEV"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ReturnCodeType">
-               <xs:annotation>
-                       <xs:documentation xml:lang="de">Datentyp für 
Antwortcodes.</xs:documentation>
-                       <xs:documentation xml:lang="en">Datatype for the return 
code</xs:documentation>
-               </xs:annotation>
-               <xs:restriction base="xs:token">
-                       <xs:length value="6"/>
-                       <xs:pattern value="\d{6}"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ReportTextType">
-               <xs:annotation>
-                       <xs:documentation xml:lang="de">Datentyp für den 
Erklärungstext zum Antwortcode.</xs:documentation>
-                       <xs:documentation xml:lang="en">Datatype for report 
text with respect to the return code</xs:documentation>
-               </xs:annotation>
-               <xs:restriction base="xs:normalizedString">
-                       <xs:maxLength value="256"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="VersionNumberType">
-               <xs:annotation>
-                       <xs:documentation xml:lang="de">Datentyp für eine 
Versionsnummer</xs:documentation>
-                       <xs:documentation xml:lang="en">Datatype for a release 
number </xs:documentation>
-               </xs:annotation>
-               <xs:restriction base="xs:token">
-                       <xs:length value="5"/>
-                       <xs:pattern value="[0-9]{2}[.][0-9]{2}"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ProtocolVersionType">
-               <xs:annotation>
-                       <xs:documentation xml:lang="de">Datentyp für 
Versionsnummer des EBICS-schemas</xs:documentation>
-                       <xs:documentation xml:lang="en">Datatype for 
release-number of the EBICS scheme</xs:documentation>
-               </xs:annotation>
-               <xs:restriction base="xs:token">
-                       <xs:length value="4"/>
-                       <xs:pattern value="H\d{3}"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="SystemReturnCodeType">
-               <xs:annotation>
-                       <xs:documentation xml:lang="de">Datentyp für technische 
Fehler.</xs:documentation>
-                       <xs:documentation xml:lang="en">Datatype for technical 
error</xs:documentation>
-               </xs:annotation>
-               <xs:sequence>
-                       <xs:element name="ReturnCode" 
type="ebics:ReturnCodeType">
-                               <xs:annotation>
-                                       <xs:documentation 
xml:lang="de">Rückmeldung des Ausführungsstatus mit einer eindeutigen 
Fehlernummer.</xs:documentation>
-                                       <xs:documentation 
xml:lang="en">Confirmation of the carried out status with a unique error 
code.</xs:documentation>
-                               </xs:annotation>
-                       </xs:element>
-                       <xs:element name="ReportText" 
type="ebics:ReportTextType">
-                               <xs:annotation>
-                                       <xs:documentation 
xml:lang="de">Klartext der Rückmeldung des Ausführungsstatus.</xs:documentation>
-                                       <xs:documentation xml:lang="en">Clear 
text of the response (carried out status).</xs:documentation>
-                               </xs:annotation>
-                       </xs:element>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="HEVRequestDataType">
-               <xs:annotation>
-                       <xs:documentation xml:lang="de">Datentyp für die 
Request-Daten</xs:documentation>
-                       <xs:documentation xml:lang="en">Data type for Request 
data</xs:documentation>
-               </xs:annotation>
-               <xs:sequence>
-                       <xs:element name="HostID" type="ebics:HostIDType"/>
-                       <xs:any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="HEVResponseDataType">
-               <xs:annotation>
-                       <xs:documentation xml:lang="en">Datentyp für die 
Response-Daten</xs:documentation>
-                       <xs:documentation xml:lang="en">Data type for Request 
data</xs:documentation>
-               </xs:annotation>
-               <xs:sequence>
-                       <xs:element name="SystemReturnCode" 
type="ebics:SystemReturnCodeType"/>
-                       <xs:element name="VersionNumber" minOccurs="0" 
maxOccurs="unbounded">
-                               <xs:annotation>
-                                       <xs:documentation xml:lang="de">Von der 
Bank unterstützte EBICS-Versionen, z.B.  2.4</xs:documentation>
-                                       <xs:documentation 
xml:lang="en">EBICS-releases supported by the bank, e.g. 2.4</xs:documentation>
-                               </xs:annotation>
-                               <xs:complexType>
-                                       <xs:simpleContent>
-                                               <xs:extension 
base="ebics:VersionNumberType">
-                                                       <xs:attribute 
name="ProtocolVersion" type="ebics:ProtocolVersionType" use="required">
-                                                               <xs:annotation>
-                                                                       
<xs:documentation xml:lang="de">der EBICS-Version eindeutig zugeordnete 
Schema-Version, z.B. H003</xs:documentation>
-                                                                       
<xs:documentation xml:lang="en">EBICS-scheme-version, e.g. H003, well-defined 
for EBICS-release-Version</xs:documentation>
-                                                               </xs:annotation>
-                                                       </xs:attribute>
-                                               </xs:extension>
-                                       </xs:simpleContent>
-                               </xs:complexType>
-                       </xs:element>
-                       <xs:any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:element name="ebicsHEVRequest" type="ebics:HEVRequestDataType">
-               <xs:annotation>
-                       <xs:documentation 
xml:lang="de">Requestdaten</xs:documentation>
-                       <xs:documentation xml:lang="en">request 
data</xs:documentation>
-               </xs:annotation>
-       </xs:element>
-       <xs:element name="ebicsHEVResponse" type="ebics:HEVResponseDataType">
-               <xs:annotation>
-                       <xs:documentation 
xml:lang="de">Responsedaten</xs:documentation>
-                       <xs:documentation xml:lang="en">response 
data</xs:documentation>
-               </xs:annotation>
-       </xs:element>
-</xs:schema>
diff --git a/ebics/src/main/resources/xsd/ebics_keymgmt_request_H004.xsd 
b/ebics/src/main/resources/xsd/ebics_keymgmt_request_H004.xsd
deleted file mode 100644
index 4a3d2b0b..00000000
--- a/ebics/src/main/resources/xsd/ebics_keymgmt_request_H004.xsd
+++ /dev/null
@@ -1,543 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Mit XMLSpy v2008 rel. 2 sp2 (http://www.altova.com) von benutzerservice 
benutzerservice (SIZ GmbH) bearbeitet -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:ebics="urn:org:ebics:H004" 
targetNamespace="urn:org:ebics:H004" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <annotation>
-               <documentation xml:lang="de">ebics_keymgmt_request_H004.xsd ist 
das EBICS-Protokollschema für Schlüsselmanagement-Anfragen (HIA, HPB, HSA, 
INI).</documentation>
-       </annotation>
-       <import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd">
-               <annotation>
-                       <documentation 
xml:lang="de">XML-Signature.</documentation>
-               </annotation>
-       </import>
-       <include schemaLocation="ebics_types_H004.xsd"/>
-       <include schemaLocation="ebics_orders_H004.xsd"/>
-       <complexType name="StaticHeaderBaseType" abstract="true">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
statischen EBICS-Header (allgemein).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="HostID" type="ebics:HostIDType">
-                               <annotation>
-                                       <documentation xml:lang="de">Hostname 
des Banksystems.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Nonce" type="ebics:NonceType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients 
einzigartig; nur anzugeben, falls Authentifikationssignatur 
vorhanden.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Timestamp" type="ebics:TimestampType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">aktueller 
Zeitstempel zur Begrenzung der serverseitigen Nonce-Speicherung; nur anzugeben, 
falls Authentifikationssignatur vorhanden.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation xml:lang="de">Kunden-ID 
des serverseitig administrierten Kunden.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten 
Teilnehmers.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SystemID" type="ebics:UserIDType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">technische 
User-ID für Multi-User-Systeme.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Product" type="ebics:ProductElementType" 
nillable="true" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Kennung 
des Kundenprodukts bzw. Herstellerkennung oder Name.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDetails" 
type="ebics:OrderDetailsType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsdetails.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SecurityMedium" 
type="ebics:SecurityMediumType">
-                               <annotation>
-                                       <documentation xml:lang="de">Angabe des 
Sicherheitsmediums, das der Kunde verwendet.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="OrderDetailsType" abstract="true">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für OrderDetails 
im statischen EBICS-Header (allgemein).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderType" type="ebics:OrderTBaseType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsart.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderAttribute" 
type="ebics:OrderAttributeBaseType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsattribut.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <complexType name="ProductElementType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Element mit 
Kennung des Kundenprodukts bzw. Herstellerkennung oder Name.</documentation>
-               </annotation>
-               <simpleContent>
-                       <extension base="ebics:ProductType">
-                               <attribute name="Language" 
type="ebics:LanguageType" use="required">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Sprachkennzeichen der Kundenproduktversion (gemäß ISO 
639).</documentation>
-                                       </annotation>
-                               </attribute>
-                               <attribute name="InstituteID" 
type="ebics:InstituteIDType" use="optional">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Kennung des Herausgebers des Kundenprodukts bzw. des betreuenden 
Kreditinstituts.</documentation>
-                                       </annotation>
-                               </attribute>
-                       </extension>
-               </simpleContent>
-       </complexType>
-       <complexType name="EmptyMutableHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den leeren 
variablen EBICS-Header von Key Managemen Aufträgen.</documentation>
-               </annotation>
-               <sequence>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <element name="ebicsUnsecuredRequest">
-               <annotation>
-                       <documentation>Anfragestruktur für ungesicherte 
Auftragsarten HIA (Authentifikations- und Verschlüsselungsschlüssel senden) und 
INI (bankfachllichen Schlüssel senden).</documentation>
-               </annotation>
-               <complexType>
-                       <sequence>
-                               <element name="header">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element name="static" 
type="ebics:UnsecuredRequestStaticHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                                       <element name="mutable" 
type="ebics:EmptyMutableHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enthält alle variablen 
Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                               </sequence>
-                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                       </complexType>
-                               </element>
-                               <element name="body">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die Auftragsdaten.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de"/>
-                                                       </annotation>
-                                                       <element 
name="DataTransfer">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Transfer von Auftragsdaten.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<sequence>
-                                                                               
<element name="OrderData">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">enthält 
Auftragsdaten.</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:OrderDataType">
-                                                                               
                                <anyAttribute namespace="##targetNamespace" 
processContents="lax"/>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                       
</sequence>
-                                                               </complexType>
-                                                       </element>
-                                               </sequence>
-                                       </complexType>
-                               </element>
-                       </sequence>
-                       <attributeGroup ref="ebics:VersionAttrGroup"/>
-               </complexType>
-       </element>
-       <complexType name="UnsecuredRequestStaticHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
statischen EBICS-Header bei ungesicherten Sendeauftragsarten (Aufträge HIA und 
INI): kein Nonce, kein Timestamp, keine EU-Datei, keine X001 Authentifizierung, 
keine Verschlüsselung, keine Digests der öffentlichen Bankschlüssel, Nutzdaten 
komprimiert, Auftragsattribut DZNNN</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:StaticHeaderBaseType">
-                               <sequence>
-                                       <element name="HostID" 
type="ebics:HostIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Hostname des Banksystems.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Nonce" 
type="ebics:NonceType" minOccurs="0" maxOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients 
einzigartig; nicht anzugeben für ebicsUnsecuredRequest.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Timestamp" 
type="ebics:TimestampType" minOccurs="0" maxOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">aktueller Zeitstempel zur Begrenzung der serverseitigen 
Nonce-Speicherung; nicht anzugeben für ebicsUnsecuredRequest.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="PartnerID" 
type="ebics:PartnerIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kunden-ID des serverseitig administrierten Kunden.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="UserID" 
type="ebics:UserIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten 
Teilnehmers.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SystemID" 
type="ebics:UserIDType" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">technische User-ID für Multi-User-Systeme.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Product" 
type="ebics:ProductElementType" nillable="true" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kennung des Kundenprodukts bzw. Herstellerkennung oder 
Name.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="OrderDetails" 
type="ebics:UnsecuredReqOrderDetailsType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsdetails.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SecurityMedium" 
type="ebics:SecurityMediumType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Angabe des Sicherheitsmediums, das der Kunde 
verwendet.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <any namespace="##other" 
processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-                               </sequence>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <complexType name="UnsecuredReqOrderDetailsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für OrderDetails 
im statischen EBICS-Header von ebicsUnsecuredRequest.</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:OrderDetailsType">
-                               <sequence>
-                                       <element name="OrderType" 
type="ebics:OrderTBaseType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsart.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="OrderAttribute" 
type="ebics:OrderAttributeBaseType" fixed="DZNNN">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsattribut: DZNNN.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <element name="ebicsNoPubKeyDigestsRequest">
-               <annotation>
-                       <documentation>Anfragestruktur für Auftragsarten ohne 
Übertragung der Digests der öffentlichen Bankschlüssel (HPB Bankschlüssel 
abholen).</documentation>
-               </annotation>
-               <complexType>
-                       <sequence>
-                               <element name="header">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element name="static" 
type="ebics:NoPubKeyDigestsRequestStaticHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                                       <element name="mutable" 
type="ebics:EmptyMutableHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enthält alle variablen 
Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                               </sequence>
-                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                       </complexType>
-                               </element>
-                               <element ref="ebics:AuthSignature">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Authentifikationssignatur.</documentation>
-                                       </annotation>
-                               </element>
-                               <element name="body">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält optionale Zertifikate (vorgesehen).</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de"/>
-                                                       </annotation>
-                                                       <element 
ref="ds:X509Data" minOccurs="0" maxOccurs="0">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">X.509-Daten des Teilnehmers.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                               </sequence>
-                                       </complexType>
-                               </element>
-                       </sequence>
-                       <attributeGroup ref="ebics:VersionAttrGroup"/>
-               </complexType>
-       </element>
-       <complexType name="NoPubKeyDigestsRequestStaticHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
statischen EBICS-Header bei Aufträgen ohne Übertragung der Digests der 
Bankschlüssel (Auftrag HBP): keine Digests der öffentlichen Bankschlüssel, 
keine EU-Datei, keine Nutzdaten, OrderId optional!, Nonce, Timestamp, X001 
Authentifizierung, Auftragsattribut DZHNN</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:StaticHeaderBaseType">
-                               <sequence>
-                                       <element name="HostID" 
type="ebics:HostIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Hostname des Banksystems.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Nonce" 
type="ebics:NonceType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients 
einzigartig.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Timestamp" 
type="ebics:TimestampType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">aktueller Zeitstempel zur Begrenzung der serverseitigen 
Nonce-Speicherung.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="PartnerID" 
type="ebics:PartnerIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kunden-ID des serverseitig administrierten Kunden.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="UserID" 
type="ebics:UserIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten 
Teilnehmers.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SystemID" 
type="ebics:UserIDType" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">technische User-ID für Multi-User-Systeme.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Product" 
type="ebics:ProductElementType" nillable="true" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kennung des Kundenprodukts bzw. Herstellerkennung oder 
Name.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="OrderDetails" 
type="ebics:NoPubKeyDigestsReqOrderDetailsType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsdetails.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SecurityMedium" 
type="ebics:SecurityMediumType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Angabe des Sicherheitsmediums, das der Kunde 
verwendet.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <any namespace="##other" 
processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-                               </sequence>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <complexType name="NoPubKeyDigestsReqOrderDetailsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für OrderDetails 
im statischen EBICS-Header von ebicsNoPubKeyDigestsRequest.</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:OrderDetailsType">
-                               <sequence>
-                                       <element name="OrderType" 
type="ebics:OrderTBaseType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsart.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="OrderAttribute" 
type="ebics:OrderAttributeBaseType" fixed="DZHNN">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsattribut: DZHNN.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <element name="ebicsUnsignedRequest">
-               <annotation>
-                       <documentation xml:lang="en">The structure for uploads 
contains order data and the ESs, but without an authentication signature and 
data digest of bank keys.</documentation>
-                       <documentation>Anfragestruktur für Sendeaufträge mit 
EU-Datei und Nutzdaten aber ohne Authentifizierungssignatur und Digests der 
Bankschlüssel.</documentation>
-               </annotation>
-               <complexType>
-                       <sequence>
-                               <element name="header">
-                                       <annotation>
-                                               <documentation 
xml:lang="en">Contains technical transaction data.</documentation>
-                                               <documentation 
xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element name="static" 
type="ebics:UnsignedRequestStaticHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="en">Contains all fixed header entries.</documentation>
-                                                                       
<documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                                       <element name="mutable" 
type="ebics:EmptyMutableHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="en">Contains all mutable header 
entries.</documentation>
-                                                                       
<documentation xml:lang="de">enthält alle variablen 
Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                               </sequence>
-                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                       </complexType>
-                               </element>
-                               <element name="body">
-                                       <annotation>
-                                               <documentation 
xml:lang="en">Contains the order data and the ESs.</documentation>
-                                               <documentation 
xml:lang="de">enthält die Auftragsdaten und EUs.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de"/>
-                                                       </annotation>
-                                                       <element 
name="DataTransfer">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="en">Transfer of order data and the ESs.</documentation>
-                                                                       
<documentation xml:lang="de">Transfer von Auftragsdaten und EUs.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<sequence>
-                                                                               
<element name="SignatureData">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="en">Contains the ESs.</documentation>
-                                                                               
                <documentation xml:lang="de">enthält Signaturdaten 
(EUs).</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:SignatureDataType">
-                                                                               
                                <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                               
<element name="OrderData">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="en">Contains the order 
data</documentation>
-                                                                               
                <documentation xml:lang="de">enthält 
Auftragsdaten.</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:OrderDataType">
-                                                                               
                                <anyAttribute namespace="##targetNamespace" 
processContents="lax"/>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                       
</sequence>
-                                                               </complexType>
-                                                       </element>
-                                               </sequence>
-                                       </complexType>
-                               </element>
-                       </sequence>
-                       <attributeGroup ref="ebics:VersionAttrGroup"/>
-               </complexType>
-       </element>
-       <complexType name="UnsignedRequestStaticHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
statischen EBICS-Header für ebicsUnsignedRequest.Datentyp für den statischen 
EBICS-Header bei Aufträgen ohne Authentifizierungssignatur (Auftrag HSA): keine 
X001 Authentifizierung, keine Digests der öffentlichen Bankschlüssel, EU-Datei, 
Nutzdaten, Nonce, Timestamp, OrderId, Auftragsattribut OZNNN</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:StaticHeaderBaseType">
-                               <sequence>
-                                       <element name="HostID" 
type="ebics:HostIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Hostname des Banksystems.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Nonce" 
type="ebics:NonceType" minOccurs="0" maxOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients 
einzigartig; nicht anzugeben bei ebicsUnsignedRequest.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Timestamp" 
type="ebics:TimestampType" minOccurs="0" maxOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">aktueller Zeitstempel zur Begrenzung der serverseitigen 
Nonce-Speicherung; nicht anzugeben bei ebicsUnsignedRequest.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="PartnerID" 
type="ebics:PartnerIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kunden-ID des serverseitig administrierten Kunden.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="UserID" 
type="ebics:UserIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten 
Teilnehmers.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SystemID" 
type="ebics:UserIDType" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">technische User-ID für Multi-User-Systeme.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Product" 
type="ebics:ProductElementType" nillable="true" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kennung des Kundenprodukts bzw. Herstellerkennung oder 
Name.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="OrderDetails" 
type="ebics:UnsignedReqOrderDetailsType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsdetails.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SecurityMedium" 
type="ebics:SecurityMediumType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Angabe des Sicherheitsmediums, das der Kunde 
verwendet.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <any namespace="##other" 
processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-                               </sequence>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <complexType name="UnsignedReqOrderDetailsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für OrderDetails 
im statischen EBICS-Header von ebicsUnsignedRequest.</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:OrderDetailsType">
-                               <sequence>
-                                       <element name="OrderType" 
type="ebics:OrderTBaseType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsart.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="OrderAttribute" 
type="ebics:OrderAttributeBaseType" fixed="OZNNN">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsattribut: OZNNN.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </restriction>
-               </complexContent>
-       </complexType>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_keymgmt_request_H005.xsd 
b/ebics/src/main/resources/xsd/ebics_keymgmt_request_H005.xsd
deleted file mode 100644
index cb93d3c4..00000000
--- a/ebics/src/main/resources/xsd/ebics_keymgmt_request_H005.xsd
+++ /dev/null
@@ -1,523 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSpy v2016 sp1 (x64) (http://www.altova.com) by EBICS 
Working Group - October 2016 -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:ebics="urn:org:ebics:H005" 
targetNamespace="urn:org:ebics:H005" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <annotation>
-               <documentation xml:lang="de">ebics_keymgmt_request_H005.xsd ist 
das EBICS-Protokollschema für Schlüsselmanagement-Anfragen (HIA, HPB, HSA, 
INI).</documentation>
-       </annotation>
-       <import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd">
-               <annotation>
-                       <documentation 
xml:lang="de">XML-Signature.</documentation>
-               </annotation>
-       </import>
-       <include schemaLocation="ebics_types_H005.xsd"/>
-       <include schemaLocation="ebics_orders_H005.xsd"/>
-       <complexType name="StaticHeaderBaseType" abstract="true">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
statischen EBICS-Header (allgemein).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="HostID" type="ebics:HostIDType">
-                               <annotation>
-                                       <documentation xml:lang="de">Hostname 
des Banksystems.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Nonce" type="ebics:NonceType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients 
einzigartig; nur anzugeben, falls Authentifikationssignatur 
vorhanden.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Timestamp" type="ebics:TimestampType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">aktueller 
Zeitstempel zur Begrenzung der serverseitigen Nonce-Speicherung; nur anzugeben, 
falls Authentifikationssignatur vorhanden.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation xml:lang="de">Kunden-ID 
des serverseitig administrierten Kunden.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten 
Teilnehmers.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SystemID" type="ebics:UserIDType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">technische 
User-ID für Multi-User-Systeme.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Product" type="ebics:ProductElementType" 
nillable="true" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Kennung 
des Kundenprodukts bzw. Herstellerkennung oder Name.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDetails" 
type="ebics:OrderDetailsType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsdetails.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SecurityMedium" 
type="ebics:SecurityMediumType">
-                               <annotation>
-                                       <documentation xml:lang="de">Angabe des 
Sicherheitsmediums, das der Kunde verwendet.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="OrderDetailsType" abstract="true">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für OrderDetails 
im statischen EBICS-Header (allgemein).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AdminOrderType" 
type="ebics:OrderTBaseType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsart.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <complexType name="ProductElementType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Element mit 
Kennung des Kundenprodukts bzw. Herstellerkennung oder Name.</documentation>
-               </annotation>
-               <simpleContent>
-                       <extension base="ebics:ProductType">
-                               <attribute name="Language" 
type="ebics:LanguageType" use="required">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Sprachkennzeichen der Kundenproduktversion (gemäß ISO 
639).</documentation>
-                                       </annotation>
-                               </attribute>
-                               <attribute name="InstituteID" 
type="ebics:InstituteIDType" use="optional">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Kennung des Herausgebers des Kundenprodukts bzw. des betreuenden 
Kreditinstituts.</documentation>
-                                       </annotation>
-                               </attribute>
-                       </extension>
-               </simpleContent>
-       </complexType>
-       <complexType name="EmptyMutableHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den leeren 
variablen EBICS-Header von Key Managemen Aufträgen.</documentation>
-               </annotation>
-               <sequence>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <element name="ebicsUnsecuredRequest">
-               <annotation>
-                       <documentation>Anfragestruktur für ungesicherte 
Auftragsarten HIA (Authentifikations- und Verschlüsselungsschlüssel senden) und 
INI (bankfachllichen Schlüssel senden).</documentation>
-               </annotation>
-               <complexType>
-                       <sequence>
-                               <element name="header">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element name="static" 
type="ebics:UnsecuredRequestStaticHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                                       <element name="mutable" 
type="ebics:EmptyMutableHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enthält alle variablen 
Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                               </sequence>
-                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                       </complexType>
-                               </element>
-                               <element name="body">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die Auftragsdaten.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de"/>
-                                                       </annotation>
-                                                       <element 
name="DataTransfer">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Transfer von Auftragsdaten.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<sequence>
-                                                                               
<element name="OrderData">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">enthält 
Auftragsdaten.</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:OrderDataType">
-                                                                               
                                <anyAttribute namespace="##targetNamespace" 
processContents="lax"/>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                       
</sequence>
-                                                               </complexType>
-                                                       </element>
-                                               </sequence>
-                                       </complexType>
-                               </element>
-                       </sequence>
-                       <attributeGroup ref="ebics:VersionAttrGroup"/>
-               </complexType>
-       </element>
-       <complexType name="UnsecuredRequestStaticHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
statischen EBICS-Header bei ungesicherten Sendeauftragsarten (Aufträge HIA und 
INI): kein Nonce, kein Timestamp, keine EU-Datei, keine X001 Authentifizierung, 
keine Verschlüsselung, keine Digests der öffentlichen Bankschlüssel, Nutzdaten 
komprimiert</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:StaticHeaderBaseType">
-                               <sequence>
-                                       <element name="HostID" 
type="ebics:HostIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Hostname des Banksystems.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Nonce" 
type="ebics:NonceType" minOccurs="0" maxOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients 
einzigartig; nicht anzugeben für ebicsUnsecuredRequest.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Timestamp" 
type="ebics:TimestampType" minOccurs="0" maxOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">aktueller Zeitstempel zur Begrenzung der serverseitigen 
Nonce-Speicherung; nicht anzugeben für ebicsUnsecuredRequest.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="PartnerID" 
type="ebics:PartnerIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kunden-ID des serverseitig administrierten Kunden.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="UserID" 
type="ebics:UserIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten 
Teilnehmers.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SystemID" 
type="ebics:UserIDType" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">technische User-ID für Multi-User-Systeme.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Product" 
type="ebics:ProductElementType" nillable="true" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kennung des Kundenprodukts bzw. Herstellerkennung oder 
Name.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="OrderDetails" 
type="ebics:UnsecuredReqOrderDetailsType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsdetails.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SecurityMedium" 
type="ebics:SecurityMediumType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Angabe des Sicherheitsmediums, das der Kunde 
verwendet.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <any namespace="##other" 
processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-                               </sequence>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <complexType name="UnsecuredReqOrderDetailsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für OrderDetails 
im statischen EBICS-Header von ebicsUnsecuredRequest.</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:OrderDetailsType">
-                               <sequence>
-                                       <element name="AdminOrderType" 
type="ebics:OrderTBaseType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsart.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <element name="ebicsNoPubKeyDigestsRequest">
-               <annotation>
-                       <documentation>Anfragestruktur für Auftragsarten ohne 
Übertragung der Digests der öffentlichen Bankschlüssel (HPB Bankschlüssel 
abholen).</documentation>
-               </annotation>
-               <complexType>
-                       <sequence>
-                               <element name="header">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element name="static" 
type="ebics:NoPubKeyDigestsRequestStaticHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                                       <element name="mutable" 
type="ebics:EmptyMutableHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enthält alle variablen 
Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                               </sequence>
-                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                       </complexType>
-                               </element>
-                               <element ref="ebics:AuthSignature">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Authentifikationssignatur.</documentation>
-                                       </annotation>
-                               </element>
-                               <element name="body">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält optionale Zertifikate (vorgesehen).</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de"/>
-                                                       </annotation>
-                                                       <element 
ref="ds:X509Data" minOccurs="0" maxOccurs="0">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">X.509-Daten des Teilnehmers.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                               </sequence>
-                                       </complexType>
-                               </element>
-                       </sequence>
-                       <attributeGroup ref="ebics:VersionAttrGroup"/>
-               </complexType>
-       </element>
-       <complexType name="NoPubKeyDigestsRequestStaticHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
statischen EBICS-Header bei Aufträgen ohne Übertragung der Digests der 
Bankschlüssel (Auftrag HBP): keine Digests der öffentlichen Bankschlüssel, 
keine EU-Datei, keine Nutzdaten, OrderId optional!, Nonce, Timestamp, X001 
Authentifizierung, Auftragsattribut DZHNN</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:StaticHeaderBaseType">
-                               <sequence>
-                                       <element name="HostID" 
type="ebics:HostIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Hostname des Banksystems.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Nonce" 
type="ebics:NonceType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients 
einzigartig.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Timestamp" 
type="ebics:TimestampType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">aktueller Zeitstempel zur Begrenzung der serverseitigen 
Nonce-Speicherung.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="PartnerID" 
type="ebics:PartnerIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kunden-ID des serverseitig administrierten Kunden.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="UserID" 
type="ebics:UserIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten 
Teilnehmers.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SystemID" 
type="ebics:UserIDType" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">technische User-ID für Multi-User-Systeme.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Product" 
type="ebics:ProductElementType" nillable="true" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kennung des Kundenprodukts bzw. Herstellerkennung oder 
Name.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="OrderDetails" 
type="ebics:NoPubKeyDigestsReqOrderDetailsType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsdetails.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SecurityMedium" 
type="ebics:SecurityMediumType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Angabe des Sicherheitsmediums, das der Kunde 
verwendet.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <any namespace="##other" 
processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-                               </sequence>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <complexType name="NoPubKeyDigestsReqOrderDetailsType">
-               <annotation>
-                       <documentation xml:lang="de"> Datentyp für OrderDetails 
im statischen EBICS-Header von ebicsNoPubKeyDigestsRequest.</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:OrderDetailsType">
-                               <sequence>
-                                       <element name="AdminOrderType" 
type="ebics:OrderTBaseType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsart.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <element name="ebicsUnsignedRequest">
-               <annotation>
-                       <documentation xml:lang="en">The structure for uploads 
contains order data and the ESs, but without an authentication signature and 
data digest of bank keys.</documentation>
-                       <documentation>Anfragestruktur für Sendeaufträge mit 
EU-Datei und Nutzdaten aber ohne Authentifizierungssignatur und Digests der 
Bankschlüssel.</documentation>
-               </annotation>
-               <complexType>
-                       <sequence>
-                               <element name="header">
-                                       <annotation>
-                                               <documentation 
xml:lang="en">Contains technical transaction data.</documentation>
-                                               <documentation 
xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element name="static" 
type="ebics:UnsignedRequestStaticHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="en">Contains all fixed header entries.</documentation>
-                                                                       
<documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                                       <element name="mutable" 
type="ebics:EmptyMutableHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="en">Contains all mutable header 
entries.</documentation>
-                                                                       
<documentation xml:lang="de">enthält alle variablen 
Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                               </sequence>
-                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                       </complexType>
-                               </element>
-                               <element name="body">
-                                       <annotation>
-                                               <documentation 
xml:lang="en">Contains the order data and the ESs.</documentation>
-                                               <documentation 
xml:lang="de">enthält die Auftragsdaten und EUs.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de"/>
-                                                       </annotation>
-                                                       <element 
name="DataTransfer">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="en">Transfer of order data and the ESs.</documentation>
-                                                                       
<documentation xml:lang="de">Transfer von Auftragsdaten und EUs.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<sequence>
-                                                                               
<element name="SignatureData">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="en">Contains the ESs.</documentation>
-                                                                               
                <documentation xml:lang="de">enthält Signaturdaten 
(EUs).</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:SignatureDataType">
-                                                                               
                                <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                               
<element name="OrderData">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="en">Contains the order 
data</documentation>
-                                                                               
                <documentation xml:lang="de">enthält 
Auftragsdaten.</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:OrderDataType">
-                                                                               
                                <anyAttribute namespace="##targetNamespace" 
processContents="lax"/>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                       
</sequence>
-                                                               </complexType>
-                                                       </element>
-                                               </sequence>
-                                       </complexType>
-                               </element>
-                       </sequence>
-                       <attributeGroup ref="ebics:VersionAttrGroup"/>
-               </complexType>
-       </element>
-       <complexType name="UnsignedRequestStaticHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
statischen EBICS-Header für ebicsUnsignedRequest.Datentyp für den statischen 
EBICS-Header bei Aufträgen ohne Authentifizierungssignatur (Auftrag HSA): keine 
X001 Authentifizierung, keine Digests der öffentlichen Bankschlüssel, EU-Datei, 
Nutzdaten, Nonce, Timestamp, OrderId, Auftragsattribut OZNNN</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:StaticHeaderBaseType">
-                               <sequence>
-                                       <element name="HostID" 
type="ebics:HostIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Hostname des Banksystems.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Nonce" 
type="ebics:NonceType" minOccurs="0" maxOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients 
einzigartig; nicht anzugeben bei ebicsUnsignedRequest.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Timestamp" 
type="ebics:TimestampType" minOccurs="0" maxOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">aktueller Zeitstempel zur Begrenzung der serverseitigen 
Nonce-Speicherung; nicht anzugeben bei ebicsUnsignedRequest.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="PartnerID" 
type="ebics:PartnerIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kunden-ID des serverseitig administrierten Kunden.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="UserID" 
type="ebics:UserIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten 
Teilnehmers.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SystemID" 
type="ebics:UserIDType" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">technische User-ID für Multi-User-Systeme.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Product" 
type="ebics:ProductElementType" nillable="true" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kennung des Kundenprodukts bzw. Herstellerkennung oder 
Name.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="OrderDetails" 
type="ebics:UnsignedReqOrderDetailsType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsdetails.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SecurityMedium" 
type="ebics:SecurityMediumType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Angabe des Sicherheitsmediums, das der Kunde 
verwendet.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <any namespace="##other" 
processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-                               </sequence>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <complexType name="UnsignedReqOrderDetailsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für OrderDetails 
im statischen EBICS-Header von ebicsUnsignedRequest.</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:OrderDetailsType">
-                               <sequence>
-                                       <element name="AdminOrderType" 
type="ebics:OrderTBaseType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsart.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </restriction>
-               </complexContent>
-       </complexType>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_keymgmt_response_H004.xsd 
b/ebics/src/main/resources/xsd/ebics_keymgmt_response_H004.xsd
deleted file mode 100644
index 6de6984f..00000000
--- a/ebics/src/main/resources/xsd/ebics_keymgmt_response_H004.xsd
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Mit XMLSpy v2008 rel. 2 sp2 (http://www.altova.com) von benutzerservice 
benutzerservice (SIZ GmbH) bearbeitet -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:ebics="urn:org:ebics:H004" 
targetNamespace="urn:org:ebics:H004" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <annotation>
-               <documentation xml:lang="de">ebics_keymgmt_response_H004.xsd 
ist das EBICS-Protokollschema für Schlüsselmanagement-Antwortnachrichten (HIA, 
HPB, HSA, INI).</documentation>
-       </annotation>
-       <import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd">
-               <annotation>
-                       <documentation 
xml:lang="de">XML-Signature.</documentation>
-               </annotation>
-       </import>
-       <include schemaLocation="ebics_types_H004.xsd"/>
-       <include schemaLocation="ebics_orders_H004.xsd"/>
-       <element name="ebicsKeyManagementResponse">
-               <annotation>
-                       <documentation xml:lang="de">Electronic Banking 
Internet Communication Standard des Zentralen Kreditausschusses (ZKA): 
Multibankfähige Schnittstelle zur internetbasierten 
Kommunikation.</documentation>
-               </annotation>
-               <complexType>
-                       <sequence>
-                               <element name="header">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element name="static">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<sequence/>
-                                                               </complexType>
-                                                       </element>
-                                                       <element name="mutable" 
type="ebics:KeyMgmntResponseMutableHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enthält alle variablen 
Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                               </sequence>
-                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                       </complexType>
-                               </element>
-                               <element name="body">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die Auftragsdaten und den fachlichen 
ReturnCode.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element 
name="DataTransfer" minOccurs="0">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Transfer von Auftragsdaten; nur bei Download 
anzugeben (HPB).</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<sequence>
-                                                                               
<element name="DataEncryptionInfo">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Informationen zur Verschlüsselung 
der Auftragsdaten</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <complexContent>
-                                                                               
                        <extension base="ebics:DataEncryptionInfoType">
-                                                                               
                                <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                                                               
                        </extension>
-                                                                               
                </complexContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                               
<element name="OrderData">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">enthält 
Auftragsdaten.</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:OrderDataType">
-                                                                               
                                <anyAttribute namespace="##targetNamespace" 
processContents="lax"/>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                               
<any namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded"/>
-                                                                       
</sequence>
-                                                               </complexType>
-                                                       </element>
-                                                       <element 
name="ReturnCode">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Antwortcode für den vorangegangenen 
Transfer.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<simpleContent>
-                                                                               
<extension base="ebics:ReturnCodeType">
-                                                                               
        <attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                                               
</extension>
-                                                                       
</simpleContent>
-                                                               </complexType>
-                                                       </element>
-                                                       <element 
name="TimestampBankParameter" minOccurs="0">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Zeitstempel der letzten Aktualisierung der 
Bankparameter; nur in der Initialisierungsphase anzugeben.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<simpleContent>
-                                                                               
<extension base="ebics:TimestampType">
-                                                                               
        <attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                                               
</extension>
-                                                                       
</simpleContent>
-                                                               </complexType>
-                                                       </element>
-                                               </sequence>
-                                       </complexType>
-                               </element>
-                       </sequence>
-                       <attributeGroup ref="ebics:VersionAttrGroup"/>
-               </complexType>
-       </element>
-       <complexType name="KeyMgmntResponseMutableHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den variablen 
EBICS-Header.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderID" type="ebics:OrderIDType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsnummer von Sendeaufträgen gemäß DFÜ-Abkommen (used for 
all key management order types except download order type HPB).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="ReturnCode" type="ebics:ReturnCodeType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Rückmeldung des Ausführungsstatus mit einer eindeutigen 
Fehlernummer.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="ReportText" type="ebics:ReportTextType">
-                               <annotation>
-                                       <documentation xml:lang="de">Klartext 
der Rückmeldung des Ausführungsstatus.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_keymgmt_response_H005.xsd 
b/ebics/src/main/resources/xsd/ebics_keymgmt_response_H005.xsd
deleted file mode 100644
index dfc33909..00000000
--- a/ebics/src/main/resources/xsd/ebics_keymgmt_response_H005.xsd
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSpy v2016 sp1 (x64) (http://www.altova.com) by EBICS 
Working Group - October 2016 -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:ebics="urn:org:ebics:H005" 
targetNamespace="urn:org:ebics:H005" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <annotation>
-               <documentation xml:lang="de">ebics_keymgmt_response_H005.xsd 
ist das EBICS-Protokollschema für Schlüsselmanagement-Antwortnachrichten (HIA, 
HPB, HSA, INI).</documentation>
-       </annotation>
-       <import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd">
-               <annotation>
-                       <documentation 
xml:lang="de">XML-Signature.</documentation>
-               </annotation>
-       </import>
-       <include schemaLocation="ebics_types_H005.xsd"/>
-       <include schemaLocation="ebics_orders_H005.xsd"/>
-       <element name="ebicsKeyManagementResponse">
-               <annotation>
-                       <documentation xml:lang="de">Electronic Banking 
Internet Communication Standard des Zentralen Kreditausschusses (ZKA): 
Multibankfähige Schnittstelle zur internetbasierten 
Kommunikation.</documentation>
-               </annotation>
-               <complexType>
-                       <sequence>
-                               <element name="header">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element name="static">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<sequence/>
-                                                               </complexType>
-                                                       </element>
-                                                       <element name="mutable" 
type="ebics:KeyMgmntResponseMutableHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enthält alle variablen 
Headereinträge.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                               </sequence>
-                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                       </complexType>
-                               </element>
-                               <element name="body">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die Auftragsdaten und den fachlichen 
ReturnCode.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element 
name="DataTransfer" minOccurs="0">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Transfer von Auftragsdaten; nur bei Download 
anzugeben (HPB).</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<sequence>
-                                                                               
<element name="DataEncryptionInfo">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Informationen zur Verschlüsselung 
der Auftragsdaten</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <complexContent>
-                                                                               
                        <extension base="ebics:DataEncryptionInfoType">
-                                                                               
                                <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                                                               
                        </extension>
-                                                                               
                </complexContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                               
<element name="OrderData">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">enthält 
Auftragsdaten.</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:OrderDataType">
-                                                                               
                                <anyAttribute namespace="##targetNamespace" 
processContents="lax"/>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                               
<any namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded"/>
-                                                                       
</sequence>
-                                                               </complexType>
-                                                       </element>
-                                                       <element 
name="ReturnCode">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Antwortcode für den vorangegangenen 
Transfer.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<simpleContent>
-                                                                               
<extension base="ebics:ReturnCodeType">
-                                                                               
        <attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                                               
</extension>
-                                                                       
</simpleContent>
-                                                               </complexType>
-                                                       </element>
-                                                       <element 
name="TimestampBankParameter" minOccurs="0">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Zeitstempel der letzten Aktualisierung der 
Bankparameter; nur in der Initialisierungsphase anzugeben.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<simpleContent>
-                                                                               
<extension base="ebics:TimestampType">
-                                                                               
        <attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                                               
</extension>
-                                                                       
</simpleContent>
-                                                               </complexType>
-                                                       </element>
-                                               </sequence>
-                                       </complexType>
-                               </element>
-                       </sequence>
-                       <attributeGroup ref="ebics:VersionAttrGroup"/>
-               </complexType>
-       </element>
-       <complexType name="KeyMgmntResponseMutableHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den variablen 
EBICS-Header.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderID" type="ebics:OrderIDType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsnummer von Sendeaufträgen gemäß DFÜ-Abkommen (used for 
all key management order types except download order type HPB).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="ReturnCode" type="ebics:ReturnCodeType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Rückmeldung des Ausführungsstatus mit einer eindeutigen 
Fehlernummer.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="ReportText" type="ebics:ReportTextType">
-                               <annotation>
-                                       <documentation xml:lang="de">Klartext 
der Rückmeldung des Ausführungsstatus.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_orders_H004.xsd 
b/ebics/src/main/resources/xsd/ebics_orders_H004.xsd
deleted file mode 100644
index dfb3914b..00000000
--- a/ebics/src/main/resources/xsd/ebics_orders_H004.xsd
+++ /dev/null
@@ -1,1892 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Mit XMLSpy v2008 rel. 2 (http://www.altova.com) von Sabine Wenzel (SIZ 
Bonn) bearbeitet -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:esig="http://www.ebics.org/S001"; xmlns:ebics="urn:org:ebics:H004" 
targetNamespace="urn:org:ebics:H004" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <annotation>
-               <documentation xml:lang="de">ebics_orders_H004.xsd enthält 
auftragsbezogene Referenzelemente und auftragsbezogene Typdefinitionen für 
EBICS.</documentation>
-               <documentation xml:lang="en">ebics_orders_H004.xsd contains 
order-based reference elements and order-based type definitions for 
EBICS.</documentation>
-       </annotation>
-       <import namespace="http://www.ebics.org/S001"; 
schemaLocation="ebics_signatures.xsd"/>
-       <include schemaLocation="ebics_types_H004.xsd"/>
-       <!--Es folgen die Elementdefinitionen für neue EBICS-Auftragsarten 
(Hxx). Die XML-Klartext-Struktur wird im EBICS-Auftragsdatenkontext binär 
interpretiert.-->
-       <element name="EBICSOrderData" abstract="true">
-               <annotation>
-                       <documentation xml:lang="de">XML-Klartext-Auftragsdaten 
für neue EBICS-Auftragsarten.</documentation>
-                       <documentation xml:lang="en">Order data in XML format 
for new EBICS order types.</documentation>
-               </annotation>
-       </element>
-       <element name="HAAResponseOrderData" 
type="ebics:HAAResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HAA (Antwort: abrufbare Auftragsarten abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HAA (response: receive downloadable order types).</documentation>
-               </annotation>
-       </element>
-       <element name="HCARequestOrderData" 
type="ebics:HCARequestOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HCA (Anfrage: Änderung der Teilnehmerschlüssel für Authentifikation 
und Verschlüsselung).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HCA (request: replace user's keys for authentication and 
encryption).</documentation>
-               </annotation>
-       </element>
-       <element name="HCSRequestOrderData" 
type="ebics:HCSRequestOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HCS (Anfrage: Schlüsselwechsel aller Schlüssel).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HCS (request: replace all keys).</documentation>
-               </annotation>
-       </element>
-       <element name="HIARequestOrderData" 
type="ebics:HIARequestOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HIA (Anfrage: Initialisierung der Teilnehmerschlüssel für 
Authentifikation und Verschlüsselung).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HIA (request: initialise user's keys for authentication and 
encryption).</documentation>
-               </annotation>
-       </element>
-       <element name="H3KRequestOrderData" 
type="ebics:H3KRequestOrderDataType">
-               <annotation>
-                       <documentation xml:lang="en">Order data for order type 
H3K (request: initialise all three user's keys).</documentation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart H3K (Anfrage: Initialisierung aller drei 
Teilnehmerschlüssel).</documentation>
-               </annotation>
-       </element>
-       <element name="HSARequestOrderData" 
type="ebics:HSARequestOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HSA (Anfrage: Initialisierung der Teilnehmerschlüssel für 
Authentifikation und Verschlüsselung, bankfachlich signiert mit 
Signaturschlüssel aus FTAM).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HSA (request: initialise the user's keys for authentication and encryption; 
this request is signed using the user's FTAM signature key).</documentation>
-               </annotation>
-       </element>
-       <element name="HKDResponseOrderData" 
type="ebics:HKDResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HKD (Antwort: Kunden- und Teilnehmerdaten des Kunden 
abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HKD (response: receive customer-based information on the customer and the 
customer's users).</documentation>
-               </annotation>
-               <key name="HKDAccountKey">
-                       <annotation>
-                               <documentation xml:lang="de">Schlüssel zur 
Identifikation des Kontos.</documentation>
-                               <documentation xml:lang="en">Key for the 
identification of the account.</documentation>
-                       </annotation>
-                       <selector 
xpath="./ebics:PartnerInfo/ebics:AccountInfo"/>
-                       <field xpath="@ID"/>
-               </key>
-               <keyref name="HKDAccountRef" refer="ebics:HKDAccountKey">
-                       <annotation>
-                               <documentation xml:lang="de">Referenz auf die 
Konten-Identifikationsschlüssel.</documentation>
-                               <documentation xml:lang="en">Reference to the 
account identification keys.</documentation>
-                       </annotation>
-                       <selector xpath="./ebics:UserInfo/ebics:Permission"/>
-                       <field xpath="ebics:AccountID"/>
-               </keyref>
-       </element>
-       <element name="HPBResponseOrderData" 
type="ebics:HPBResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HPB (Antwort: Transfer der Bankschlüssel).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HPB (response: receive bank's public keys).</documentation>
-               </annotation>
-       </element>
-       <element name="HPDResponseOrderData" 
type="ebics:HPDResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HPD (Antwort: Bankparameter abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HPD (response: receive bank parameters).</documentation>
-               </annotation>
-       </element>
-       <element name="HTDResponseOrderData" 
type="ebics:HTDReponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HTD (Antwort: Kunden- und Teilnehmerdaten des Teilnehmers 
abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HTD (response: receive user-based information on the user's customer and the 
user herself/himself).</documentation>
-               </annotation>
-               <key name="HTDAccountKey">
-                       <annotation>
-                               <documentation xml:lang="de">Schlüssel zur 
Identifikation des Kontos.</documentation>
-                               <documentation xml:lang="en">Key for the 
identification of the account.</documentation>
-                       </annotation>
-                       <selector 
xpath="./ebics:PartnerInfo/ebics:AccountInfo"/>
-                       <field xpath="@ID"/>
-               </key>
-               <keyref name="HTDAccountRef" refer="ebics:HTDAccountKey">
-                       <annotation>
-                               <documentation xml:lang="de">Referenz auf die 
Konten-Identifikationsschlüssel.</documentation>
-                               <documentation xml:lang="en">Reference to the 
account identification keys.</documentation>
-                       </annotation>
-                       <selector xpath="./ebics:UserInfo/ebics:Permission"/>
-                       <field xpath="ebics:AccountID"/>
-               </keyref>
-       </element>
-       <element name="HVDResponseOrderData" 
type="ebics:HVDResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HVD (Antwort: VEU-Status abrufen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HVD (response: receive the status of an order currently stored in the 
distributed signature processing unit).</documentation>
-               </annotation>
-       </element>
-       <element name="HVSRequestOrderData" 
type="ebics:HVSRequestOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HVS (Anfrage: VEU-Storno).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HVS (request: reject an order currently stored in the distributed signature 
processing unit).</documentation>
-               </annotation>
-       </element>
-       <element name="HVTResponseOrderData" 
substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HVT (Antwort: VEU-Transaktionsdetails abrufen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HVT (response: receive transaction details of an order currently stored in the 
distributed signature processing unit).</documentation>
-               </annotation>
-               <complexType>
-                       <complexContent>
-                               <extension 
base="ebics:HVTResponseOrderDataType"/>
-                       </complexContent>
-               </complexType>
-       </element>
-       <element name="HVUResponseOrderData" 
type="ebics:HVUResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HVU (Antwort: VEU-Übersicht abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HVU (response: receive summary of orders currently stored in the distributed 
signature processing unit).</documentation>
-               </annotation>
-       </element>
-       <element name="HVZResponseOrderData" 
type="ebics:HVZResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HVZ (Antwort: VEU-Übersicht mit Zusatzinformationen 
abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HVZ (response: receive summary of orders currently stored in the distributed 
signature processing unit with additional information).</documentation>
-               </annotation>
-       </element>
-       <!--Es folgen die Elementdefinitionen für die EU. Die 
XML-Klartext-Struktur wird im EBICS-Signaturdatenkontext binär interpretiert.-->
-       <element name="EBICSSignatureData" abstract="true">
-               <annotation>
-                       <documentation xml:lang="de">XML-Strukturen für 
bankfachliche Elektronische Unterschriften (EUs).</documentation>
-                       <documentation xml:lang="en">contains the digital 
signatures.</documentation>
-               </annotation>
-       </element>
-       <element name="BankSignatureData" 
type="ebics:BankSignatureDataSigBookType" 
substitutionGroup="ebics:EBICSSignatureData">
-               <annotation>
-                       <documentation xml:lang="de">enthält die EU des 
Kreditinstituts.</documentation>
-                       <documentation xml:lang="en">contains the digital 
signatures.</documentation>
-               </annotation>
-       </element>
-       <!--Es folgen die Elementdefinitionen für zusätzliche 
Auftragsparameter. Die XML-Klartext-Struktur wird in die Headerdaten 
eingebettet.-->
-       <element name="OrderParams" abstract="true">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter, die zur Ausführung des Auftrags notwendig 
sind.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters required to execute the order.</documentation>
-               </annotation>
-       </element>
-       <element name="HVDOrderParams" type="ebics:HVDOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart HVD.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type HVD.</documentation>
-               </annotation>
-       </element>
-       <element name="HVEOrderParams" type="ebics:HVEOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart HVE.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type HVE.</documentation>
-               </annotation>
-       </element>
-       <element name="HVSOrderParams" type="ebics:HVSOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart HVS.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type HVS.</documentation>
-               </annotation>
-       </element>
-       <element name="HVTOrderParams" type="ebics:HVTOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart HVT.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type HVT.</documentation>
-               </annotation>
-       </element>
-       <element name="HVUOrderParams" type="ebics:HVUOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart HVU.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type HVU.</documentation>
-               </annotation>
-       </element>
-       <element name="HVZOrderParams" type="ebics:HVZOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart HVZ.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type HVZ.</documentation>
-               </annotation>
-       </element>
-       <element name="FULOrderParams" type="ebics:FULOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart FUL.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type FUL.</documentation>
-               </annotation>
-       </element>
-       <element name="FDLOrderParams" type="ebics:FDLOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart FDL.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type FDL.</documentation>
-               </annotation>
-       </element>
-       <element name="StandardOrderParams" 
type="ebics:StandardOrderParamsType" substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Standard-Auftragsarten.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for standard order types.</documentation>
-               </annotation>
-       </element>
-       <element name="GenericOrderParams" type="ebics:GenericOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für beliebige Auftragsarten.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for generic order types.</documentation>
-               </annotation>
-       </element>
-       <!--Es folgen Elementgruppen- und Strukturdefinitionen.-->
-       <group name="HVRequestStructure">
-               <annotation>
-                       <documentation xml:lang="de">Standard-Requeststruktur 
für HVx-Aufträge (HVD, HVT, HVE, HVS).</documentation>
-                       <documentation xml:lang="en">Standard request structure 
for HVx orders (HVD, HVT, HVE, HVS).</documentation>
-               </annotation>
-               <sequence>
-                       <annotation>
-                               <documentation 
xml:lang="de">Standard-Requestdaten.</documentation>
-                               <documentation xml:lang="en">Standard request 
data.</documentation>
-                       </annotation>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation xml:lang="de">Kunden-ID 
des Einreichers des ausgewählten Auftrags.</documentation>
-                                       <documentation xml:lang="en">Customer 
ID of the presenter of the selected order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderType" type="ebics:OrderTBaseType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsart des ausgewählten Auftrags.</documentation>
-                                       <documentation xml:lang="en">Order type 
of the selected order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="FileFormat" type="ebics:FileFormatType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Identifizierung des Dateiformats im Falle von 
FUL/FDL</documentation>
-                                       <documentation 
xml:lang="en">Identification of the file format in the case of 
FUL/FDL</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderID" type="ebics:OrderIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsnummer des ausgewählten Auftrags.</documentation>
-                                       <documentation xml:lang="en">Order ID 
of the selected order.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </group>
-       <attributeGroup name="AuthenticationMarker">
-               <annotation>
-                       <documentation xml:lang="de">Marker für Elemente und 
deren Substrukturen, die authentifiziert werden sollen.</documentation>
-                       <documentation xml:lang="en">Marker for elements and 
their substructures that are to be authenticated.</documentation>
-               </annotation>
-               <attribute name="authenticate" type="boolean" use="required" 
fixed="true">
-                       <annotation>
-                               <documentation xml:lang="de">Das zugehörige 
Element ist mitsamt seinen Unterstrukturen zu authentifizieren.</documentation>
-                               <documentation xml:lang="en">The element (and 
its substructures) that belongs to this attribute is to be 
authenticated.</documentation>
-                       </annotation>
-               </attribute>
-       </attributeGroup>
-       <attributeGroup name="OptSupportFlag">
-               <annotation>
-                       <documentation xml:lang="de">optionales Support-Flag, 
Default = true.</documentation>
-                       <documentation xml:lang="en">optional support flag, 
default = true.</documentation>
-               </annotation>
-               <attribute name="supported" type="boolean" use="optional" 
default="true">
-                       <annotation>
-                               <documentation xml:lang="de">Wird die Funktion 
unterstützt?</documentation>
-                               <documentation xml:lang="en">Is this function 
supported?</documentation>
-                       </annotation>
-               </attribute>
-               <anyAttribute namespace="##targetNamespace" 
processContents="strict"/>
-       </attributeGroup>
-       <attributeGroup name="SignerPermission">
-               <annotation>
-                       <documentation 
xml:lang="de">EU-Berechtigungsinformationen.</documentation>
-                       <documentation xml:lang="en">permission information of 
a user's digital signature.</documentation>
-               </annotation>
-               <attribute name="AuthorisationLevel" 
type="ebics:AuthorisationLevelType" use="required">
-                       <annotation>
-                               <documentation 
xml:lang="de">Unterschriftsberechtigung des Teilnehmers, der unterzeichnet 
hat.</documentation>
-                               <documentation xml:lang="en">Authorisation 
level of the user that signed the order.</documentation>
-                       </annotation>
-               </attribute>
-               <anyAttribute namespace="##targetNamespace" 
processContents="strict"/>
-       </attributeGroup>
-       <!--Es folgen Typdefinitionen für auftragsbezogene komplexe Typen.-->
-       <complexType name="BankSignatureDataSigBookType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Signaturdaten 
des Kreditinstituts beim EU-Transfer.</documentation>
-                       <documentation xml:lang="en">Data type for digital 
signature data transferred using EBICS.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderSignature" minOccurs="0" 
maxOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">bankfachliche Elektronische Unterschrift.</documentation>
-                                       <documentation xml:lang="en">Digital 
signature (either autorising an order or applied for 
transportation).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:SignatureType"/>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="PreValidationRequestType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Vorabprüfung 
(Anfrage).</documentation>
-                       <documentation xml:lang="en">Data type for 
pre-validation (request).</documentation>
-               </annotation>
-               <sequence>
-                       <annotation>
-                               <documentation xml:lang="de">Client sendet den 
Hashwert der Auftragsdaten und alle weiteren Daten, die er im Rahmen der 
Vorabprüfung zur Verfügung stellen will</documentation>
-                       </annotation>
-                       <element name="DataDigest" type="ebics:DataDigestType" 
minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation xml:lang="de">Hashwert 
der zu übertragenden Auftragsdatendatei für die Vorabprüfung.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="AccountAuthorisation" 
type="ebics:PreValidationAccountAuthType" minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kontoangabe zur Kontoberechtigung für diesen 
Zahlungsverkehrsauftrag bei der Vorabprüfung.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="PreValidationAccountAuthType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Kontenberechtigungsdaten zur Vorabprüfung.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:AccountType">
-                               <sequence>
-                                       <element name="Amount" 
type="ebics:AmountType" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Summe der Zahlungsverkehrsaufträge dieses Kontos für die 
Höchstbetragsprüfung der EU.</documentation>
-                                                       <documentation 
xml:lang="en">Total sum of the ordered payments regarding this account in order 
to check the maximum amount limit of the signature permission 
grades.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="DataTransferRequestType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den Transfer 
von Auftragsdaten (Anfrage).</documentation>
-               </annotation>
-               <sequence>
-                       <choice>
-                               <annotation>
-                                       <documentation 
xml:lang="de">Transaktionsphase?</documentation>
-                               </annotation>
-                               <sequence>
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Initialisierungsphase: Transfer der Signaturdaten (EUs) und des 
Transaktionsschlüssels.</documentation>
-                                       </annotation>
-                                       <element name="DataEncryptionInfo">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Information zur Verschlüsselung der Signatur- und 
Auftragsdaten.</documentation>
-                                               </annotation>
-                                               <complexType>
-                                                       <complexContent>
-                                                               <extension 
base="ebics:DataEncryptionInfoType">
-                                                                       
<attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                               </extension>
-                                                       </complexContent>
-                                               </complexType>
-                                       </element>
-                                       <element name="SignatureData">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">enthält Signaturdaten (EUs).</documentation>
-                                               </annotation>
-                                               <complexType>
-                                                       <simpleContent>
-                                                               <extension 
base="ebics:SignatureDataType">
-                                                                       
<attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                               </extension>
-                                                       </simpleContent>
-                                               </complexType>
-                                       </element>
-                               </sequence>
-                               <sequence>
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Transferphase: Transfer von Auftragsdaten.</documentation>
-                                       </annotation>
-                                       <element name="OrderData">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">enthält Auftragsdaten.</documentation>
-                                               </annotation>
-                                               <complexType>
-                                                       <simpleContent>
-                                                               <extension 
base="ebics:OrderDataType">
-                                                                       
<anyAttribute namespace="##targetNamespace" processContents="lax"/>
-                                                               </extension>
-                                                       </simpleContent>
-                                               </complexType>
-                                       </element>
-                               </sequence>
-                       </choice>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="DataTransferResponseType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den Transfer 
von Auftragsdaten (Antwort).</documentation>
-               </annotation>
-               <sequence>
-                       <sequence minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Transfer 
des Sitzungsschlüssels und (optional) der Signaturdaten (EUs); nur in der 
Initialisierungsphase anzugeben.</documentation>
-                               </annotation>
-                               <element name="DataEncryptionInfo">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Information zur Verschlüsselung der Signatur- und 
Auftragsdaten.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <complexContent>
-                                                       <extension 
base="ebics:DataEncryptionInfoType">
-                                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                                       </extension>
-                                               </complexContent>
-                                       </complexType>
-                               </element>
-                               <element name="SignatureData" minOccurs="0" 
maxOccurs="0">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält Signaturdaten (EUs).</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:SignatureDataType">
-                                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                       </sequence>
-                       <element name="OrderData">
-                               <annotation>
-                                       <documentation xml:lang="de">enthält 
Auftragsdaten.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:OrderDataType">
-                                                       <anyAttribute 
namespace="##targetNamespace" processContents="lax"/>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="TransferReceiptRequestType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den Transfer 
von Transferquittungen.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="ReceiptCode" 
type="ebics:ReceiptCodeType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Quittierungscode für Auftragsdatentransfer.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="TransferReceiptResponseType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den Transfer 
von Antwortcodes.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="ReturnCodeReceipt" 
type="ebics:ReturnCodeType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Antwortcode für den vorangegangenen Transfer.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="TimestampBankParameter" 
type="ebics:TimestampType" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zeitstempel der letzten Aktualisierung der 
Bankparameter.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HAAResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HAA (Antwort: abrufbare Auftragsarten abholen).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderTypes" type="ebics:OrderTListType">
-                               <annotation>
-                                       <documentation xml:lang="de">Liste von 
Auftragsarten, für die Daten bereit stehen.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" minOccurs="0" 
maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HCARequestOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HCA (Anfrage: Änderung der Teilnehmerschlüssel für 
Authentifikation und Verschlüsselung).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AuthenticationPubKeyInfo" 
type="ebics:AuthenticationPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Authentifikationsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="EncryptionPubKeyInfo" 
type="ebics:EncryptionPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Verschlüsselungsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kunden-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HCSRequestOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HCS (Anfrage: Schlüsselwechsel aller Schlüssel).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AuthenticationPubKeyInfo" 
type="ebics:AuthenticationPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Authentifikationsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="EncryptionPubKeyInfo" 
type="ebics:EncryptionPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Verschlüsselungsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element ref="esig:SignaturePubKeyInfo"/>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kunden-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HIARequestOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HIA (Anfrage: Initialisierung der Teilnehmerschlüssel für 
Authentifikation und Verschlüsselung).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AuthenticationPubKeyInfo" 
type="ebics:AuthenticationPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Authentifikationsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="EncryptionPubKeyInfo" 
type="ebics:EncryptionPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Verschlüsselungsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kunden-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="H3KRequestOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart H3K (Anfrage: Initialisierung aller drei 
Teilnehmerschlüssel).</documentation>
-                       <documentation xml:lang="en">Order type for order data 
H3K (request: initialise all three user's keys).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="SignatureCertificateInfo" 
type="ebics:SignatureCertificateInfoType">
-                               <annotation>
-                                       <documentation xml:lang="en">Key for 
electronic Signature</documentation>
-                                       <documentation 
xml:lang="de">Signaturschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="AuthenticationCertificateInfo" 
type="ebics:AuthenticationCertificateInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="en">Authentication key</documentation>
-                                       <documentation 
xml:lang="de">Authentifikationsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="EncryptionCertificateInfo" 
type="ebics:EncryptionCertificateInfoType">
-                               <annotation>
-                                       <documentation xml:lang="en">Encryption 
key</documentation>
-                                       <documentation 
xml:lang="de">Verschlüsselungsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="en">PartnerID.</documentation>
-                                       <documentation 
xml:lang="de">Kunden-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="en">UserID.</documentation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <complexType name="HSARequestOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HSA (Anfrage: Initialisierung der Teilnehmerschlüssel für 
Authentifikation und Verschlüsselung, bankfachlich signiert mit 
FTAM-Schlüssel).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AuthenticationPubKeyInfo" 
type="ebics:AuthenticationPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Authentifikationsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="EncryptionPubKeyInfo" 
type="ebics:EncryptionPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Verschlüsselungsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kunden-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HKDResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HKD (Antwort: Kunden- und Teilnehmerdaten des Kunden 
abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HKD (response: receive customer based information on the customer and the 
customer's user.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="PartnerInfo" 
type="ebics:PartnerInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kundendaten.</documentation>
-                                       <documentation xml:lang="en">Customer 
data.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserInfo" type="ebics:UserInfoType" 
maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmerdaten.</documentation>
-                                       <documentation xml:lang="en">User 
data.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" minOccurs="0" 
maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HPBResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HPB (Antwort: Transfer der Bankschlüssel).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AuthenticationPubKeyInfo" 
type="ebics:AuthenticationPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Authentifikationsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="EncryptionPubKeyInfo" 
type="ebics:EncryptionPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Verschlüsselungsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element ref="esig:SignaturePubKeyInfo" minOccurs="0" 
maxOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher EU-Signaturschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="HostID" type="ebics:HostIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Banksystem-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" minOccurs="0" 
maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HPDResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HPD (Antwort: Bankparameter abholen).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AccessParams" 
type="ebics:HPDAccessParamsType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zugangsparameter.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="ProtocolParams" 
type="ebics:HPDProtocolParamsType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Protokollparameter.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <complexType name="HPDAccessParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HPD-Zugangsparameter.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="URL" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">institutsspezifische IP-Adresse/URL.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension base="anyURI">
-                                                       <attribute 
name="valid_from" type="ebics:TimestampType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Gültigkeitsbeginn für die angegebene 
URL/IP.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="Institute">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Institutsbezeichnung.</documentation>
-                               </annotation>
-                               <simpleType>
-                                       <restriction base="normalizedString">
-                                               <maxLength value="80"/>
-                                       </restriction>
-                               </simpleType>
-                       </element>
-                       <element name="HostID" type="ebics:HostIDType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Banksystem-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HPDProtocolParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HPD-Protokollparameter.</documentation>
-                       <documentation xml:lang="en">Data type for HPD's 
parameters regarding the EBICS protocol.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="Version" type="ebics:HPDVersionType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Spezifikation unterstützter Versionen.</documentation>
-                                       <documentation 
xml:lang="en">Specification of supported versions..</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Recovery" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Parameter 
zur Recovery-Funktion (Wiederaufnahme abgebrochener 
Übertragungen).</documentation>
-                                       <documentation xml:lang="en">Parameter 
denoting the recovery function (recovery of aborted 
transmissions).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <attributeGroup 
ref="ebics:OptSupportFlag"/>
-                               </complexType>
-                       </element>
-                       <element name="PreValidation" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Parameter 
zur Vorabprüfung (über die Übermittlung der EU hinaus).</documentation>
-                                       <documentation xml:lang="en">Parameter 
denoting the pre-validation (beyond transmission of signatures).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Optionales Support-Flag, Default = true.</documentation>
-                                               <documentation 
xml:lang="en">Optional support flag, default = true.</documentation>
-                                       </annotation>
-                                       <attributeGroup 
ref="ebics:OptSupportFlag"/>
-                               </complexType>
-                       </element>
-                       <element name="X509Data" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Parameter 
zur X.509-Funktionalität.</documentation>
-                                       <documentation xml:lang="en">Parameter 
denoting the X.509 functionality.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <attributeGroup 
ref="ebics:OptSupportFlag"/>
-                                       <attribute name="persistent" 
type="boolean" use="optional" default="false">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Sind die X.509-Daten der Teilnehmer serverseitig persistent 
gespeichert?</documentation>
-                                                       <documentation 
xml:lang="en">Will the user's X.509 data be stored persistently on server 
side?</documentation>
-                                               </annotation>
-                                       </attribute>
-                               </complexType>
-                       </element>
-                       <element name="ClientDataDownload" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Parameter 
zum Download von Kunden- und Teilnehmerdaten (Auftragsarten 
HKD/HTD).</documentation>
-                                       <documentation xml:lang="en">Parameter 
denoting the download of customer and user data (order types 
HKD/HTD).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <attributeGroup 
ref="ebics:OptSupportFlag"/>
-                               </complexType>
-                       </element>
-                       <element name="DownloadableOrderData" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Parameter 
zum Abruf von Auftragsarten, zu denen Auftragsdaten verfügbar sind (Auftragsart 
HAA).</documentation>
-                                       <documentation xml:lang="en">Parameter 
denoting the reception of order types which provides downloadable order data 
(order type HAA).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <attributeGroup 
ref="ebics:OptSupportFlag"/>
-                               </complexType>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HPDVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HPD-Versionsinformationen.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="Protocol">
-                               <annotation>
-                                       <documentation 
xml:lang="de">unterstützte EBICS-Protokollversionen (H...).</documentation>
-                               </annotation>
-                               <simpleType>
-                                       <list 
itemType="ebics:ProtocolVersionType"/>
-                               </simpleType>
-                       </element>
-                       <element name="Authentication">
-                               <annotation>
-                                       <documentation 
xml:lang="de">unterstützte Versionen der Authentifikation 
(X...).</documentation>
-                               </annotation>
-                               <simpleType>
-                                       <list 
itemType="ebics:AuthenticationVersionType"/>
-                               </simpleType>
-                       </element>
-                       <element name="Encryption">
-                               <annotation>
-                                       <documentation 
xml:lang="de">unterstützte Versionen der Verschlüsselung (E...).</documentation>
-                               </annotation>
-                               <simpleType>
-                                       <list 
itemType="ebics:EncryptionVersionType"/>
-                               </simpleType>
-                       </element>
-                       <element name="Signature">
-                               <annotation>
-                                       <documentation 
xml:lang="de">unterstützte EU-Versionen (A...).</documentation>
-                               </annotation>
-                               <simpleType>
-                                       <list 
itemType="esig:SignatureVersionType"/>
-                               </simpleType>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HTDReponseOrderDataType">
-               <annotation>
-                       <documentation>Datentyp für Auftragsdaten für 
Auftragsart HTD (Antwort: Kunden- und Teilnehmerdaten des Teilnehmers 
abholen).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="PartnerInfo" 
type="ebics:PartnerInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kundendaten.</documentation>
-                                       <documentation xml:lang="en">Customer 
data.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserInfo" type="ebics:UserInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmerdaten.</documentation>
-                                       <documentation xml:lang="en">User 
data.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVDResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HVD (Antwort: VEU-Status abrufen).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="DataDigest" type="ebics:DataDigestType">
-                               <annotation>
-                                       <documentation xml:lang="de">Hashwert 
der Auftragsdaten.</documentation>
-                                       <documentation xml:lang="en">Hash value 
of the order data.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="DisplayFile" type="base64Binary">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Begleitzettel/"Displaydatei" (entspricht der Dateianzeige im 
Kundenprotokoll gemäß DFÜ-Abkommen).</documentation>
-                                       <documentation 
xml:lang="en">Accompanying ticket/"display file" (corresponds to the display 
file of the customer's journal according to the document 
"DFÜ-Abkommen").</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDataAvailable" type="boolean">
-                               <annotation>
-                                       <documentation xml:lang="de">Kann die 
Auftragsdatei im Originalformat abgeholt werden? (HVT mit 
completeOrderData=true)</documentation>
-                                       <documentation xml:lang="en">Can the 
order file be downloaded in the original format? (HVT with 
completeOrderData=true)</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDataSize" type="positiveInteger">
-                               <annotation>
-                                       <documentation xml:lang="de">Größe der 
unkomprimierten Auftragsdaten in Bytes.</documentation>
-                                       <documentation xml:lang="en">Size of 
the uncompressed order data (byte count).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDetailsAvailable" type="boolean">
-                               <annotation>
-                                       <documentation xml:lang="de">Können die 
Auftragsdetails als XML-Dokument HVTResponseOrderData abgeholt werden?  (HVT 
mit completeOrderData=false)</documentation>
-                                       <documentation xml:lang="en">Can the 
order details be downloaded as XML document HVTResponseOrderData?  (HVT with 
completeOrderData=false)</documentation>
-                               </annotation>
-                       </element>
-                       <element name="BankSignature" 
type="ebics:SignatureType" minOccurs="0" maxOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">bankfachliche Elektronische Unterschrift des Kreditinstituts über 
Hashwert und Displaydatei.</documentation>
-                                       <documentation xml:lang="en">Digital 
Signature issued by the bank, covering the hash value and the accompanying 
ticket.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SignerInfo" type="ebics:SignerInfoType" 
minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den bisherigen Unterzeichnern.</documentation>
-                                       <documentation 
xml:lang="en">Information about the already existing signers.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVDOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart HVD.</documentation>
-               </annotation>
-               <sequence>
-                       <group ref="ebics:HVRequestStructure"/>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVEOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart HVE.</documentation>
-               </annotation>
-               <sequence>
-                       <group ref="ebics:HVRequestStructure"/>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVSOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart HVS.</documentation>
-               </annotation>
-               <sequence>
-                       <group ref="ebics:HVRequestStructure"/>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVSRequestOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HVS (Anfrage: VEU-Storno).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="CancelledDataDigest" 
type="ebics:DataDigestType">
-                               <annotation>
-                                       <documentation xml:lang="de">Hashwert 
der Auftragsdaten des stornierten Auftrags.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVTResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Antwort mit 
Einzelauftraginfos für Auftragsart HVT (Antwort VEU-Transaktionsdetails abrufen 
mit completeOrderData="false").</documentation>
-               </annotation>
-               <sequence>
-                       <element name="NumOrderInfos" 
type="ebics:NumOrderInfosType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Gesamtanzahl der Einzelaufträge für den Auftrag.</documentation>
-                                       <documentation xml:lang="en">Total 
number of order infos for the order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderInfo" type="ebics:HVTOrderInfoType" 
maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Einzelauftragsinfos.</documentation>
-                                       <documentation xml:lang="en">Particular 
order content information requested for display matters.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVTAccountInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HVT-Konteninformationen.</documentation>
-                       <documentation xml:lang="en">Data type for account 
information regarding order type HVT.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:AttributedAccountType"/>
-               </complexContent>
-       </complexType>
-       <complexType name="HVTOrderInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HVT-Auftragsinformationen.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderFormat" 
type="ebics:OrderFormatType" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsformat (z.B. DTAZV).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="AccountInfo" 
type="ebics:HVTAccountInfoType" minOccurs="2" maxOccurs="3">
-                               <annotation>
-                                       <documentation 
xml:lang="de">kontobezogene Details des Auftrags (Auftraggeber, Empfänger 
etc.).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="ExecutionDate" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Ausführungsdatum.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension base="date"/>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="Amount">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Betrag.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:AmountValueType">
-                                                       <attribute 
name="isCredit" type="boolean" use="optional">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Gutschrift (isCredit = "true") oder Lastschrift 
(isCredit = "false")?</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                                       <attribute 
name="Currency" type="ebics:CurrencyBaseType" use="optional">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Währungscode.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="Description" minOccurs="0" maxOccurs="4">
-                               <annotation>
-                                       <documentation xml:lang="de">Textfeld 
zur weiteren Beschreibung der Transaktion (Verwendungszweck, Auftragsdetails, 
Kommentar).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension base="string">
-                                                       <attribute name="Type" 
use="required">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Beschreibungstyp.</documentation>
-                                                               </annotation>
-                                                               <simpleType>
-                                                                       
<restriction base="token">
-                                                                               
<enumeration value="Purpose">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Verwendungszweck</documentation>
-                                                                               
        </annotation>
-                                                                               
</enumeration>
-                                                                               
<enumeration value="Details">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Auftragsdetails</documentation>
-                                                                               
        </annotation>
-                                                                               
</enumeration>
-                                                                               
<enumeration value="Comment">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Kommentar</documentation>
-                                                                               
        </annotation>
-                                                                               
</enumeration>
-                                                                       
</restriction>
-                                                               </simpleType>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVTOrderFlagsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HVT-Auftragsflags.</documentation>
-               </annotation>
-               <attribute name="completeOrderData" type="boolean" 
use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Sollen die 
Transaktionsdetails als Einzelauftragsinfos (completeOrderData=false) oder als 
komplette Originaldaten (completeOrderData=true) übertragen werden? (Vorschlag 
für Default=false)</documentation>
-                               <documentation xml:lang="en">Are the 
transaction details so be transmitted as particular order content information 
requested for display matters or in complete order data file form? (Proposal 
for Default=false)</documentation>
-                       </annotation>
-               </attribute>
-               <attribute name="fetchLimit" use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Limit für die zu 
liefernden Transaktionsdetails, bei completeOrderData=false maximale Anzahl zu 
liefernder Einzelauftragsinfos, 0 für unbegrenzt (Vorschlag für 
Default=100).</documentation>
-                               <documentation xml:lang="en">Limit for the 
transaction details to be transmitted; if completeOrderData=false, maximum 
number of details of a particular order; 0 for unlimited number of details 
(Proposal for Default=100).</documentation>
-                       </annotation>
-                       <simpleType>
-                               <restriction base="nonNegativeInteger">
-                                       <totalDigits value="10"/>
-                               </restriction>
-                       </simpleType>
-               </attribute>
-               <attribute name="fetchOffset" use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Offset vom Anfang 
der Originalauftragsdatei für die zu liefernden Transaktionsdetails, bei 
completeOrderData=false bezogen auf laufende Nummer des Einzelauftrags 
(Vorschlag für Default=0).</documentation>
-                               <documentation xml:lang="en">Offset position in 
the original order file which marks the starting point for the transaction 
details to be transmitted; applies to the sequential number of a particular 
order if completeOrderData=false (Proposal for Default=0).</documentation>
-                       </annotation>
-                       <simpleType>
-                               <restriction base="nonNegativeInteger">
-                                       <totalDigits value="10"/>
-                               </restriction>
-                       </simpleType>
-               </attribute>
-               <anyAttribute namespace="##targetNamespace" 
processContents="strict"/>
-       </complexType>
-       <complexType name="HVTOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart HVT.</documentation>
-                       <documentation xml:lang="en">Data type for additional 
order parameters for order type HVT.</documentation>
-               </annotation>
-               <sequence>
-                       <group ref="ebics:HVRequestStructure"/>
-                       <element name="OrderFlags">
-                               <annotation>
-                                       <documentation xml:lang="de">spezielle 
Flags für HVT-Aufträge.</documentation>
-                                       <documentation xml:lang="en">Special 
order flags for orders of type HVT.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <complexContent>
-                                               <extension 
base="ebics:HVTOrderFlagsType"/>
-                                       </complexContent>
-                               </complexType>
-                       </element>
-                       <element ref="ebics:Parameter" minOccurs="0" 
maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation xml:lang="de">Generische 
Schlüssel-Wert-Parameter</documentation>
-                                       <documentation xml:lang="en">Generic 
key-value parameters</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVUResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HVU (Antwort: VEU-Übersicht abholen).</documentation>
-               </annotation>
-               <sequence>
-                       <annotation>
-                               <documentation xml:lang="de"/>
-                       </annotation>
-                       <element name="OrderDetails" 
type="ebics:HVUOrderDetailsType" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsinformationen.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVUOrderDetailsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HVU-Auftragsdetails.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderType" type="ebics:OrderTBaseType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsart lt. DFÜ-Abkommen des ausgewählten 
Auftrags.</documentation>
-                                       <documentation xml:lang="en">Type of 
the order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="FileFormat" type="ebics:FileFormatType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="en">Identification of the file format in the case of 
FUL/FDL</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderID" type="ebics:OrderIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsnummer lt. DFÜ-Abkommen des ausgewählten 
Auftrags.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDataSize" type="positiveInteger">
-                               <annotation>
-                                       <documentation xml:lang="de">Größe der 
unkomprimierten Auftragsdaten in Bytes.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SigningInfo" 
type="ebics:HVUSigningInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den Unterschriftsmodalitäten.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SignerInfo" type="ebics:SignerInfoType" 
minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den bisherigen Unterzeichnern.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OriginatorInfo" 
type="ebics:HVUOriginatorInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zum Einreicher.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVUOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart HVU.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderTypes" type="ebics:OrderTListType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Liste von 
Auftragsarten, für die zur Unterschrift vorliegende Aufträge abgerufen werden 
sollen; falls nicht angegeben, werden sämtliche für den Teilnehmer 
unterschriftsfähigen Aufträge abgerufen.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVZOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart HVZ.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderTypes" type="ebics:OrderTListType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Liste von 
Auftragsarten, für die zur Unterschrift vorliegende Aufträge abgerufen werden 
sollen; falls nicht angegeben, werden sämtliche für den Teilnehmer 
unterschriftsfähigen Aufträge abgerufen.</documentation>
-                                       <documentation xml:lang="de">List of 
order types that the orders ready to be signed by the requesting user should 
match; if not specified, a list of all orders ready to be signed by the 
requesting user is returned.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVUSigningInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Informationen 
zu den HVU-Unterschriftsmodalitäten.</documentation>
-               </annotation>
-               <attribute name="readyToBeSigned" type="boolean" use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Ist der Auftrag 
unterschriftsreif ("true") oder bereits vom Teilnehmer unterschrieben 
("false")?</documentation>
-                       </annotation>
-               </attribute>
-               <attribute name="NumSigRequired" type="positiveInteger" 
use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Anzahl der 
insgesamt zur Freigabe erforderlichen EUs.</documentation>
-                       </annotation>
-               </attribute>
-               <attribute name="NumSigDone" type="nonNegativeInteger" 
use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Anzahl der bereits 
geleisteten EUs.</documentation>
-                       </annotation>
-               </attribute>
-       </complexType>
-       <complexType name="HVUOriginatorInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Informationen 
zum Ersteller eines HVU-Auftrags.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation xml:lang="de">Kunden-ID 
des Einreichers.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID des Einreichers.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Name" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Name des 
Einreichers.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Timestamp" type="ebics:TimestampType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zeitstempel der Einreichung (d.h. der Übertragung der 
Auftragsdatei).</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##targetNamespace" 
processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVZResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HVZ (Antwort: VEU-Übersicht mit Zusatzinformationen 
abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HVZ (response: receive summary of orders currently stored in the distributed 
signature processing unit with additional informations).</documentation>
-               </annotation>
-               <sequence>
-                       <annotation>
-                               <documentation xml:lang="de"/>
-                       </annotation>
-                       <element name="OrderDetails" 
type="ebics:HVZOrderDetailsType" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsinformationen.</documentation>
-                                       <documentation xml:lang="en">Summary of 
order information.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVZOrderDetailsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HVZ-Auftragsdetails.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderType" type="ebics:OrderTBaseType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsart lt. DFÜ-Abkommen des ausgewählten 
Auftrags.</documentation>
-                                       <documentation xml:lang="en">Type of 
the order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="FileFormat" type="ebics:FileFormatType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="en">Identification of the file format in the case of 
FUL/FDL</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderID" type="ebics:OrderIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsnummer lt. DFÜ-Abkommen des ausgewählten 
Auftrags.</documentation>
-                                       <documentation xml:lang="en">ID number 
of the order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="DataDigest" type="ebics:DataDigestType">
-                               <annotation>
-                                       <documentation xml:lang="de">Hashwert 
der Auftragsdaten.</documentation>
-                                       <documentation xml:lang="en">Hash value 
of the order data.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDataAvailable" type="boolean">
-                               <annotation>
-                                       <documentation xml:lang="de">Kann die 
Auftragsdatei im Originalformat abgeholt werden? (HVT mit 
completeOrderData=true).</documentation>
-                                       <documentation xml:lang="en">Can the 
order file be downloaded in the original format? (HVT with 
completeOrderData=true)</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDataSize" type="positiveInteger">
-                               <annotation>
-                                       <documentation xml:lang="de">Größe der 
unkomprimierten Auftragsdaten in Bytes.</documentation>
-                                       <documentation xml:lang="en">Size of 
uncompressed order data in Bytes.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDetailsAvailable" type="boolean">
-                               <annotation>
-                                       <documentation xml:lang="de">Können die 
Auftragsdetails als XML-Dokument HVTResponseOrderData abgeholt werden? (HVT mit 
completeOrderData=false).</documentation>
-                                       <documentation xml:lang="en">Can the 
order details be downloaded as XML document HVTResponseOrderData?  (HVT with 
completeOrderData=false)</documentation>
-                               </annotation>
-                       </element>
-                       <group ref="ebics:HVZPaymentOrderDetailsStructure" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zusätzliche Auftragsdetails nur für 
Zahlungsaufträge.</documentation>
-                                       <documentation xml:lang="en">Order 
details related to payment orders only.</documentation>
-                               </annotation>
-                       </group>
-                       <element name="SigningInfo" 
type="ebics:HVUSigningInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den Unterschriftsmodalitäten.</documentation>
-                                       <documentation 
xml:lang="en">Information regarding the signing modalities of the 
order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SignerInfo" type="ebics:SignerInfoType" 
minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den bisherigen Unterzeichnern.</documentation>
-                                       <documentation 
xml:lang="en">Information regarding the users who already signed the 
order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OriginatorInfo" 
type="ebics:HVUOriginatorInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zum Einreicher.</documentation>
-                                       <documentation 
xml:lang="en">Information regarding the originator of the order.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <group name="HVZPaymentOrderDetailsStructure">
-               <annotation>
-                       <documentation xml:lang="de">Standard-Requeststruktur 
für HVx-Aufträge (HVD, HVT, HVE, HVS).</documentation>
-                       <documentation xml:lang="en">Standard structure for HVZ 
OrderDetails related to payment orders</documentation>
-               </annotation>
-               <sequence>
-                       <element name="TotalOrders" type="nonNegativeInteger" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Anzahl der 
Zahlungssätze über alle logische Dateien entsprechend 
Dateianzeige.</documentation>
-                                       <documentation xml:lang="en">Total 
transaction number for all logical files (from dispay file).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="TotalAmount" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Summe der 
Beträge über alle logische Dateien entsprechend Dateianzeige.</documentation>
-                                       <documentation xml:lang="en">Total 
transaction amount for all logical files (from dispay file).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:AmountValueType">
-                                                       <attribute 
name="isCredit" type="boolean" use="optional">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Nur Gutschriften (isCredit = "true") oder nur 
Lastschriften (isCredit = "false")? Sonst keine Nutzung des 
Elements.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="Currency" type="ebics:CurrencyBaseType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragswährung (nur bei sortenreinen Zahlungen, sonst keine 
Angabe).</documentation>
-                                       <documentation xml:lang="en">Order 
currency (only if identical across all transactions, ship 
otherwise).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="FirstOrderInfo" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen aus Dateianzeige der ersten logischen 
Datei.</documentation>
-                                       <documentation xml:lang="en">Order 
details from display file for first logical file.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <sequence>
-                                               <element name="OrderPartyInfo" 
type="normalizedString" minOccurs="0">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">Auftraggeber entsprechend Dateianzeige.</documentation>
-                                                               <documentation 
xml:lang="en">Order party information (from display file).</documentation>
-                                                       </annotation>
-                                               </element>
-                                               <element name="AccountInfo" 
minOccurs="0">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">Erstes Auftraggeberkonto entsprechend 
Dateianzeige.</documentation>
-                                                               <documentation 
xml:lang="en">First order party account (from display file).</documentation>
-                                                       </annotation>
-                                                       <complexType>
-                                                               <sequence>
-                                                                       <choice 
maxOccurs="2">
-                                                                               
<element name="AccountNumber">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Kontonummer (deutsches Format oder 
international als IBAN).</documentation>
-                                                                               
                <documentation xml:lang="en">Account number (German format or 
international as IBAN).</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:AccountNumberType">
-                                                                               
                                <attribute name="international" type="boolean" 
use="optional" default="false">
-                                                                               
                                        <annotation>
-                                                                               
                                                <documentation 
xml:lang="de">Ist die Kontonummer im deutschen Format (international=false) 
oder im internationalen Format (international=true, IBAN) 
angegeben?</documentation>
-                                                                               
                                                <documentation 
xml:lang="en">Account number given in German format (international=false) or in 
international format (international=true, IBAN)?</documentation>
-                                                                               
                                        </annotation>
-                                                                               
                                </attribute>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                               
<element name="NationalAccountNumber">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Kontonummer im freien 
Format.</documentation>
-                                                                               
                <documentation xml:lang="en">Account number in free 
format.</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:NationalAccountNumberType">
-                                                                               
                                <attribute name="format" type="token" 
use="required">
-                                                                               
                                        <annotation>
-                                                                               
                                                <documentation 
xml:lang="de">Formatkennung.</documentation>
-                                                                               
                                                <documentation 
xml:lang="en">Format type.</documentation>
-                                                                               
                                        </annotation>
-                                                                               
                                </attribute>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                       
</choice>
-                                                                       <choice 
maxOccurs="2">
-                                                                               
<element name="BankCode">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Bankleitzahl (deutsches Format 
oder international als SWIFT-BIC).</documentation>
-                                                                               
                <documentation xml:lang="en">Bank sort code (German format or 
international as SWIFT-BIC).</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:BankCodeType">
-                                                                               
                                <attribute name="international" type="boolean" 
use="optional" default="false">
-                                                                               
                                        <annotation>
-                                                                               
                                                <documentation 
xml:lang="de">Ist die Bankleitzahl im deutschen Format (international=false, 
BLZ) oder im internationalen Format (international=true, SWIFT-BIC) 
angegeben?</documentation>
-                                                                               
                                                <documentation 
xml:lang="en">Bank sort code given in German format (international=false) or in 
international format (international=true, SWIFT-BIC)?</documentation>
-                                                                               
                                        </annotation>
-                                                                               
                                </attribute>
-                                                                               
                                <attribute name="Prefix" 
type="ebics:BankCodePrefixType" use="optional">
-                                                                               
                                        <annotation>
-                                                                               
                                                <documentation 
xml:lang="de">nationales Präfix für Bankleitzahlen.</documentation>
-                                                                               
                                                <documentation 
xml:lang="en">National prefix for bank sort code.</documentation>
-                                                                               
                                        </annotation>
-                                                                               
                                </attribute>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                               
<element name="NationalBankCode">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Bankleitzahl im freien 
Format.</documentation>
-                                                                               
                <documentation xml:lang="en">Bank sort code in free 
format.</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:NationalBankCodeType">
-                                                                               
                                <attribute name="format" type="token" 
use="required">
-                                                                               
                                        <annotation>
-                                                                               
                                                <documentation 
xml:lang="de">Formatkennung.</documentation>
-                                                                               
                                                <documentation 
xml:lang="en">Format type.</documentation>
-                                                                               
                                        </annotation>
-                                                                               
                                </attribute>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                       
</choice>
-                                                               </sequence>
-                                                       </complexType>
-                                               </element>
-                                       </sequence>
-                               </complexType>
-                       </element>
-               </sequence>
-       </group>
-       <complexType name="SignerInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Informationen 
zu einem Unterzeichner eines VEU-Auftrags (HVU, HVD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation xml:lang="de">Kunden-ID 
des Unterzeichners.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID des Unterzeichners.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Name" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Name des 
Unterzeichners.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Timestamp" type="ebics:TimestampType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zeitstempel der Unterzeichnung (d.h. der Übertragung der 
Unterschrift).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Permission">
-                               <annotation>
-                                       <documentation 
xml:lang="de">zusätzliche Informationen zu den Berechtigungen des Teilnehmers, 
der unterzeichnet hat.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <attributeGroup 
ref="ebics:SignerPermission"/>
-                               </complexType>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="UserPermissionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
VEU-Berechtigungsinformationen des Teilnehmers (HKD, HTD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderTypes" type="ebics:OrderTListType">
-                               <annotation>
-                                       <documentation xml:lang="de">Liste von 
Auftragsarten, für die die Berechtigung des Teilnehmers gültig 
ist.</documentation>
-                                       <documentation xml:lang="en">List of 
order types which the user's permission belongs to.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="FileFormat" type="ebics:FileFormatType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Identifikation des Dateiformats im Falle von 
FUL/FDL</documentation>
-                                       <documentation 
xml:lang="en">Identification of the file format in the case of 
FUL/FDL</documentation>
-                               </annotation>
-                       </element>
-                       <element name="AccountID" type="ebics:AccountIDType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Verweis 
auf den Identifikationscode des berechtigten Kontos.</documentation>
-                                       <documentation 
xml:lang="en">Identification codes of the affected accounts.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="MaxAmount" type="ebics:AmountType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Betragshöchstgrenze, bis zu der die Berechtigung des Teilnehmers 
gültig ist.</documentation>
-                                       <documentation xml:lang="en">Maximum 
total amount which the user's permission is valid for.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-               <attribute name="AuthorisationLevel" 
type="ebics:AuthorisationLevelType">
-                       <annotation>
-                               <documentation 
xml:lang="de">Unterschriftsklasse, für die der Teilnehmer berechtigt ist; nicht 
anzugeben bei Download-Auftragsarten.</documentation>
-                               <documentation xml:lang="en">Authorization 
level of the user who signed the order; to be omitted for orders of type 
"download".</documentation>
-                       </annotation>
-               </attribute>
-               <anyAttribute namespace="##targetNamespace" 
processContents="strict"/>
-       </complexType>
-       <complexType name="PartnerInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
VEU-Partnerdaten (HKD, HTD).</documentation>
-                       <documentation xml:lang="en">Data type for customer 
data with regard to distributed signatures (order types HKD, 
HTD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AddressInfo" 
type="ebics:AddressInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zur Adresse des Kunden.</documentation>
-                                       <documentation 
xml:lang="en">Information about the customer's adress.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="BankInfo" type="ebics:BankInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zur Kreditinstitutsanbindung des 
Kunden.</documentation>
-                                       <documentation 
xml:lang="en">Information about the customer's banking access 
paramters.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="AccountInfo" minOccurs="0" 
maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den Konten des Kunden.</documentation>
-                                       <documentation 
xml:lang="en">Information about the customer's accounts.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <complexContent>
-                                               <extension 
base="ebics:AccountType">
-                                                       <sequence>
-                                                               <element 
name="UsageOrderTypes" type="ebics:OrderTListType" minOccurs="0">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Liste der Auftragsartenbeschränkungen; falls nicht 
angegeben, gibt es keine Auftragsartenbeschränkungen; falls Liste leer, ist das 
Konto für keine Auftragsart freigegeben.</documentation>
-                                                                               
<documentation xml:lang="en">List containing the order types which contain this 
account is restricted to; if omitted, the account is unrestricted; if the list 
is empty the account is blocked for any order type.</documentation>
-                                                                       
</annotation>
-                                                               </element>
-                                                               <any 
namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-                                                       </sequence>
-                                                       <attribute name="ID" 
type="ebics:AccountIDType" use="required">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Identifikationscode des Kontos.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </complexContent>
-                               </complexType>
-                       </element>
-                       <element name="OrderInfo" 
type="ebics:AuthOrderInfoType" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den Auftragsarten, für die der Kunde berechtigt 
ist.</documentation>
-                                       <documentation 
xml:lang="en">Information about order types which the customer is authorised to 
use.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <complexType name="AddressInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
VEU-Adressinformationen (HKD, HTD).</documentation>
-                       <documentation xml:lang="en">Data type for address 
information with regard to distributed signature (order types HKD, 
HTD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="Name" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Name des 
Kunden.</documentation>
-                                       <documentation xml:lang="en">Customer's 
name.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Street" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Straße und 
Hausnummer.</documentation>
-                                       <documentation xml:lang="en">Street and 
house number.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PostCode" type="token" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Postleitzahl.</documentation>
-                                       <documentation xml:lang="en">Postal 
code.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="City" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Stadt.</documentation>
-                                       <documentation 
xml:lang="en">City.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Region" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Region / 
Bundesland / Bundesstaat.</documentation>
-                                       <documentation xml:lang="en">Region / 
province / federal state.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Country" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Land.</documentation>
-                                       <documentation 
xml:lang="en">Country.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="BankInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
VEU-Kreditinstitutsinformationen (HKD, HTD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="HostID" type="ebics:HostIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Banksystem-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element ref="ebics:Parameter" minOccurs="0" 
maxOccurs="unbounded"/>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="UserInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
VEU-Teilnehmerinformationen (HKD, HTD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="UserID">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:UserIDType">
-                                                       <attribute 
name="Status" type="ebics:UserStatusType" use="required">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Status des Teilnehmers.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="Name" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Name des 
Teilnehmers.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Permission" 
type="ebics:UserPermissionType" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den Berechtigungen des 
Teilnehmers.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="AuthOrderInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
VEU-Berechtigungsinformationen zu Auftragsarten (HKD, HTD).</documentation>
-                       <documentation xml:lang="en">Data type for user 
permissions with regard to distributed signatures (order types HKD, 
HTD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderType" type="ebics:OrderTBaseType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsart.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="FileFormat" type="ebics:FileFormatType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Identifikation des Dateiformats im Falle von 
FUL/FDL</documentation>
-                                       <documentation 
xml:lang="en">Identification of the file format in the case of 
FUL/FDL</documentation>
-                               </annotation>
-                       </element>
-                       <element name="TransferType" type="ebics:TransferType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Transfertyp (Upload/Download).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderFormat" 
type="ebics:OrderFormatType" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsformat (z.B. DTAZV).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Description" 
type="ebics:OrderDescriptionType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Beschreibung der Auftragsart.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="NumSigRequired" 
type="nonNegativeInteger" default="0" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Anzahl 
erforderlicher EUs (Default=0).</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="StandardOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter bei Standard-Auftragsarten.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="DateRange" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Datumsbereich (von-bis).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <sequence>
-                                               <element name="Start" 
type="ebics:DateType">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">Startdatum (inkl.).</documentation>
-                                                       </annotation>
-                                               </element>
-                                               <element name="End" 
type="ebics:DateType">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">Enddatum (inkl.).</documentation>
-                                                       </annotation>
-                                               </element>
-                                       </sequence>
-                               </complexType>
-                       </element>
-               </sequence>
-       </complexType>
-       <complexType name="GenericOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für beliebige Auftragsarten.</documentation>
-               </annotation>
-               <sequence>
-                       <element ref="ebics:Parameter" minOccurs="0" 
maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="FULOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart FUL.</documentation>
-               </annotation>
-               <sequence>
-                       <element ref="ebics:Parameter" minOccurs="0" 
maxOccurs="unbounded"/>
-                       <element name="FileFormat" type="ebics:FileFormatType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Bezeichnung des Dateiformats</documentation>
-                                       <documentation xml:lang="en">Name of 
data format</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <complexType name="FDLOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart FDL.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="DateRange" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Datumsbereich (von-bis).</documentation>
-                                       <documentation xml:lang="en">Range of 
date (from-to).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <sequence>
-                                               <element name="Start" 
type="ebics:DateType">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">Startdatum (inkl.).</documentation>
-                                                       </annotation>
-                                               </element>
-                                               <element name="End" 
type="ebics:DateType">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">Enddatum (inkl.).</documentation>
-                                                       </annotation>
-                                               </element>
-                                       </sequence>
-                               </complexType>
-                       </element>
-                       <element ref="ebics:Parameter" minOccurs="0" 
maxOccurs="unbounded"/>
-                       <element name="FileFormat" type="ebics:FileFormatType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Bezeichnung des Dateiformats</documentation>
-                                       <documentation xml:lang="en">Name of 
data format</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <attributeGroup name="VersionAttrGroup">
-               <annotation>
-                       <documentation xml:lang="de">Attribute zur 
EBICS-Protokollversion und -revision.</documentation>
-                       <documentation xml:lang="en">Attributes regarding the 
protocol version and revision of EBICS.</documentation>
-               </annotation>
-               <attribute name="Version" type="ebics:ProtocolVersionType" 
use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Version des 
EBICS-Protokolls (z.B. "H00x").</documentation>
-                               <documentation xml:lang="en">Version of the 
EBICS protocol (e.g. "H00x").</documentation>
-                       </annotation>
-               </attribute>
-               <attribute name="Revision" type="ebics:ProtocolRevisionType" 
use="optional">
-                       <annotation>
-                               <documentation xml:lang="de">Revision des 
EBICS-Protokolls (z.B. 1).</documentation>
-                               <documentation xml:lang="en">Revision of the 
EBICS protocol (e.g. 1).</documentation>
-                       </annotation>
-               </attribute>
-       </attributeGroup>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_orders_H005.xsd 
b/ebics/src/main/resources/xsd/ebics_orders_H005.xsd
deleted file mode 100644
index 30db1213..00000000
--- a/ebics/src/main/resources/xsd/ebics_orders_H005.xsd
+++ /dev/null
@@ -1,2094 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSpy v2017 sp2 (http://www.altova.com) by EBICS Working 
Group (July 3rd 2017) - Compared to the status of March 27th 2017 only the 
element group standardOrderParams was reinserted (as used in schema version 
H004) and several annotations in English added -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:esig="http://www.ebics.org/S002"; xmlns:ebics="urn:org:ebics:H005" 
targetNamespace="urn:org:ebics:H005" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <annotation>
-               <documentation xml:lang="en">ebics_orders_H005.xsd contains 
order-based reference elements and order-based type definitions for 
EBICS.</documentation>
-               <documentation xml:lang="de">ebics_orders_H005.xsd enthält 
auftragsbezogene Referenzelemente und auftragsbezogene Typdefinitionen für 
EBICS.</documentation>
-       </annotation>
-       <import namespace="http://www.ebics.org/S002"; 
schemaLocation="ebics_signature_S002.xsd"/>
-       <include schemaLocation="ebics_types_H005.xsd"/>
-       <!--Element definitions for the new EBICS order types (Hxx) - Binary 
interpretation of the XML clear text structure in the context.-->
-       <element name="EBICSOrderData" abstract="true">
-               <annotation>
-                       <documentation xml:lang="de">XML-Klartext-Auftragsdaten 
für neue EBICS-Auftragsarten.</documentation>
-                       <documentation xml:lang="en">Order data in XML format 
for new EBICS order types.</documentation>
-               </annotation>
-       </element>
-       <element name="HAAResponseOrderData" 
type="ebics:HAAResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HAA (Antwort: abrufbare Auftragsarten abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HAA (response: receive downloadable order types).</documentation>
-               </annotation>
-       </element>
-       <element name="HCARequestOrderData" 
type="ebics:HCARequestOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HCA (Anfrage: Änderung der Teilnehmerschlüssel für Authentifikation 
und Verschlüsselung).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HCA (request: replace user's keys for authentication and 
encryption).</documentation>
-               </annotation>
-       </element>
-       <element name="HCSRequestOrderData" 
type="ebics:HCSRequestOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HCS (Anfrage: Schlüsselwechsel aller Schlüssel).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HCS (request: replace all keys).</documentation>
-               </annotation>
-       </element>
-       <element name="HIARequestOrderData" 
type="ebics:HIARequestOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HIA (Anfrage: Initialisierung der Teilnehmerschlüssel für 
Authentifikation und Verschlüsselung).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HIA (request: initialise user's keys for authentication and 
encryption).</documentation>
-               </annotation>
-       </element>
-       <element name="H3KRequestOrderData" 
type="ebics:H3KRequestOrderDataType">
-               <annotation>
-                       <documentation xml:lang="en">Order data for order type 
H3K (request: initialise all three user's keys).</documentation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart H3K (Anfrage: Initialisierung aller drei 
Teilnehmerschlüssel).</documentation>
-               </annotation>
-       </element>
-       <element name="HKDResponseOrderData" 
type="ebics:HKDResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HKD (Antwort: Kunden- und Teilnehmerdaten des Kunden 
abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HKD (response: receive customer-based information on the customer and the 
customer's users).</documentation>
-               </annotation>
-               <key name="HKDAccountKey">
-                       <annotation>
-                               <documentation xml:lang="de">Schlüssel zur 
Identifikation des Kontos.</documentation>
-                               <documentation xml:lang="en">Key for the 
identification of the account.</documentation>
-                       </annotation>
-                       <selector 
xpath="./ebics:PartnerInfo/ebics:AccountInfo"/>
-                       <field xpath="@ID"/>
-               </key>
-               <keyref name="HKDAccountRef" refer="ebics:HKDAccountKey">
-                       <annotation>
-                               <documentation xml:lang="de">Referenz auf die 
Konten-Identifikationsschlüssel.</documentation>
-                               <documentation xml:lang="en">Reference to the 
account identification keys.</documentation>
-                       </annotation>
-                       <selector xpath="./ebics:UserInfo/ebics:Permission"/>
-                       <field xpath="ebics:AccountID"/>
-               </keyref>
-       </element>
-       <element name="HPBResponseOrderData" 
type="ebics:HPBResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HPB (Antwort: Transfer der Bankschlüssel).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HPB (response: receive bank's public keys).</documentation>
-               </annotation>
-       </element>
-       <element name="HPDResponseOrderData" 
type="ebics:HPDResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HPD (Antwort: Bankparameter abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HPD (response: receive bank parameters).</documentation>
-               </annotation>
-       </element>
-       <element name="HTDResponseOrderData" 
type="ebics:HTDReponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HTD (Antwort: Kunden- und Teilnehmerdaten des Teilnehmers 
abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HTD (response: receive user-based information on the user's customer and the 
user herself/himself).</documentation>
-               </annotation>
-               <key name="HTDAccountKey">
-                       <annotation>
-                               <documentation xml:lang="de">Schlüssel zur 
Identifikation des Kontos.</documentation>
-                               <documentation xml:lang="en">Key for the 
identification of the account.</documentation>
-                       </annotation>
-                       <selector 
xpath="./ebics:PartnerInfo/ebics:AccountInfo"/>
-                       <field xpath="@ID"/>
-               </key>
-               <keyref name="HTDAccountRef" refer="ebics:HTDAccountKey">
-                       <annotation>
-                               <documentation xml:lang="de">Referenz auf die 
Konten-Identifikationsschlüssel.</documentation>
-                               <documentation xml:lang="en">Reference to the 
account identification keys.</documentation>
-                       </annotation>
-                       <selector xpath="./ebics:UserInfo/ebics:Permission"/>
-                       <field xpath="ebics:AccountID"/>
-               </keyref>
-       </element>
-       <element name="HVDResponseOrderData" 
type="ebics:HVDResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HVD (Antwort: VEU-Status abrufen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HVD (response: receive the status of an order currently stored in the 
distributed signature processing unit).</documentation>
-               </annotation>
-       </element>
-       <element name="HVSRequestOrderData" 
type="ebics:HVSRequestOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HVS (Anfrage: VEU-Storno).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HVS (request: reject an order currently stored in the distributed signature 
processing unit).</documentation>
-               </annotation>
-       </element>
-       <element name="HVTResponseOrderData" 
substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HVT (Antwort: VEU-Transaktionsdetails abrufen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HVT (response: receive transaction details of an order currently stored in the 
distributed signature processing unit).</documentation>
-               </annotation>
-               <complexType>
-                       <complexContent>
-                               <extension 
base="ebics:HVTResponseOrderDataType"/>
-                       </complexContent>
-               </complexType>
-       </element>
-       <element name="HVUResponseOrderData" 
type="ebics:HVUResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HVU (Antwort: VEU-Übersicht abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HVU (response: receive summary of orders currently stored in the distributed 
signature processing unit).</documentation>
-               </annotation>
-       </element>
-       <element name="HVZResponseOrderData" 
type="ebics:HVZResponseOrderDataType" substitutionGroup="ebics:EBICSOrderData">
-               <annotation>
-                       <documentation xml:lang="de">Auftragsdaten für 
Auftragsart HVZ (Antwort: VEU-Übersicht mit Zusatzinformationen 
abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HVZ (response: receive summary of orders currently stored in the distributed 
signature processing unit with additional information).</documentation>
-               </annotation>
-       </element>
-       <!--Element definitions for the ES. Binary interpreation of the XML 
clear text structure within the signature context.-->
-       <element name="EBICSSignatureData" abstract="true">
-               <annotation>
-                       <documentation xml:lang="de">XML-Strukturen für 
bankfachliche Elektronische Unterschriften (EUs).</documentation>
-                       <documentation xml:lang="en">contains the digital 
signatures.</documentation>
-               </annotation>
-       </element>
-       <element name="BankSignatureData" 
type="ebics:BankSignatureDataSigBookType" 
substitutionGroup="ebics:EBICSSignatureData">
-               <annotation>
-                       <documentation xml:lang="de">enthält die EU des 
Kreditinstituts.</documentation>
-                       <documentation xml:lang="en">contains the digital 
signatures.</documentation>
-               </annotation>
-       </element>
-       <!--Element definitions for additional order parameters. XML clear text 
is embedded in the header data.-->
-       <element name="OrderParams" abstract="true">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter, die zur Ausführung des Auftrags notwendig 
sind.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters required to execute the order.</documentation>
-               </annotation>
-       </element>
-       <element name="HVDOrderParams" type="ebics:HVDOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart HVD.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type HVD.</documentation>
-               </annotation>
-       </element>
-       <element name="HVEOrderParams" type="ebics:HVEOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart HVE.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type HVE.</documentation>
-               </annotation>
-       </element>
-       <element name="HVSOrderParams" type="ebics:HVSOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart HVS.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type HVS.</documentation>
-               </annotation>
-       </element>
-       <element name="HVTOrderParams" type="ebics:HVTOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart HVT.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type HVT.</documentation>
-               </annotation>
-       </element>
-       <element name="HVUOrderParams" type="ebics:HVUOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart HVU.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type HVU.</documentation>
-               </annotation>
-       </element>
-       <element name="HVZOrderParams" type="ebics:HVZOrderParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Auftragsart HVZ.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type HVZ.</documentation>
-               </annotation>
-       </element>
-       <element name="StandardOrderParams" 
type="ebics:StandardOrderParamsType" substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation xml:lang="de">zusätzliche 
Auftragsparameter für Standard-Auftragsarten.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for standard order types.</documentation>
-               </annotation>
-       </element>
-       <!--Element groups and structural information.-->
-       <group name="HVRequestStructure">
-               <annotation>
-                       <documentation xml:lang="de">Standard-Requeststruktur 
für HVx-Aufträge (HVD, HVT, HVE, HVS).</documentation>
-                       <documentation xml:lang="en">Standard request structure 
for HVx orders (HVD, HVT, HVE, HVS).</documentation>
-               </annotation>
-               <sequence>
-                       <annotation>
-                               <documentation 
xml:lang="de">Standard-Requestdaten.</documentation>
-                               <documentation xml:lang="en">Standard request 
data.</documentation>
-                       </annotation>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation xml:lang="de">Kunden-ID 
des Einreichers des ausgewählten Auftrags.</documentation>
-                                       <documentation xml:lang="en">Customer 
ID of the presenter of the selected order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Service" 
type="ebics:RestrictedServiceType">
-                               <annotation>
-                                       <documentation xml:lang="de">BTF 
Service Parameter struktur im Falle von BTU/BTD</documentation>
-                                       <documentation 
xml:lang="en">Identification of the file format in the case of 
FUL/FDL</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderID" type="ebics:OrderIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsnummer des ausgewählten Auftrags.</documentation>
-                                       <documentation xml:lang="en">Order ID 
of the selected order.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </group>
-       <attributeGroup name="AuthenticationMarker">
-               <annotation>
-                       <documentation xml:lang="de">Marker für Elemente und 
deren Substrukturen, die authentifiziert werden sollen.</documentation>
-                       <documentation xml:lang="en">Marker for elements and 
their substructures that are to be authenticated.</documentation>
-               </annotation>
-               <attribute name="authenticate" type="boolean" use="required" 
fixed="true">
-                       <annotation>
-                               <documentation xml:lang="de">Das zugehörige 
Element ist mitsamt seinen Unterstrukturen zu authentifizieren.</documentation>
-                               <documentation xml:lang="en">The element (and 
its substructures) that belongs to this attribute is to be 
authenticated.</documentation>
-                       </annotation>
-               </attribute>
-       </attributeGroup>
-       <attributeGroup name="OptSupportFlag">
-               <annotation>
-                       <documentation xml:lang="de">optionales Support-Flag, 
Default = true.</documentation>
-                       <documentation xml:lang="en">optional support flag, 
default = true.</documentation>
-               </annotation>
-               <attribute name="supported" type="boolean" use="optional" 
default="true">
-                       <annotation>
-                               <documentation xml:lang="de">Wird die Funktion 
unterstützt?</documentation>
-                               <documentation xml:lang="en">Is this function 
supported?</documentation>
-                       </annotation>
-               </attribute>
-               <anyAttribute namespace="##targetNamespace" 
processContents="strict"/>
-       </attributeGroup>
-       <attributeGroup name="SignerPermission">
-               <annotation>
-                       <documentation 
xml:lang="de">EU-Berechtigungsinformationen.</documentation>
-                       <documentation xml:lang="en">permission information of 
a user's digital signature.</documentation>
-               </annotation>
-               <attribute name="AuthorisationLevel" 
type="ebics:AuthorisationLevelType" use="required">
-                       <annotation>
-                               <documentation 
xml:lang="de">Unterschriftsberechtigung des Teilnehmers, der unterzeichnet 
hat.</documentation>
-                               <documentation xml:lang="en">Authorisation 
level of the user that signed the order.</documentation>
-                       </annotation>
-               </attribute>
-               <anyAttribute namespace="##targetNamespace" 
processContents="strict"/>
-       </attributeGroup>
-       <!--Type definitions and order-related complex types.-->
-       <complexType name="BankSignatureDataSigBookType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Signaturdaten 
des Kreditinstituts beim EU-Transfer.</documentation>
-                       <documentation xml:lang="en">Data type for digital 
signature data transferred using EBICS.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderSignature" minOccurs="0" 
maxOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">bankfachliche Elektronische Unterschrift.</documentation>
-                                       <documentation xml:lang="en">Digital 
signature (either autorising an order or applied for 
transportation).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:SignatureType"/>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="PreValidationRequestType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Vorabprüfung 
(Anfrage).</documentation>
-                       <documentation xml:lang="en">Data type for 
pre-validation (request).</documentation>
-               </annotation>
-               <sequence>
-                       <annotation>
-                               <documentation xml:lang="de">Client sendet den 
Hashwert der Auftragsdaten und alle weiteren Daten, die er im Rahmen der 
Vorabprüfung zur Verfügung stellen will</documentation>
-                       </annotation>
-                       <element name="DataDigest" type="ebics:DataDigestType" 
minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation xml:lang="de">Hashwert 
der zu übertragenden Auftragsdatendatei für die Vorabprüfung.</documentation>
-                                       <documentation xml:lang="en">Hashvalue 
of the transmitted order data for the prevalidation.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="AccountAuthorisation" 
type="ebics:PreValidationAccountAuthType" minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kontoangabe zur Kontoberechtigung für diesen 
Zahlungsverkehrsauftrag bei der Vorabprüfung.</documentation>
-                                       <documentation xml:lang="en">Account 
information for authorisation checks for the payment order within the 
prevalidation.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="PreValidationAccountAuthType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Kontenberechtigungsdaten zur Vorabprüfung.</documentation>
-                       <documentation xml:lang="en">Data type for the account 
authorisation data for the prevalidation.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:AccountType">
-                               <sequence>
-                                       <element name="Amount" 
type="ebics:AmountType" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Summe der Zahlungsverkehrsaufträge dieses Kontos für die 
Höchstbetragsprüfung der EU.</documentation>
-                                                       <documentation 
xml:lang="en">Total sum of the ordered payments regarding this account in order 
to check the maximum amount limit of the signature permission 
grades.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="DataTransferRequestType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den Transfer 
von Auftragsdaten (Anfrage).</documentation>
-                       <documentation xml:lang="en">Data type for the transfer 
of order data (request).</documentation>
-               </annotation>
-               <sequence>
-                       <choice>
-                               <annotation>
-                                       <documentation 
xml:lang="de">Transaktionsphase?</documentation>
-                               </annotation>
-                               <sequence>
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Initialisierungsphase: Transfer der Signaturdaten (EUs) und des 
Transaktionsschlüssels.</documentation>
-                                               <documentation 
xml:lang="en">Inituialisation phase: Transfer of signatur data (ESs) and 
transaktion key.</documentation>
-                                       </annotation>
-                                       <element name="DataEncryptionInfo">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Information zur Verschlüsselung der Signatur- und 
Auftragsdaten.</documentation>
-                                                       <documentation 
xml:lang="en">Information regarding the encryption of signature and order 
data.</documentation>
-                                               </annotation>
-                                               <complexType>
-                                                       <complexContent>
-                                                               <extension 
base="ebics:DataEncryptionInfoType">
-                                                                       
<attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                               </extension>
-                                                       </complexContent>
-                                               </complexType>
-                                       </element>
-                                       <element name="SignatureData">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">enthält Signaturdaten (EUs).</documentation>
-                                                       <documentation 
xml:lang="en">contains signature data (ESs).</documentation>
-                                               </annotation>
-                                               <complexType>
-                                                       <simpleContent>
-                                                               <extension 
base="ebics:SignatureDataType">
-                                                                       
<attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                               </extension>
-                                                       </simpleContent>
-                                               </complexType>
-                                       </element>
-                                       <element name="DataDigest" 
type="ebics:DataDigestType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Hashwert der Auftragsdaten.</documentation>
-                                                       <documentation 
xml:lang="de">Hashvalue of the order data.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="AdditionalOrderInfo" 
type="ebics:String255Type" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Additional Information about the order (unstructured, up to 255 
characters).</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                               <sequence>
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Transferphase: Transfer von Auftragsdaten.</documentation>
-                                               <documentation 
xml:lang="en">Transferphase: Transfer of order data.</documentation>
-                                       </annotation>
-                                       <element name="OrderData">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">enthält Auftragsdaten.</documentation>
-                                                       <documentation 
xml:lang="en">contains order data.</documentation>
-                                               </annotation>
-                                               <complexType>
-                                                       <simpleContent>
-                                                               <extension 
base="ebics:OrderDataType">
-                                                                       
<anyAttribute namespace="##targetNamespace" processContents="lax"/>
-                                                               </extension>
-                                                       </simpleContent>
-                                               </complexType>
-                                       </element>
-                               </sequence>
-                       </choice>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="DataTransferResponseType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den Transfer 
von Auftragsdaten (Antwort).</documentation>
-               </annotation>
-               <sequence>
-                       <sequence minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Transfer 
des Sitzungsschlüssels und (optional) der Signaturdaten (EUs); nur in der 
Initialisierungsphase anzugeben.</documentation>
-                                       <documentation xml:lang="en">Transfer 
of the session key and (optional) signature data (ESs); to be specified only in 
the initialisation phase.</documentation>
-                               </annotation>
-                               <element name="DataEncryptionInfo">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Information zur Verschlüsselung der Signatur- und 
Auftragsdaten.</documentation>
-                                               <documentation 
xml:lang="en">Information regarding the encryption of signature and order 
data.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <complexContent>
-                                                       <extension 
base="ebics:DataEncryptionInfoType">
-                                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                                       </extension>
-                                               </complexContent>
-                                       </complexType>
-                               </element>
-                               <element name="SignatureData" minOccurs="0" 
maxOccurs="0">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält Signaturdaten (EUs).</documentation>
-                                               <documentation 
xml:lang="en">contains signature data (ESs).</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:SignatureDataType">
-                                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                       </sequence>
-                       <element name="OrderData">
-                               <annotation>
-                                       <documentation xml:lang="de">enthält 
Auftragsdaten.</documentation>
-                                       <documentation xml:lang="en">contains 
order data.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:OrderDataType">
-                                                       <anyAttribute 
namespace="##targetNamespace" processContents="lax"/>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="TransferReceiptRequestType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den Transfer 
von Transferquittungen.</documentation>
-                       <documentation xml:lang="en">Data type for the transfer 
of transfer receipts.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="ReceiptCode" 
type="ebics:ReceiptCodeType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Quittierungscode für Auftragsdatentransfer.</documentation>
-                                       <documentation xml:lang="en">Receipt 
code fpr transfer of order data.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="TransferReceiptResponseType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den Transfer 
von Antwortcodes.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="ReturnCodeReceipt" 
type="ebics:ReturnCodeType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Antwortcode für den vorangegangenen Transfer.</documentation>
-                                       <documentation xml:lang="en">response 
code for the foregoing transfer.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="TimestampBankParameter" 
type="ebics:TimestampType" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zeitstempel der letzten Aktualisierung der 
Bankparameter.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HAAResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HAA (Antwort: abrufbare Auftragsarten abholen).</documentation>
-                       <documentation xml:lang="en">Data type for order data 
of order type HAA (Response: Download of available order data).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="Service" 
type="ebics:RestrictedServiceType" minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation xml:lang="de">Liste von 
Auftragsarten, für die Daten bereit stehen.</documentation>
-                                       <documentation xml:lang="en">List of 
order types for which data are available.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" minOccurs="0" 
maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HCARequestOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HCA (Anfrage: Änderung der Teilnehmerschlüssel für 
Authentifikation und Verschlüsselung).</documentation>
-                       <documentation xml:lang="en">Data type for order data 
regarding order type HCA (Request: Update of Subscriber's key for 
authentication and encryption).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AuthenticationPubKeyInfo" 
type="ebics:AuthenticationPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Authentifikationsschlüssel.</documentation>
-                                       <documentation xml:lang="en">public key 
for authentication.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="EncryptionPubKeyInfo" 
type="ebics:EncryptionPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Verschlüsselungsschlüssel.</documentation>
-                                       <documentation xml:lang="en">public key 
for encryption.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kunden-ID.</documentation>
-                                       <documentation 
xml:lang="en">Partner-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                                       <documentation 
xml:lang="en">User-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HCSRequestOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HCS (Anfrage: Schlüsselwechsel aller Schlüssel).</documentation>
-                       <documentation xml:lang="en">Data type for order data 
for order type HCS (Request: Update of all keys).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AuthenticationPubKeyInfo" 
type="ebics:AuthenticationPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Authentifikationsschlüssel.</documentation>
-                                       <documentation xml:lang="en">public key 
for authentication.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="EncryptionPubKeyInfo" 
type="ebics:EncryptionPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Verschlüsselungsschlüssel.</documentation>
-                                       <documentation xml:lang="en">public key 
for encryption.</documentation>
-                               </annotation>
-                       </element>
-                       <element ref="esig:SignaturePubKeyInfo"/>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kunden-ID.</documentation>
-                                       <documentation 
xml:lang="en">Partner-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                                       <documentation 
xml:lang="en">User-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HIARequestOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HIA (Anfrage: Initialisierung der Teilnehmerschlüssel für 
Authentifikation und Verschlüsselung).</documentation>
-                       <documentation xml:lang="en">Data type for order data 
for order type HIA (Request: Initialisation of subcriber keys for 
authentication and encryption).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AuthenticationPubKeyInfo" 
type="ebics:AuthenticationPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Authentifikationsschlüssel.</documentation>
-                                       <documentation xml:lang="en">public key 
for authentication.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="EncryptionPubKeyInfo" 
type="ebics:EncryptionPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Verschlüsselungsschlüssel.</documentation>
-                                       <documentation xml:lang="en">public key 
for encryption.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kunden-ID.</documentation>
-                                       <documentation 
xml:lang="en">Partner-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                                       <documentation 
xml:lang="en">User-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="H3KRequestOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart H3K (Anfrage: Initialisierung aller drei 
Teilnehmerschlüssel).</documentation>
-                       <documentation xml:lang="en">Order type for order data 
H3K (request: initialise all three user's keys).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="SignatureCertificateInfo" 
type="ebics:SignatureCertificateInfoType">
-                               <annotation>
-                                       <documentation xml:lang="en">Key for 
electronic Signature</documentation>
-                                       <documentation 
xml:lang="de">Signaturschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="AuthenticationCertificateInfo" 
type="ebics:AuthenticationCertificateInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="en">Authentication key</documentation>
-                                       <documentation 
xml:lang="de">Authentifikationsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="EncryptionCertificateInfo" 
type="ebics:EncryptionCertificateInfoType">
-                               <annotation>
-                                       <documentation xml:lang="en">Encryption 
key</documentation>
-                                       <documentation 
xml:lang="de">Verschlüsselungsschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="en">PartnerID.</documentation>
-                                       <documentation 
xml:lang="de">Kunden-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="en">UserID.</documentation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <complexType name="HKDResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HKD (Antwort: Kunden- und Teilnehmerdaten des Kunden 
abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HKD (response: receive customer based information on the customer and the 
customer's user.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="PartnerInfo" 
type="ebics:PartnerInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kundendaten.</documentation>
-                                       <documentation xml:lang="en">Customer 
data.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserInfo" type="ebics:UserInfoType" 
maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmerdaten.</documentation>
-                                       <documentation xml:lang="en">User 
data.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" minOccurs="0" 
maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HPBResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HPB (Antwort: Transfer der Bankschlüssel).</documentation>
-                       <documentation xml:lang="en">Data type for order data 
for order type HPB (Response: Transfer of bank keys).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AuthenticationPubKeyInfo" 
type="ebics:AuthenticationPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Authentifikationsschlüssel.</documentation>
-                                       <documentation xml:lang="en">public 
authentication key</documentation>
-                               </annotation>
-                       </element>
-                       <element name="EncryptionPubKeyInfo" 
type="ebics:EncryptionPubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Verschlüsselungsschlüssel.</documentation>
-                                       <documentation xml:lang="en">public 
encryption key</documentation>
-                               </annotation>
-                       </element>
-                       <element ref="esig:SignaturePubKeyInfo" minOccurs="0" 
maxOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher EU-Signaturschlüssel.</documentation>
-                                       <documentation xml:lang="en">public ES 
key.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="HostID" type="ebics:HostIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Banksystem-ID.</documentation>
-                                       <documentation 
xml:lang="en">Host-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" minOccurs="0" 
maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HPDResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HPD (Antwort: Bankparameter abholen).</documentation>
-                       <documentation xml:lang="en">Data type for order data 
for order type HPD (Response: Download bank parameters).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AccessParams" 
type="ebics:HPDAccessParamsType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zugangsparameter.</documentation>
-                                       <documentation xml:lang="en">Access 
Parameter.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="ProtocolParams" 
type="ebics:HPDProtocolParamsType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Protokollparameter.</documentation>
-                                       <documentation xml:lang="en">Protocol 
Parameter.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <complexType name="HPDAccessParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HPD-Zugangsparameter.</documentation>
-                       <documentation xml:lang="en">data type for HPD Access 
Parameter.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="URL" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">institutsspezifische IP-Adresse/URL.</documentation>
-                                       <documentation xml:lang="en">individual 
IP-address/URL of the bank.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension base="anyURI">
-                                                       <attribute 
name="valid_from" type="ebics:TimestampType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Gültigkeitsbeginn für die angegebene 
URL/IP.</documentation>
-                                                                       
<documentation xml:lang="en">Valid-From-Date of the URL/IP.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="Institute">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Institutsbezeichnung.</documentation>
-                                       <documentation xml:lang="en">Name of 
the bank.</documentation>
-                               </annotation>
-                               <simpleType>
-                                       <restriction base="normalizedString">
-                                               <maxLength value="80"/>
-                                       </restriction>
-                               </simpleType>
-                       </element>
-                       <element name="HostID" type="ebics:HostIDType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Banksystem-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HPDProtocolParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HPD-Protokollparameter.</documentation>
-                       <documentation xml:lang="en">Data type for HPD's 
parameters regarding the EBICS protocol.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="Version" type="ebics:HPDVersionType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Spezifikation unterstützter Versionen.</documentation>
-                                       <documentation 
xml:lang="en">Specification of supported versions..</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Recovery" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Parameter 
zur Recovery-Funktion (Wiederaufnahme abgebrochener 
Übertragungen).</documentation>
-                                       <documentation xml:lang="en">Parameter 
denoting the recovery function (recovery of aborted 
transmissions).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <attributeGroup 
ref="ebics:OptSupportFlag"/>
-                               </complexType>
-                       </element>
-                       <element name="PreValidation" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Parameter 
zur Vorabprüfung (über die Übermittlung der EU hinaus).</documentation>
-                                       <documentation xml:lang="en">Parameter 
denoting the pre-validation (beyond transmission of signatures).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Optionales Support-Flag, Default = true.</documentation>
-                                               <documentation 
xml:lang="en">Optional support flag, default = true.</documentation>
-                                       </annotation>
-                                       <attributeGroup 
ref="ebics:OptSupportFlag"/>
-                               </complexType>
-                       </element>
-                       <element name="ClientDataDownload" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Parameter 
zum Download von Kunden- und Teilnehmerdaten (Auftragsarten 
HKD/HTD).</documentation>
-                                       <documentation xml:lang="en">Parameter 
denoting the download of customer and user data (order types 
HKD/HTD).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <attributeGroup 
ref="ebics:OptSupportFlag"/>
-                               </complexType>
-                       </element>
-                       <element name="DownloadableOrderData" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Parameter 
zum Abruf von Auftragsarten, zu denen Auftragsdaten verfügbar sind (Auftragsart 
HAA).</documentation>
-                                       <documentation xml:lang="en">Parameter 
denoting the reception of order types which provides downloadable order data 
(order type HAA).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <attributeGroup 
ref="ebics:OptSupportFlag"/>
-                               </complexType>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HPDVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HPD-Versionsinformationen.</documentation>
-                       <documentation xml:lang="en">Data type for HPD version 
information.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="Protocol">
-                               <annotation>
-                                       <documentation 
xml:lang="de">unterstützte EBICS-Protokollversionen (H...).</documentation>
-                                       <documentation xml:lang="en">supported 
EBICS protocol versions. (H...).</documentation>
-                               </annotation>
-                               <simpleType>
-                                       <list 
itemType="ebics:ProtocolVersionType"/>
-                               </simpleType>
-                       </element>
-                       <element name="Authentication">
-                               <annotation>
-                                       <documentation 
xml:lang="de">unterstützte Versionen der Authentifikation 
(X...).</documentation>
-                                       <documentation xml:lang="en">supported 
version for authentication (X...).</documentation>
-                               </annotation>
-                               <simpleType>
-                                       <list 
itemType="ebics:AuthenticationVersionType"/>
-                               </simpleType>
-                       </element>
-                       <element name="Encryption">
-                               <annotation>
-                                       <documentation 
xml:lang="de">unterstützte Versionen der Verschlüsselung (E...).</documentation>
-                                       <documentation xml:lang="en">supported 
version for encryption (E...).</documentation>
-                               </annotation>
-                               <simpleType>
-                                       <list 
itemType="ebics:EncryptionVersionType"/>
-                               </simpleType>
-                       </element>
-                       <element name="Signature">
-                               <annotation>
-                                       <documentation 
xml:lang="de">unterstützte EU-Versionen (A...).</documentation>
-                                       <documentation xml:lang="en">supported 
version for ES (A...).</documentation>
-                               </annotation>
-                               <simpleType>
-                                       <list 
itemType="esig:SignatureVersionType"/>
-                               </simpleType>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HTDReponseOrderDataType">
-               <annotation>
-                       <documentation>Datentyp für Auftragsdaten für 
Auftragsart HTD (Antwort: Kunden- und Teilnehmerdaten des Teilnehmers 
abholen).</documentation>
-                       <documentation xml:lang="en">Data type for order data 
for order type HTD (Response: Download partner- and user data).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="PartnerInfo" 
type="ebics:PartnerInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kundendaten.</documentation>
-                                       <documentation xml:lang="en">Customer 
data.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserInfo" type="ebics:UserInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmerdaten.</documentation>
-                                       <documentation xml:lang="en">User 
data.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVDResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HVD (Antwort: VEU-Status abrufen).</documentation>
-                       <documentation xml:lang="en">Data type for order data 
for order type HVD (Response: EDS-status).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="DataDigest" type="ebics:DataDigestType">
-                               <annotation>
-                                       <documentation xml:lang="de">Hashwert 
der Auftragsdaten.</documentation>
-                                       <documentation xml:lang="en">Hash value 
of the order data.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="DisplayFile" type="base64Binary">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Begleitzettel/"Displaydatei" (entspricht der Dateianzeige im 
Kundenprotokoll gemäß DFÜ-Abkommen).</documentation>
-                                       <documentation 
xml:lang="en">Accompanying ticket/"display file" (corresponds to the display 
file of the customer's journal according to the document 
"DFÜ-Abkommen").</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDataAvailable" type="boolean">
-                               <annotation>
-                                       <documentation xml:lang="de">Kann die 
Auftragsdatei im Originalformat abgeholt werden? (HVT mit 
completeOrderData=true)</documentation>
-                                       <documentation xml:lang="en">Can the 
order file be downloaded in the original format? (HVT with 
completeOrderData=true)</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDataSize" type="positiveInteger">
-                               <annotation>
-                                       <documentation xml:lang="de">Größe der 
unkomprimierten Auftragsdaten in Bytes.</documentation>
-                                       <documentation xml:lang="en">Size of 
the uncompressed order data (byte count).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDetailsAvailable" type="boolean">
-                               <annotation>
-                                       <documentation xml:lang="de">Können die 
Auftragsdetails als XML-Dokument HVTResponseOrderData abgeholt werden?  (HVT 
mit completeOrderData=false)</documentation>
-                                       <documentation xml:lang="en">Can the 
order details be downloaded as XML document HVTResponseOrderData?  (HVT with 
completeOrderData=false)</documentation>
-                               </annotation>
-                       </element>
-                       <element name="BankSignature" 
type="ebics:SignatureType" minOccurs="0" maxOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">bankfachliche Elektronische Unterschrift des Kreditinstituts über 
Hashwert und Displaydatei.</documentation>
-                                       <documentation xml:lang="en">Digital 
Signature issued by the bank, covering the hash value and the accompanying 
ticket.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SignerInfo" type="ebics:SignerInfoType" 
minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den bisherigen Unterzeichnern.</documentation>
-                                       <documentation 
xml:lang="en">Information about the already existing signers.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVDOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart HVD.</documentation>
-                       <documentation xml:lang="en">Data type for additional 
order parameters for order type HVD.</documentation>
-               </annotation>
-               <sequence>
-                       <group ref="ebics:HVRequestStructure"/>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVEOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart HVE.</documentation>
-                       <documentation xml:lang="en">Data type for additional 
order parameters for order type HVE.</documentation>
-               </annotation>
-               <sequence>
-                       <group ref="ebics:HVRequestStructure"/>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVSOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart HVS.</documentation>
-                       <documentation xml:lang="en">Data type for additional 
order parameters for order type HVS.</documentation>
-               </annotation>
-               <sequence>
-                       <group ref="ebics:HVRequestStructure"/>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVSRequestOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HVS (Anfrage: VEU-Storno).</documentation>
-                       <documentation xml:lang="en">Data type for order data 
for order type HVS (request: EDS cancellation).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="CancelledDataDigest" 
type="ebics:DataDigestType">
-                               <annotation>
-                                       <documentation xml:lang="de">Hashwert 
der Auftragsdaten des stornierten Auftrags.</documentation>
-                                       <documentation xml:lang="en">Hash value 
of order data of cancelled order.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVTResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Antwort mit 
Einzelauftraginfos für Auftragsart HVT (Antwort VEU-Transaktionsdetails abrufen 
mit completeOrderData="false").</documentation>
-                       <documentation xml:lang="en">Data type for a response 
containing information about single transactions for order type HVT (response: 
EDS transaction details with completeOrderData="false").</documentation>
-               </annotation>
-               <sequence>
-                       <element name="NumOrderInfos" 
type="ebics:NumOrderInfosType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Gesamtanzahl der Einzelaufträge für den Auftrag.</documentation>
-                                       <documentation xml:lang="en">Total 
number of order infos for the order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderInfo" type="ebics:HVTOrderInfoType" 
maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Einzelauftragsinfos.</documentation>
-                                       <documentation xml:lang="en">Particular 
order content information requested for display matters.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVTAccountInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HVT-Konteninformationen.</documentation>
-                       <documentation xml:lang="en">Data type for account 
information regarding order type HVT.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:AttributedAccountType"/>
-               </complexContent>
-       </complexType>
-       <complexType name="HVTOrderInfoType">
-               <annotation>
-                       <documentation xml:lang="de">//MODIFIED - Replaced 
Element OrderFormat with MsgName// Datentyp für 
HVT-Auftragsinformationen.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="MsgName" type="ebics:MessageType" 
minOccurs="0"/>
-                       <element name="AccountInfo" 
type="ebics:HVTAccountInfoType" minOccurs="2" maxOccurs="3">
-                               <annotation>
-                                       <documentation 
xml:lang="de">kontobezogene Details des Auftrags (Auftraggeber, Empfänger 
etc.).</documentation>
-                                       <documentation xml:lang="en">account 
related details of the order (ordering party, receiver etc.).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="ExecutionDate" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Ausführungsdatum.</documentation>
-                                       <documentation xml:lang="en">Execution 
date.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension base="date"/>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="Amount">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Betrag.</documentation>
-                                       <documentation 
xml:lang="en">Amount.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:AmountValueType">
-                                                       <attribute 
name="isCredit" type="boolean" use="optional">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Gutschrift (isCredit = "true") oder Lastschrift 
(isCredit = "false")?</documentation>
-                                                                       
<documentation xml:lang="en">Credit (isCredit = "true") or debit (isCredit = 
"false")?</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                                       <attribute 
name="Currency" type="ebics:CurrencyBaseType" use="optional">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Währungscode.</documentation>
-                                                                       
<documentation xml:lang="en">Currency code.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="Description" minOccurs="0" maxOccurs="4">
-                               <annotation>
-                                       <documentation xml:lang="de">Textfeld 
zur weiteren Beschreibung der Transaktion (Verwendungszweck, Auftragsdetails, 
Kommentar).</documentation>
-                                       <documentation xml:lang="en">text field 
for additional descriptions regarding the transaction (remittance information, 
order details, annotations).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension base="string">
-                                                       <attribute name="Type" 
use="required">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Beschreibungstyp.</documentation>
-                                                                       
<documentation xml:lang="en">Description type.</documentation>
-                                                               </annotation>
-                                                               <simpleType>
-                                                                       
<restriction base="token">
-                                                                               
<enumeration value="Purpose">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Verwendungszweck</documentation>
-                                                                               
                <documentation xml:lang="en">remittance 
information.</documentation>
-                                                                               
        </annotation>
-                                                                               
</enumeration>
-                                                                               
<enumeration value="Details">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Auftragsdetails</documentation>
-                                                                               
                <documentation xml:lang="en">Order details.</documentation>
-                                                                               
        </annotation>
-                                                                               
</enumeration>
-                                                                               
<enumeration value="Comment">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Kommentar</documentation>
-                                                                               
                <documentation xml:lang="en">Annotation.</documentation>
-                                                                               
        </annotation>
-                                                                               
</enumeration>
-                                                                       
</restriction>
-                                                               </simpleType>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVTOrderFlagsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HVT-Auftragsflags.</documentation>
-                       <documentation xml:lang="en">Data type for HVT order 
flags.</documentation>
-               </annotation>
-               <attribute name="completeOrderData" type="boolean" 
use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Sollen die 
Transaktionsdetails als Einzelauftragsinfos (completeOrderData=false) oder als 
komplette Originaldaten (completeOrderData=true) übertragen werden? (Vorschlag 
für Default=false)</documentation>
-                               <documentation xml:lang="en">Are the 
transaction details so be transmitted as particular order content information 
requested for display matters or in complete order data file form? (Proposal 
for Default=false)</documentation>
-                       </annotation>
-               </attribute>
-               <attribute name="fetchLimit" use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Limit für die zu 
liefernden Transaktionsdetails, bei completeOrderData=false maximale Anzahl zu 
liefernder Einzelauftragsinfos, 0 für unbegrenzt (Vorschlag für 
Default=100).</documentation>
-                               <documentation xml:lang="en">Limit for the 
transaction details to be transmitted; if completeOrderData=false, maximum 
number of details of a particular order; 0 for unlimited number of details 
(Proposal for Default=100).</documentation>
-                       </annotation>
-                       <simpleType>
-                               <restriction base="nonNegativeInteger">
-                                       <totalDigits value="10"/>
-                               </restriction>
-                       </simpleType>
-               </attribute>
-               <attribute name="fetchOffset" use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Offset vom Anfang 
der Originalauftragsdatei für die zu liefernden Transaktionsdetails, bei 
completeOrderData=false bezogen auf laufende Nummer des Einzelauftrags 
(Vorschlag für Default=0).</documentation>
-                               <documentation xml:lang="en">Offset position in 
the original order file which marks the starting point for the transaction 
details to be transmitted; applies to the sequential number of a particular 
order if completeOrderData=false (Proposal for Default=0).</documentation>
-                       </annotation>
-                       <simpleType>
-                               <restriction base="nonNegativeInteger">
-                                       <totalDigits value="10"/>
-                               </restriction>
-                       </simpleType>
-               </attribute>
-               <anyAttribute namespace="##targetNamespace" 
processContents="strict"/>
-       </complexType>
-       <complexType name="HVTOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart HVT.</documentation>
-                       <documentation xml:lang="en">Data type for additional 
order parameters for order type HVT.</documentation>
-               </annotation>
-               <sequence>
-                       <group ref="ebics:HVRequestStructure"/>
-                       <element name="OrderFlags">
-                               <annotation>
-                                       <documentation xml:lang="de">spezielle 
Flags für HVT-Aufträge.</documentation>
-                                       <documentation xml:lang="en">Special 
order flags for orders of type HVT.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <complexContent>
-                                               <extension 
base="ebics:HVTOrderFlagsType"/>
-                                       </complexContent>
-                               </complexType>
-                       </element>
-                       <element ref="ebics:Parameter" minOccurs="0" 
maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation xml:lang="de">Generische 
Schlüssel-Wert-Parameter</documentation>
-                                       <documentation xml:lang="en">Generic 
key-value parameters</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVUResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HVU (Antwort: VEU-Übersicht abholen).</documentation>
-                       <documentation xml:lang="en">Data type for order data 
for order type HVU (Response: Download EDS overview).</documentation>
-               </annotation>
-               <sequence>
-                       <annotation>
-                               <documentation xml:lang="de"/>
-                       </annotation>
-                       <element name="OrderDetails" 
type="ebics:HVUOrderDetailsType" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsinformationen.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVUOrderDetailsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HVU-Auftragsdetails.</documentation>
-                       <documentation xml:lang="en">Data type for HVU order 
details.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="Service" 
type="ebics:RestrictedServiceType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsart lt. DFÜ-Abkommen des ausgewählten 
Auftrags.</documentation>
-                                       <documentation xml:lang="en">Type of 
the order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderID" type="ebics:OrderIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsnummer lt. DFÜ-Abkommen des ausgewählten 
Auftrags.</documentation>
-                                       <documentation xml:lang="en">Order 
number.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDataSize" type="positiveInteger">
-                               <annotation>
-                                       <documentation xml:lang="de">Größe der 
unkomprimierten Auftragsdaten in Bytes.</documentation>
-                                       <documentation xml:lang="en">Order data 
size in bytes.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SigningInfo" 
type="ebics:HVUSigningInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den Unterschriftsmodalitäten.</documentation>
-                                       <documentation xml:lang="en">Signing 
information.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SignerInfo" type="ebics:SignerInfoType" 
minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den bisherigen Unterzeichnern.</documentation>
-                                       <documentation 
xml:lang="en">Information regarding the signer.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OriginatorInfo" 
type="ebics:HVUOriginatorInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zum Einreicher.</documentation>
-                                       <documentation 
xml:lang="en">Information regarding the originator.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="AdditionalOrderInfo" 
type="ebics:String255Type" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Additional 
Information about the order (unstructured, up to 255 
characters).</documentation>
-                                       <documentation xml:lang="en">Additional 
Information about the order (unstructured, up to 255 
characters).</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVUOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart HVU.</documentation>
-                       <documentation xml:lang="en">Data type for additional 
order parameters for order type HVU.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="ServiceFilter" type="ebics:ServiceType" 
minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation xml:lang="de">Liste von 
Auftragsarten, für die zur Unterschrift vorliegende Aufträge abgerufen werden 
sollen; falls nicht angegeben, werden sämtliche für den Teilnehmer 
unterschriftsfähigen Aufträge abgerufen.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVZOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter für Auftragsart HVZ.</documentation>
-                       <documentation xml:lang="en">Data type for additional 
order parameters for order type HVZ.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="ServiceFilter" type="ebics:ServiceType" 
minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation xml:lang="de">Liste von 
Auftragsarten, für die zur Unterschrift vorliegende Aufträge abgerufen werden 
sollen; falls nicht angegeben, werden sämtliche für den Teilnehmer 
unterschriftsfähigen Aufträge abgerufen.</documentation>
-                                       <documentation xml:lang="de">List of 
order types that the orders ready to be signed by the requesting user should 
match; if not specified, a list of all orders ready to be signed by the 
requesting user is returned.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVUSigningInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Informationen 
zu den HVU-Unterschriftsmodalitäten.</documentation>
-               </annotation>
-               <attribute name="readyToBeSigned" type="boolean" use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Ist der Auftrag 
unterschriftsreif ("true") oder bereits vom Teilnehmer unterschrieben 
("false")?</documentation>
-                       </annotation>
-               </attribute>
-               <attribute name="NumSigRequired" type="positiveInteger" 
use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Anzahl der 
insgesamt zur Freigabe erforderlichen EUs.</documentation>
-                       </annotation>
-               </attribute>
-               <attribute name="NumSigDone" type="nonNegativeInteger" 
use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Anzahl der bereits 
geleisteten EUs.</documentation>
-                       </annotation>
-               </attribute>
-       </complexType>
-       <complexType name="HVUOriginatorInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Informationen 
zum Ersteller eines HVU-Auftrags.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation xml:lang="de">Kunden-ID 
des Einreichers.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID des Einreichers.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Name" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Name des 
Einreichers.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Timestamp" type="ebics:TimestampType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zeitstempel der Einreichung (d.h. der Übertragung der 
Auftragsdatei).</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##targetNamespace" 
processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVZResponseOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Auftragsdaten 
für Auftragsart HVZ (Antwort: VEU-Übersicht mit Zusatzinformationen 
abholen).</documentation>
-                       <documentation xml:lang="en">Order data for order type 
HVZ (response: receive summary of orders currently stored in the distributed 
signature processing unit with additional informations).</documentation>
-               </annotation>
-               <sequence>
-                       <annotation>
-                               <documentation xml:lang="de"/>
-                       </annotation>
-                       <element name="OrderDetails" 
type="ebics:HVZOrderDetailsType" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsinformationen.</documentation>
-                                       <documentation xml:lang="en">Summary of 
order information.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="HVZOrderDetailsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
HVZ-Auftragsdetails.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="Service" 
type="ebics:RestrictedServiceType">
-                               <annotation>
-                                       <documentation xml:lang="de">BTF 
Service Parameter-Struktur des ausgewählten Auftrags.</documentation>
-                                       <documentation xml:lang="en">Type of 
the order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderID" type="ebics:OrderIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsnummer lt. DFÜ-Abkommen des ausgewählten 
Auftrags.</documentation>
-                                       <documentation xml:lang="en">ID number 
of the order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="DataDigest" type="ebics:DataDigestType">
-                               <annotation>
-                                       <documentation xml:lang="de">Hashwert 
der Auftragsdaten.</documentation>
-                                       <documentation xml:lang="en">Hash value 
of the order data.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDataAvailable" type="boolean">
-                               <annotation>
-                                       <documentation xml:lang="de">Kann die 
Auftragsdatei im Originalformat abgeholt werden? (HVT mit 
completeOrderData=true).</documentation>
-                                       <documentation xml:lang="en">Can the 
order file be downloaded in the original format? (HVT with 
completeOrderData=true)</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDataSize" type="positiveInteger">
-                               <annotation>
-                                       <documentation xml:lang="de">Größe der 
unkomprimierten Auftragsdaten in Bytes.</documentation>
-                                       <documentation xml:lang="en">Size of 
uncompressed order data in Bytes.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OrderDetailsAvailable" type="boolean">
-                               <annotation>
-                                       <documentation xml:lang="de">Können die 
Auftragsdetails als XML-Dokument HVTResponseOrderData abgeholt werden? (HVT mit 
completeOrderData=false).</documentation>
-                                       <documentation xml:lang="en">Can the 
order details be downloaded as XML document HVTResponseOrderData?  (HVT with 
completeOrderData=false)</documentation>
-                               </annotation>
-                       </element>
-                       <group ref="ebics:HVZPaymentOrderDetailsStructure" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zusätzliche Auftragsdetails nur für 
Zahlungsaufträge.</documentation>
-                                       <documentation xml:lang="en">Order 
details related to payment orders only.</documentation>
-                               </annotation>
-                       </group>
-                       <element name="SigningInfo" 
type="ebics:HVUSigningInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den Unterschriftsmodalitäten.</documentation>
-                                       <documentation 
xml:lang="en">Information regarding the signing modalities of the 
order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SignerInfo" type="ebics:SignerInfoType" 
minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den bisherigen Unterzeichnern.</documentation>
-                                       <documentation 
xml:lang="en">Information regarding the users who already signed the 
order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="OriginatorInfo" 
type="ebics:HVUOriginatorInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zum Einreicher.</documentation>
-                                       <documentation 
xml:lang="en">Information regarding the originator of the order.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="AdditionalOrderInfo" 
type="ebics:String255Type" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Additional 
Information about the order (unstructured, up to 255 
characters).</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <group name="HVZPaymentOrderDetailsStructure">
-               <annotation>
-                       <documentation xml:lang="de">Standard-Requeststruktur 
für HVx-Aufträge (HVD, HVT, HVE, HVS).</documentation>
-                       <documentation xml:lang="en">Standard structure for HVZ 
OrderDetails related to payment orders</documentation>
-               </annotation>
-               <sequence>
-                       <element name="TotalOrders" type="nonNegativeInteger" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Anzahl der 
Zahlungssätze über alle logische Dateien entsprechend 
Dateianzeige.</documentation>
-                                       <documentation xml:lang="en">Total 
transaction number for all logical files (from dispay file).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="TotalAmount" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Summe der 
Beträge über alle logische Dateien entsprechend Dateianzeige.</documentation>
-                                       <documentation xml:lang="en">Total 
transaction amount for all logical files (from dispay file).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:AmountValueType">
-                                                       <attribute 
name="isCredit" type="boolean" use="optional">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Nur Gutschriften (isCredit = "true") oder nur 
Lastschriften (isCredit = "false")? Sonst keine Nutzung des 
Elements.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="Currency" type="ebics:CurrencyBaseType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragswährung (nur bei sortenreinen Zahlungen, sonst keine 
Angabe).</documentation>
-                                       <documentation xml:lang="en">Order 
currency (only if identical across all transactions, ship 
otherwise).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="FirstOrderInfo" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen aus Dateianzeige der ersten logischen 
Datei.</documentation>
-                                       <documentation xml:lang="en">Order 
details from display file for first logical file.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <sequence>
-                                               <element name="OrderPartyInfo" 
type="normalizedString" minOccurs="0">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">Auftraggeber entsprechend Dateianzeige.</documentation>
-                                                               <documentation 
xml:lang="en">Order party information (from display file).</documentation>
-                                                       </annotation>
-                                               </element>
-                                               <element name="AccountInfo" 
minOccurs="0">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">Erstes Auftraggeberkonto entsprechend 
Dateianzeige.</documentation>
-                                                               <documentation 
xml:lang="en">First order party account (from display file).</documentation>
-                                                       </annotation>
-                                                       <complexType>
-                                                               <sequence>
-                                                                       <choice 
maxOccurs="2">
-                                                                               
<element name="AccountNumber">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Kontonummer (deutsches Format oder 
international als IBAN).</documentation>
-                                                                               
                <documentation xml:lang="en">Account number (German format or 
international as IBAN).</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:AccountNumberType">
-                                                                               
                                <attribute name="international" type="boolean" 
use="optional" default="false">
-                                                                               
                                        <annotation>
-                                                                               
                                                <documentation 
xml:lang="de">Ist die Kontonummer im deutschen Format (international=false) 
oder im internationalen Format (international=true, IBAN) 
angegeben?</documentation>
-                                                                               
                                                <documentation 
xml:lang="en">Account number given in German format (international=false) or in 
international format (international=true, IBAN)?</documentation>
-                                                                               
                                        </annotation>
-                                                                               
                                </attribute>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                               
<element name="NationalAccountNumber">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Kontonummer im freien 
Format.</documentation>
-                                                                               
                <documentation xml:lang="en">Account number in free 
format.</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:NationalAccountNumberType">
-                                                                               
                                <attribute name="format" type="token" 
use="required">
-                                                                               
                                        <annotation>
-                                                                               
                                                <documentation 
xml:lang="de">Formatkennung.</documentation>
-                                                                               
                                                <documentation 
xml:lang="en">Format type.</documentation>
-                                                                               
                                        </annotation>
-                                                                               
                                </attribute>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                       
</choice>
-                                                                       <choice 
minOccurs="0" maxOccurs="2">
-                                                                               
<element name="BankCode">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Bankleitzahl (deutsches Format 
oder international als SWIFT-BIC).</documentation>
-                                                                               
                <documentation xml:lang="en">Bank sort code (German format or 
international as SWIFT-BIC).</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:BankCodeType">
-                                                                               
                                <attribute name="international" type="boolean" 
use="optional" default="false">
-                                                                               
                                        <annotation>
-                                                                               
                                                <documentation 
xml:lang="de">Ist die Bankleitzahl im deutschen Format (international=false, 
BLZ) oder im internationalen Format (international=true, SWIFT-BIC) 
angegeben?</documentation>
-                                                                               
                                                <documentation 
xml:lang="en">Bank sort code given in German format (international=false) or in 
international format (international=true, SWIFT-BIC)?</documentation>
-                                                                               
                                        </annotation>
-                                                                               
                                </attribute>
-                                                                               
                                <attribute name="Prefix" 
type="ebics:BankCodePrefixType" use="optional">
-                                                                               
                                        <annotation>
-                                                                               
                                                <documentation 
xml:lang="de">nationales Präfix für Bankleitzahlen.</documentation>
-                                                                               
                                                <documentation 
xml:lang="en">National prefix for bank sort code.</documentation>
-                                                                               
                                        </annotation>
-                                                                               
                                </attribute>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                               
<element name="NationalBankCode">
-                                                                               
        <annotation>
-                                                                               
                <documentation xml:lang="de">Bankleitzahl im freien 
Format.</documentation>
-                                                                               
                <documentation xml:lang="en">Bank sort code in free 
format.</documentation>
-                                                                               
        </annotation>
-                                                                               
        <complexType>
-                                                                               
                <simpleContent>
-                                                                               
                        <extension base="ebics:NationalBankCodeType">
-                                                                               
                                <attribute name="format" type="token" 
use="required">
-                                                                               
                                        <annotation>
-                                                                               
                                                <documentation 
xml:lang="de">Formatkennung.</documentation>
-                                                                               
                                                <documentation 
xml:lang="en">Format type.</documentation>
-                                                                               
                                        </annotation>
-                                                                               
                                </attribute>
-                                                                               
                        </extension>
-                                                                               
                </simpleContent>
-                                                                               
        </complexType>
-                                                                               
</element>
-                                                                       
</choice>
-                                                               </sequence>
-                                                       </complexType>
-                                               </element>
-                                       </sequence>
-                               </complexType>
-                       </element>
-               </sequence>
-       </group>
-       <complexType name="SignerInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Informationen 
zu einem Unterzeichner eines VEU-Auftrags (HVU, HVD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="PartnerID" type="ebics:PartnerIDType">
-                               <annotation>
-                                       <documentation xml:lang="de">Kunden-ID 
des Unterzeichners.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="ebics:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID des Unterzeichners.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Name" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Name des 
Unterzeichners.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Timestamp" type="ebics:TimestampType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zeitstempel der Unterzeichnung (d.h. der Übertragung der 
Unterschrift).</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Permission">
-                               <annotation>
-                                       <documentation 
xml:lang="de">zusätzliche Informationen zu den Berechtigungen des Teilnehmers, 
der unterzeichnet hat.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <attributeGroup 
ref="ebics:SignerPermission"/>
-                               </complexType>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="UserPermissionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
VEU-Berechtigungsinformationen des Teilnehmers (HKD, HTD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AdminOrderType" 
type="ebics:OrderTBaseType">
-                               <annotation>
-                                       <documentation xml:lang="de">Liste von 
Auftragsarten, für die die Berechtigung des Teilnehmers gültig 
ist.</documentation>
-                                       <documentation xml:lang="en">List of 
order types which the user's permission belongs to.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Service" 
type="ebics:RestrictedServiceType" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">BTF 
Service Parameter struktur im Falle von BTU/BTD</documentation>
-                                       <documentation 
xml:lang="en">Identification of the file format in the case of 
FUL/FDL</documentation>
-                               </annotation>
-                       </element>
-                       <element name="AccountID" type="ebics:AccountIDType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Verweis 
auf den Identifikationscode des berechtigten Kontos.</documentation>
-                                       <documentation 
xml:lang="en">Identification codes of the affected accounts.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="MaxAmount" type="ebics:AmountType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Betragshöchstgrenze, bis zu der die Berechtigung des Teilnehmers 
gültig ist.</documentation>
-                                       <documentation xml:lang="en">Maximum 
total amount which the user's permission is valid for.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-               <attribute name="AuthorisationLevel" 
type="ebics:AuthorisationLevelType">
-                       <annotation>
-                               <documentation 
xml:lang="de">Unterschriftsklasse, für die der Teilnehmer berechtigt ist; nicht 
anzugeben bei Download-Auftragsarten.</documentation>
-                               <documentation xml:lang="en">Authorization 
level of the user who signed the order; to be omitted for orders of type 
"download".</documentation>
-                       </annotation>
-               </attribute>
-               <anyAttribute namespace="##targetNamespace" 
processContents="strict"/>
-       </complexType>
-       <complexType name="PartnerInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
VEU-Partnerdaten (HKD, HTD).</documentation>
-                       <documentation xml:lang="en">Data type for customer 
data with regard to distributed signatures (order types HKD, 
HTD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AddressInfo" 
type="ebics:AddressInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zur Adresse des Kunden.</documentation>
-                                       <documentation 
xml:lang="en">Information about the customer's adress.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="BankInfo" type="ebics:BankInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zur Kreditinstitutsanbindung des 
Kunden.</documentation>
-                                       <documentation 
xml:lang="en">Information about the customer's banking access 
paramters.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="AccountInfo" minOccurs="0" 
maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den Konten des Kunden.</documentation>
-                                       <documentation 
xml:lang="en">Information about the customer's accounts.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <complexContent>
-                                               <extension 
base="ebics:AccountType">
-                                                       <sequence>
-                                                               <element 
name="UsageOrderTypes" type="ebics:UsageOrderType" minOccurs="0">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">//MODIFIED//Liste der Auftragsartenbeschränkungen; 
falls nicht angegeben, gibt es keine Auftragsartenbeschränkungen; falls das 
Element ohne Service-Element geliefert wird, ist das Konto für keine 
Auftragsart freigegeben.</documentation>
-                                                                               
<documentation xml:lang="en">List containing the order types which contain this 
account is restricted to; if omitted, the account is unrestricted; if the list 
is empty the account is blocked for any order type.</documentation>
-                                                                       
</annotation>
-                                                               </element>
-                                                               <any 
namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-                                                       </sequence>
-                                                       <attribute name="ID" 
type="ebics:AccountIDType" use="required">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Identifikationscode des Kontos.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </complexContent>
-                               </complexType>
-                       </element>
-                       <element name="OrderInfo" 
type="ebics:AuthOrderInfoType" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den Auftragsarten, für die der Kunde berechtigt 
ist.</documentation>
-                                       <documentation 
xml:lang="en">Information about order types which the customer is authorised to 
use.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <complexType name="AddressInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
VEU-Adressinformationen (HKD, HTD).</documentation>
-                       <documentation xml:lang="en">Data type for address 
information with regard to distributed signature (order types HKD, 
HTD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="Name" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Name des 
Kunden.</documentation>
-                                       <documentation xml:lang="en">Customer's 
name.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Street" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Straße und 
Hausnummer.</documentation>
-                                       <documentation xml:lang="en">Street and 
house number.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PostCode" type="token" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Postleitzahl.</documentation>
-                                       <documentation xml:lang="en">Postal 
code.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="City" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Stadt.</documentation>
-                                       <documentation 
xml:lang="en">City.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Region" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Region / 
Bundesland / Bundesstaat.</documentation>
-                                       <documentation xml:lang="en">Region / 
province / federal state.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Country" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Land.</documentation>
-                                       <documentation 
xml:lang="en">Country.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="BankInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
VEU-Kreditinstitutsinformationen (HKD, HTD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="HostID" type="ebics:HostIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Banksystem-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element ref="ebics:Parameter" minOccurs="0" 
maxOccurs="unbounded"/>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="UserInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
VEU-Teilnehmerinformationen (HKD, HTD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="UserID">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:UserIDType">
-                                                       <attribute 
name="Status" type="ebics:UserStatusType" use="required">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Status des Teilnehmers.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="Name" type="ebics:NameType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Name des 
Teilnehmers.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Permission" 
type="ebics:UserPermissionType" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen zu den Berechtigungen des 
Teilnehmers.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="AuthOrderInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
VEU-Berechtigungsinformationen zu Auftragsarten (HKD, HTD).</documentation>
-                       <documentation xml:lang="en">Data type for user 
permissions with regard to distributed signatures (order types HKD, 
HTD).</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AdminOrderType" 
type="ebics:OrderTBaseType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Administrative EBICS Auftragsart.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Service" 
type="ebics:RestrictedServiceType" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">BTF 
Service Parameter struktur im Falle von BTU/BTD</documentation>
-                                       <documentation 
xml:lang="en">Identification of the file format in the case of 
FUL/FDL</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Description" 
type="ebics:OrderDescriptionType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Beschreibung der Auftragsart.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="NumSigRequired" 
type="nonNegativeInteger" default="0" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Anzahl 
erforderlicher EUs (Default=0).</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="StandardOrderParamsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zusätzliche 
Auftragsparameter bei Standard-Auftragsarten.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="DateRange" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Datumsbereich (von-bis).</documentation>
-                               </annotation>
-                               <complexType>
-                                       <sequence>
-                                               <element name="Start" 
type="ebics:DateType">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">Startdatum (inkl.).</documentation>
-                                                       </annotation>
-                                               </element>
-                                               <element name="End" 
type="ebics:DateType">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">Enddatum (inkl.).</documentation>
-                                                       </annotation>
-                                               </element>
-                                       </sequence>
-                               </complexType>
-                       </element>
-               </sequence>
-       </complexType>
-       <attributeGroup name="VersionAttrGroup">
-               <annotation>
-                       <documentation xml:lang="de">Attribute zur 
EBICS-Protokollversion und -revision.</documentation>
-                       <documentation xml:lang="en">Attributes regarding the 
protocol version and revision of EBICS.</documentation>
-               </annotation>
-               <attribute name="Version" type="ebics:ProtocolVersionType" 
use="required">
-                       <annotation>
-                               <documentation xml:lang="de">Version des 
EBICS-Protokolls (z.B. "H00x").</documentation>
-                               <documentation xml:lang="en">Version of the 
EBICS protocol (e.g. "H00x").</documentation>
-                       </annotation>
-               </attribute>
-               <attribute name="Revision" type="ebics:ProtocolRevisionType" 
use="optional">
-                       <annotation>
-                               <documentation xml:lang="de">Revision des 
EBICS-Protokolls (z.B. 1).</documentation>
-                               <documentation xml:lang="en">Revision of the 
EBICS protocol (e.g. 1).</documentation>
-                       </annotation>
-               </attribute>
-       </attributeGroup>
-       <!--Following ComplexTypes are used for BTF-->
-       <element name="BTDOrderParams" type="ebics:BTDParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation>zusätzliche Auftragsparameter für 
Auftragsart BTD.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type BTD.</documentation>
-               </annotation>
-       </element>
-       <element name="BTUOrderParams" type="ebics:BTUParamsType" 
substitutionGroup="ebics:OrderParams">
-               <annotation>
-                       <documentation>zusätzliche Auftragsparameter für 
Auftragsart BTU.</documentation>
-                       <documentation xml:lang="en">additional order 
parameters for order type BTU.</documentation>
-               </annotation>
-       </element>
-       <complexType name="BTDParamsType">
-               <annotation>
-                       <documentation>Datentyp für BTF Download 
Parameter</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:BTFParamsTyp">
-                               <sequence>
-                                       <element name="Service" 
type="ebics:RestrictedServiceType">
-                                               <annotation>
-                                                       <documentation>Service 
name - target system for the further processing of the order</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="DateRange" 
type="ebics:DateRangeType" minOccurs="0"/>
-                                       <element ref="ebics:Parameter" 
minOccurs="0" maxOccurs="unbounded"/>
-                               </sequence>
-                               <attribute name="fileName" 
type="ebics:FileNameStringType" use="prohibited">
-                                       <annotation>
-                                               <documentation>The file name on 
the client It can be transmitted optionally</documentation>
-                                       </annotation>
-                               </attribute>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <complexType name="BTUParamsType">
-               <annotation>
-                       <documentation>Datentyp für BTF Upload 
Parameter</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:BTFParamsTyp">
-                               <sequence>
-                                       <element name="Service" 
type="ebics:RestrictedServiceType">
-                                               <annotation>
-                                                       <documentation>Service 
name - target system for the further processing of the order</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SignatureFlag" 
type="ebics:SignatureFlagType" minOccurs="0">
-                                               <annotation>
-                                                       <documentation>If not 
present the order doesn't contain any ES and shall be authorised outside EBICS
-If present the order shall be autorised within EBICS: 
-1. If the attribute VEU is also present the sender desires spooling into the 
VEU - hence in this case the order is not rejected in the case of not 
sufficient number of ES
-2. If the attribute is not present all necessary ES must be inside the order 
(else: rejection of the order)  </documentation>
-                                               </annotation>
-                                       </element>
-                                       <element ref="ebics:Parameter" 
minOccurs="0" maxOccurs="unbounded"/>
-                               </sequence>
-                               <attribute name="fileName" 
type="ebics:FileNameStringType">
-                                       <annotation>
-                                               <documentation>The file name on 
the client It can be transmitted optionally</documentation>
-                                       </annotation>
-                               </attribute>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <complexType name="BTFParamsTyp" abstract="true">
-               <annotation>
-                       <documentation>Abstract Type containing all BTF params 
structures</documentation>
-               </annotation>
-               <sequence>
-                       <element name="Service" 
type="ebics:RestrictedServiceType">
-                               <annotation>
-                                       <documentation>Service name - target 
system for the further processing of the order</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SignatureFlag" 
type="ebics:SignatureFlagType" minOccurs="0">
-                               <annotation>
-                                       <documentation>If not present the order 
doesn't contain any ES and shall be authorised outside EBICS
-If present the order shall be autorised within EBICS: 
-1. If the attribute VEU is also present the sender desires spooling into the 
VEU - hence in this case the order is not rejected in the case of not 
sufficient number of ES
-2. If the attribute is not present all necessary ES must be inside the order 
(else: rejection of the order)  </documentation>
-                               </annotation>
-                       </element>
-                       <element name="DateRange" type="ebics:DateRangeType" 
minOccurs="0"/>
-                       <element ref="ebics:Parameter" minOccurs="0" 
maxOccurs="unbounded"/>
-               </sequence>
-               <attribute name="fileName" type="ebics:FileNameStringType">
-                       <annotation>
-                               <documentation>The file name on the client It 
can be transmitted optionally</documentation>
-                       </annotation>
-               </attribute>
-       </complexType>
-       <complexType name="DateRangeType">
-               <annotation>
-                       <documentation>Datentyp für die Angabe eines 
(Berichts-) Zeitraums</documentation>
-               </annotation>
-               <sequence>
-                       <element name="Start" type="ebics:DateType"/>
-                       <element name="End" type="ebics:DateType"/>
-               </sequence>
-       </complexType>
-       <complexType name="FlagAttribType">
-               <annotation>
-                       <documentation>Basis-Datentyp für Kennzeichen mit 
optionalem Attribut</documentation>
-               </annotation>
-               <anyAttribute/>
-       </complexType>
-       <complexType name="MessageType">
-               <annotation>
-                       <documentation>Datentyp für Meldungstyp-String mit 
optionalen Attributen</documentation>
-               </annotation>
-               <simpleContent>
-                       <extension base="ebics:MessageNameStringType">
-                               <attribute name="variant" 
type="ebics:NumStringType" use="optional">
-                                       <annotation>
-                                               <documentation>Variant number 
of the message type (usable for ISO20022 messages)</documentation>
-                                       </annotation>
-                               </attribute>
-                               <attribute name="version" 
type="ebics:NumStringType" use="optional">
-                                       <annotation>
-                                               <documentation>Version number 
of the message type  (usable for ISO20022 messages)</documentation>
-                                       </annotation>
-                               </attribute>
-                               <attribute name="format" use="optional">
-                                       <annotation>
-                                               <documentation>Encoding format 
of the message (e.g. XML, ASN1, JSON, PDF)</documentation>
-                                       </annotation>
-                                       <simpleType>
-                                               <restriction 
base="ebics:CodeStringType">
-                                                       <maxLength value="4"/>
-                                               </restriction>
-                                       </simpleType>
-                               </attribute>
-                       </extension>
-               </simpleContent>
-       </complexType>
-       <complexType name="ServiceType">
-               <annotation>
-                       <documentation>Basisdatentyp für BTF-Service Parameter 
Set</documentation>
-               </annotation>
-               <sequence>
-                       <element name="ServiceName" 
type="ebics:ServiceNameStringType" minOccurs="0">
-                               <annotation>
-                                       <documentation>Service Code name: 
External list specified and maintained by EBICS. Basis is the "SWIFT-list" for 
the field "description" (SCT, DCT, XCT, SDD, DDD, STM, REP...) plus additional 
codes needed for further services </documentation>
-                               </annotation>
-                       </element>
-                       <element name="Scope" type="ebics:ScopeStringType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation>Specifies whose rules 
have to be taken into account for the service. This means which market / 
comminity has defined the rules. 
-If the element is absent a global definition for the service is assumed.
-External list specified and maintained by EBICS. In addition the following 
codes may be used:
-2-character ISO country code or a 3-character issuer code (defined by 
EBICS)</documentation>
-                               </annotation>
-                       </element>
-                       <element name="ServiceOption" 
type="ebics:ServiceOptionStringType" minOccurs="0">
-                               <annotation>
-                                       <documentation>Service Option Code
-Additional option for the service (also depends on used scope)</documentation>
-                               </annotation>
-                       </element>
-                       <element name="Container" 
type="ebics:ContainerFlagType" minOccurs="0">
-                               <annotation>
-                                       <documentation>Container flag. If 
present, data is provided/requested in a container format specified in the 
attribute of the flag</documentation>
-                               </annotation>
-                       </element>
-                       <element name="MsgName" type="ebics:MessageType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation>Name of the message, 
e.g. pain.001 or mt101 National message names (issued by DK, CFONB or SIC are 
also allowed)</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <complexType name="RestrictedServiceType">
-               <annotation>
-                       <documentation>Type is arestriction of the generic 
ServiceType, defining the mandatory elements</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:ServiceType">
-                               <sequence>
-                                       <element name="ServiceName" 
type="ebics:ServiceNameStringType">
-                                               <annotation>
-                                                       <documentation>Service 
Code name: External list specified and maintained by EBICS. Basis is the 
"SWIFT-list" for the field "description" (SCT, DCT, XCT, SDD, DDD, STM, REP...) 
plus additional codes needed for further services </documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Scope" 
type="ebics:ScopeStringType" minOccurs="0">
-                                               <annotation>
-                                                       
<documentation>Specifies whose rules have to be taken into account for the 
service. This means which market / comminity has defined the rules. 
-If the element is absent a global definition for the service is assumed.
-External list specified and maintained by EBICS.
-In addition the following codes may be used:        
-2-character ISO country code or a 3-character issuer code (defined by 
EBICS)</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="ServiceOption" 
type="ebics:ServiceOptionStringType" minOccurs="0">
-                                               <annotation>
-                                                       <documentation>Service 
Option Code
-               Additional option for the service (also depends on used 
scope)</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Container" 
type="ebics:ContainerFlagType" minOccurs="0">
-                                               <annotation>
-                                                       
<documentation>Container flag. If present, data is provided/requested in a 
container format specified in the attribute of the flag</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="MsgName" 
type="ebics:MessageType">
-                                               <annotation>
-                                                       <documentation>Name of 
the message, e.g. pain.001 or mt101 National message names (issued by DK, CFONB 
or SIC are also allowed)</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <complexType name="ContainerFlagType">
-               <annotation>
-                       <documentation>Container flag. If present, data is 
provided/requested in a container format specified in the attribute of the 
flag</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:FlagAttribType">
-                               <attribute name="containerType" 
type="ebics:ContainerStringType" use="required">
-                                       <annotation>
-                                               <documentation>Specifies the 
container type  - External Codelist defined by EBICS (starting values: XML, 
ZIP, SVC)</documentation>
-                                       </annotation>
-                               </attribute>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <complexType name="SignatureFlagType">
-               <annotation>
-                       <documentation>Datentyp für BTF Signatur-Flag (ersetzt 
Orderkennzeichen)</documentation>
-               </annotation>
-               <complexContent>
-                       <restriction base="ebics:FlagAttribType">
-                               <attribute name="requestEDS" type="boolean" 
use="optional">
-                                       <annotation>
-                                               <documentation>If present the 
sender desires spooling into EBICS distributed signature queue, only "true" is 
allowed</documentation>
-                                       </annotation>
-                               </attribute>
-                       </restriction>
-               </complexContent>
-       </complexType>
-       <complexType name="UsageOrderType">
-               <annotation>
-                       <documentation>Datentyp zur Kennzeichnung von 
Auftragsartenbeschränkungen</documentation>
-               </annotation>
-               <sequence>
-                       <element name="Service" 
type="ebics:RestrictedServiceType" minOccurs="0" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation>Service Parameter-Sets 
von nicht unterstützten BTF-Auftragsarten</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <!--END BTF-->
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_request_H004.xsd 
b/ebics/src/main/resources/xsd/ebics_request_H004.xsd
deleted file mode 100644
index efae61d9..00000000
--- a/ebics/src/main/resources/xsd/ebics_request_H004.xsd
+++ /dev/null
@@ -1,355 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-               <!-- Mit XMLSpy v2008 rel. 2 (http://www.altova.com) von Sabine 
Wenzel (SIZ Bonn) bearbeitet -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:ebics="urn:org:ebics:H004" 
targetNamespace="urn:org:ebics:H004" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-<annotation>
-       <documentation xml:lang="de">ebics_request_H004.xsd ist das 
EBICS-Protokollschema für Anfragen.</documentation>
-       <documentation xml:lang="en">ebics_request_H004.xsd is the appropriate 
EBICS protocol schema for standard requests.</documentation>
-</annotation>
-<include schemaLocation="ebics_types_H004.xsd"/>
-<include schemaLocation="ebics_orders_H004.xsd"/>
-<import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd"/>
-<element name="ebicsRequest">
-       <annotation>
-               <documentation xml:lang="de">Electronic Banking Internet 
Communication Standard of the EBICS SCRL: Multibankfähige Schnittstelle zur 
internetbasierten Kommunikation.</documentation>
-               <documentation xml:lang="en">Electronic Banking Internet 
Communication Standard der EBICS SCRL: multi-bank capable interface for 
internet-based communication.</documentation>
-       </annotation>
-       <complexType>
-               <sequence>
-                       <element name="header">
-                               <annotation>
-                                       <documentation xml:lang="de">enthält 
die technischen Transaktionsdaten.</documentation>
-                                       <documentation xml:lang="en">contains 
the transaction-driven data.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <sequence>
-                                               <element name="static" 
type="ebics:StaticHeaderType">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">enhält alle festen Headereinträge.</documentation>
-                                                               <documentation 
xml:lang="en">contains the static header entries.</documentation>
-                                                       </annotation>
-                                               </element>
-                                               <element name="mutable" 
type="ebics:MutableHeaderType">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">enthält alle variablen Headereinträge.</documentation>
-                                                               <documentation 
xml:lang="en">contains the mutable header entries.</documentation>
-                                                       </annotation>
-                                               </element>
-                                       </sequence>
-                                       <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                               </complexType>
-                       </element>
-                       <element ref="ebics:AuthSignature"/>
-                       <element name="body">
-                               <annotation>
-                                       <documentation xml:lang="de">enthält 
die Auftragsdaten, EU(s) und weitere Nutzdaten.</documentation>
-                                       <documentation xml:lang="en">contains 
order data, order signature(s) and further data referring to the current 
order.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <sequence>
-                                               <annotation>
-                                                       <documentation 
xml:lang="de"/>
-                                               </annotation>
-                                               <element ref="ds:X509Data" 
minOccurs="0" maxOccurs="0">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">X.509-Daten des Teilnehmers.</documentation>
-                                                               <documentation 
xml:lang="en">X.509 data of the user.</documentation>
-                                                       </annotation>
-                                               </element>
-                                               <choice>
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">Welche Transaktionsphase?</documentation>
-                                                               <documentation 
xml:lang="en">Which transaction phase?</documentation>
-                                                       </annotation>
-                                                       <sequence>
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Initialisierungs- und 
Transferphase.</documentation>
-                                                                       
<documentation xml:lang="en">Initialisation or transfer phase.</documentation>
-                                                               </annotation>
-                                                               <element 
name="PreValidation" minOccurs="0">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Daten zur Vorabprüfung; nur anzugeben in der 
Initialisierungsphase bei Uploads mit Auftragsattribut OZH (EUs + 
Auftragsdaten).</documentation>
-                                                                               
<documentation xml:lang="en">Data sent for pre-validation; mandatory for 
initialisation phase during uploads using order attribute OZH (order 
signature(s) + order data).</documentation>
-                                                                       
</annotation>
-                                                                       
<complexType>
-                                                                               
<complexContent>
-                                                                               
        <extension base="ebics:PreValidationRequestType">
-                                                                               
                <attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                                               
        </extension>
-                                                                               
</complexContent>
-                                                                       
</complexType>
-                                                               </element>
-                                                               <element 
name="DataTransfer" type="ebics:DataTransferRequestType" minOccurs="0">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Transfer von Signatur- bzw. Auftragsdaten; nur bei 
Upload anzugeben.</documentation>
-                                                                               
<documentation xml:lang="en">Transfer of signature or order data; mandatory for 
uploads only.</documentation>
-                                                                       
</annotation>
-                                                               </element>
-                                                       </sequence>
-                                                       <sequence>
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Quittierungsphase nach Download.</documentation>
-                                                                       
<documentation xml:lang="en">Receipt phase after download.</documentation>
-                                                               </annotation>
-                                                               <element 
name="TransferReceipt">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Quittierung des Transfers.</documentation>
-                                                                               
<documentation xml:lang="en">Receipt of transfer.</documentation>
-                                                                       
</annotation>
-                                                                       
<complexType>
-                                                                               
<complexContent>
-                                                                               
        <extension base="ebics:TransferReceiptRequestType">
-                                                                               
                <attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                                               
        </extension>
-                                                                               
</complexContent>
-                                                                       
</complexType>
-                                                               </element>
-                                                       </sequence>
-                                               </choice>
-                                       </sequence>
-                               </complexType>
-                       </element>
-               </sequence>
-               <attributeGroup ref="ebics:VersionAttrGroup"/>
-               <anyAttribute namespace="##targetNamespace" 
processContents="strict"/>
-       </complexType>
-</element>
-<complexType name="StaticHeaderType">
-       <annotation>
-               <documentation xml:lang="de">Datentyp für den statischen 
EBICS-Header.</documentation>
-               <documentation xml:lang="en">Data type for the static EBICS 
header.</documentation>
-       </annotation>
-       <sequence>
-               <element name="HostID" type="ebics:HostIDType">
-                       <annotation>
-                               <documentation xml:lang="de">Hostname des 
Banksystems.</documentation>
-                       </annotation>
-               </element>
-               <choice>
-                       <annotation>
-                               <documentation 
xml:lang="de">Transaktionsphase?</documentation>
-                               <documentation xml:lang="en">Transaction 
phase?</documentation>
-                       </annotation>
-                       <sequence>
-                               <annotation>
-                                       <documentation 
xml:lang="de">Initialisierungsphase.</documentation>
-                                       <documentation 
xml:lang="en">Initialisation phase.</documentation>
-                               </annotation>
-                               <element name="Nonce" type="ebics:NonceType">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients 
einzigartig.</documentation>
-                                               <documentation 
xml:lang="en">Random value, ensures the uniqueness of the client's message 
during initialisation phase.</documentation>
-                                       </annotation>
-                               </element>
-                               <element name="Timestamp" 
type="ebics:TimestampType">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">aktueller Zeitstempel zur Begrenzung der serverseitigen 
Nonce-Speicherung.</documentation>
-                                               <documentation 
xml:lang="en">current timestamp, used to limit storage space for nonces on the 
server.</documentation>
-                                       </annotation>
-                               </element>
-                               <element name="PartnerID" 
type="ebics:PartnerIDType">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Kunden-ID des serverseitig administrierten Kunden.</documentation>
-                                               <documentation xml:lang="en">ID 
of the partner = customer, administered on the server.</documentation>
-                                       </annotation>
-                               </element>
-                               <element name="UserID" type="ebics:UserIDType">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten 
Teilnehmers.</documentation>
-                                               <documentation xml:lang="en">ID 
of the user that is assigned to the given customer, administered on the 
server.</documentation>
-                                       </annotation>
-                               </element>
-                               <element name="SystemID" 
type="ebics:UserIDType" minOccurs="0">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">technische User-ID für Multi-User-Systeme.</documentation>
-                                               <documentation xml:lang="en">ID 
of the system for multi-user systems.</documentation>
-                                       </annotation>
-                               </element>
-                               <element name="Product" nillable="true" 
minOccurs="0">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Kennung des Kundenprodukts bzw. Herstellerkennung oder 
Name.</documentation>
-                                               <documentation 
xml:lang="en">software ID / manufacturer ID / manufacturer's name of the 
customer's software package.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:ProductType">
-                                                               <attribute 
name="Language" type="ebics:LanguageType" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Sprachkennzeichen der Kundenproduktversion (gemäß 
ISO 639).</documentation>
-                                                                               
<documentation xml:lang="en">Language code of the customer's software package 
according to ISO 639.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="InstituteID" type="ebics:InstituteIDType" use="optional">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Kennung des Herausgebers des Kundenprodukts bzw. 
des betreuenden Kreditinstituts.</documentation>
-                                                                               
<documentation xml:lang="en">ID of the manufacturer / financial institute 
providing support for the customer's software package.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                               <element name="OrderDetails" 
type="ebics:StaticHeaderOrderDetailsType">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Auftragsdetails.</documentation>
-                                               <documentation 
xml:lang="en">order details.</documentation>
-                                       </annotation>
-                               </element>
-                               <element name="BankPubKeyDigests">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Hashwerte der erwarteten öffentlichen Schlüssel (Verschlüsselung, 
Signatur, Authentifikation) des Kreditinstituts.</documentation>
-                                               <documentation 
xml:lang="en">Digest values of the expected public keys (authentication, 
encryption, signature) owned by the financial institute.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element 
name="Authentication">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Hashwert des 
Authentifikationsschlüssels.</documentation>
-                                                                       
<documentation xml:lang="en">Digest value of the public authentication 
key.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<simpleContent>
-                                                                               
<extension base="ebics:PubKeyDigestType">
-                                                                               
        <attribute name="Version" type="ebics:AuthenticationVersionType" 
use="required">
-                                                                               
                <annotation>
-                                                                               
                        <documentation xml:lang="de">Version des 
Authentifikationsverfahrens.</documentation>
-                                                                               
                        <documentation xml:lang="en">Version of the algorithm 
used for authentication.</documentation>
-                                                                               
                </annotation>
-                                                                               
        </attribute>
-                                                                               
</extension>
-                                                                       
</simpleContent>
-                                                               </complexType>
-                                                       </element>
-                                                       <element 
name="Encryption">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Hashwert des 
Verschlüsselungsschlüssels.</documentation>
-                                                                       
<documentation xml:lang="en">Digest value of the public encryption 
key.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<simpleContent>
-                                                                               
<extension base="ebics:PubKeyDigestType">
-                                                                               
        <attribute name="Version" type="ebics:EncryptionVersionType" 
use="required">
-                                                                               
                <annotation>
-                                                                               
                        <documentation xml:lang="de">Version des 
Verschlüsselungsverfahrens.</documentation>
-                                                                               
                        <documentation xml:lang="en">Version of the algorithm 
used for encryption.</documentation>
-                                                                               
                </annotation>
-                                                                               
        </attribute>
-                                                                               
</extension>
-                                                                       
</simpleContent>
-                                                               </complexType>
-                                                       </element>
-                                                       <element 
name="Signature" minOccurs="0" maxOccurs="0">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Hashwert des Signaturschlüssels.</documentation>
-                                                                       
<documentation xml:lang="en">Digest value of the public signature 
key.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<simpleContent>
-                                                                               
<extension base="ebics:PubKeyDigestType">
-                                                                               
        <attribute name="Version" type="ebics:SignatureVersionType" 
use="required">
-                                                                               
                <annotation>
-                                                                               
                        <documentation xml:lang="de">Version des 
Signaturverfahrens.</documentation>
-                                                                               
                        <documentation xml:lang="en">Version of the algorithm 
used for signature creation.</documentation>
-                                                                               
                </annotation>
-                                                                               
        </attribute>
-                                                                               
</extension>
-                                                                       
</simpleContent>
-                                                               </complexType>
-                                                       </element>
-                                               </sequence>
-                                       </complexType>
-                               </element>
-                               <element name="SecurityMedium" 
type="ebics:SecurityMediumType">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Angabe des Sicherheitsmediums, das der Kunde 
verwendet.</documentation>
-                                               <documentation 
xml:lang="en">Classification of the security medium used by the 
customer.</documentation>
-                                       </annotation>
-                               </element>
-                               <element name="NumSegments" 
type="ebics:NumSegmentsType" minOccurs="0">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Gesamtsegmentanzahl für diese Transaktion; nur bei Uploads 
anzugeben.</documentation>
-                                               <documentation 
xml:lang="en">Total number of segments for this transaction; mandatory for 
uploads only.</documentation>
-                                       </annotation>
-                               </element>
-                               <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-                       </sequence>
-                       <sequence>
-                               <annotation>
-                                       <documentation xml:lang="de">Transfer- 
und Quittierungsphase.</documentation>
-                                       <documentation xml:lang="en">Transfer 
or receipt phase.</documentation>
-                               </annotation>
-                               <element name="TransactionID" 
type="ebics:TransactionIDType">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">eindeutige, technische Transaktions-ID; wird vom Server 
vergeben.</documentation>
-                                               <documentation 
xml:lang="en">unique transaction ID, provided by the server.</documentation>
-                                       </annotation>
-                               </element>
-                       </sequence>
-               </choice>
-       </sequence>
-</complexType>
-<complexType name="MutableHeaderType">
-       <annotation>
-               <documentation xml:lang="de">Datentyp für den variablen 
EBICS-Header.</documentation>
-               <documentation xml:lang="en">Data type for the mutable EBICS 
header.</documentation>
-       </annotation>
-       <sequence>
-               <element name="TransactionPhase" 
type="ebics:TransactionPhaseType">
-                       <annotation>
-                               <documentation xml:lang="de">Phase, in der sich 
die Transaktion gerade befindet; wird bei jedem Transaktionsschritt vom Client 
gesetzt und vom Server übernommen.</documentation>
-                               <documentation xml:lang="en">Current phase of 
the transaction; this information is provided by the client for each step of 
the transaction, and the server adopts the setting.</documentation>
-                       </annotation>
-               </element>
-               <element name="SegmentNumber" nillable="true" minOccurs="0">
-                       <annotation>
-                               <documentation xml:lang="de">enthält die Nummer 
des aktuellen Segments, welches gerade übertragen oder angefordert wird; nur 
anzugeben bei TransactionPhase=Transfer.</documentation>
-                               <documentation xml:lang="en">contains the 
number of the segment which is currently being transmitted or requested; 
mandatory for transaction phase 'Transfer' only.</documentation>
-                       </annotation>
-                       <complexType>
-                               <simpleContent>
-                                       <extension 
base="ebics:SegmentNumberType">
-                                               <attribute name="lastSegment" 
type="boolean" use="required">
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de">Ist dies das letzte Segment der Übertragung?</documentation>
-                                                               <documentation 
xml:lang="en">Is this segment meant to be the last one regarding this 
transmission?</documentation>
-                                                       </annotation>
-                                               </attribute>
-                                       </extension>
-                               </simpleContent>
-                       </complexType>
-               </element>
-               <any namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded"/>
-       </sequence>
-</complexType>
-<complexType name="StaticHeaderOrderDetailsType">
-       <annotation>
-               <documentation xml:lang="de">Datentyp für Auftragsdetails im 
statischen EBICS-Header.</documentation>
-               <documentation xml:lang="en">Data type for order details stored 
in the static EBICS header.</documentation>
-       </annotation>
-       <sequence>
-               <element name="OrderType">
-                       <annotation>
-                               <documentation 
xml:lang="de">Auftragsart.</documentation>
-                               <documentation xml:lang="en">type code of the 
order.</documentation>
-                       </annotation>
-                       <complexType>
-                               <simpleContent>
-                                       <extension base="ebics:OrderTBaseType"/>
-                               </simpleContent>
-                       </complexType>
-               </element>
-               <element name="OrderID" type="ebics:OrderIDType" minOccurs="0">
-                       <annotation>
-                               <documentation xml:lang="de">Auftragsnummer für 
Sendeaufträge gemäß DFÜ-Abkommen.</documentation>
-                               <documentation xml:lang="en">ID of the (upload) 
order, formatted in accordance with the document "DFÜ-Abkommen".</documentation>
-                       </annotation>
-               </element>
-               <element name="OrderAttribute" type="ebics:OrderAttributeType">
-                       <annotation>
-                               <documentation 
xml:lang="de">Auftragsattribut.</documentation>
-                               <documentation xml:lang="en">attribute 
describing the order contents.</documentation>
-                       </annotation>
-               </element>
-               <element ref="ebics:OrderParams"/>
-       </sequence>
-</complexType>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_request_H005.xsd 
b/ebics/src/main/resources/xsd/ebics_request_H005.xsd
deleted file mode 100644
index dc7ad70a..00000000
--- a/ebics/src/main/resources/xsd/ebics_request_H005.xsd
+++ /dev/null
@@ -1,349 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSpy v2016 sp1 (x64) (http://www.altova.com) by EBICS 
Working Group - March 2017 -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:ebics="urn:org:ebics:H005" 
targetNamespace="urn:org:ebics:H005" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <annotation>
-               <documentation xml:lang="de">ebics_request_H005.xsd ist das 
EBICS-Protokollschema für Anfragen.</documentation>
-               <documentation xml:lang="en">ebics_request_H005.xsd is the 
appropriate EBICS protocol schema for standard requests.</documentation>
-       </annotation>
-       <include schemaLocation="ebics_types_H005.xsd"/>
-       <include schemaLocation="ebics_orders_H005.xsd"/>
-       <import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd"/>
-       <element name="ebicsRequest">
-               <annotation>
-                       <documentation xml:lang="de">Electronic Banking 
Internet Communication Standard of the EBICS SCRL: Multibankfähige 
Schnittstelle zur internetbasierten Kommunikation.</documentation>
-                       <documentation xml:lang="en">Electronic Banking 
Internet Communication Standard der EBICS SCRL: multi-bank capable interface 
for internet-based communication.</documentation>
-               </annotation>
-               <complexType>
-                       <sequence>
-                               <element name="header">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
-                                               <documentation 
xml:lang="en">contains the transaction-driven data.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element name="static" 
type="ebics:StaticHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
-                                                                       
<documentation xml:lang="en">contains the static header entries.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                                       <element name="mutable" 
type="ebics:MutableHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enthält alle variablen 
Headereinträge.</documentation>
-                                                                       
<documentation xml:lang="en">contains the mutable header 
entries.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                               </sequence>
-                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                       </complexType>
-                               </element>
-                               <element ref="ebics:AuthSignature"/>
-                               <element name="body">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die Auftragsdaten, EU(s) und weitere 
Nutzdaten.</documentation>
-                                               <documentation 
xml:lang="en">contains order data, order signature(s) and further data 
referring to the current order.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <annotation>
-                                                               <documentation 
xml:lang="de"/>
-                                                       </annotation>
-                                                       <element 
ref="ds:X509Data" minOccurs="0" maxOccurs="0">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">X.509-Daten des Teilnehmers.</documentation>
-                                                                       
<documentation xml:lang="en">X.509 data of the user.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                                       <choice>
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Welche Transaktionsphase?</documentation>
-                                                                       
<documentation xml:lang="en">Which transaction phase?</documentation>
-                                                               </annotation>
-                                                               <sequence>
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Initialisierungs- und 
Transferphase.</documentation>
-                                                                               
<documentation xml:lang="en">Initialisation or transfer phase.</documentation>
-                                                                       
</annotation>
-                                                                       
<element name="PreValidation" minOccurs="0">
-                                                                               
<annotation>
-                                                                               
        <documentation xml:lang="de">Daten zur Vorabprüfung; nur anzugeben in 
der Initialisierungsphase bei Uploads mit Auftragsattribut OZH (EUs + 
Auftragsdaten).</documentation>
-                                                                               
        <documentation xml:lang="en">Data sent for pre-validation; mandatory 
for initialisation phase during uploads using order attribute OZH (order 
signature(s) + order data).</documentation>
-                                                                               
</annotation>
-                                                                               
<complexType>
-                                                                               
        <complexContent>
-                                                                               
                <extension base="ebics:PreValidationRequestType">
-                                                                               
                        <attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                                               
                </extension>
-                                                                               
        </complexContent>
-                                                                               
</complexType>
-                                                                       
</element>
-                                                                       
<element name="DataTransfer" type="ebics:DataTransferRequestType" minOccurs="0">
-                                                                               
<annotation>
-                                                                               
        <documentation xml:lang="de">Transfer von Signatur- bzw. Auftragsdaten; 
nur bei Upload anzugeben.</documentation>
-                                                                               
        <documentation xml:lang="en">Transfer of signature or order data; 
mandatory for uploads only.</documentation>
-                                                                               
</annotation>
-                                                                       
</element>
-                                                               </sequence>
-                                                               <sequence>
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Quittierungsphase nach Download.</documentation>
-                                                                               
<documentation xml:lang="en">Receipt phase after download.</documentation>
-                                                                       
</annotation>
-                                                                       
<element name="TransferReceipt">
-                                                                               
<annotation>
-                                                                               
        <documentation xml:lang="de">Quittierung des Transfers.</documentation>
-                                                                               
        <documentation xml:lang="en">Receipt of transfer.</documentation>
-                                                                               
</annotation>
-                                                                               
<complexType>
-                                                                               
        <complexContent>
-                                                                               
                <extension base="ebics:TransferReceiptRequestType">
-                                                                               
                        <attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                                               
                </extension>
-                                                                               
        </complexContent>
-                                                                               
</complexType>
-                                                                       
</element>
-                                                               </sequence>
-                                                       </choice>
-                                               </sequence>
-                                       </complexType>
-                               </element>
-                       </sequence>
-                       <attributeGroup ref="ebics:VersionAttrGroup"/>
-                       <anyAttribute namespace="##targetNamespace" 
processContents="strict"/>
-               </complexType>
-       </element>
-       <complexType name="StaticHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
statischen EBICS-Header.</documentation>
-                       <documentation xml:lang="en">Data type for the static 
EBICS header.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="HostID" type="ebics:HostIDType">
-                               <annotation>
-                                       <documentation xml:lang="de">Hostname 
des Banksystems.</documentation>
-                               </annotation>
-                       </element>
-                       <choice>
-                               <annotation>
-                                       <documentation 
xml:lang="de">Transaktionsphase?</documentation>
-                                       <documentation 
xml:lang="en">Transaction phase?</documentation>
-                               </annotation>
-                               <sequence>
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Initialisierungsphase.</documentation>
-                                               <documentation 
xml:lang="en">Initialisation phase.</documentation>
-                                       </annotation>
-                                       <element name="Nonce" 
type="ebics:NonceType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients 
einzigartig.</documentation>
-                                                       <documentation 
xml:lang="en">Random value, ensures the uniqueness of the client's message 
during initialisation phase.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Timestamp" 
type="ebics:TimestampType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">aktueller Zeitstempel zur Begrenzung der serverseitigen 
Nonce-Speicherung.</documentation>
-                                                       <documentation 
xml:lang="en">current timestamp, used to limit storage space for nonces on the 
server.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="PartnerID" 
type="ebics:PartnerIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kunden-ID des serverseitig administrierten Kunden.</documentation>
-                                                       <documentation 
xml:lang="en">ID of the partner = customer, administered on the 
server.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="UserID" 
type="ebics:UserIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten 
Teilnehmers.</documentation>
-                                                       <documentation 
xml:lang="en">ID of the user that is assigned to the given customer, 
administered on the server.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="SystemID" 
type="ebics:UserIDType" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">technische User-ID für Multi-User-Systeme.</documentation>
-                                                       <documentation 
xml:lang="en">ID of the system for multi-user systems.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="Product" nillable="true" 
minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Kennung des Kundenprodukts bzw. Herstellerkennung oder 
Name.</documentation>
-                                                       <documentation 
xml:lang="en">software ID / manufacturer ID / manufacturer's name of the 
customer's software package.</documentation>
-                                               </annotation>
-                                               <complexType>
-                                                       <simpleContent>
-                                                               <extension 
base="ebics:ProductType">
-                                                                       
<attribute name="Language" type="ebics:LanguageType" use="required">
-                                                                               
<annotation>
-                                                                               
        <documentation xml:lang="de">Sprachkennzeichen der Kundenproduktversion 
(gemäß ISO 639).</documentation>
-                                                                               
        <documentation xml:lang="en">Language code of the customer's software 
package according to ISO 639.</documentation>
-                                                                               
</annotation>
-                                                                       
</attribute>
-                                                                       
<attribute name="InstituteID" type="ebics:InstituteIDType" use="optional">
-                                                                               
<annotation>
-                                                                               
        <documentation xml:lang="de">Kennung des Herausgebers des 
Kundenprodukts bzw. des betreuenden Kreditinstituts.</documentation>
-                                                                               
        <documentation xml:lang="en">ID of the manufacturer / financial 
institute providing support for the customer's software package.</documentation>
-                                                                               
</annotation>
-                                                                       
</attribute>
-                                                               </extension>
-                                                       </simpleContent>
-                                               </complexType>
-                                       </element>
-                                       <element name="OrderDetails" 
type="ebics:StaticHeaderOrderDetailsType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Auftragsdetails.</documentation>
-                                                       <documentation 
xml:lang="en">order details.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="BankPubKeyDigests">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Hashwerte der erwarteten öffentlichen Schlüssel (Verschlüsselung, 
Signatur, Authentifikation) des Kreditinstituts.</documentation>
-                                                       <documentation 
xml:lang="en">Digest values of the expected public keys (authentication, 
encryption, signature) owned by the financial institute.</documentation>
-                                               </annotation>
-                                               <complexType>
-                                                       <sequence>
-                                                               <element 
name="Authentication">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Hashwert des 
Authentifikationsschlüssels.</documentation>
-                                                                               
<documentation xml:lang="en">Digest value of the public authentication 
key.</documentation>
-                                                                       
</annotation>
-                                                                       
<complexType>
-                                                                               
<simpleContent>
-                                                                               
        <extension base="ebics:PubKeyDigestType">
-                                                                               
                <attribute name="Version" 
type="ebics:AuthenticationVersionType" use="required">
-                                                                               
                        <annotation>
-                                                                               
                                <documentation xml:lang="de">Version des 
Authentifikationsverfahrens.</documentation>
-                                                                               
                                <documentation xml:lang="en">Version of the 
algorithm used for authentication.</documentation>
-                                                                               
                        </annotation>
-                                                                               
                </attribute>
-                                                                               
        </extension>
-                                                                               
</simpleContent>
-                                                                       
</complexType>
-                                                               </element>
-                                                               <element 
name="Encryption">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Hashwert des 
Verschlüsselungsschlüssels.</documentation>
-                                                                               
<documentation xml:lang="en">Digest value of the public encryption 
key.</documentation>
-                                                                       
</annotation>
-                                                                       
<complexType>
-                                                                               
<simpleContent>
-                                                                               
        <extension base="ebics:PubKeyDigestType">
-                                                                               
                <attribute name="Version" type="ebics:EncryptionVersionType" 
use="required">
-                                                                               
                        <annotation>
-                                                                               
                                <documentation xml:lang="de">Version des 
Verschlüsselungsverfahrens.</documentation>
-                                                                               
                                <documentation xml:lang="en">Version of the 
algorithm used for encryption.</documentation>
-                                                                               
                        </annotation>
-                                                                               
                </attribute>
-                                                                               
        </extension>
-                                                                               
</simpleContent>
-                                                                       
</complexType>
-                                                               </element>
-                                                               <element 
name="Signature" minOccurs="0" maxOccurs="0">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Hashwert des Signaturschlüssels.</documentation>
-                                                                               
<documentation xml:lang="en">Digest value of the public signature 
key.</documentation>
-                                                                       
</annotation>
-                                                                       
<complexType>
-                                                                               
<simpleContent>
-                                                                               
        <extension base="ebics:PubKeyDigestType">
-                                                                               
                <attribute name="Version" type="ebics:SignatureVersionType" 
use="required">
-                                                                               
                        <annotation>
-                                                                               
                                <documentation xml:lang="de">Version des 
Signaturverfahrens.</documentation>
-                                                                               
                                <documentation xml:lang="en">Version of the 
algorithm used for signature creation.</documentation>
-                                                                               
                        </annotation>
-                                                                               
                </attribute>
-                                                                               
        </extension>
-                                                                               
</simpleContent>
-                                                                       
</complexType>
-                                                               </element>
-                                                       </sequence>
-                                               </complexType>
-                                       </element>
-                                       <element name="SecurityMedium" 
type="ebics:SecurityMediumType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Angabe des Sicherheitsmediums, das der Kunde 
verwendet.</documentation>
-                                                       <documentation 
xml:lang="en">Classification of the security medium used by the 
customer.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <element name="NumSegments" 
type="ebics:NumSegmentsType" minOccurs="0">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Gesamtsegmentanzahl für diese Transaktion; nur bei Uploads 
anzugeben.</documentation>
-                                                       <documentation 
xml:lang="en">Total number of segments for this transaction; mandatory for 
uploads only.</documentation>
-                                               </annotation>
-                                       </element>
-                                       <any namespace="##other" 
processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-                               </sequence>
-                               <sequence>
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Transfer- und Quittierungsphase.</documentation>
-                                               <documentation 
xml:lang="en">Transfer or receipt phase.</documentation>
-                                       </annotation>
-                                       <element name="TransactionID" 
type="ebics:TransactionIDType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">eindeutige, technische Transaktions-ID; wird vom Server 
vergeben.</documentation>
-                                                       <documentation 
xml:lang="en">unique transaction ID, provided by the server.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </choice>
-               </sequence>
-       </complexType>
-       <complexType name="MutableHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den variablen 
EBICS-Header.</documentation>
-                       <documentation xml:lang="en">Data type for the mutable 
EBICS header.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="TransactionPhase" 
type="ebics:TransactionPhaseType">
-                               <annotation>
-                                       <documentation xml:lang="de">Phase, in 
der sich die Transaktion gerade befindet; wird bei jedem Transaktionsschritt 
vom Client gesetzt und vom Server übernommen.</documentation>
-                                       <documentation xml:lang="en">Current 
phase of the transaction; this information is provided by the client for each 
step of the transaction, and the server adopts the setting.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SegmentNumber" nillable="true" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">enthält 
die Nummer des aktuellen Segments, welches gerade übertragen oder angefordert 
wird; nur anzugeben bei TransactionPhase=Transfer.</documentation>
-                                       <documentation xml:lang="en">contains 
the number of the segment which is currently being transmitted or requested; 
mandatory for transaction phase 'Transfer' only.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:SegmentNumberType">
-                                                       <attribute 
name="lastSegment" type="boolean" use="required">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Ist dies das letzte Segment der 
Übertragung?</documentation>
-                                                                       
<documentation xml:lang="en">Is this segment meant to be the last one regarding 
this transmission?</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="StaticHeaderOrderDetailsType">
-               <annotation>
-                       <documentation xml:lang="de">//MODIFIED - Removed 
OrderAtribute ELEMENT// Datentyp für Auftragsdetails im statischen 
EBICS-Header.</documentation>
-                       <documentation xml:lang="en">Data type for order 
details stored in the static EBICS header.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="AdminOrderType">
-                               <annotation>
-                                       <documentation xml:lang="de">//MODIFIED 
- Umbenannt von OrderType// Auftragsart.</documentation>
-                                       <documentation xml:lang="en">type code 
of the order.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:OrderTBaseType"/>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="OrderID" type="ebics:OrderIDType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsnummer für Sendeaufträge gemäß 
DFÜ-Abkommen.</documentation>
-                                       <documentation xml:lang="en">ID of the 
(upload) order, formatted in accordance with the document 
"DFÜ-Abkommen".</documentation>
-                               </annotation>
-                       </element>
-                       <element ref="ebics:OrderParams"/>
-               </sequence>
-       </complexType>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_response_H004.xsd 
b/ebics/src/main/resources/xsd/ebics_response_H004.xsd
deleted file mode 100644
index f14ff99b..00000000
--- a/ebics/src/main/resources/xsd/ebics_response_H004.xsd
+++ /dev/null
@@ -1,166 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:ebics="urn:org:ebics:H004" 
targetNamespace="urn:org:ebics:H004" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <annotation>
-               <documentation xml:lang="de">ebics_response_H004.xsd ist das 
EBICS-Protokollschema für Antwortnachrichten.</documentation>
-               <documentation xml:lang="en">ebics_response_H004.xsd is the 
appropriate EBICS protocol schema for standard responses.</documentation>
-       </annotation>
-       <import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd">
-               <annotation>
-                       <documentation 
xml:lang="de">XML-Signature.</documentation>
-               </annotation>
-       </import>
-       <include schemaLocation="ebics_types_H004.xsd"/>
-       <include schemaLocation="ebics_orders_H004.xsd"/>
-       <element name="ebicsResponse">
-               <annotation>
-                       <documentation xml:lang="de">Electronic Banking 
Internet Communication Standard des Zentralen Kreditausschusses (ZKA): 
Multibankfähige Schnittstelle zur internetbasierten 
Kommunikation.</documentation>
-                       <documentation xml:lang="en">Electronic Banking 
Internet Communication Standard of the "Zentraler Kreditausschuss (ZKA)": 
multi-bank capable interface for internet-based communication.</documentation>
-               </annotation>
-               <complexType>
-                       <sequence>
-                               <element name="header">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
-                                               <documentation 
xml:lang="en">contains the transaction-driven data.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element name="static" 
type="ebics:ResponseStaticHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
-                                                                       
<documentation xml:lang="en">contains the static header entries.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                                       <element name="mutable" 
type="ebics:ResponseMutableHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enthält alle variablen 
Headereinträge.</documentation>
-                                                                       
<documentation xml:lang="en">contains the mutable header 
entries.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                               </sequence>
-                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                       </complexType>
-                               </element>
-                               <element ref="ebics:AuthSignature">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Authentifikationssignatur.</documentation>
-                                               <documentation 
xml:lang="en">Authentication signature.</documentation>
-                                       </annotation>
-                               </element>
-                               <element name="body">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die Auftragsdaten, EU(s) und weitere 
Nutzdaten.</documentation>
-                                               <documentation 
xml:lang="en">contains order data, order signature(s) and further data 
referring to the current order.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element 
name="DataTransfer" type="ebics:DataTransferResponseType" minOccurs="0">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Transfer von Auftragsdaten; nur bei Download 
anzugeben.</documentation>
-                                                                       
<documentation xml:lang="en">Transfer of signature or order data; mandatory for 
downloads only.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                                       <element 
name="ReturnCode">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">fachlicher Antwortcode für den vorangegangenen 
Request.</documentation>
-                                                                       
<documentation xml:lang="en">order-related return code of the previous 
request.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<simpleContent>
-                                                                               
<extension base="ebics:ReturnCodeType">
-                                                                               
        <attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                                               
</extension>
-                                                                       
</simpleContent>
-                                                               </complexType>
-                                                       </element>
-                                                       <element 
name="TimestampBankParameter" minOccurs="0">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Zeitstempel der letzten Aktualisierung der 
Bankparameter; nur in der Initialisierungsphase anzugeben.</documentation>
-                                                                       
<documentation xml:lang="en">timestamp indicating the latest update of the bank 
parameters; may be set during initialisation phase only.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<simpleContent>
-                                                                               
<extension base="ebics:TimestampType">
-                                                                               
        <attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                                               
</extension>
-                                                                       
</simpleContent>
-                                                               </complexType>
-                                                       </element>
-                                               </sequence>
-                                       </complexType>
-                               </element>
-                       </sequence>
-                       <attributeGroup ref="ebics:VersionAttrGroup"/>
-                       <anyAttribute namespace="##targetNamespace" 
processContents="strict"/>
-               </complexType>
-       </element>
-       <complexType name="ResponseStaticHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
statischen EBICS-Header.</documentation>
-                       <documentation xml:lang="en">Data type for the static 
EBICS header.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="TransactionID" 
type="ebics:TransactionIDType" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">eindeutige, technische Transaktions-ID; wird vom Server vergeben, 
falls OrderAttribute entweder gleich "OZHNN" oder gleich "DZHNN" ist und falls 
tatsächlich eine Transaktion erzeugt wurde.</documentation>
-                                       <documentation xml:lang="en">unique 
transaction ID, provided by the server if and only if the order attribute is 
set to either "OZHNN" or "DZHNN" and if a transaction has been established 
actually.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="NumSegments" 
type="ebics:SegmentNumberType" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Gesamtsegmentanzahl für diese Transaktion; nur bei Downloads in 
der Initialisierungsphase anzugeben.</documentation>
-                                       <documentation xml:lang="en">Total 
number of segments for this transaction; mandatory for downloads in 
initialisation phase only.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <complexType name="ResponseMutableHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den variablen 
EBICS-Header.</documentation>
-                       <documentation xml:lang="en">Data type for the mutable 
EBICS header.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="TransactionPhase" 
type="ebics:TransactionPhaseType">
-                               <annotation>
-                                       <documentation xml:lang="de">Phase, in 
der sich die Transaktion gerade befindet; wird bei jedem Transaktionsschritt 
vom Client gesetzt und vom Server übernommen.</documentation>
-                                       <documentation xml:lang="en">Current 
phase of the transaction; this information is provided by the client for each 
step of the transaction, and the server adopts the setting.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SegmentNumber" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">enthält 
die Nummer des aktuellen Segments, welches gerade übertragen oder angefordert 
wird; nur anzugeben bei TransactionPhase=Transfer und (bei Download) 
TransactionPhase=Initialisation.</documentation>
-                                       <documentation xml:lang="en">contains 
the number of the segment which is currently being transmitted or requested; 
mandatory for transaction phases 'Transfer' and (for downloads) 
'Initialisation' only.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:SegmentNumberType">
-                                                       <attribute 
name="lastSegment" type="boolean" use="required">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Ist dies das letzte Segment der 
Übertragung?</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="OrderID" type="ebics:OrderIDType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsnummer von Sendeaufträgen gemäß 
DFÜ-Abkommen.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="ReturnCode" type="ebics:ReturnCodeType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Rückmeldung des technischen Status mit einer eindeutigen 
Fehlernummer.</documentation>
-                                       <documentation xml:lang="en">Return 
code indicating the technical status.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="ReportText" type="ebics:ReportTextType">
-                               <annotation>
-                                       <documentation xml:lang="de">Klartext 
der Rückmeldung des technischen Status.</documentation>
-                                       <documentation xml:lang="en">Textual 
interpretation of the returned technical status code.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_response_H005.xsd 
b/ebics/src/main/resources/xsd/ebics_response_H005.xsd
deleted file mode 100644
index 841286b7..00000000
--- a/ebics/src/main/resources/xsd/ebics_response_H005.xsd
+++ /dev/null
@@ -1,167 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSpy v2016 sp1 (x64) (http://www.altova.com) by EBICS 
Working Group - October 2016 -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:ebics="urn:org:ebics:H005" 
targetNamespace="urn:org:ebics:H005" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <annotation>
-               <documentation xml:lang="de">ebics_response_H005.xsd ist das 
EBICS-Protokollschema für Antwortnachrichten.</documentation>
-               <documentation xml:lang="en">ebics_response_H005.xsd is the 
appropriate EBICS protocol schema for standard responses.</documentation>
-       </annotation>
-       <import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd">
-               <annotation>
-                       <documentation 
xml:lang="de">XML-Signature.</documentation>
-               </annotation>
-       </import>
-       <include schemaLocation="ebics_types_H005.xsd"/>
-       <include schemaLocation="ebics_orders_H005.xsd"/>
-       <element name="ebicsResponse">
-               <annotation>
-                       <documentation xml:lang="de">Electronic Banking 
Internet Communication Standard des Zentralen Kreditausschusses (ZKA): 
Multibankfähige Schnittstelle zur internetbasierten 
Kommunikation.</documentation>
-                       <documentation xml:lang="en">Electronic Banking 
Internet Communication Standard of the "Zentraler Kreditausschuss (ZKA)": 
multi-bank capable interface for internet-based communication.</documentation>
-               </annotation>
-               <complexType>
-                       <sequence>
-                               <element name="header">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
-                                               <documentation 
xml:lang="en">contains the transaction-driven data.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element name="static" 
type="ebics:ResponseStaticHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
-                                                                       
<documentation xml:lang="en">contains the static header entries.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                                       <element name="mutable" 
type="ebics:ResponseMutableHeaderType">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">enthält alle variablen 
Headereinträge.</documentation>
-                                                                       
<documentation xml:lang="en">contains the mutable header 
entries.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                               </sequence>
-                                               <attributeGroup 
ref="ebics:AuthenticationMarker"/>
-                                       </complexType>
-                               </element>
-                               <element ref="ebics:AuthSignature">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Authentifikationssignatur.</documentation>
-                                               <documentation 
xml:lang="en">Authentication signature.</documentation>
-                                       </annotation>
-                               </element>
-                               <element name="body">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">enthält die Auftragsdaten, EU(s) und weitere 
Nutzdaten.</documentation>
-                                               <documentation 
xml:lang="en">contains order data, order signature(s) and further data 
referring to the current order.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <sequence>
-                                                       <element 
name="DataTransfer" type="ebics:DataTransferResponseType" minOccurs="0">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Transfer von Auftragsdaten; nur bei Download 
anzugeben.</documentation>
-                                                                       
<documentation xml:lang="en">Transfer of signature or order data; mandatory for 
downloads only.</documentation>
-                                                               </annotation>
-                                                       </element>
-                                                       <element 
name="ReturnCode">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">fachlicher Antwortcode für den vorangegangenen 
Request.</documentation>
-                                                                       
<documentation xml:lang="en">order-related return code of the previous 
request.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<simpleContent>
-                                                                               
<extension base="ebics:ReturnCodeType">
-                                                                               
        <attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                                               
</extension>
-                                                                       
</simpleContent>
-                                                               </complexType>
-                                                       </element>
-                                                       <element 
name="TimestampBankParameter" minOccurs="0">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Zeitstempel der letzten Aktualisierung der 
Bankparameter; nur in der Initialisierungsphase anzugeben.</documentation>
-                                                                       
<documentation xml:lang="en">timestamp indicating the latest update of the bank 
parameters; may be set during initialisation phase only.</documentation>
-                                                               </annotation>
-                                                               <complexType>
-                                                                       
<simpleContent>
-                                                                               
<extension base="ebics:TimestampType">
-                                                                               
        <attributeGroup ref="ebics:AuthenticationMarker"/>
-                                                                               
</extension>
-                                                                       
</simpleContent>
-                                                               </complexType>
-                                                       </element>
-                                               </sequence>
-                                       </complexType>
-                               </element>
-                       </sequence>
-                       <attributeGroup ref="ebics:VersionAttrGroup"/>
-                       <anyAttribute namespace="##targetNamespace" 
processContents="strict"/>
-               </complexType>
-       </element>
-       <complexType name="ResponseStaticHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">//TODO - Modify anotation 
TransactionID// Datentyp für den statischen EBICS-Header.</documentation>
-                       <documentation xml:lang="en">Data type for the static 
EBICS header.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="TransactionID" 
type="ebics:TransactionIDType" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">eindeutige, technische Transaktions-ID; wird vom Server vergeben, 
falls OrderAttribute entweder gleich "OZHNN" oder gleich "DZHNN" ist und falls 
tatsächlich eine Transaktion erzeugt wurde.</documentation>
-                                       <documentation xml:lang="en">unique 
transaction ID, provided by the server if and only if the order attribute is 
set to either "OZHNN" or "DZHNN" and if a transaction has been established 
actually.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="NumSegments" 
type="ebics:SegmentNumberType" minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Gesamtsegmentanzahl für diese Transaktion; nur bei Downloads in 
der Initialisierungsphase anzugeben.</documentation>
-                                       <documentation xml:lang="en">Total 
number of segments for this transaction; mandatory for downloads in 
initialisation phase only.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <complexType name="ResponseMutableHeaderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den variablen 
EBICS-Header.</documentation>
-                       <documentation xml:lang="en">Data type for the mutable 
EBICS header.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="TransactionPhase" 
type="ebics:TransactionPhaseType">
-                               <annotation>
-                                       <documentation xml:lang="de">Phase, in 
der sich die Transaktion gerade befindet; wird bei jedem Transaktionsschritt 
vom Client gesetzt und vom Server übernommen.</documentation>
-                                       <documentation xml:lang="en">Current 
phase of the transaction; this information is provided by the client for each 
step of the transaction, and the server adopts the setting.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SegmentNumber" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">enthält 
die Nummer des aktuellen Segments, welches gerade übertragen oder angefordert 
wird; nur anzugeben bei TransactionPhase=Transfer und (bei Download) 
TransactionPhase=Initialisation.</documentation>
-                                       <documentation xml:lang="en">contains 
the number of the segment which is currently being transmitted or requested; 
mandatory for transaction phases 'Transfer' and (for downloads) 
'Initialisation' only.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:SegmentNumberType">
-                                                       <attribute 
name="lastSegment" type="boolean" use="required">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Ist dies das letzte Segment der 
Übertragung?</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="OrderID" type="ebics:OrderIDType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsnummer von Sendeaufträgen gemäß 
DFÜ-Abkommen.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="ReturnCode" type="ebics:ReturnCodeType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Rückmeldung des technischen Status mit einer eindeutigen 
Fehlernummer.</documentation>
-                                       <documentation xml:lang="en">Return 
code indicating the technical status.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="ReportText" type="ebics:ReportTextType">
-                               <annotation>
-                                       <documentation xml:lang="de">Klartext 
der Rückmeldung des technischen Status.</documentation>
-                                       <documentation xml:lang="en">Textual 
interpretation of the returned technical status code.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_signature_S002.xsd 
b/ebics/src/main/resources/xsd/ebics_signature_S002.xsd
deleted file mode 100644
index 3127faa7..00000000
--- a/ebics/src/main/resources/xsd/ebics_signature_S002.xsd
+++ /dev/null
@@ -1,177 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSpy v2016 sp1 (x64) (http://www.altova.com) by EBICS 
Working Group - October 2016 -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
xmlns:esig="http://www.ebics.org/S002"; 
targetNamespace="http://www.ebics.org/S002"; elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd"/>
-       <annotation>
-               <documentation xml:lang="de">ebics_signature enthält 
Typdefinitionen für elektronische Unterschriften der Versionen A005, A006 und 
folgende.</documentation>
-               <documentation xml:lang="en">ebics_EU contains type definitions 
for electronic signatures: versions A005, A006 and et sqq.</documentation>
-       </annotation>
-       <!-- Elementdefinitionen für die EU. Die XML-Klartext-Struktur wird im 
EBICS-Signaturdatenkontext binär interpretiert.-->
-       <element name="EBICSSignatureData" abstract="true">
-               <annotation>
-                       <documentation xml:lang="de">XML-Strukturen für 
bankfachliche Elektronische Unterschriften (EUs).</documentation>
-                       <documentation xml:lang="en">contains the digital 
signatures.</documentation>
-               </annotation>
-       </element>
-       <element name="UserSignatureData" 
type="esig:UserSignatureDataSigBookType" 
substitutionGroup="esig:EBICSSignatureData">
-               <annotation>
-                       <documentation xml:lang="de">enthält die EUs der 
Teilnehmer.</documentation>
-                       <documentation xml:lang="en">contains the digital 
signatures.</documentation>
-               </annotation>
-       </element>
-       <complexType name="UserSignatureDataSigBookType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Signaturdaten 
des Teilnehmers beim EU-Transfer.</documentation>
-                       <documentation xml:lang="en">Data type for digital 
signature data transferred using EBICS.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="OrderSignatureData" 
type="esig:OrderSignatureDataType" maxOccurs="unbounded">
-                               <annotation>
-                                       <documentation 
xml:lang="de">bankfachliche Elektronische Unterschrift oder 
Transportunterschrift (strukturiertes Format).</documentation>
-                                       <documentation xml:lang="en">Digital 
signature (either autorising an order or applied for transportation), 
structured format.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <simpleType name="OrderSignatureType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
kryptographische Unterschriften.</documentation>
-               </annotation>
-               <restriction base="base64Binary"/>
-       </simpleType>
-       <element name="OrderSignatureData" type="esig:OrderSignatureDataType">
-               <annotation>
-                       <documentation xml:lang="de">bankfachliche 
Elektronische Unterschrift oder Transportunterschrift (strukturiertes 
Format).</documentation>
-                       <documentation xml:lang="en">Digital signature (either 
autorising an order or applied for transportation), structured 
format.</documentation>
-               </annotation>
-       </element>
-       <complexType name="OrderSignatureDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für bankfachliche 
Elektronische Unterschrift oder Transportunterschrift (strukturiertes 
Format).</documentation>
-                       <documentation xml:lang="en">Data type according for a 
digital signature (either autorising an order or applied for transportation), 
structured format.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="SignatureVersion" 
type="esig:SignatureVersionType">
-                               <annotation>
-                                       <documentation xml:lang="de">Version 
des Signaturverfahrens.</documentation>
-                                       <documentation xml:lang="en">Version of 
the algorithm used for signature creation.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SignatureValue" type="base64Binary">
-                               <annotation>
-                                       <documentation xml:lang="de">Digitale 
Signatur.</documentation>
-                                       <documentation xml:lang="en">Digital 
signature.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PartnerID" type="esig:PartnerIDType">
-                               <annotation>
-                                       <documentation xml:lang="de">Kunden-ID 
des Unterzeichners.</documentation>
-                                       <documentation xml:lang="en">Customer 
ID of the signer.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="esig:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                                       <documentation xml:lang="en">User 
ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element ref="ds:X509Data" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Parameter 
zur X.509-Funktionalität</documentation>
-                                       <documentation xml:lang="en">Parameter 
for X509Data</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <simpleType name="PartnerIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Kunden-ID.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="35"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="UserIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Teilnehmer-ID.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="35"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="SignatureVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Versionsnummern zur Elektronischen Unterschrift (EU).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="4"/>
-                       <pattern value="A\d{3}"/>
-               </restriction>
-       </simpleType>
-       <!-- Definitionen für die Uebertragung von oeffentlichen 
Signierschlüsseln. z.B. ueber EBICS mit INI, PUB, HCS.-->
-       <element name="SignaturePubKeyOrderData" 
type="esig:SignaturePubKeyOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Element für Public Key 
Dateien unabhängig von der Auftragsart / Geschäftsvorfall.</documentation>
-               </annotation>
-       </element>
-       <complexType name="SignaturePubKeyOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Public Key 
Dateien unabhängig von der Auftragsart / Geschäftsvorfall.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="SignaturePubKeyInfo" 
type="esig:SignaturePubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Signaturschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PartnerID" type="esig:PartnerIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kunden-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="esig:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <element name="SignaturePubKeyInfo" type="esig:SignaturePubKeyInfoType">
-               <annotation>
-                       <documentation xml:lang="de">öffentlicher 
Signaturschlüssel.</documentation>
-               </annotation>
-       </element>
-       <complexType name="SignaturePubKeyInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für öffentliche 
bankfachliche Schlüssel.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="esig:PubKeyInfoType">
-                               <sequence>
-                                       <element name="SignatureVersion" 
type="esig:SignatureVersionType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Version des EU-Signaturverfahrens.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="PubKeyInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Darstellung eines öffentlichen RSA-Schlüssels als Exponent-Modulus-Kombination 
oder als X509-Zertifikat.</documentation>
-               </annotation>
-               <sequence>
-                       <element ref="ds:X509Data"/>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <simpleType name="TimestampType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Zeitstempel.</documentation>
-               </annotation>
-               <restriction base="dateTime"/>
-       </simpleType>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_signatures.xsd 
b/ebics/src/main/resources/xsd/ebics_signatures.xsd
deleted file mode 100644
index 79abed9b..00000000
--- a/ebics/src/main/resources/xsd/ebics_signatures.xsd
+++ /dev/null
@@ -1,217 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
xmlns:esig="http://www.ebics.org/S001"; 
targetNamespace="http://www.ebics.org/S001"; elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd"/>
-       <annotation>
-               <documentation xml:lang="de">ebics_signature enthält 
Typdefinitionen für elektronische Unterschriften der Versionen A004, A005, A006 
und folgende.</documentation>
-               <documentation xml:lang="en">ebics_EU contains type definitions 
for electronic signatures: versions A005, A006 and et sqq.</documentation>
-       </annotation>
-       <!-- Elementdefinitionen für die EU. Die XML-Klartext-Struktur wird im 
EBICS-Signaturdatenkontext binär interpretiert.-->
-       <element name="EBICSSignatureData" abstract="true">
-               <annotation>
-                       <documentation xml:lang="de">XML-Strukturen für 
bankfachliche Elektronische Unterschriften (EUs).</documentation>
-                       <documentation xml:lang="en">contains the digital 
signatures.</documentation>
-               </annotation>
-       </element>
-       <element name="UserSignatureData" 
type="esig:UserSignatureDataSigBookType" 
substitutionGroup="esig:EBICSSignatureData">
-               <annotation>
-                       <documentation xml:lang="de">enthält die EUs der 
Teilnehmer.</documentation>
-                       <documentation xml:lang="en">contains the digital 
signatures.</documentation>
-               </annotation>
-       </element>
-       <complexType name="UserSignatureDataSigBookType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Signaturdaten 
des Teilnehmers beim EU-Transfer.</documentation>
-                       <documentation xml:lang="en">Data type for digital 
signature data transferred using EBICS.</documentation>
-               </annotation>
-               <sequence>
-                       <choice maxOccurs="unbounded">
-                               <element name="OrderSignature">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">bankfachliche Elektronische Unterschrift oder 
Transportunterschrift (Binärformat).</documentation>
-                                               <documentation 
xml:lang="en">Digital signature (either autorising an order or applied for 
transportation), binary format.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="esig:OrderSignatureType">
-                                                               <attribute 
name="PartnerID" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Kunden-ID des Unterzeichners.</documentation>
-                                                                               
<documentation xml:lang="en">Customer ID of the signer.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                               <element name="OrderSignatureData" 
type="esig:OrderSignatureDataType">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">bankfachliche Elektronische Unterschrift oder 
Transportunterschrift (strukturiertes Format).</documentation>
-                                               <documentation 
xml:lang="en">Digital signature (either autorising an order or applied for 
transportation), structured format.</documentation>
-                                       </annotation>
-                               </element>
-                       </choice>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <simpleType name="OrderSignatureType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
kryptographische Unterschriften.</documentation>
-               </annotation>
-               <restriction base="base64Binary"/>
-       </simpleType>
-       <element name="OrderSignatureData" type="esig:OrderSignatureDataType">
-               <annotation>
-                       <documentation xml:lang="de">bankfachliche 
Elektronische Unterschrift oder Transportunterschrift (strukturiertes 
Format).</documentation>
-                       <documentation xml:lang="en">Digital signature (either 
autorising an order or applied for transportation), structured 
format.</documentation>
-               </annotation>
-       </element>
-       <complexType name="OrderSignatureDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für bankfachliche 
Elektronische Unterschrift oder Transportunterschrift (strukturiertes 
Format).</documentation>
-                       <documentation xml:lang="en">Data type according for a 
digital signature (either autorising an order or applied for transportation), 
structured format.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="SignatureVersion" 
type="esig:SignatureVersionType">
-                               <annotation>
-                                       <documentation xml:lang="de">Version 
des Signaturverfahrens.</documentation>
-                                       <documentation xml:lang="en">Version of 
the algorithm used for signature creation.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="SignatureValue" type="base64Binary">
-                               <annotation>
-                                       <documentation xml:lang="de">Digitale 
Signatur.</documentation>
-                                       <documentation xml:lang="en">Digital 
signature.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PartnerID" type="esig:PartnerIDType">
-                               <annotation>
-                                       <documentation xml:lang="de">Kunden-ID 
des Unterzeichners.</documentation>
-                                       <documentation xml:lang="en">Customer 
ID of the signer.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="esig:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                                       <documentation xml:lang="en">User 
ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element ref="ds:X509Data" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Parameter 
zur X.509-Funktionalität</documentation>
-                                       <documentation xml:lang="en">Parameter 
for X509Data</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-       </complexType>
-       <simpleType name="PartnerIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Kunden-ID.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="35"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="UserIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Teilnehmer-ID.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="35"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="SignatureVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Versionsnummern zur Elektronischen Unterschrift (EU).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="4"/>
-                       <pattern value="A\d{3}"/>
-               </restriction>
-       </simpleType>
-       <!-- Definitionen für die Uebertragung von oeffentlichen 
Signierschlüsseln. z.B. ueber EBICS mit INI, PUB, HCS.-->
-       <element name="SignaturePubKeyOrderData" 
type="esig:SignaturePubKeyOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Element für Public Key 
Dateien unabhängig von der Auftragsart / Geschäftsvorfall.</documentation>
-               </annotation>
-       </element>
-       <complexType name="SignaturePubKeyOrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Public Key 
Dateien unabhängig von der Auftragsart / Geschäftsvorfall.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="SignaturePubKeyInfo" 
type="esig:SignaturePubKeyInfoType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">öffentlicher Signaturschlüssel.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="PartnerID" type="esig:PartnerIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kunden-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <element name="UserID" type="esig:UserIDType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilnehmer-ID.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <element name="SignaturePubKeyInfo" type="esig:SignaturePubKeyInfoType">
-               <annotation>
-                       <documentation xml:lang="de">öffentlicher 
Signaturschlüssel.</documentation>
-               </annotation>
-       </element>
-       <complexType name="SignaturePubKeyInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für öffentliche 
bankfachliche Schlüssel.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="esig:PubKeyInfoType">
-                               <sequence>
-                                       <element name="SignatureVersion" 
type="esig:SignatureVersionType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Version des EU-Signaturverfahrens.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="PubKeyInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Darstellung eines öffentlichen RSA-Schlüssels als Exponent-Modulus-Kombination 
oder als X509-Zertifikat.</documentation>
-               </annotation>
-               <sequence>
-                       <sequence>
-                               <element ref="ds:X509Data" minOccurs="0"/>
-                               <element name="PubKeyValue" 
type="esig:PubKeyValueType">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Darstellung als Exponent-Modulus-Kombination.</documentation>
-                                       </annotation>
-                               </element>
-                       </sequence>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="PubKeyValueType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Exponent-Modulus-Darstellung eines öffentlichen RSA-Schlüssels.</documentation>
-               </annotation>
-               <sequence>
-                       <element ref="ds:RSAKeyValue"/>
-                       <element name="TimeStamp" type="esig:TimestampType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Zeitpunkt 
der Generierung des Schlüssels.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <simpleType name="TimestampType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Zeitstempel.</documentation>
-               </annotation>
-               <restriction base="dateTime"/>
-       </simpleType>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_types_H004.xsd 
b/ebics/src/main/resources/xsd/ebics_types_H004.xsd
deleted file mode 100644
index 461e377d..00000000
--- a/ebics/src/main/resources/xsd/ebics_types_H004.xsd
+++ /dev/null
@@ -1,2426 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Mit XMLSpy v2008 rel. 2 (http://www.altova.com) von Sabine Wenzel (SIZ 
Bonn) bearbeitet -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:esig="http://www.ebics.org/S001"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:ebics="urn:org:ebics:H004" 
targetNamespace="urn:org:ebics:H004" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <import namespace="http://www.ebics.org/S001"; 
schemaLocation="ebics_signatures.xsd"/>
-       <import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd"/>
-       <annotation>
-               <documentation xml:lang="de">ebics_types_H004.xsd enthält 
einfache Typdefinitionen für EBICS.</documentation>
-       </annotation>
-       <simpleType name="ProtocolVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
EBICS-Versionsnummern.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="4"/>
-                       <pattern value="H\d{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="ProtocolRevisionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
EBICS-Revisionsnummern.</documentation>
-               </annotation>
-               <restriction base="positiveInteger">
-                       <maxInclusive value="99"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="EncryptionVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Versionsnummern zur Verschlüsselung.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <pattern value="E\d{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="SignatureVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Versionsnummern zur Elektronischen Unterschrift (EU).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="4"/>
-                       <pattern value="A\d{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="AuthenticationVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Versionsnummern zur Authentifikation.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="4"/>
-                       <pattern value="X\d{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="CryptoVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Versionsnummern zur Verschlüsselung, Signatur und 
Authentifkation.</documentation>
-               </annotation>
-               <union memberTypes="ebics:EncryptionVersionType 
ebics:SignatureVersionType ebics:AuthenticationVersionType"/>
-       </simpleType>
-       <simpleType name="CurrencyBaseType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Währungen 
(Grundtyp).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="3"/>
-                       <pattern value="[A-Z]{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="CurrencyCode">
-               <annotation>
-                       <documentation xml:lang="de">dreistelliger Währungscode 
gemäß ISO 4217.</documentation>
-               </annotation>
-               <restriction base="ebics:CurrencyBaseType">
-                       <length value="3"/>
-                       <enumeration value="AFN">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Afghanistan: Afghani</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ALL">
-                               <annotation>
-                                       <documentation xml:lang="de">Albanien: 
Lek</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AMD">
-                               <annotation>
-                                       <documentation xml:lang="de">Armenien: 
Dram</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ANG">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Niederländische Antillen: Gulden</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AOA">
-                               <annotation>
-                                       <documentation xml:lang="de">Angola: 
Kwanza</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ARS">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Argentinien: Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AUD">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Australien: Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AWG">
-                               <annotation>
-                                       <documentation xml:lang="de">Aruba: 
Florin</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AZM">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Aserbaidschan: Manat</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BAM">
-                               <annotation>
-                                       <documentation xml:lang="de">Bosnien 
und Herzegowina: Konvertible Mark</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BBD">
-                               <annotation>
-                                       <documentation xml:lang="de">Barbados: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BDT">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Bangladesch: Taka</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BGN">
-                               <annotation>
-                                       <documentation xml:lang="de">Bulgarien: 
Lew</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BHD">
-                               <annotation>
-                                       <documentation xml:lang="de">Bahrain: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BMD">
-                               <annotation>
-                                       <documentation xml:lang="de">Bermuda: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BND">
-                               <annotation>
-                                       <documentation xml:lang="de">Brunei: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BOB">
-                               <annotation>
-                                       <documentation xml:lang="de">Bolivien: 
Boliviano</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BRL">
-                               <annotation>
-                                       <documentation xml:lang="de">Brasilien: 
Real</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BSD">
-                               <annotation>
-                                       <documentation xml:lang="de">Bahamas: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BTN">
-                               <annotation>
-                                       <documentation xml:lang="de">Bhutan: 
Ngultrum</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BWP">
-                               <annotation>
-                                       <documentation xml:lang="de">Botswana: 
Pula</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BYR">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Weißrussland (Belarus): Rubel</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BZD">
-                               <annotation>
-                                       <documentation xml:lang="de">Belize: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CAD">
-                               <annotation>
-                                       <documentation xml:lang="de">Kanada: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CDF">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Demokratische Republik Kongo: Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CHF">
-                               <annotation>
-                                       <documentation xml:lang="de">Schweiz: 
Franken</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CLP">
-                               <annotation>
-                                       <documentation xml:lang="de">Chile: 
Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CNY">
-                               <annotation>
-                                       <documentation xml:lang="de">China 
(Volksrepublik): Renminbi Yuan</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="COP">
-                               <annotation>
-                                       <documentation xml:lang="de">Kolumbien: 
Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CRC">
-                               <annotation>
-                                       <documentation xml:lang="de">Costa 
Rica: Colón</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CSD">
-                               <annotation>
-                                       <documentation xml:lang="de">Serbien: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CUP">
-                               <annotation>
-                                       <documentation xml:lang="de">Kuba: 
Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CVE">
-                               <annotation>
-                                       <documentation xml:lang="de">Kap Verde: 
Escudo</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CYP">
-                               <annotation>
-                                       <documentation xml:lang="de">Zypern 
(griechischer Teil): Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CZK">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Tschechien: Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DJV">
-                               <annotation>
-                                       <documentation xml:lang="de">Dschibuti: 
Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DKK">
-                               <annotation>
-                                       <documentation xml:lang="de">Dänemark: 
Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DOP">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Dominikanische Republik: Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DZD">
-                               <annotation>
-                                       <documentation xml:lang="de">Algerien: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ECS">
-                               <annotation>
-                                       <documentation xml:lang="de">Ecuador 
(bis 2000): Sucre</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="EEK">
-                               <annotation>
-                                       <documentation xml:lang="de">Estland: 
Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="EGP">
-                               <annotation>
-                                       <documentation xml:lang="de">Ägypten: 
Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ETB">
-                               <annotation>
-                                       <documentation xml:lang="de">Äthiopien: 
Birr</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="EUR">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Europäische Währungsunion: Euro</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="FJD">
-                               <annotation>
-                                       <documentation xml:lang="de">Fidschi: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="FKP">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Falklandinseln: Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GBP">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Vereinigtes Königreich: Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GEL">
-                               <annotation>
-                                       <documentation xml:lang="de">Georgien: 
Lari</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GHC">
-                               <annotation>
-                                       <documentation xml:lang="de">Ghana: 
Cedi</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GIP">
-                               <annotation>
-                                       <documentation xml:lang="de">Gibraltar: 
Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GMD">
-                               <annotation>
-                                       <documentation xml:lang="de">Gambia: 
Dalasi</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GNF">
-                               <annotation>
-                                       <documentation xml:lang="de">Guinea: 
Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GTQ">
-                               <annotation>
-                                       <documentation xml:lang="de">Guatemala: 
Quetzal</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GYD">
-                               <annotation>
-                                       <documentation xml:lang="de">Guyana: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HKD">
-                               <annotation>
-                                       <documentation xml:lang="de">Hongkong: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HNL">
-                               <annotation>
-                                       <documentation xml:lang="de">Honduras: 
Lempira</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HRK">
-                               <annotation>
-                                       <documentation xml:lang="de">Kroatien: 
Kuna</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HTG">
-                               <annotation>
-                                       <documentation xml:lang="de">Haiti: 
Gourde</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HUF">
-                               <annotation>
-                                       <documentation xml:lang="de">Ungarn: 
Forint</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IDR">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Indonesien: Rupiah</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ILS">
-                               <annotation>
-                                       <documentation xml:lang="de">Israel: 
Schekel</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="INR">
-                               <annotation>
-                                       <documentation xml:lang="de">Indien: 
Rupie</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IQD">
-                               <annotation>
-                                       <documentation xml:lang="de">Irak: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IRR">
-                               <annotation>
-                                       <documentation xml:lang="de">Iran: 
Rial</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ISK">
-                               <annotation>
-                                       <documentation xml:lang="de">Island: 
Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="JMD">
-                               <annotation>
-                                       <documentation xml:lang="de">Jamaika: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="JOD">
-                               <annotation>
-                                       <documentation xml:lang="de">Jordanien: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="JPY">
-                               <annotation>
-                                       <documentation xml:lang="de">Japan: 
Yen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KES">
-                               <annotation>
-                                       <documentation xml:lang="de">Kenia: 
Schilling</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KGS">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kirgisistan: Som</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KHR">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kambodscha: Riel</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KMF">
-                               <annotation>
-                                       <documentation xml:lang="de">Komoren: 
Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KPW">
-                               <annotation>
-                                       <documentation xml:lang="de">Nordkorea: 
Won</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KRW">
-                               <annotation>
-                                       <documentation xml:lang="de">Südkorea: 
Won</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KWD">
-                               <annotation>
-                                       <documentation xml:lang="de">Kuwait: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KYD">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kaimaninseln: Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KZT">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kasachstan: Tenge</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LAK">
-                               <annotation>
-                                       <documentation xml:lang="de">Laos: 
Kip</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LBP">
-                               <annotation>
-                                       <documentation xml:lang="de">Libanon: 
Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LKR">
-                               <annotation>
-                                       <documentation xml:lang="de">Sri Lanka: 
Rupie</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LRD">
-                               <annotation>
-                                       <documentation xml:lang="de">Liberia: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LSL">
-                               <annotation>
-                                       <documentation xml:lang="de">Lesotho: 
Loti</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LTL">
-                               <annotation>
-                                       <documentation xml:lang="de">Litauen: 
Litas</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LVL">
-                               <annotation>
-                                       <documentation xml:lang="de">Lettland: 
Lats</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LYD">
-                               <annotation>
-                                       <documentation xml:lang="de">Libyen: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MAD">
-                               <annotation>
-                                       <documentation xml:lang="de">Marokko: 
Dirham</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MDL">
-                               <annotation>
-                                       <documentation xml:lang="de">Moldawien: 
Leu</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MGF">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Madagaskar: Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MKD">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Mazedonien: Denar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MMK">
-                               <annotation>
-                                       <documentation xml:lang="de">Myanmar: 
Kyat</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MNT">
-                               <annotation>
-                                       <documentation xml:lang="de">Mongolei: 
Tugrik</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MOP">
-                               <annotation>
-                                       <documentation xml:lang="de">Macau: 
Pataca</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MRO">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Mauretanien: Ouguiya</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MTL">
-                               <annotation>
-                                       <documentation xml:lang="de">Malta: 
Lira</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MUR">
-                               <annotation>
-                                       <documentation xml:lang="de">Mauritius: 
Rupie</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MVR">
-                               <annotation>
-                                       <documentation xml:lang="de">Malediven: 
Rufiyaa</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MWK">
-                               <annotation>
-                                       <documentation xml:lang="de">Malawi: 
Kwacha</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MXN">
-                               <annotation>
-                                       <documentation xml:lang="de">Mexiko: 
Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MYR">
-                               <annotation>
-                                       <documentation xml:lang="de">Malaysia: 
Ringgit</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MZM">
-                               <annotation>
-                                       <documentation xml:lang="de">Mosambik: 
Metical</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="NAD">
-                               <annotation>
-                                       <documentation xml:lang="de">Namibia: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="NGN">
-                               <annotation>
-                                       <documentation xml:lang="de">Nigeria: 
Naira</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="NIO">
-                               <annotation>
-                                       <documentation xml:lang="de">Nicaragua: 
Cordoba Oro</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="NOK">
-                               <annotation>
-                                       <documentation xml:lang="de">Norwegen: 
Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="NPR">
-                               <annotation>
-                                       <documentation xml:lang="de">Nepal: 
Rupie</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="NZD">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Neuseeland: Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="OMR">
-                               <annotation>
-                                       <documentation xml:lang="de">Oman: 
Rial</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PAB">
-                               <annotation>
-                                       <documentation xml:lang="de">Panama: 
Balboa</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PEN">
-                               <annotation>
-                                       <documentation xml:lang="de">Peru: 
Nuevo Sol</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PGK">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Papua-Neuguinea: Kina</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PHP">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Philippinen: Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PKR">
-                               <annotation>
-                                       <documentation xml:lang="de">Pakistan: 
Rupie</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PLN">
-                               <annotation>
-                                       <documentation xml:lang="de">Polen: 
Zloty</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PYG">
-                               <annotation>
-                                       <documentation xml:lang="de">Paraguay: 
Guaraní</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="QAR">
-                               <annotation>
-                                       <documentation xml:lang="de">Katar: 
Riyal</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ROL">
-                               <annotation>
-                                       <documentation xml:lang="de">Rumänien: 
Leu</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="RUB">
-                               <annotation>
-                                       <documentation xml:lang="de">Russland: 
Rubel</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="RWF">
-                               <annotation>
-                                       <documentation xml:lang="de">Ruanda: 
Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SAR">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Saudi-Arabien: Riyal</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SBD">
-                               <annotation>
-                                       <documentation xml:lang="de">Salomonen: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SCR">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Seychellen: Rupie</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SDD">
-                               <annotation>
-                                       <documentation xml:lang="de">Sudan: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SEK">
-                               <annotation>
-                                       <documentation xml:lang="de">Schweden: 
Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SGD">
-                               <annotation>
-                                       <documentation xml:lang="de">Singapur: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SHP">
-                               <annotation>
-                                       <documentation xml:lang="de">St. 
Helena: Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SIT">
-                               <annotation>
-                                       <documentation xml:lang="de">Slowenien: 
Tolar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SKK">
-                               <annotation>
-                                       <documentation xml:lang="de">Slowakei: 
Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SLL">
-                               <annotation>
-                                       <documentation xml:lang="de">Sierra 
Leone: Leone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SOS">
-                               <annotation>
-                                       <documentation xml:lang="de">Somalia: 
Schilling</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SRD">
-                               <annotation>
-                                       <documentation xml:lang="de">Suriname: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="STD">
-                               <annotation>
-                                       <documentation xml:lang="de">São Tomé 
und Príncipe: Dobra</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SVC">
-                               <annotation>
-                                       <documentation xml:lang="de">El 
Salvador: Colón</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SYP">
-                               <annotation>
-                                       <documentation xml:lang="de">Syrien: 
Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SZL">
-                               <annotation>
-                                       <documentation xml:lang="de">Swasiland: 
Lilangeni</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="THB">
-                               <annotation>
-                                       <documentation xml:lang="de">Thailand: 
Baht</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TJS">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Tadschikistan: Somoni</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TMM">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Turkmenistan: Manat</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TND">
-                               <annotation>
-                                       <documentation xml:lang="de">Tunesien: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TOP">
-                               <annotation>
-                                       <documentation xml:lang="de">Tonga: 
Pa'anga</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TRL">
-                               <annotation>
-                                       <documentation xml:lang="de">Türkei: 
Lira</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TRY">
-                               <annotation>
-                                       <documentation xml:lang="de">Türkei: 
Neue Lira (ab 2005)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TTD">
-                               <annotation>
-                                       <documentation xml:lang="de">Trinidad 
und Tobago: Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TWD">
-                               <annotation>
-                                       <documentation xml:lang="de">Taiwan: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TZS">
-                               <annotation>
-                                       <documentation xml:lang="de">Tansania: 
Schilling</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="UAH">
-                               <annotation>
-                                       <documentation xml:lang="de">Ukraine: 
Hrywnja</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="UGX">
-                               <annotation>
-                                       <documentation xml:lang="de">Uganda: 
Shilling</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="USD">
-                               <annotation>
-                                       <documentation xml:lang="de">USA: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="UYU">
-                               <annotation>
-                                       <documentation xml:lang="de">Uruguay: 
Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="UZS">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Usbekistan: Sum</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="VEB">
-                               <annotation>
-                                       <documentation xml:lang="de">Venezuela: 
Bolivar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="VND">
-                               <annotation>
-                                       <documentation xml:lang="de">Vietnam: 
Dong</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="VUV">
-                               <annotation>
-                                       <documentation xml:lang="de">Vanuatu: 
Vatu</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="WST">
-                               <annotation>
-                                       <documentation xml:lang="de">Samoa: 
Tala</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="XAF">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zentralafrikanische Wirtschafts- und Währungsunion: 
CFA-Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="XCD">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Ostkaribische Währungsunion: Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="XOF">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Westafrikanische Wirtschafts- und Währungsunion: 
CFA-Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="XPF">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Neukaledonien: CFP-Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="XTS">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Spezialcode für Testzwecke; keine existierende 
Währung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="XXX">
-                               <annotation>
-                                       <documentation xml:lang="de">keine 
Währung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="YER">
-                               <annotation>
-                                       <documentation xml:lang="de">Jemen: 
Rial</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ZAR">
-                               <annotation>
-                                       <documentation xml:lang="de">Südafrika: 
Rand</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ZMK">
-                               <annotation>
-                                       <documentation xml:lang="de">Sambia: 
Kwacha</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ZWD">
-                               <annotation>
-                                       <documentation xml:lang="de">Simbabwe: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <simpleType name="AmountValueType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für einen 
Betragswert (ohne Währung).</documentation>
-               </annotation>
-               <restriction base="decimal">
-                       <totalDigits value="24"/>
-                       <fractionDigits value="4"/>
-               </restriction>
-       </simpleType>
-       <complexType name="AmountType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für einen Betrag 
inkl. Währungscode-Attribut (Default = "EUR").</documentation>
-               </annotation>
-               <simpleContent>
-                       <extension base="ebics:AmountValueType">
-                               <attribute name="Currency" 
type="ebics:CurrencyBaseType" use="optional" default="EUR">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Währungscode, Default="EUR".</documentation>
-                                               <documentation 
xml:lang="en">Currency code, default setting is "EUR".</documentation>
-                                       </annotation>
-                               </attribute>
-                       </extension>
-               </simpleContent>
-       </complexType>
-       <simpleType name="TransactionIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Transaktions-ID.</documentation>
-               </annotation>
-               <restriction base="hexBinary">
-                       <length value="16"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="NonceType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Nonces.</documentation>
-               </annotation>
-               <restriction base="hexBinary">
-                       <length value="16"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="InstituteIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Instituts-ID.</documentation>
-               </annotation>
-               <restriction base="normalizedString">
-                       <maxLength value="64"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="HostIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Host-ID.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="35"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="ProductType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Kundenprodukt-ID.</documentation>
-               </annotation>
-               <restriction base="normalizedString">
-                       <maxLength value="64"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="LanguageType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für das 
Sprachkennzeichen des Kundenprodukts.</documentation>
-               </annotation>
-               <restriction base="language">
-                       <length value="2"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="OrderTBaseType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für allgemeine 
Auftragsarten (Grundtyp).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="3"/>
-                       <pattern value="[A-Z0-9]{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="OrderTListType">
-               <annotation>
-                       <documentation xml:lang="de">Listentyp für allgemeine 
Auftragsarten.</documentation>
-               </annotation>
-               <list itemType="ebics:OrderTBaseType"/>
-       </simpleType>
-       <simpleType name="OrderTType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für zulässige 
Auftragsarten im EBICS-Kontext.</documentation>
-               </annotation>
-               <restriction base="ebics:OrderTBaseType">
-                       <length value="3"/>
-                       <enumeration value="HSA">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden der 
Public Keys für Authentifikation und Verschlüsselung, bankfachlich signiert mit 
FTAM-Signaturschlüssel</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HIA">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden der 
Public Keys zur Authentifikation und zur Verschlüsselung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HPB">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
der Public Keys der Bank</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HCA">
-                               <annotation>
-                                       <documentation xml:lang="de">Ändern der 
Public Keys zur Authentifikation und zur Verschlüsselung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HPD">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Bankparameter für internetbasierten Standard</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HVU">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
VEU Übersicht</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HVD">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
VEU Auftragsdaten (Daten-trägerbegleitzettel)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HVT">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
VEU Auftragsdaten ( Transakti-onsdetails gemäß Parametervorgabe)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HVE">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden EU 
zu bestehendem VEU-Auftrag</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HVS">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
Stornierung für bestehenden VEU-Auftrag</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HKD">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Konfigurationsdaten des Teilnehmers</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HAA">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Übersicht zu abrufbaren Aufträgen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HVU">
-                               <annotation>
-                                       <documentation 
xml:lang="de">VEU-Übersicht abholen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HVD">
-                               <annotation>
-                                       <documentation xml:lang="de">VEU-Status 
abrufen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HVT">
-                               <annotation>
-                                       <documentation 
xml:lang="de">VEU-Transaktion-Details abrufen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HVE">
-                               <annotation>
-                                       <documentation xml:lang="de">EU 
hinzufügen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HVS">
-                               <annotation>
-                                       <documentation 
xml:lang="de">VEU-Stornierung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AAE">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
Importakkreditiv Änderung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AEA">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
Exportakkreditive</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AIA">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
Import-Akkreditive Avisierung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AKA">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Import-Akkreditive</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AWV">
-                               <annotation>
-                                       <documentation 
xml:lang="de">AWV-Meldung senden</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AZM">
-                               <annotation>
-                                       <documentation xml:lang="de">AZV im 
Magnetbandformat senden (Satzlänge variabel)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AZV">
-                               <annotation>
-                                       <documentation xml:lang="de">AZV im 
Diskettenformat senden</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AZ2">
-                               <annotation>
-                                       <documentation xml:lang="de">AZV im 
Magnetbandformat senden (Satzlängenfeld 2 Bytes)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AZ4">
-                               <annotation>
-                                       <documentation xml:lang="de">AZV im 
Magnetbandformat senden (Satzlängenfeld 4 Bytes)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DDG">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Devisenhandelsbestätigung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DHB">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
Devisenhandelsbestätigung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DTE">
-                               <annotation>
-                                       <documentation xml:lang="de">Eilauftrag 
(IZV im DTAUS0-Format) senden</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DTI">
-                               <annotation>
-                                       <documentation xml:lang="de">IZV-Datei 
abholen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DTM">
-                               <annotation>
-                                       <documentation xml:lang="de">MCV-Datei 
abholen (Format analog MCV)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DTV">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zahlungsverkehrsdateien von Service-Rechenzentren 
senden</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DT2">
-                               <annotation>
-                                       <documentation xml:lang="de">MC2-Datei 
abholen (Format analog MC2)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DT4">
-                               <annotation>
-                                       <documentation xml:lang="de">MC4-Datei 
abholen (Format analog MC4)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="EAB">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Exportakkreditive abholen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ECS">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
electronic-cash Lastschriftdatei</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="EDC">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
Maestro-Lastschriftdatei</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="EEA">
-                               <annotation>
-                                       <documentation xml:lang="de">EDIFACT 
abholen ASCII</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="EEZ">
-                               <annotation>
-                                       <documentation xml:lang="de">EDIFACT 
abholen EBCDIC</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="EIB">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Ausführungsanzeige (Exportinkasso) Bank an Kunde 
abholen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="EIK">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
Exportinkassi</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ESA">
-                               <annotation>
-                                       <documentation xml:lang="de">EDIFACT 
senden ASCII</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ESM">
-                               <annotation>
-                                       <documentation 
xml:lang="de">EU-Standardüberweisung (Zahlungsart 13) im Magnetbandformat 
(Satzlängenfeld 4 Bytes)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ESR">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Einreichung von EDIFACT-Lastschriften</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ESZ">
-                               <annotation>
-                                       <documentation xml:lang="de">EDIFACT 
senden EBCDIC</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ESU">
-                               <annotation>
-                                       <documentation 
xml:lang="de">EU-Standardüberweisung (Zahlungsart 13)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="EUE">
-                               <annotation>
-                                       <documentation xml:lang="de">Taggleiche 
grenzüberschreitende Euro-Eilzahlung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GAB">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Garantien</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GAK">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
Garantien</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GKT">
-                               <annotation>
-                                       <documentation 
xml:lang="de">GeldKarte-Umsatz senden (Datenaufbau gemäß 
GeldKarte-Spezifikation)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IDD">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Internationale Lastschriften</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IIB">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Importinkassi</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IIK">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
Importinkassi</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="INT">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Internationaler Zahlungsverkehr</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IZG">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Inlandszahlungsverkehrsauftrag senden (nur 
Gutschriften)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IZL">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Inlandszahlungsverkehrsauftrag senden (nur 
Lastschriften)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IZV">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Inlandszahlungsverkehrsauftrag senden</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MAO">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Magnetband-Datei aus optischer Beleglesung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MCV">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
IZV-Magnetbandformat (Satzlängenfeld 4 Bytes)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MC2">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
IZV-Magnetbandformat (Satzlängenfeld 2 Bytes)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MC4">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
IZV-Magnetbandformat (Satzlänge variabel)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="POZ">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
POZ-Datei</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="RDT">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Rücklastschrift an Kunde</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="RFT">
-                               <annotation>
-                                       <documentation xml:lang="de">Request 
for Transfer</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="STA">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Swift-Tagesauszüge</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="VMK">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
kurzfristige Vormerkposten</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="WPA">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Wertpapierabrechnung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="WPB">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Wertpapierausführungsanzeige</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="WPC">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Depotaufstellung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="WPD">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
sonstige WP-Umsätze</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="INI">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Initialisierung der bankfachlichen EU des 
Teilnehmers.</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PTK">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Kundenprotokoll</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PUB">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
Public Key zur Unterschriftenverifizierung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HCA">
-                               <annotation>
-                                       <documentation xml:lang="de">Änderung 
der Teilnehmerschlüssel für Authentifikation und Verschlüsselung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SPR">
-                               <annotation>
-                                       <documentation xml:lang="de">Sperren 
der Zugangsberechtigung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="VPB">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Public Key der Bank zur Verschlüsselung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="FIN">
-                               <annotation>
-                                       <documentation 
xml:lang="de">EDIFACT-FINPAY senden</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IZS">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Informationen von Zentralstellen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SSP">
-                               <annotation>
-                                       <documentation 
xml:lang="de">ec-Karten-Sperrdatei</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ATA">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Teilausnutzung Importakkreditiv (Kreditinstitut an 
Kunde)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BKA">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsart für elektronische Kontoauszüge</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BZK">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Barzahlungskarte</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DKI">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Devisenkursinformationen abholen (Euro)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DMI">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Devisenmarktinformationen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DSW">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Devisenswapinformationen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ESG">
-                               <annotation>
-                                       <documentation xml:lang="de">ESG-Datei 
für Elektronische Zweitunterschrift abholen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ESP">
-                               <annotation>
-                                       <documentation xml:lang="de">ESP-Datei 
für Elektronische Zweitunterschrift senden</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="FTB">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Abholen/Senden beliebige Datei</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="FTD">
-                               <annotation>
-                                       <documentation xml:lang="de">Freie 
Textdatei senden/abholen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IBK">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Institutsbestätigungsdatei (Komplettbestand)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IBW">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Institutsbestätigungsdatei (Komplettbestand weitere Datei)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IBU">
-                               <annotation>
-                                       <documentation xml:lang="de">Abholen 
Institutsbestätigungsdatei (tägliches Update)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IKK">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
Institutskonten (Komplettbestand begrenzt auf 170 MB)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IKU">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
Institutskonten (tägliches Update)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IKW">
-                               <annotation>
-                                       <documentation xml:lang="de">Senden 
Institutskonten (Komplettbestand weitere Datei)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KTH">
-                               <annotation>
-                                       <documentation xml:lang="de">KTOHIN: 
Automatisiertes Verfahren für die Änderung von Kontonummern und 
Bankleitzahlen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KTR">
-                               <annotation>
-                                       <documentation xml:lang="de">KTORUECK: 
Automatisiertes Verfahren für die Änderung von Kontonummern und Bankleitzahlen 
</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KKZ">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kontenkonzentration und Saldenausgleich</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TST">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Senden/Abholen Testdatei (ASCII)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="UPD">
-                               <annotation>
-                                       <documentation xml:lang="de">Updates 
abholen</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <simpleType name="OrderIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Auftragsnummer lt. DFÜ-Abkommen.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="4"/>
-                       <pattern value="[A-Z][A-Z0-9]{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="OrderAttributeBaseType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für ein einzelnes 
Auftragsattributkennzeichen (Grundtyp).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="5"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="OrderAttributeType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Auftragsattributkennzeichen gemäß DFÜ-Abkommen.</documentation>
-               </annotation>
-               <restriction base="ebics:OrderAttributeBaseType">
-                       <enumeration value="OZHNN">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsdaten mit Unterschrift, ZIP-komprimiert, hybrid 
verschlüsselt</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="UZHNN">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Unterschrift, ZIP-komprimiert, hybrid 
verschlüsselt</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DZHNN">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsdaten ohne Unterschrift, ZIP-komprimiert, hybrid 
verschlüsselt</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <simpleType name="SecurityMediumType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für das 
Sicherheitsmedium.</documentation>
-               </annotation>
-               <restriction base="string">
-                       <length value="4"/>
-                       <pattern value="\d{4}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="SegmentNumberType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Segmentnummer.</documentation>
-               </annotation>
-               <restriction base="positiveInteger">
-                       <totalDigits value="10"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="NumSegmentsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Gesamtsegmentanzahl.</documentation>
-               </annotation>
-               <restriction base="nonNegativeInteger">
-                       <totalDigits value="10"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="NumOrderInfosType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Gesamtanzahl der Einzelauftraginfos.</documentation>
-               </annotation>
-               <restriction base="nonNegativeInteger">
-                       <totalDigits value="10"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="TransactionPhaseType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Transaktionsphase.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <enumeration value="Initialisation">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Transaktionsinitialisierung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Transfer">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsdatentransfer</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Receipt">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Quittungstransfer</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <simpleType name="TimestampType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Zeitstempel.</documentation>
-               </annotation>
-               <restriction base="dateTime"/>
-       </simpleType>
-       <simpleType name="DateType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Datumswerte.</documentation>
-               </annotation>
-               <restriction base="date"/>
-       </simpleType>
-       <simpleType name="UserIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Teilnehmer-ID.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="35"/>
-                       <pattern value="[a-zA-Z0-9,=]{1,35}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="PartnerIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Kunden-ID.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="35"/>
-                       <pattern value="[a-zA-Z0-9,=]{1,35}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="AccountIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Konten-ID.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="64"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="AccountNumberType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Kontonummer (national/international).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="40"/>
-                       <pattern 
value="\d{3,10}|([A-Z]{2}\d{2}[A-Za-z0-9]{3,30})"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="BankCodeType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Bankleitzahl (national/international).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="11"/>
-                       <pattern 
value="\d{8}|([A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?)"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="BankCodePrefixType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für ein 
nationales BLZ-Präfix.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="2"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="NationalAccountNumberType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Kontonummer (freies Format).</documentation>
-               </annotation>
-               <restriction base="normalizedString">
-                       <maxLength value="40"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="NationalBankCodeType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Bankleitzahl (freies Format).</documentation>
-               </annotation>
-               <restriction base="normalizedString">
-                       <maxLength value="30"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="AccountHolderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den Namen des 
Kontoinhabers.</documentation>
-               </annotation>
-               <restriction base="normalizedString"/>
-       </simpleType>
-       <simpleType name="AccountDescriptionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Kontobeschreibung.</documentation>
-               </annotation>
-               <restriction base="normalizedString"/>
-       </simpleType>
-       <complexType name="AccountType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Kontoinformationen.</documentation>
-               </annotation>
-               <sequence>
-                       <choice maxOccurs="2">
-                               <element name="AccountNumber">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Kontonummer (deutsches Format und/oder international als 
IBAN).</documentation>
-                                               <documentation 
xml:lang="en">Account number (German format and/or 
international=IBAN).</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:AccountNumberType">
-                                                               <attribute 
name="international" type="boolean" use="optional" default="false">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Ist die Kontonummer im deutschen Format 
(international=false) oder im internationalen Format (international=true, IBAN) 
angegeben?</documentation>
-                                                                               
<documentation xml:lang="en">Is the account number specified using the 
national=German or the international=IBAN format?</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                               <element name="NationalAccountNumber">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Kontonummer im freien Format.</documentation>
-                                               <documentation 
xml:lang="en">Account in free format.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:NationalAccountNumberType">
-                                                               <attribute 
name="format" type="token" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Formatkennung.</documentation>
-                                                                               
<documentation xml:lang="en">Format identification.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                       </choice>
-                       <choice maxOccurs="2">
-                               <element name="BankCode">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Bankleitzahl (deutsches Format und/oder international als 
SWIFT-BIC).</documentation>
-                                               <documentation 
xml:lang="en">Bank code (German and/or international=SWIFT-BIC).</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:BankCodeType">
-                                                               <attribute 
name="international" type="boolean" use="optional" default="false">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Ist die Bankleitzahl im deutschen Format 
(international=false, BLZ) oder im internationalen Format (international=true, 
SWIFT-BIC) angegeben?</documentation>
-                                                                               
<documentation xml:lang="en">Is the bank code specified using the 
national=German or the international SWIFT-BIC format?</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="Prefix" type="ebics:BankCodePrefixType" use="optional">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">nationales Präfix für 
Bankleitzahlen.</documentation>
-                                                                               
<documentation xml:lang="en">National=German prefix for bank 
codes.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                               <element name="NationalBankCode">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Bankleitzahl im freien Format.</documentation>
-                                               <documentation 
xml:lang="en">Bank code in free format.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:NationalBankCodeType">
-                                                               <attribute 
name="format" type="token" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Formatkennung.</documentation>
-                                                                               
<documentation xml:lang="en">Format identification.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                       </choice>
-                       <element name="AccountHolder" 
type="ebics:AccountHolderType" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Name des 
Kontoinhabers.</documentation>
-                                       <documentation xml:lang="de">Name of 
the account holder.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-               <attribute name="Currency" type="ebics:CurrencyBaseType" 
use="optional" default="EUR">
-                       <annotation>
-                               <documentation xml:lang="de">Währungscode für 
dieses Konto, Default=EUR.</documentation>
-                               <documentation xml:lang="en">Currency code for 
this account, Default=EUR.</documentation>
-                       </annotation>
-               </attribute>
-               <attribute name="Description" 
type="ebics:AccountDescriptionType" use="optional">
-                       <annotation>
-                               <documentation 
xml:lang="de">Kontobeschreibung.</documentation>
-                               <documentation xml:lang="en">Description of 
this account.</documentation>
-                       </annotation>
-               </attribute>
-       </complexType>
-       <simpleType name="AccountNumberRoleType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die Rolle 
eines Zahlungsverkehrskontos innerhalb einer Transaktion.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <enumeration value="Originator">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftraggeberkonto</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Recipient">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Empfängerkonto</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Charges">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Gebührenkonto</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Other">
-                               <annotation>
-                                       <documentation xml:lang="de">andere 
Kontorolle</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <simpleType name="BankCodeRoleType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die Rolle 
eines Kreditinstituts innerhalb einer Transaktion (repräsentiert durch die 
Bankleitzahl).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <enumeration value="Originator">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftraggeberbank</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Recipient">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Empfängerbank</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Correspondent">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Korrespondenzbank</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Other">
-                               <annotation>
-                                       <documentation xml:lang="de">andere 
Bankrolle</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <simpleType name="AccountHolderRoleType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die Rolle 
eines Kontoinhabers innerhalb einer Transaktion.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <enumeration value="Originator">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftraggeber</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Recipient">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Empfänger</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Presenter">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Überbringer, Einreicher</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Other">
-                               <annotation>
-                                       <documentation xml:lang="de">andere 
Rolle</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <complexType name="AttributedAccountType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Kontoinformationen inkl. der Eigenschaftszuordnung innerhalb einer 
Zahlungstransaktion.</documentation>
-               </annotation>
-               <sequence>
-                       <choice maxOccurs="2">
-                               <element name="AccountNumber">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Kontonummer (deutsches Format oder international als 
IBAN).</documentation>
-                                               <documentation 
xml:lang="en">Kontonummer (Account number (German format and/or international = 
IBAN).</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:AccountNumberType">
-                                                               <attribute 
name="Role" type="ebics:AccountNumberRoleType" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Rolle des Kontos innerhalb der 
Zahlungstransaktion.</documentation>
-                                                                               
<documentation xml:lang="en">Role of the account during the 
transaction.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="Description" type="normalizedString">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Textuelle Beschreibung der Funktion, falls 
role=Other ausgewählt wird.</documentation>
-                                                                               
<documentation xml:lang="en">Textual description of the role the account place 
during the transaction; use only if the corresponding 'role' field is set to 
'other'.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="international" type="boolean" use="optional" default="false">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Ist die Kontonummer im deutschen Format 
(international=false) oder im internationalen Format (international=true, IBAN) 
angegeben?</documentation>
-                                                                               
<documentation xml:lang="en">Is the account number specified using the 
national=German or the international=IBAN format?</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                               <element name="NationalAccountNumber">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Kontonummer im freien Format.</documentation>
-                                               <documentation 
xml:lang="en">Account in free format.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:NationalAccountNumberType">
-                                                               <attribute 
name="Role" type="ebics:AccountNumberRoleType" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Rolle des Kontos innerhalb der 
Zahlungstransaktion.</documentation>
-                                                                               
<documentation xml:lang="en">Role of the account during the 
transaction.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="Description" type="normalizedString">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Textuelle Beschreibung der Funktion, falls 
role=Other ausgewählt wird.</documentation>
-                                                                               
<documentation xml:lang="en">Textual description of the role the account place 
during the transaction; use only if the corresponding 'role' field is set to 
'other'.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="format" type="token" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Formatkennung.</documentation>
-                                                                               
<documentation xml:lang="en">Format identification.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                       </choice>
-                       <choice maxOccurs="2">
-                               <element name="BankCode">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Bankleitzahl (deutsches Format oder international als 
SWIFT-BIC).</documentation>
-                                               <documentation 
xml:lang="en">Bank code (German and/or international=SWIFT-BIC).</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:BankCodeType">
-                                                               <attribute 
name="Role" type="ebics:BankCodeRoleType" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Rolle des kontoführenden Instituts innerhalb der 
Zahlungstransaktion.</documentation>
-                                                                               
<documentation xml:lang="en">Role of the bank during the 
transaction.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="Description" type="normalizedString">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Textuelle Beschreibung der Funktion, falls 
role=Other ausgewählt wird.</documentation>
-                                                                               
<documentation xml:lang="en">Textual description of the role the account place 
during the transaction; use only if the corresponding 'role' field is set to 
'other'.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="international" type="boolean" use="optional" default="false">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Ist die Bankleitzahl im deutschen Format 
(international=false, BLZ) oder im internationalen Format (international=true, 
SWIFT-BIC) angegeben?</documentation>
-                                                                               
<documentation xml:lang="en">Is the bank code specified using the 
national=German or the international=SWIFT-BIC format?</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="Prefix" type="ebics:BankCodePrefixType" use="optional">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">nationales Präfix für 
Bankleitzahlen.</documentation>
-                                                                               
<documentation xml:lang="en">National=German prefix for bank 
codes.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                               <element name="NationalBankCode">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Bankleitzahl im freien Format.</documentation>
-                                               <documentation 
xml:lang="en">Bank code in free format.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:NationalBankCodeType">
-                                                               <attribute 
name="Role" type="ebics:BankCodeRoleType" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Rolle des kontoführenden Instituts innerhalb der 
Zahlungstransaktion.</documentation>
-                                                                               
<documentation xml:lang="en">Role of the bank during the 
transaction.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="Description" type="normalizedString">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Textuelle Beschreibung der Funktion, falls 
role=Other ausgewählt wird.</documentation>
-                                                                               
<documentation xml:lang="en">Textual description of the role the account place 
during the transaction; use only if the corresponding 'role' field is set to 
'other'.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="format" type="token" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Formatkennung.</documentation>
-                                                                               
<documentation xml:lang="en">Format identification.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                       </choice>
-                       <element name="AccountHolder" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Name des 
Kontoinhabers.</documentation>
-                                       <documentation xml:lang="de">Name of 
the account holder.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:AccountHolderType">
-                                                       <attribute name="Role" 
type="ebics:AccountHolderRoleType" use="required">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Rolle des Kontoinhabers innerhalb der 
Zahlungstransaktion.</documentation>
-                                                                       
<documentation xml:lang="en">Role of the account holder during the 
transaction.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                                       <attribute 
name="Description" type="normalizedString">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Textuelle Beschreibung der Rolle, falls role=Other 
ausgewählt wird.</documentation>
-                                                                       
<documentation xml:lang="en">Textual description of the role the account holder 
place during the transaction; use only if the corresponding 'role' field is set 
to 'other'.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-               </sequence>
-               <attribute name="Currency" type="ebics:CurrencyBaseType" 
use="optional" default="EUR">
-                       <annotation>
-                               <documentation xml:lang="de">Währungscode für 
dieses Konto, Default=EUR.</documentation>
-                               <documentation xml:lang="en">Currency code for 
this account, Default=EUR.</documentation>
-                       </annotation>
-               </attribute>
-               <attribute name="Description" 
type="ebics:AccountDescriptionType">
-                       <annotation>
-                               <documentation 
xml:lang="de">Kontobeschreibung.</documentation>
-                               <documentation xml:lang="en">Description of 
this account.</documentation>
-                       </annotation>
-               </attribute>
-       </complexType>
-       <simpleType name="SignatureDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für binäre 
Signaturdaten (komprimiert, verschlüsselt und kodiert).</documentation>
-               </annotation>
-               <restriction base="base64Binary"/>
-       </simpleType>
-       <simpleType name="OrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für binäre 
Auftragsdaten (komprimiert, verschlüsselt und kodiert).</documentation>
-               </annotation>
-               <restriction base="base64Binary"/>
-       </simpleType>
-       <simpleType name="CountryCodeType">
-               <annotation>
-                       <documentation xml:lang="de">ISO-Code zur 
Länderkennzeichnung.</documentation>
-                       <documentation xml:lang="en">ISO-Code to identify the 
country.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="2"/>
-                       <pattern value="[A-Z]{2,2}"/>
-               </restriction>
-       </simpleType>
-       <complexType name="FileFormatType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für das 
Dateiformat.</documentation>
-               </annotation>
-               <simpleContent>
-                       <extension base="token">
-                               <attribute name="CountryCode" 
type="ebics:CountryCodeType">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">ISO-Code zur Länderkennzeichnung (EU für Europa)</documentation>
-                                               <documentation 
xml:lang="en">ISO-Code to identify the country (EU for Europe)</documentation>
-                                       </annotation>
-                               </attribute>
-                       </extension>
-               </simpleContent>
-       </complexType>
-       <simpleType name="AuthorisationLevelType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Berechtigungsklassen zur Elektronischen Unterschrift.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="1"/>
-                       <enumeration value="E">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Einzelunterschrift</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="A">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Erstunterschrift</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="B">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zweitunterschrift</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="T">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Transportunterschrift</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <simpleType name="AuthorisationLevelListType">
-               <annotation>
-                       <documentation xml:lang="de">Listentyp für 
Berechtigungsklassen zur Elektronischen Unterschrift.</documentation>
-               </annotation>
-               <list itemType="ebics:AuthorisationLevelType"/>
-       </simpleType>
-       <simpleType name="DigestAlgorithmType">
-               <annotation>
-                       <documentation>Datentyp für 
Hashfunktionen.</documentation>
-               </annotation>
-               <restriction base="anyURI"/>
-       </simpleType>
-       <simpleType name="DigestType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Hashwerte.</documentation>
-               </annotation>
-               <restriction base="ds:DigestValueType"/>
-       </simpleType>
-       <complexType name="DataDigestType">
-               <simpleContent>
-                       <extension base="ebics:DigestType">
-                               <attribute name="SignatureVersion" 
type="ebics:SignatureVersionType" use="optional" default="A004">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Version des Signaturverfahrens.</documentation>
-                                               <documentation 
xml:lang="en">Version of the algorithm used for signature 
creation.</documentation>
-                                       </annotation>
-                               </attribute>
-                       </extension>
-               </simpleContent>
-       </complexType>
-       <simpleType name="SignatureType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
kryptographische Unterschriften.</documentation>
-               </annotation>
-               <restriction base="base64Binary"/>
-       </simpleType>
-       <simpleType name="SymmetricKeyType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für symmetrische 
Schlüssel.</documentation>
-               </annotation>
-               <restriction base="base64Binary"/>
-       </simpleType>
-       <complexType name="PubKeyDigestType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Hashwerte und 
Attribute von öffentlichen Schlüsseln.</documentation>
-               </annotation>
-               <simpleContent>
-                       <extension base="ebics:DigestType">
-                               <attribute name="Algorithm" type="anyURI" 
use="required">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Hashalgorithmus.</documentation>
-                                               <documentation 
xml:lang="en">Name of the used hash algorithm.</documentation>
-                                       </annotation>
-                               </attribute>
-                       </extension>
-               </simpleContent>
-       </complexType>
-       <complexType name="PubKeyValueType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Exponent-Modulus-Darstellung eines öffentlichen RSA-Schlüssels.</documentation>
-               </annotation>
-               <sequence>
-                       <element ref="ds:RSAKeyValue"/>
-                       <element name="TimeStamp" type="ebics:TimestampType" 
minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Zeitpunkt 
der Generierung des Schlüssels.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="PubKeyInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Darstellung eines öffentlichen RSA-Schlüssels als Exponent-Modulus-Kombination 
oder als X509-Zertifikat.</documentation>
-               </annotation>
-               <sequence>
-                       <sequence>
-                               <element ref="ds:X509Data" minOccurs="0"/>
-                               <element name="PubKeyValue" 
type="ebics:PubKeyValueType">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Darstellung als Exponent-Modulus-Kombination.</documentation>
-                                       </annotation>
-                               </element>
-                       </sequence>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="EncryptionPubKeyInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für öffentliche 
Verschlüsselungsschlüssel.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:PubKeyInfoType">
-                               <sequence>
-                                       <element name="EncryptionVersion" 
type="ebics:EncryptionVersionType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Version des Verschlüsselungsverfahrens.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="AuthenticationPubKeyInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für öffentlichen 
Authentfikationsschlüssel.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:PubKeyInfoType">
-                               <sequence>
-                                       <element name="AuthenticationVersion" 
type="ebics:AuthenticationVersionType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Version des Authentifikationsverfahrens.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="SignatureCertificateInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für öffentliche 
bankfachliche Schlüssel.</documentation>
-                       <documentation xml:lang="en">Data type for public 
authorisation (ES) key.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:CertificateInfoType">
-                               <sequence>
-                                       <element name="SignatureVersion" 
type="ebics:SignatureVersionType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Version des EU-Signaturverfahrens.</documentation>
-                                                       <documentation 
xml:lang="en">ES-Version.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="AuthenticationCertificateInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für öffentlichen 
Schlüssel zur Authentisierung.</documentation>
-                       <documentation xml:lang="en">Data type for public for 
identification and authentication.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:CertificateInfoType">
-                               <sequence>
-                                       <element name="AuthenticationVersion" 
type="ebics:AuthenticationVersionType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Version des Authentifikationsverfahrens.</documentation>
-                                                       <documentation 
xml:lang="de">Authentication version.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="EncryptionCertificateInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für öffentlichen 
Verschlüsselungsschlüssel.</documentation>
-                       <documentation xml:lang="en">Data type for encryption 
key.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:CertificateInfoType">
-                               <sequence>
-                                       <element name="EncryptionVersion" 
type="ebics:EncryptionVersionType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Version des Verschlüsselungsverfahrens.</documentation>
-                                                       <documentation 
xml:lang="en">Encryption Version.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="CertificateInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Zertifikate hinsichtlich der "bank-technical signature for authorisation" 
(ES).</documentation>
-                       <documentation xml:lang="en">Data Type for Certificates 
for the bank-technical signature for authorisation (ES)</documentation>
-               </annotation>
-               <sequence>
-                       <element ref="ds:X509Data"/>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <simpleType name="ReturnCodeType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Antwortcodes.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="6"/>
-                       <pattern value="\d{6}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="ReportTextType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
Erklärungstext zum Antwortcode.</documentation>
-               </annotation>
-               <restriction base="normalizedString">
-                       <maxLength value="256"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="ReceiptCodeType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Quittierungscodes.</documentation>
-               </annotation>
-               <restriction base="nonNegativeInteger">
-                       <maxInclusive value="1"/>
-                       <minInclusive value="0"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="NameType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Kunden-, 
Teilnehmer-, Straßen- oder Ortsnamen.</documentation>
-               </annotation>
-               <restriction base="normalizedString"/>
-       </simpleType>
-       <simpleType name="TransferType">
-               <annotation>
-                       <documentation>Datentyp für den Transfertyp 
(Upload/Download).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <enumeration value="Upload">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsdaten werden bei der Anfrage transferiert.</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Download">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsdaten werden bei der Antwort transferiert.</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <simpleType name="OrderDescriptionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Beschreibung von Auftragsarten.</documentation>
-               </annotation>
-               <restriction base="normalizedString">
-                       <maxLength value="128"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="OrderFormatType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für das 
Auftragsformat.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="8"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="UserStatusType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
Teilnehmerstatus.</documentation>
-               </annotation>
-               <restriction base="nonNegativeInteger">
-                       <maxInclusive value="99"/>
-               </restriction>
-       </simpleType>
-       <element name="Parameter">
-               <annotation>
-                       <documentation xml:lang="de">generische 
Schlüssel-Wert-Parameter.</documentation>
-                       <documentation xml:lang="en">Generic key value 
parameters.</documentation>
-               </annotation>
-               <complexType>
-                       <sequence>
-                               <element name="Name" type="token">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Name des Parameters.</documentation>
-                                               <documentation 
xml:lang="en">Name of the parameter (= key).</documentation>
-                                       </annotation>
-                               </element>
-                               <element name="Value">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Wert des Parameters.</documentation>
-                                               <documentation 
xml:lang="en">Value of the parameter.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="anySimpleType">
-                                                               <attribute 
name="Type" type="NCName" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">XML-Typ des Parameterwerts (Vorschlag für default 
ist string).</documentation>
-                                                                               
<documentation xml:lang="en">XML type of the parameter value (Proposal for 
default is string).</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                       </sequence>
-               </complexType>
-       </element>
-       <complexType name="DataEncryptionInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Darstellung von Information zur Verschlüsselung der 
Auftragsdaten.</documentation>
-                       <documentation xml:lang="en">Data type for the 
modelling of information regarding the encryption of signature and order 
data.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="EncryptionPubKeyDigest">
-                               <annotation>
-                                       <documentation xml:lang="de">Hashwert 
des öffentlichen Verschlüsselungsschlüssels des Empfängers der verschlüsselten 
Auftragsdaten.</documentation>
-                                       <documentation xml:lang="en">Hash value 
of the public encryption key owned by the receipient of the encrypted order 
data.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:PubKeyDigestType">
-                                                       <attribute 
name="Version" type="ebics:EncryptionVersionType" use="required">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Version des 
Verschlüsselungsverfahrens.</documentation>
-                                                                       
<documentation xml:lang="en">Version of the encryption method.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="TransactionKey" 
type="ebics:SymmetricKeyType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Asymmetrisch verschlüsselter symmetrischer 
Transaktionsschlüssel.</documentation>
-                                       <documentation xml:lang="en">The 
asymmetrically encrypted symmetric transaction key.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <element name="AuthSignature" type="ds:SignatureType">
-               <annotation>
-                       <documentation 
xml:lang="de">Authentifikationssignatur.</documentation>
-                       <documentation xml:lang="en">Authentication 
signature.</documentation>
-               </annotation>
-       </element>
-</schema>
diff --git a/ebics/src/main/resources/xsd/ebics_types_H005.xsd 
b/ebics/src/main/resources/xsd/ebics_types_H005.xsd
deleted file mode 100644
index ea13f06b..00000000
--- a/ebics/src/main/resources/xsd/ebics_types_H005.xsd
+++ /dev/null
@@ -1,1885 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSpy v2017 sp1 (x64) (http://www.altova.com) by EBICS 
Working Group - March 2017 -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:esig="http://www.ebics.org/S002"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:ebics="urn:org:ebics:H005" 
targetNamespace="urn:org:ebics:H005" elementFormDefault="qualified" 
attributeFormDefault="unqualified" version="1.0">
-       <import namespace="http://www.ebics.org/S002"; 
schemaLocation="ebics_signature_S002.xsd"/>
-       <import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd"/>
-       <annotation>
-               <documentation xml:lang="de">ebics_types_H005.xsd enthält 
einfache Typdefinitionen für EBICS.</documentation>
-       </annotation>
-       <simpleType name="ProtocolVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
EBICS-Versionsnummern.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="4"/>
-                       <pattern value="H\d{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="ProtocolRevisionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
EBICS-Revisionsnummern.</documentation>
-               </annotation>
-               <restriction base="positiveInteger">
-                       <maxInclusive value="99"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="EncryptionVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Versionsnummern zur Verschlüsselung.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <pattern value="E\d{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="SignatureVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Versionsnummern zur Elektronischen Unterschrift (EU).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="4"/>
-                       <pattern value="A\d{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="AuthenticationVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Versionsnummern zur Authentifikation.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="4"/>
-                       <pattern value="X\d{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="CryptoVersionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Versionsnummern zur Verschlüsselung, Signatur und 
Authentifkation.</documentation>
-               </annotation>
-               <union memberTypes="ebics:EncryptionVersionType 
ebics:SignatureVersionType ebics:AuthenticationVersionType"/>
-       </simpleType>
-       <simpleType name="CurrencyBaseType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Währungen 
(Grundtyp).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="3"/>
-                       <pattern value="[A-Z]{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="CurrencyCode">
-               <annotation>
-                       <documentation xml:lang="de">dreistelliger Währungscode 
gemäß ISO 4217.</documentation>
-               </annotation>
-               <restriction base="ebics:CurrencyBaseType">
-                       <length value="3"/>
-                       <enumeration value="AFN">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Afghanistan: Afghani</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ALL">
-                               <annotation>
-                                       <documentation xml:lang="de">Albanien: 
Lek</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AMD">
-                               <annotation>
-                                       <documentation xml:lang="de">Armenien: 
Dram</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ANG">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Niederländische Antillen: Gulden</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AOA">
-                               <annotation>
-                                       <documentation xml:lang="de">Angola: 
Kwanza</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ARS">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Argentinien: Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AUD">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Australien: Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AWG">
-                               <annotation>
-                                       <documentation xml:lang="de">Aruba: 
Florin</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="AZM">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Aserbaidschan: Manat</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BAM">
-                               <annotation>
-                                       <documentation xml:lang="de">Bosnien 
und Herzegowina: Konvertible Mark</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BBD">
-                               <annotation>
-                                       <documentation xml:lang="de">Barbados: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BDT">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Bangladesch: Taka</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BGN">
-                               <annotation>
-                                       <documentation xml:lang="de">Bulgarien: 
Lew</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BHD">
-                               <annotation>
-                                       <documentation xml:lang="de">Bahrain: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BMD">
-                               <annotation>
-                                       <documentation xml:lang="de">Bermuda: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BND">
-                               <annotation>
-                                       <documentation xml:lang="de">Brunei: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BOB">
-                               <annotation>
-                                       <documentation xml:lang="de">Bolivien: 
Boliviano</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BRL">
-                               <annotation>
-                                       <documentation xml:lang="de">Brasilien: 
Real</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BSD">
-                               <annotation>
-                                       <documentation xml:lang="de">Bahamas: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BTN">
-                               <annotation>
-                                       <documentation xml:lang="de">Bhutan: 
Ngultrum</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BWP">
-                               <annotation>
-                                       <documentation xml:lang="de">Botswana: 
Pula</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BYR">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Weißrussland (Belarus): Rubel</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="BZD">
-                               <annotation>
-                                       <documentation xml:lang="de">Belize: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CAD">
-                               <annotation>
-                                       <documentation xml:lang="de">Kanada: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CDF">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Demokratische Republik Kongo: Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CHF">
-                               <annotation>
-                                       <documentation xml:lang="de">Schweiz: 
Franken</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CLP">
-                               <annotation>
-                                       <documentation xml:lang="de">Chile: 
Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CNY">
-                               <annotation>
-                                       <documentation xml:lang="de">China 
(Volksrepublik): Renminbi Yuan</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="COP">
-                               <annotation>
-                                       <documentation xml:lang="de">Kolumbien: 
Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CRC">
-                               <annotation>
-                                       <documentation xml:lang="de">Costa 
Rica: Colón</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CSD">
-                               <annotation>
-                                       <documentation xml:lang="de">Serbien: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CUP">
-                               <annotation>
-                                       <documentation xml:lang="de">Kuba: 
Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CVE">
-                               <annotation>
-                                       <documentation xml:lang="de">Kap Verde: 
Escudo</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CYP">
-                               <annotation>
-                                       <documentation xml:lang="de">Zypern 
(griechischer Teil): Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="CZK">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Tschechien: Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DJV">
-                               <annotation>
-                                       <documentation xml:lang="de">Dschibuti: 
Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DKK">
-                               <annotation>
-                                       <documentation xml:lang="de">Dänemark: 
Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DOP">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Dominikanische Republik: Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="DZD">
-                               <annotation>
-                                       <documentation xml:lang="de">Algerien: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ECS">
-                               <annotation>
-                                       <documentation xml:lang="de">Ecuador 
(bis 2000): Sucre</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="EEK">
-                               <annotation>
-                                       <documentation xml:lang="de">Estland: 
Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="EGP">
-                               <annotation>
-                                       <documentation xml:lang="de">Ägypten: 
Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ETB">
-                               <annotation>
-                                       <documentation xml:lang="de">Äthiopien: 
Birr</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="EUR">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Europäische Währungsunion: Euro</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="FJD">
-                               <annotation>
-                                       <documentation xml:lang="de">Fidschi: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="FKP">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Falklandinseln: Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GBP">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Vereinigtes Königreich: Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GEL">
-                               <annotation>
-                                       <documentation xml:lang="de">Georgien: 
Lari</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GHC">
-                               <annotation>
-                                       <documentation xml:lang="de">Ghana: 
Cedi</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GIP">
-                               <annotation>
-                                       <documentation xml:lang="de">Gibraltar: 
Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GMD">
-                               <annotation>
-                                       <documentation xml:lang="de">Gambia: 
Dalasi</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GNF">
-                               <annotation>
-                                       <documentation xml:lang="de">Guinea: 
Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GTQ">
-                               <annotation>
-                                       <documentation xml:lang="de">Guatemala: 
Quetzal</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="GYD">
-                               <annotation>
-                                       <documentation xml:lang="de">Guyana: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HKD">
-                               <annotation>
-                                       <documentation xml:lang="de">Hongkong: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HNL">
-                               <annotation>
-                                       <documentation xml:lang="de">Honduras: 
Lempira</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HRK">
-                               <annotation>
-                                       <documentation xml:lang="de">Kroatien: 
Kuna</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HTG">
-                               <annotation>
-                                       <documentation xml:lang="de">Haiti: 
Gourde</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="HUF">
-                               <annotation>
-                                       <documentation xml:lang="de">Ungarn: 
Forint</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IDR">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Indonesien: Rupiah</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ILS">
-                               <annotation>
-                                       <documentation xml:lang="de">Israel: 
Schekel</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="INR">
-                               <annotation>
-                                       <documentation xml:lang="de">Indien: 
Rupie</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IQD">
-                               <annotation>
-                                       <documentation xml:lang="de">Irak: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="IRR">
-                               <annotation>
-                                       <documentation xml:lang="de">Iran: 
Rial</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ISK">
-                               <annotation>
-                                       <documentation xml:lang="de">Island: 
Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="JMD">
-                               <annotation>
-                                       <documentation xml:lang="de">Jamaika: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="JOD">
-                               <annotation>
-                                       <documentation xml:lang="de">Jordanien: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="JPY">
-                               <annotation>
-                                       <documentation xml:lang="de">Japan: 
Yen</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KES">
-                               <annotation>
-                                       <documentation xml:lang="de">Kenia: 
Schilling</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KGS">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kirgisistan: Som</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KHR">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kambodscha: Riel</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KMF">
-                               <annotation>
-                                       <documentation xml:lang="de">Komoren: 
Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KPW">
-                               <annotation>
-                                       <documentation xml:lang="de">Nordkorea: 
Won</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KRW">
-                               <annotation>
-                                       <documentation xml:lang="de">Südkorea: 
Won</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KWD">
-                               <annotation>
-                                       <documentation xml:lang="de">Kuwait: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KYD">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kaimaninseln: Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="KZT">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Kasachstan: Tenge</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LAK">
-                               <annotation>
-                                       <documentation xml:lang="de">Laos: 
Kip</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LBP">
-                               <annotation>
-                                       <documentation xml:lang="de">Libanon: 
Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LKR">
-                               <annotation>
-                                       <documentation xml:lang="de">Sri Lanka: 
Rupie</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LRD">
-                               <annotation>
-                                       <documentation xml:lang="de">Liberia: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LSL">
-                               <annotation>
-                                       <documentation xml:lang="de">Lesotho: 
Loti</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LTL">
-                               <annotation>
-                                       <documentation xml:lang="de">Litauen: 
Litas</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LVL">
-                               <annotation>
-                                       <documentation xml:lang="de">Lettland: 
Lats</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="LYD">
-                               <annotation>
-                                       <documentation xml:lang="de">Libyen: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MAD">
-                               <annotation>
-                                       <documentation xml:lang="de">Marokko: 
Dirham</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MDL">
-                               <annotation>
-                                       <documentation xml:lang="de">Moldawien: 
Leu</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MGF">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Madagaskar: Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MKD">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Mazedonien: Denar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MMK">
-                               <annotation>
-                                       <documentation xml:lang="de">Myanmar: 
Kyat</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MNT">
-                               <annotation>
-                                       <documentation xml:lang="de">Mongolei: 
Tugrik</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MOP">
-                               <annotation>
-                                       <documentation xml:lang="de">Macau: 
Pataca</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MRO">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Mauretanien: Ouguiya</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MTL">
-                               <annotation>
-                                       <documentation xml:lang="de">Malta: 
Lira</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MUR">
-                               <annotation>
-                                       <documentation xml:lang="de">Mauritius: 
Rupie</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MVR">
-                               <annotation>
-                                       <documentation xml:lang="de">Malediven: 
Rufiyaa</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MWK">
-                               <annotation>
-                                       <documentation xml:lang="de">Malawi: 
Kwacha</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MXN">
-                               <annotation>
-                                       <documentation xml:lang="de">Mexiko: 
Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MYR">
-                               <annotation>
-                                       <documentation xml:lang="de">Malaysia: 
Ringgit</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="MZM">
-                               <annotation>
-                                       <documentation xml:lang="de">Mosambik: 
Metical</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="NAD">
-                               <annotation>
-                                       <documentation xml:lang="de">Namibia: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="NGN">
-                               <annotation>
-                                       <documentation xml:lang="de">Nigeria: 
Naira</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="NIO">
-                               <annotation>
-                                       <documentation xml:lang="de">Nicaragua: 
Cordoba Oro</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="NOK">
-                               <annotation>
-                                       <documentation xml:lang="de">Norwegen: 
Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="NPR">
-                               <annotation>
-                                       <documentation xml:lang="de">Nepal: 
Rupie</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="NZD">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Neuseeland: Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="OMR">
-                               <annotation>
-                                       <documentation xml:lang="de">Oman: 
Rial</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PAB">
-                               <annotation>
-                                       <documentation xml:lang="de">Panama: 
Balboa</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PEN">
-                               <annotation>
-                                       <documentation xml:lang="de">Peru: 
Nuevo Sol</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PGK">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Papua-Neuguinea: Kina</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PHP">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Philippinen: Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PKR">
-                               <annotation>
-                                       <documentation xml:lang="de">Pakistan: 
Rupie</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PLN">
-                               <annotation>
-                                       <documentation xml:lang="de">Polen: 
Zloty</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="PYG">
-                               <annotation>
-                                       <documentation xml:lang="de">Paraguay: 
Guaraní</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="QAR">
-                               <annotation>
-                                       <documentation xml:lang="de">Katar: 
Riyal</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ROL">
-                               <annotation>
-                                       <documentation xml:lang="de">Rumänien: 
Leu</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="RUB">
-                               <annotation>
-                                       <documentation xml:lang="de">Russland: 
Rubel</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="RWF">
-                               <annotation>
-                                       <documentation xml:lang="de">Ruanda: 
Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SAR">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Saudi-Arabien: Riyal</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SBD">
-                               <annotation>
-                                       <documentation xml:lang="de">Salomonen: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SCR">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Seychellen: Rupie</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SDD">
-                               <annotation>
-                                       <documentation xml:lang="de">Sudan: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SEK">
-                               <annotation>
-                                       <documentation xml:lang="de">Schweden: 
Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SGD">
-                               <annotation>
-                                       <documentation xml:lang="de">Singapur: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SHP">
-                               <annotation>
-                                       <documentation xml:lang="de">St. 
Helena: Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SIT">
-                               <annotation>
-                                       <documentation xml:lang="de">Slowenien: 
Tolar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SKK">
-                               <annotation>
-                                       <documentation xml:lang="de">Slowakei: 
Krone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SLL">
-                               <annotation>
-                                       <documentation xml:lang="de">Sierra 
Leone: Leone</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SOS">
-                               <annotation>
-                                       <documentation xml:lang="de">Somalia: 
Schilling</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SRD">
-                               <annotation>
-                                       <documentation xml:lang="de">Suriname: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="STD">
-                               <annotation>
-                                       <documentation xml:lang="de">São Tomé 
und Príncipe: Dobra</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SVC">
-                               <annotation>
-                                       <documentation xml:lang="de">El 
Salvador: Colón</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SYP">
-                               <annotation>
-                                       <documentation xml:lang="de">Syrien: 
Pfund</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="SZL">
-                               <annotation>
-                                       <documentation xml:lang="de">Swasiland: 
Lilangeni</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="THB">
-                               <annotation>
-                                       <documentation xml:lang="de">Thailand: 
Baht</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TJS">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Tadschikistan: Somoni</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TMM">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Turkmenistan: Manat</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TND">
-                               <annotation>
-                                       <documentation xml:lang="de">Tunesien: 
Dinar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TOP">
-                               <annotation>
-                                       <documentation xml:lang="de">Tonga: 
Pa'anga</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TRL">
-                               <annotation>
-                                       <documentation xml:lang="de">Türkei: 
Lira</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TRY">
-                               <annotation>
-                                       <documentation xml:lang="de">Türkei: 
Neue Lira (ab 2005)</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TTD">
-                               <annotation>
-                                       <documentation xml:lang="de">Trinidad 
und Tobago: Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TWD">
-                               <annotation>
-                                       <documentation xml:lang="de">Taiwan: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="TZS">
-                               <annotation>
-                                       <documentation xml:lang="de">Tansania: 
Schilling</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="UAH">
-                               <annotation>
-                                       <documentation xml:lang="de">Ukraine: 
Hrywnja</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="UGX">
-                               <annotation>
-                                       <documentation xml:lang="de">Uganda: 
Shilling</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="USD">
-                               <annotation>
-                                       <documentation xml:lang="de">USA: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="UYU">
-                               <annotation>
-                                       <documentation xml:lang="de">Uruguay: 
Peso</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="UZS">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Usbekistan: Sum</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="VEB">
-                               <annotation>
-                                       <documentation xml:lang="de">Venezuela: 
Bolivar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="VND">
-                               <annotation>
-                                       <documentation xml:lang="de">Vietnam: 
Dong</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="VUV">
-                               <annotation>
-                                       <documentation xml:lang="de">Vanuatu: 
Vatu</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="WST">
-                               <annotation>
-                                       <documentation xml:lang="de">Samoa: 
Tala</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="XAF">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zentralafrikanische Wirtschafts- und Währungsunion: 
CFA-Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="XCD">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Ostkaribische Währungsunion: Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="XOF">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Westafrikanische Wirtschafts- und Währungsunion: 
CFA-Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="XPF">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Neukaledonien: CFP-Franc</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="XTS">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Spezialcode für Testzwecke; keine existierende 
Währung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="XXX">
-                               <annotation>
-                                       <documentation xml:lang="de">keine 
Währung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="YER">
-                               <annotation>
-                                       <documentation xml:lang="de">Jemen: 
Rial</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ZAR">
-                               <annotation>
-                                       <documentation xml:lang="de">Südafrika: 
Rand</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ZMK">
-                               <annotation>
-                                       <documentation xml:lang="de">Sambia: 
Kwacha</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="ZWD">
-                               <annotation>
-                                       <documentation xml:lang="de">Simbabwe: 
Dollar</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <simpleType name="AmountValueType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für einen 
Betragswert (ohne Währung).</documentation>
-               </annotation>
-               <restriction base="decimal">
-                       <totalDigits value="24"/>
-                       <fractionDigits value="4"/>
-               </restriction>
-       </simpleType>
-       <complexType name="AmountType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für einen Betrag 
inkl. Währungscode-Attribut (Default = "EUR").</documentation>
-               </annotation>
-               <simpleContent>
-                       <extension base="ebics:AmountValueType">
-                               <attribute name="Currency" 
type="ebics:CurrencyBaseType" use="optional" default="EUR">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Währungscode, Default="EUR".</documentation>
-                                               <documentation 
xml:lang="en">Currency code, default setting is "EUR".</documentation>
-                                       </annotation>
-                               </attribute>
-                       </extension>
-               </simpleContent>
-       </complexType>
-       <simpleType name="TransactionIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Transaktions-ID.</documentation>
-               </annotation>
-               <restriction base="hexBinary">
-                       <length value="16"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="NonceType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Nonces.</documentation>
-               </annotation>
-               <restriction base="hexBinary">
-                       <length value="16"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="InstituteIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Instituts-ID.</documentation>
-               </annotation>
-               <restriction base="normalizedString">
-                       <maxLength value="64"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="HostIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Host-ID.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="35"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="ProductType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Kundenprodukt-ID.</documentation>
-               </annotation>
-               <restriction base="normalizedString">
-                       <maxLength value="64"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="LanguageType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für das 
Sprachkennzeichen des Kundenprodukts.</documentation>
-               </annotation>
-               <restriction base="language">
-                       <length value="2"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="OrderTBaseType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für allgemeine 
Auftragsarten (Grundtyp).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="3"/>
-                       <pattern value="[A-Z0-9]{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="OrderIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Auftragsnummer lt. DFÜ-Abkommen.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="4"/>
-                       <pattern value="[A-Z][A-Z0-9]{3}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="SecurityMediumType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für das 
Sicherheitsmedium.</documentation>
-               </annotation>
-               <restriction base="string">
-                       <length value="4"/>
-                       <pattern value="\d{4}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="SegmentNumberType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Segmentnummer.</documentation>
-               </annotation>
-               <restriction base="positiveInteger">
-                       <totalDigits value="10"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="NumSegmentsType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Gesamtsegmentanzahl.</documentation>
-               </annotation>
-               <restriction base="nonNegativeInteger">
-                       <totalDigits value="10"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="NumOrderInfosType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Gesamtanzahl der Einzelauftraginfos.</documentation>
-               </annotation>
-               <restriction base="nonNegativeInteger">
-                       <totalDigits value="10"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="TransactionPhaseType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Transaktionsphase.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <enumeration value="Initialisation">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Transaktionsinitialisierung</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Transfer">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftragsdatentransfer</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Receipt">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Quittungstransfer</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <simpleType name="TimestampType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Zeitstempel.</documentation>
-               </annotation>
-               <restriction base="dateTime"/>
-       </simpleType>
-       <simpleType name="DateType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Datumswerte.</documentation>
-               </annotation>
-               <restriction base="date"/>
-       </simpleType>
-       <simpleType name="UserIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Teilnehmer-ID.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="35"/>
-                       <pattern value="[a-zA-Z0-9,=]{1,35}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="PartnerIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Kunden-ID.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="35"/>
-                       <pattern value="[a-zA-Z0-9,=]{1,35}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="AccountIDType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Konten-ID.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="64"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="AccountNumberType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Kontonummer (national/international).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="40"/>
-                       <pattern 
value="\d{3,10}|([A-Z]{2}\d{2}[A-Za-z0-9]{3,30})"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="BankCodeType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Bankleitzahl (national/international).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <maxLength value="11"/>
-                       <pattern 
value="\d{8}|([A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?)"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="BankCodePrefixType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für ein 
nationales BLZ-Präfix.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="2"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="NationalAccountNumberType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Kontonummer (freies Format).</documentation>
-               </annotation>
-               <restriction base="normalizedString">
-                       <maxLength value="40"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="NationalBankCodeType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für eine 
Bankleitzahl (freies Format).</documentation>
-               </annotation>
-               <restriction base="normalizedString">
-                       <maxLength value="30"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="AccountHolderType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den Namen des 
Kontoinhabers.</documentation>
-               </annotation>
-               <restriction base="normalizedString"/>
-       </simpleType>
-       <simpleType name="AccountDescriptionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Kontobeschreibung.</documentation>
-               </annotation>
-               <restriction base="normalizedString"/>
-       </simpleType>
-       <complexType name="AccountType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Kontoinformationen.</documentation>
-               </annotation>
-               <sequence>
-                       <choice maxOccurs="2">
-                               <element name="AccountNumber">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Kontonummer (deutsches Format und/oder international als 
IBAN).</documentation>
-                                               <documentation 
xml:lang="en">Account number (German format and/or 
international=IBAN).</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:AccountNumberType">
-                                                               <attribute 
name="international" type="boolean" use="optional" default="false">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Ist die Kontonummer im deutschen Format 
(international=false) oder im internationalen Format (international=true, IBAN) 
angegeben?</documentation>
-                                                                               
<documentation xml:lang="en">Is the account number specified using the 
national=German or the international=IBAN format?</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                               <element name="NationalAccountNumber">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Kontonummer im freien Format.</documentation>
-                                               <documentation 
xml:lang="en">Account in free format.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:NationalAccountNumberType">
-                                                               <attribute 
name="format" type="token" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Formatkennung.</documentation>
-                                                                               
<documentation xml:lang="en">Format identification.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                       </choice>
-                       <choice minOccurs="0" maxOccurs="2">
-                               <element name="BankCode">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Bankleitzahl (deutsches Format und/oder international als 
SWIFT-BIC).</documentation>
-                                               <documentation 
xml:lang="en">Bank code (German and/or international=SWIFT-BIC).</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:BankCodeType">
-                                                               <attribute 
name="international" type="boolean" use="optional" default="false">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Ist die Bankleitzahl im deutschen Format 
(international=false, BLZ) oder im internationalen Format (international=true, 
SWIFT-BIC) angegeben?</documentation>
-                                                                               
<documentation xml:lang="en">Is the bank code specified using the 
national=German or the international SWIFT-BIC format?</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="Prefix" type="ebics:BankCodePrefixType" use="optional">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">nationales Präfix für 
Bankleitzahlen.</documentation>
-                                                                               
<documentation xml:lang="en">National=German prefix for bank 
codes.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                               <element name="NationalBankCode">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Bankleitzahl im freien Format.</documentation>
-                                               <documentation 
xml:lang="en">Bank code in free format.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:NationalBankCodeType">
-                                                               <attribute 
name="format" type="token" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Formatkennung.</documentation>
-                                                                               
<documentation xml:lang="en">Format identification.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                       </choice>
-                       <element name="AccountHolder" 
type="ebics:AccountHolderType" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Name des 
Kontoinhabers.</documentation>
-                                       <documentation xml:lang="de">Name of 
the account holder.</documentation>
-                               </annotation>
-                       </element>
-               </sequence>
-               <attribute name="Currency" type="ebics:CurrencyBaseType" 
use="optional" default="EUR">
-                       <annotation>
-                               <documentation xml:lang="de">Währungscode für 
dieses Konto, Default=EUR.</documentation>
-                               <documentation xml:lang="en">Currency code for 
this account, Default=EUR.</documentation>
-                       </annotation>
-               </attribute>
-               <attribute name="Description" 
type="ebics:AccountDescriptionType" use="optional">
-                       <annotation>
-                               <documentation 
xml:lang="de">Kontobeschreibung.</documentation>
-                               <documentation xml:lang="en">Description of 
this account.</documentation>
-                       </annotation>
-               </attribute>
-       </complexType>
-       <simpleType name="AccountNumberRoleType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die Rolle 
eines Zahlungsverkehrskontos innerhalb einer Transaktion.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <enumeration value="Originator">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftraggeberkonto</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Recipient">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Empfängerkonto</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Charges">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Gebührenkonto</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Other">
-                               <annotation>
-                                       <documentation xml:lang="de">andere 
Kontorolle</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <simpleType name="BankCodeRoleType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die Rolle 
eines Kreditinstituts innerhalb einer Transaktion (repräsentiert durch die 
Bankleitzahl).</documentation>
-               </annotation>
-               <restriction base="token">
-                       <enumeration value="Originator">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftraggeberbank</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Recipient">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Empfängerbank</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Correspondent">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Korrespondenzbank</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Other">
-                               <annotation>
-                                       <documentation xml:lang="de">andere 
Bankrolle</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <simpleType name="AccountHolderRoleType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die Rolle 
eines Kontoinhabers innerhalb einer Transaktion.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <enumeration value="Originator">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Auftraggeber</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Recipient">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Empfänger</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Presenter">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Überbringer, Einreicher</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="Other">
-                               <annotation>
-                                       <documentation xml:lang="de">andere 
Rolle</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <complexType name="AttributedAccountType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Kontoinformationen inkl. der Eigenschaftszuordnung innerhalb einer 
Zahlungstransaktion.</documentation>
-               </annotation>
-               <sequence>
-                       <choice maxOccurs="2">
-                               <element name="AccountNumber">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Kontonummer (deutsches Format oder international als 
IBAN).</documentation>
-                                               <documentation 
xml:lang="en">Kontonummer (Account number (German format and/or international = 
IBAN).</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:AccountNumberType">
-                                                               <attribute 
name="Role" type="ebics:AccountNumberRoleType" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Rolle des Kontos innerhalb der 
Zahlungstransaktion.</documentation>
-                                                                               
<documentation xml:lang="en">Role of the account during the 
transaction.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="Description" type="normalizedString">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Textuelle Beschreibung der Funktion, falls 
role=Other ausgewählt wird.</documentation>
-                                                                               
<documentation xml:lang="en">Textual description of the role the account place 
during the transaction; use only if the corresponding 'role' field is set to 
'other'.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="international" type="boolean" use="optional" default="false">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Ist die Kontonummer im deutschen Format 
(international=false) oder im internationalen Format (international=true, IBAN) 
angegeben?</documentation>
-                                                                               
<documentation xml:lang="en">Is the account number specified using the 
national=German or the international=IBAN format?</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                               <element name="NationalAccountNumber">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Kontonummer im freien Format.</documentation>
-                                               <documentation 
xml:lang="en">Account in free format.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:NationalAccountNumberType">
-                                                               <attribute 
name="Role" type="ebics:AccountNumberRoleType" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Rolle des Kontos innerhalb der 
Zahlungstransaktion.</documentation>
-                                                                               
<documentation xml:lang="en">Role of the account during the 
transaction.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="Description" type="normalizedString">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Textuelle Beschreibung der Funktion, falls 
role=Other ausgewählt wird.</documentation>
-                                                                               
<documentation xml:lang="en">Textual description of the role the account place 
during the transaction; use only if the corresponding 'role' field is set to 
'other'.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="format" type="token" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Formatkennung.</documentation>
-                                                                               
<documentation xml:lang="en">Format identification.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                       </choice>
-                       <choice minOccurs="0" maxOccurs="2">
-                               <element name="BankCode">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Bankleitzahl (deutsches Format oder international als 
SWIFT-BIC).</documentation>
-                                               <documentation 
xml:lang="en">Bank code (German and/or international=SWIFT-BIC).</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:BankCodeType">
-                                                               <attribute 
name="Role" type="ebics:BankCodeRoleType" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Rolle des kontoführenden Instituts innerhalb der 
Zahlungstransaktion.</documentation>
-                                                                               
<documentation xml:lang="en">Role of the bank during the 
transaction.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="Description" type="normalizedString">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Textuelle Beschreibung der Funktion, falls 
role=Other ausgewählt wird.</documentation>
-                                                                               
<documentation xml:lang="en">Textual description of the role the account place 
during the transaction; use only if the corresponding 'role' field is set to 
'other'.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="international" type="boolean" use="optional" default="false">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Ist die Bankleitzahl im deutschen Format 
(international=false, BLZ) oder im internationalen Format (international=true, 
SWIFT-BIC) angegeben?</documentation>
-                                                                               
<documentation xml:lang="en">Is the bank code specified using the 
national=German or the international=SWIFT-BIC format?</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="Prefix" type="ebics:BankCodePrefixType" use="optional">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">nationales Präfix für 
Bankleitzahlen.</documentation>
-                                                                               
<documentation xml:lang="en">National=German prefix for bank 
codes.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                               <element name="NationalBankCode">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Bankleitzahl im freien Format.</documentation>
-                                               <documentation 
xml:lang="en">Bank code in free format.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="ebics:NationalBankCodeType">
-                                                               <attribute 
name="Role" type="ebics:BankCodeRoleType" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Rolle des kontoführenden Instituts innerhalb der 
Zahlungstransaktion.</documentation>
-                                                                               
<documentation xml:lang="en">Role of the bank during the 
transaction.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="Description" type="normalizedString">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Textuelle Beschreibung der Funktion, falls 
role=Other ausgewählt wird.</documentation>
-                                                                               
<documentation xml:lang="en">Textual description of the role the account place 
during the transaction; use only if the corresponding 'role' field is set to 
'other'.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                               <attribute 
name="format" type="token" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">Formatkennung.</documentation>
-                                                                               
<documentation xml:lang="en">Format identification.</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                       </choice>
-                       <element name="AccountHolder" minOccurs="0">
-                               <annotation>
-                                       <documentation xml:lang="de">Name des 
Kontoinhabers.</documentation>
-                                       <documentation xml:lang="de">Name of 
the account holder.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:AccountHolderType">
-                                                       <attribute name="Role" 
type="ebics:AccountHolderRoleType" use="required">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Rolle des Kontoinhabers innerhalb der 
Zahlungstransaktion.</documentation>
-                                                                       
<documentation xml:lang="en">Role of the account holder during the 
transaction.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                                       <attribute 
name="Description" type="normalizedString">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Textuelle Beschreibung der Rolle, falls role=Other 
ausgewählt wird.</documentation>
-                                                                       
<documentation xml:lang="en">Textual description of the role the account holder 
place during the transaction; use only if the corresponding 'role' field is set 
to 'other'.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-               </sequence>
-               <attribute name="Currency" type="ebics:CurrencyBaseType" 
use="optional" default="EUR">
-                       <annotation>
-                               <documentation xml:lang="de">Währungscode für 
dieses Konto, Default=EUR.</documentation>
-                               <documentation xml:lang="en">Currency code for 
this account, Default=EUR.</documentation>
-                       </annotation>
-               </attribute>
-               <attribute name="Description" 
type="ebics:AccountDescriptionType">
-                       <annotation>
-                               <documentation 
xml:lang="de">Kontobeschreibung.</documentation>
-                               <documentation xml:lang="en">Description of 
this account.</documentation>
-                       </annotation>
-               </attribute>
-       </complexType>
-       <simpleType name="SignatureDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für binäre 
Signaturdaten (komprimiert, verschlüsselt und kodiert).</documentation>
-               </annotation>
-               <restriction base="base64Binary"/>
-       </simpleType>
-       <simpleType name="OrderDataType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für binäre 
Auftragsdaten (komprimiert, verschlüsselt und kodiert).</documentation>
-               </annotation>
-               <restriction base="base64Binary"/>
-       </simpleType>
-       <simpleType name="AuthorisationLevelType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Berechtigungsklassen zur Elektronischen Unterschrift.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="1"/>
-                       <enumeration value="E">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Einzelunterschrift</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="A">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Erstunterschrift</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="B">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Zweitunterschrift</documentation>
-                               </annotation>
-                       </enumeration>
-                       <enumeration value="T">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Transportunterschrift</documentation>
-                               </annotation>
-                       </enumeration>
-               </restriction>
-       </simpleType>
-       <simpleType name="AuthorisationLevelListType">
-               <annotation>
-                       <documentation xml:lang="de">Listentyp für 
Berechtigungsklassen zur Elektronischen Unterschrift.</documentation>
-               </annotation>
-               <list itemType="ebics:AuthorisationLevelType"/>
-       </simpleType>
-       <simpleType name="DigestAlgorithmType">
-               <annotation>
-                       <documentation>Datentyp für 
Hashfunktionen.</documentation>
-               </annotation>
-               <restriction base="anyURI"/>
-       </simpleType>
-       <simpleType name="DigestType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Hashwerte.</documentation>
-               </annotation>
-               <restriction base="ds:DigestValueType"/>
-       </simpleType>
-       <complexType name="DataDigestType">
-               <simpleContent>
-                       <extension base="ebics:DigestType">
-                               <attribute name="SignatureVersion" 
type="ebics:SignatureVersionType" use="required">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Version des Signaturverfahrens.</documentation>
-                                               <documentation 
xml:lang="en">Version of the algorithm used for signature 
creation.</documentation>
-                                       </annotation>
-                               </attribute>
-                       </extension>
-               </simpleContent>
-       </complexType>
-       <simpleType name="SignatureType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
kryptographische Unterschriften.</documentation>
-               </annotation>
-               <restriction base="base64Binary"/>
-       </simpleType>
-       <simpleType name="SymmetricKeyType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für symmetrische 
Schlüssel.</documentation>
-               </annotation>
-               <restriction base="base64Binary"/>
-       </simpleType>
-       <complexType name="PubKeyDigestType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Hashwerte und 
Attribute von öffentlichen Schlüsseln.</documentation>
-               </annotation>
-               <simpleContent>
-                       <extension base="ebics:DigestType">
-                               <attribute name="Algorithm" type="anyURI" 
use="required">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">Hashalgorithmus.</documentation>
-                                               <documentation 
xml:lang="en">Name of the used hash algorithm.</documentation>
-                                       </annotation>
-                               </attribute>
-                       </extension>
-               </simpleContent>
-       </complexType>
-       <complexType name="PubKeyInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Darstellung eines öffentlichen RSA-Schlüssels als Exponent-Modulus-Kombination 
oder als X509-Zertifikat.</documentation>
-               </annotation>
-               <sequence>
-                       <element ref="ds:X509Data"/>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <complexType name="EncryptionPubKeyInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für öffentliche 
Verschlüsselungsschlüssel.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:PubKeyInfoType">
-                               <sequence>
-                                       <element name="EncryptionVersion" 
type="ebics:EncryptionVersionType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Version des Verschlüsselungsverfahrens.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="AuthenticationPubKeyInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für öffentlichen 
Authentfikationsschlüssel.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:PubKeyInfoType">
-                               <sequence>
-                                       <element name="AuthenticationVersion" 
type="ebics:AuthenticationVersionType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Version des Authentifikationsverfahrens.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="SignatureCertificateInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für öffentliche 
bankfachliche Schlüssel.</documentation>
-                       <documentation xml:lang="en">Data type for public 
authorisation (ES) key.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:CertificateInfoType">
-                               <sequence>
-                                       <element name="SignatureVersion" 
type="ebics:SignatureVersionType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Version des EU-Signaturverfahrens.</documentation>
-                                                       <documentation 
xml:lang="en">ES-Version.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="AuthenticationCertificateInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für öffentlichen 
Schlüssel zur Authentisierung.</documentation>
-                       <documentation xml:lang="en">Data type for public for 
identification and authentication.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:CertificateInfoType">
-                               <sequence>
-                                       <element name="AuthenticationVersion" 
type="ebics:AuthenticationVersionType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Version des Authentifikationsverfahrens.</documentation>
-                                                       <documentation 
xml:lang="de">Authentication version.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="EncryptionCertificateInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für öffentlichen 
Verschlüsselungsschlüssel.</documentation>
-                       <documentation xml:lang="en">Data type for encryption 
key.</documentation>
-               </annotation>
-               <complexContent>
-                       <extension base="ebics:CertificateInfoType">
-                               <sequence>
-                                       <element name="EncryptionVersion" 
type="ebics:EncryptionVersionType">
-                                               <annotation>
-                                                       <documentation 
xml:lang="de">Version des Verschlüsselungsverfahrens.</documentation>
-                                                       <documentation 
xml:lang="en">Encryption Version.</documentation>
-                                               </annotation>
-                                       </element>
-                               </sequence>
-                       </extension>
-               </complexContent>
-       </complexType>
-       <complexType name="CertificateInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Zertifikate hinsichtlich der "bank-technical signature for authorisation" 
(ES).</documentation>
-                       <documentation xml:lang="en">Data Type for Certificates 
for the bank-technical signature for authorisation (ES)</documentation>
-               </annotation>
-               <sequence>
-                       <element ref="ds:X509Data"/>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <simpleType name="ReturnCodeType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Antwortcodes.</documentation>
-               </annotation>
-               <restriction base="token">
-                       <length value="6"/>
-                       <pattern value="\d{6}"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="ReportTextType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
Erklärungstext zum Antwortcode.</documentation>
-               </annotation>
-               <restriction base="normalizedString">
-                       <maxLength value="256"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="ReceiptCodeType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für 
Quittierungscodes.</documentation>
-               </annotation>
-               <restriction base="nonNegativeInteger">
-                       <maxInclusive value="1"/>
-                       <minInclusive value="0"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="NameType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für Kunden-, 
Teilnehmer-, Straßen- oder Ortsnamen.</documentation>
-               </annotation>
-               <restriction base="normalizedString"/>
-       </simpleType>
-       <simpleType name="OrderDescriptionType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Beschreibung von Auftragsarten.</documentation>
-               </annotation>
-               <restriction base="normalizedString">
-                       <maxLength value="128"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="UserStatusType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für den 
Teilnehmerstatus.</documentation>
-               </annotation>
-               <restriction base="nonNegativeInteger">
-                       <maxInclusive value="99"/>
-               </restriction>
-       </simpleType>
-       <element name="Parameter">
-               <annotation>
-                       <documentation xml:lang="de">generic 
parameter</documentation>
-                       <documentation xml:lang="en">Generic key value 
parameters.</documentation>
-               </annotation>
-               <complexType>
-                       <sequence>
-                               <element name="Name" type="token">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">name of parameter</documentation>
-                                               <documentation 
xml:lang="en">Name of the parameter (= key).</documentation>
-                                       </annotation>
-                               </element>
-                               <element name="Value">
-                                       <annotation>
-                                               <documentation 
xml:lang="de">value of parameter</documentation>
-                                               <documentation 
xml:lang="en">Value of the parameter.</documentation>
-                                       </annotation>
-                                       <complexType>
-                                               <simpleContent>
-                                                       <extension 
base="anySimpleType">
-                                                               <attribute 
name="Type" type="NCName" use="required">
-                                                                       
<annotation>
-                                                                               
<documentation xml:lang="de">XML-Typ des Parameterwerts (Vorschlag für default 
ist string).</documentation>
-                                                                               
<documentation xml:lang="en">XML type of the parameter value (Proposal for 
default is string).</documentation>
-                                                                       
</annotation>
-                                                               </attribute>
-                                                       </extension>
-                                               </simpleContent>
-                                       </complexType>
-                               </element>
-                       </sequence>
-               </complexType>
-       </element>
-       <complexType name="DataEncryptionInfoType">
-               <annotation>
-                       <documentation xml:lang="de">Datentyp für die 
Darstellung von Information zur Verschlüsselung der 
Auftragsdaten.</documentation>
-                       <documentation xml:lang="en">Data type for the 
modelling of information regarding the encryption of signature and order 
data.</documentation>
-               </annotation>
-               <sequence>
-                       <element name="EncryptionPubKeyDigest">
-                               <annotation>
-                                       <documentation xml:lang="de">Hashwert 
des öffentlichen Verschlüsselungsschlüssels des Empfängers der verschlüsselten 
Auftragsdaten.</documentation>
-                                       <documentation xml:lang="en">Hash value 
of the public encryption key owned by the receipient of the encrypted order 
data.</documentation>
-                               </annotation>
-                               <complexType>
-                                       <simpleContent>
-                                               <extension 
base="ebics:PubKeyDigestType">
-                                                       <attribute 
name="Version" type="ebics:EncryptionVersionType" use="required">
-                                                               <annotation>
-                                                                       
<documentation xml:lang="de">Version des 
Verschlüsselungsverfahrens.</documentation>
-                                                                       
<documentation xml:lang="en">Version of the encryption method.</documentation>
-                                                               </annotation>
-                                                       </attribute>
-                                               </extension>
-                                       </simpleContent>
-                               </complexType>
-                       </element>
-                       <element name="TransactionKey" 
type="ebics:SymmetricKeyType">
-                               <annotation>
-                                       <documentation 
xml:lang="de">Asymmetrisch verschlüsselter symmetrischer 
Transaktionsschlüssel.</documentation>
-                                       <documentation xml:lang="en">The 
asymmetrically encrypted symmetric transaction key.</documentation>
-                               </annotation>
-                       </element>
-                       <any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
-               </sequence>
-       </complexType>
-       <element name="AuthSignature" type="ds:SignatureType">
-               <annotation>
-                       <documentation 
xml:lang="de">Authentifikationssignatur.</documentation>
-                       <documentation xml:lang="en">Authentication 
signature.</documentation>
-               </annotation>
-       </element>
-       <simpleType name="String255Type">
-               <annotation>
-                       <documentation xml:lang="de">String up to 255 
characters.</documentation>
-               </annotation>
-               <restriction base="normalizedString">
-                       <maxLength value="255"/>
-               </restriction>
-       </simpleType>
-       <!--Following types are BTF required type definitions-->
-       <simpleType name="CodeStringType">
-               <restriction base="string">
-                       <minLength value="1"/>
-                       <maxLength value="10"/>
-                       <pattern value="[A-Z0-9]*"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="NumStringType">
-               <annotation>
-                       <documentation>Type is used for ISO variant and 
version</documentation>
-               </annotation>
-               <restriction base="string">
-                       <minLength value="2"/>
-                       <maxLength value="3"/>
-                       <pattern value="[0-9]*"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="FileNameStringType">
-               <annotation>
-                       <documentation>Type ist used for original file 
name</documentation>
-               </annotation>
-               <restriction base="string">
-                       <minLength value="1"/>
-                       <maxLength value="256"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="MessageNameStringType">
-               <annotation>
-                       <documentation>Type ist used for name or rather kind of 
Message</documentation>
-               </annotation>
-               <restriction base="token">
-                       <minLength value="1"/>
-                       <maxLength value="10"/>
-                       <pattern value="[a-z\.0-9]*"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="ServiceNameStringType">
-               <annotation>
-                       <documentation>Service Code name: External list 
specified and maintained by EBICS. Basis is the "SWIFT-list" for the field 
"description" (SCT, DCT, XCT, SDD, DDD, STM, REP...) plus additional codes 
needed for further services </documentation>
-               </annotation>
-               <restriction base="ebics:CodeStringType">
-                       <maxLength value="3"/>
-                       <minLength value="3"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="ScopeStringType">
-               <restriction base="ebics:CodeStringType">
-                       <maxLength value="3"/>
-                       <minLength value="2"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="ServiceOptionStringType">
-               <restriction base="ebics:CodeStringType">
-                       <minLength value="3"/>
-               </restriction>
-       </simpleType>
-       <simpleType name="ContainerStringType">
-               <restriction base="ebics:CodeStringType">
-                       <maxLength value="3"/>
-                       <minLength value="3"/>
-                       <enumeration value="SVC"/>
-                       <enumeration value="XML"/>
-                       <enumeration value="ZIP"/>
-               </restriction>
-       </simpleType>
-</schema>
diff --git a/ebics/src/main/resources/xsd/pain.001.001.03.ch.02.xsd 
b/ebics/src/main/resources/xsd/pain.001.001.03.ch.02.xsd
deleted file mode 100644
index b8ecce02..00000000
--- a/ebics/src/main/resources/xsd/pain.001.001.03.ch.02.xsd
+++ /dev/null
@@ -1,1212 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!--
-(C) Copyright 2010, SKSF, www.sksf.ch
-CH Version fuer pain.001 Credit Transfer: xmlns="http://www.iso-payments.ch";
-.ch.:              Identification for this CH version
-Last part (.02):   Version of this scheme
-
-Based on ISO pain.001.001.03 (urn:iso:std:iso:20022:tech:xsd:pain.001.001.03)
-
-Anregungen und Fragen zu diesem Dokument können an das jeweilige 
Finanzinstitut gerichtet werden.
-Allgemeine Anregungen können auch bei der SIX Interbank Clearing AG unter 
folgender Adresse angebracht werden:
-pm@six-group.com
-
-History
-15.02.2010  V01  initial version, 
targetNamespace="http://www.six-interbank-clearing.com/de/pain.001.001.03.ch.01.xsd";
  File:pain.001.001.03.ch.01.xsd
-30.04.2010  V02  added: element Initiating Party/Contact Details contains 
Software name and Version of producing application
-                                                changed: name in 
"PartyIdentification32-CH_Name" mandatory
--->
-<!-- V01: changed:
--->
-<xs:schema 
xmlns="http://www.six-interbank-clearing.com/de/pain.001.001.03.ch.02.xsd"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
targetNamespace="http://www.six-interbank-clearing.com/de/pain.001.001.03.ch.02.xsd";
 elementFormDefault="qualified">
-       <xs:element name="Document" type="Document"/>
-       <!-- V01: changed: CH version changes applied -->
-       <xs:complexType name="AccountIdentification4Choice-CH">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="IBAN" 
type="IBAN2007Identifier"/>
-                               <xs:element name="Othr" 
type="GenericAccountIdentification1-CH"/>
-                       </xs:choice>
-               </xs:sequence>
-       </xs:complexType>
-       <!-- V01: unused
-       <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>
-       <!-- V01: unused: type Authorisation1Choice is not allowed or used in 
CH Version
-       <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>
-       -->
-       <!-- V01: added: CH version supports only this character set. All text 
fields use this type -->
-       <xs:simpleType name="BasicText-CH">
-               <xs:restriction base="xs:string">
-                       <xs:pattern 
value="([a-zA-Z0-9\.,;:'\+\-/\(\)?\*\[\]\{\}\\`´~ 
]|[!&quot;#%&amp;&lt;&gt;÷=@_$£]|[àáâäçèéêëìíîïñòóôöùúûüýßÀÁÂÄÇÈÉÊËÌÍÎÏÒÓÔÖÙÚÛÜÑ])*"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <!-- V01: added: This is the SWIFT character set -->
-       <xs:simpleType name="BasicText-Swift">
-               <xs:restriction base="xs:string">
-                       <xs:pattern 
value="([A-Za-z0-9]|[+|\?|/|\-|:|\(|\)|\.|,|'|\p{Zs}])*"/>
-               </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>
-       <!-- VO1: added: definition of FI where only BIC or Clearing Id is 
allowed, but no branch data -->
-       <xs:complexType 
name="BranchAndFinancialInstitutionIdentification4-CH_BicOrClrId">
-               <xs:sequence>
-                       <xs:element name="FinInstnId" 
type="FinancialInstitutionIdentification7-CH_BicOrClrId"/>
-                       <!-- V01: unused
-                       <xs:element name="BrnchId" type="BranchData2" 
minOccurs="0"/>
-                       -->
-               </xs:sequence>
-       </xs:complexType>
-       <!-- VO1: added: definition of FI where all elements are allowed, but 
no branch data -->
-       <xs:complexType name="BranchAndFinancialInstitutionIdentification4-CH">
-               <xs:sequence>
-                       <xs:element name="FinInstnId" 
type="FinancialInstitutionIdentification7-CH"/>
-                       <!-- V01: unused
-                       <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>
-       <!-- V01: changed: CH version changes applied  -->
-       <xs:complexType name="CashAccount16-CH_IdAndCurrency">
-               <xs:sequence>
-                       <xs:element name="Id" 
type="AccountIdentification4Choice-CH"/>
-                       <xs:element name="Ccy" 
type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
-                       <!-- V01: unused
-                       <xs:element name="Tp" type="CashAccountType2" 
minOccurs="0"/>
-                       <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
-                       -->
-               </xs:sequence>
-       </xs:complexType>
-       <!-- V01: added -->
-       <xs:complexType name="CashAccount16-CH_IdTpCcy">
-               <xs:sequence>
-                       <xs:element name="Id" 
type="AccountIdentification4Choice-CH"/>
-                       <xs:element name="Tp" type="CashAccountType2" 
minOccurs="0"/>
-                       <xs:element name="Ccy" 
type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
-                       <!-- V01: unused
-                       <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
-                       -->
-               </xs:sequence>
-       </xs:complexType>
-       <!-- V01: added -->
-       <xs:complexType name="CashAccount16-CH_Id">
-               <xs:sequence>
-                       <xs:element name="Id" 
type="AccountIdentification4Choice-CH"/>
-                       <!-- V01: unused
-                       <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>
-       <!-- V01: changed: Only element Code allowed in Ch version -->
-       <xs:complexType name="CategoryPurpose1-CH_Code">
-               <xs:sequence>
-                       <xs:element name="Cd" 
type="ExternalCategoryPurpose1Code"/>
-                       <!-- V01: unused
-                               <xs:element name="Prtry" type="Max35Text"/>
-                               -->
-               </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>
-       <!-- V01: unused
-       <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>
-    -->
-       <!-- V01: added -->
-       <xs:complexType name="Cheque6-CH">
-               <xs:sequence>
-                       <xs:element name="ChqTp" type="ChequeType2Code" 
minOccurs="0"/>
-                       <xs:element name="DlvryMtd" 
type="ChequeDeliveryMethod1Choice" minOccurs="0"/>
-                       <!-- V01: unused
-                       <xs:element name="ChqNb" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="ChqFr" type="NameAndAddress10" 
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>
-       <!-- V02: changed: include Contact Details for Software name and 
version -->
-       <xs:complexType name="ContactDetails2-CH">
-               <xs:sequence>
-                       <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
-                       <xs:element name="Othr" type="Max35Text" minOccurs="0"/>
-                       <!-- V02: unused
-                       <xs:element name="NmPrfx" type="NamePrefix1Code" 
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: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-CH">
-               <xs:sequence>
-                       <xs:element name="PmtId" type="PaymentIdentification1"/>
-                       <xs:element name="PmtTpInf" 
type="PaymentTypeInformation19-CH" 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-CH" 
minOccurs="0"/>
-                       <xs:element name="UltmtDbtr" 
type="PartyIdentification32-CH" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt1" 
type="BranchAndFinancialInstitutionIdentification4-CH" minOccurs="0"/>
-                       <xs:element name="CdtrAgt" 
type="BranchAndFinancialInstitutionIdentification4-CH" minOccurs="0"/>
-                       <!-- V02: changed:  element Name mandatory -->
-                       <xs:element name="Cdtr" 
type="PartyIdentification32-CH_Name" minOccurs="0"/>
-                       <xs:element name="CdtrAcct" type="CashAccount16-CH_Id" 
minOccurs="0"/>
-                       <!-- V02: changed:  element Name mandatory -->
-                       <xs:element name="UltmtCdtr" 
type="PartyIdentification32-CH_Name" 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="Purpose2-CH_Code" 
minOccurs="0"/>
-                       <xs:element name="RgltryRptg" 
type="RegulatoryReporting3" minOccurs="0" maxOccurs="10"/>
-                       <xs:element name="RmtInf" 
type="RemittanceInformation5-CH" minOccurs="0"/>
-                       <!-- V01: usused
-                       <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="CdtrAgtAcct" 
type="CashAccount16-CH_Id" minOccurs="0"/>
-                       <xs:element name="Tax" type="TaxInformation3" 
minOccurs="0"/>
-                       <xs:element name="RltdRmtInf" 
type="RemittanceLocation2" minOccurs="0" maxOccurs="10"/>
-                       -->
-               </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-CH">
-               <xs:sequence>
-                       <xs:element name="GrpHdr" type="GroupHeader32-CH"/>
-                       <xs:element name="PmtInf" 
type="PaymentInstructionInformation3-CH" 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>
-       <!-- V01: unused
-       <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-CH"/>
-               </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>
-       <!-- V01:  unused:
-       <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>
-       <!-- V01: added: definition of FI where only BIC or Clearing Id is 
allowed -->
-       <xs:complexType 
name="FinancialInstitutionIdentification7-CH_BicOrClrId">
-               <xs:sequence>
-                       <xs:element name="BIC" type="BICIdentifier" 
minOccurs="0"/>
-                       <xs:element name="ClrSysMmbId" 
type="ClearingSystemMemberIdentification2" minOccurs="0"/>
-                       <!-- V01: unused
-                       <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>
-       <!-- V01: added: definition of FI where all elements are allowed (in a 
CH version) -->
-       <xs:complexType name="FinancialInstitutionIdentification7-CH">
-               <xs:sequence>
-                       <xs:element name="BIC" type="BICIdentifier" 
minOccurs="0"/>
-                       <xs:element name="ClrSysMmbId" 
type="ClearingSystemMemberIdentification2" minOccurs="0"/>
-                       <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
-                       <xs:element name="PstlAdr" type="PostalAddress6-CH" 
minOccurs="0"/>
-                       <xs:element name="Othr" 
type="GenericFinancialIdentification1-CH" minOccurs="0"/>
-                       <!-- V01: unused
-                       -->
-               </xs:sequence>
-       </xs:complexType>
-       <!-- V01: changed: only element ID allowed in CH version -->
-       <xs:complexType name="GenericAccountIdentification1-CH">
-               <xs:sequence>
-                       <xs:element name="Id" type="Max34Text"/>
-                       <!-- V01: unused
-                       <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>
-       <!-- V01: added: only element Id allowed in CH version -->
-       <xs:complexType name="GenericFinancialIdentification1-CH">
-               <xs:sequence>
-                       <xs:element name="Id" type="Max35Text"/>
-                       <!-- V01: unused
-                       <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-CH">
-               <xs:sequence>
-                       <xs:element name="MsgId" type="Max35Text-Swift"/>
-                       <xs:element name="CreDtTm" type="ISODateTime"/>
-                       <xs:element name="NbOfTxs" type="Max15NumericText"/>
-                       <xs:element name="CtrlSum" type="DecimalNumber" 
minOccurs="0"/>
-                       <!-- V02: changed: include Contact Details for Software 
name and version -->
-                       <xs:element name="InitgPty" 
type="PartyIdentification32-CH_NameAndId"/>
-                       <xs:element name="FwdgAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       <!-- V01: unused: type Authorisation1Choice is not 
allowed or used in CH Version
-                       <xs:element name="Authstn" type="Authorisation1Choice" 
minOccurs="0" maxOccurs="2"/>
-                       -->
-                       <!-- V01: changed: Initiating party only to contain 
name and id in CH version
-                       <xs:element name="InitgPty" 
type="PartyIdentification32"/>
-                       -->
-               </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="BasicText-CH">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="10"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <!-- V01: unused
-       <xs:simpleType name="Max128Text">
-               <xs:restriction base="BasicText-CH">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="128"/>
-               </xs:restriction>
-       </xs:simpleType>
-    -->
-       <xs:simpleType name="Max140Text">
-               <xs:restriction base="BasicText-CH">
-                       <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="BasicText-CH">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="16"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max2048Text">
-               <xs:restriction base="BasicText-CH">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="2048"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max34Text">
-               <xs:restriction base="BasicText-CH">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="34"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max35Text">
-               <xs:restriction base="BasicText-CH">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="35"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <!-- V01: added: replacement type for Max35Text where only the Swift 
character set is allowed -->
-       <xs:simpleType name="Max35Text-Swift">
-               <xs:restriction base="BasicText-Swift">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="35"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max4Text">
-               <xs:restriction base="BasicText-CH">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max70Text">
-               <xs:restriction base="BasicText-CH">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="70"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <!-- V01: unused
-       <xs:complexType name="NameAndAddress10">
-               <xs:sequence>
-                       <xs:element name="Nm" type="Max140Text"/>
-                       <xs:element name="Adr" type="PostalAddress6"/>
-               </xs:sequence>
-       </xs:complexType>
-    -->
-       <!-- V01: added: CH-Version: unused (prepared for later usage)
-       <xs:complexType name="NameAndAddress10-CH">
-               <xs:sequence>
-                       <xs:element name="Nm" type="Max70Text"/>
-                       <xs:element name="Adr" type="PostalAddress6-CH"/>
-               </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>
-       <!-- V01: unused
-       <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>
-       <!-- V01: added:  only one occurance of element other allowed in CH 
version -->
-       <xs:complexType name="OrganisationIdentification4-CH">
-               <xs:sequence>
-                       <xs:element name="BICOrBEI" type="AnyBICIdentifier" 
minOccurs="0"/>
-                       <xs:element name="Othr" 
type="GenericOrganisationIdentification1" minOccurs="0"/>
-               </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>
-       <!-- V01: added:  -->
-       <xs:complexType name="Party6Choice-CH">
-               <xs:sequence>
-                       <xs:choice>
-                               <xs:element name="OrgId" 
type="OrganisationIdentification4-CH"/>
-                               <xs:element name="PrvtId" 
type="PersonIdentification5-CH"/>
-                       </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>
-       <!-- V01: added: replacement type for PartyIdentification8 where only 
elements Name and Id may be used -->
-       <xs:complexType name="PartyIdentification32-CH_NameAndId">
-               <xs:sequence>
-                       <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
-                       <xs:element name="Id" type="Party6Choice-CH" 
minOccurs="0"/>
-                       <!-- V02: added: Contact Details for Software name and 
version -->
-                       <xs:element name="CtctDtls" type="ContactDetails2-CH" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <!-- V01: added -->
-       <xs:complexType name="PartyIdentification32-CH">
-               <xs:sequence>
-                       <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
-                       <xs:element name="PstlAdr" type="PostalAddress6-CH" 
minOccurs="0"/>
-                       <xs:element name="Id" type="Party6Choice-CH" 
minOccurs="0"/>
-                       <!-- changed -->
-                       <!-- unused
-                       <xs:element name="CtryOfRes" type="CountryCode" 
minOccurs="0"/>
-                       -->
-               </xs:sequence>
-       </xs:complexType>
-       <!-- V02: changed: element Name mandatory -->
-       <xs:complexType name="PartyIdentification32-CH_Name">
-               <xs:sequence>
-                       <xs:element name="Nm" type="Max70Text"/>
-                       <xs:element name="PstlAdr" type="PostalAddress6-CH" 
minOccurs="0"/>
-                       <xs:element name="Id" type="Party6Choice-CH" 
minOccurs="0"/>
-                       <!-- changed -->
-                       <!-- unused
-                       <xs:element name="CtryOfRes" type="CountryCode" 
minOccurs="0"/>
-                       -->
-               </xs:sequence>
-       </xs:complexType>
-       <!--
-       <xs:complexType name="PartyIdentification32-CH_Debtor">
-               <xs:sequence>
-                       <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
-                       <xs:element name="PstlAdr" type="PostalAddress6-CH" 
minOccurs="0"/>
-                       <xs:element name="Id" type="Party6Choice-CH" 
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="PartyIdentification32-CH_Creditor">
-               <xs:sequence>
-                       <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
-                       <xs:element name="PstlAdr" type="PostalAddress6-CH" 
minOccurs="0"/>
-                       <xs:element name="Id" type="Party6Choice-CH" 
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-Swift" 
minOccurs="0"/>
-                       <xs:element name="EndToEndId" type="Max35Text-Swift"/>
-               </xs:sequence>
-       </xs:complexType>
-       <!-- V01: changed: CH-version changes applied -->
-       <xs:complexType name="PaymentInstructionInformation3-CH">
-               <xs:sequence>
-                       <xs:element name="PmtInfId" type="Max35Text-Swift"/>
-                       <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-CH" minOccurs="0"/>
-                       <xs:element name="ReqdExctnDt" type="ISODate"/>
-                       <xs:element name="Dbtr" 
type="PartyIdentification32-CH"/>
-                       <xs:element name="DbtrAcct" 
type="CashAccount16-CH_IdTpCcy"/>
-                       <xs:element name="DbtrAgt" 
type="BranchAndFinancialInstitutionIdentification4-CH_BicOrClrId"/>
-                       <xs:element name="UltmtDbtr" 
type="PartyIdentification32-CH" minOccurs="0"/>
-                       <xs:element name="ChrgBr" type="ChargeBearerType1Code" 
minOccurs="0"/>
-                       <xs:element name="ChrgsAcct" 
type="CashAccount16-CH_IdAndCurrency" minOccurs="0"/>
-                       <xs:element name="CdtTrfTxInf" 
type="CreditTransferTransactionInformation10-CH" maxOccurs="unbounded"/>
-                       <!-- V01: unused
-                       <xs:element name="PoolgAdjstmntDt" type="ISODate" 
minOccurs="0"/>
-                       <xs:element name="DbtrAgtAcct" type="CashAccount16" 
minOccurs="0"/>
-                       <xs:element name="ChrgsAcctAgt" 
type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
-                       -->
-               </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>
-       <!-- V01: changed: CH version changes applied -->
-       <xs:complexType name="PaymentTypeInformation19-CH">
-               <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="CategoryPurpose1-CH_Code" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <!-- V01: unused
-       <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>
-       <!-- V01: changed: only one occurance of element Othr allowed in CH 
version -->
-       <xs:complexType name="PersonIdentification5-CH">
-               <xs:sequence>
-                       <xs:element name="DtAndPlcOfBirth" 
type="DateAndPlaceOfBirth" minOccurs="0"/>
-                       <xs:element name="Othr" 
type="GenericPersonIdentification1" minOccurs="0"/>
-               </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>
-       <!-- V01: added: only 2 lines of address lines allowed in CH version -->
-       <xs:complexType name="PostalAddress6-CH">
-               <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="2"/>
-                       <!-- V01: changed: max. 2 occurence -->
-               </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>
-       <!-- V01: changed: CH-version changes applied -->
-       <xs:complexType name="Purpose2-CH_Code">
-               <xs:sequence>
-                       <xs:element name="Cd" type="ExternalPurpose1Code"/>
-               </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-CH">
-               <xs:sequence>
-                       <xs:element name="Ustrd" type="Max140Text" 
minOccurs="0"/>
-                       <xs:element name="Strd" 
type="StructuredRemittanceInformation7" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <!-- V01: unused
-       <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>
-       <!-- V01: unused
-       <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>
diff --git a/ebics/src/main/resources/xsd/pain.001.001.03.xsd 
b/ebics/src/main/resources/xsd/pain.001.001.03.xsd
deleted file mode 100644
index 60cd5d71..00000000
--- a/ebics/src/main/resources/xsd/pain.001.001.03.xsd
+++ /dev/null
@@ -1,922 +0,0 @@
-<?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,13}"/>
-               </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
diff --git a/ebics/src/main/resources/xsd/pain.001.001.09.ch.03.xsd 
b/ebics/src/main/resources/xsd/pain.001.001.09.ch.03.xsd
deleted file mode 100644
index f12da93c..00000000
--- a/ebics/src/main/resources/xsd/pain.001.001.09.ch.03.xsd
+++ /dev/null
@@ -1,1733 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-(C) Copyright 2021, SIX, www.iso-payments.ch
-CH Version for pain.001 Credit Transfer: "pain.001.001.09.ch.03.xsd"
-.ch.:              Identification for this CH version
-Last part (.03):   CH Version of this scheme
-
-Based on ISO pain.001.001.09 (urn:iso:std:iso:20022:tech:xsd:pain.001.001.09)
--->
-<xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.09" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
targetNamespace="urn:iso:std:iso:20022:tech:xsd:pain.001.001.09" 
elementFormDefault="qualified">
-       <xs:element name="Document" type="Document_pain001_ch"/>
-       <xs:complexType name="AccountIdentification4Choice">
-               <xs:choice>
-                       <xs:element name="IBAN" type="IBAN2007Identifier"/>
-                       <xs:element name="Othr" 
type="GenericAccountIdentification1"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:complexType name="AccountIdentification4Choice_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="AccountIdentification4Choice">
-                               <xs:choice>
-                                       <xs:element name="IBAN" 
type="IBAN2007Identifier"/>
-                                       <xs:element name="Othr" 
type="GenericAccountIdentification1_pain001_ch"/>
-                               </xs:choice>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="AccountSchemeName1Choice">
-               <xs:choice>
-                       <xs:element name="Cd" 
type="ExternalAccountIdentification1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <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="ActiveOrHistoricCurrencyAndAmount_SimpleType">
-               <xs:restriction base="xs:decimal">
-                       <xs:minInclusive value="0"/>
-                       <xs:totalDigits value="18"/>
-                       <xs:fractionDigits value="5"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <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="BIZZ"/>
-                       <xs:enumeration value="DLVY"/>
-                       <xs:enumeration value="HOME"/>
-                       <xs:enumeration value="MLTO"/>
-                       <xs:enumeration value="PBOX"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="AddressType3Choice">
-               <xs:choice>
-                       <xs:element name="Cd" type="AddressType2Code"/>
-                       <xs:element name="Prtry" 
type="GenericIdentification30"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:complexType name="AmountType4Choice">
-               <xs:choice>
-                       <xs:element name="InstdAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="EqvtAmt" type="EquivalentAmount2"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:simpleType name="AnyBICDec2014Identifier">
-               <xs:restriction base="xs:string">
-                       <xs:pattern 
value="[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="Authorisation1Choice">
-               <xs:choice>
-                       <xs:element name="Cd" type="Authorisation1Code"/>
-                       <xs:element name="Prtry" type="Max128Text"/>
-               </xs:choice>
-       </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="BaseOneRate">
-               <xs:restriction base="xs:decimal">
-                       <xs:totalDigits value="11"/>
-                       <xs:fractionDigits value="10"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="BatchBookingIndicator">
-               <xs:restriction base="xs:boolean"/>
-       </xs:simpleType>
-       <xs:simpleType name="BICFIDec2014Identifier">
-               <xs:restriction base="xs:string">
-                       <xs:pattern 
value="[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="BranchAndFinancialInstitutionIdentification6">
-               <xs:sequence>
-                       <xs:element name="FinInstnId" 
type="FinancialInstitutionIdentification18"/>
-                       <xs:element name="BrnchId" type="BranchData3" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType 
name="BranchAndFinancialInstitutionIdentification6_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction 
base="BranchAndFinancialInstitutionIdentification6">
-                               <xs:sequence>
-                                       <xs:element name="FinInstnId" 
type="FinancialInstitutionIdentification18_pain001_ch"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType 
name="BranchAndFinancialInstitutionIdentification6_pain001_ch_2">
-               <xs:complexContent>
-                       <xs:restriction 
base="BranchAndFinancialInstitutionIdentification6">
-                               <xs:sequence>
-                                       <xs:element name="FinInstnId" 
type="FinancialInstitutionIdentification18_pain001_ch_2"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType 
name="BranchAndFinancialInstitutionIdentification6_pain001_ch_3">
-               <xs:complexContent>
-                       <xs:restriction 
base="BranchAndFinancialInstitutionIdentification6">
-                               <xs:sequence>
-                                       <xs:element name="FinInstnId" 
type="FinancialInstitutionIdentification18_pain001_ch_3"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType 
name="BranchAndFinancialInstitutionIdentification6_pain001_ch_4">
-               <xs:complexContent>
-                       <xs:restriction 
base="BranchAndFinancialInstitutionIdentification6">
-                               <xs:sequence>
-                                       <xs:element name="FinInstnId" 
type="FinancialInstitutionIdentification18_pain001_ch_4"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="BranchData3">
-               <xs:sequence>
-                       <xs:element name="Id" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="LEI" type="LEIIdentifier" 
minOccurs="0"/>
-                       <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
-                       <xs:element name="PstlAdr" type="PostalAddress24" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="CashAccount38">
-               <xs:sequence>
-                       <xs:element name="Id" 
type="AccountIdentification4Choice"/>
-                       <xs:element name="Tp" type="CashAccountType2Choice" 
minOccurs="0"/>
-                       <xs:element name="Ccy" 
type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
-                       <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
-                       <xs:element name="Prxy" 
type="ProxyAccountIdentification1" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="CashAccount38_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="CashAccount38">
-                               <xs:sequence>
-                                       <xs:element name="Id" 
type="AccountIdentification4Choice_pain001_ch"/>
-                                       <xs:element name="Tp" 
type="CashAccountType2Choice" minOccurs="0"/>
-                                       <xs:element name="Ccy" 
type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
-                                       <xs:element name="Prxy" 
type="ProxyAccountIdentification1" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="CashAccount38_pain001_ch_2">
-               <xs:complexContent>
-                       <xs:restriction base="CashAccount38">
-                               <xs:sequence>
-                                       <xs:element name="Id" 
type="AccountIdentification4Choice_pain001_ch"/>
-                                       <xs:element name="Ccy" 
type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
-                                       <xs:element name="Prxy" 
type="ProxyAccountIdentification1" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="CashAccount38_pain001_ch_3">
-               <xs:complexContent>
-                       <xs:restriction base="CashAccount38">
-                               <xs:sequence>
-                                       <xs:element name="Id" 
type="AccountIdentification4Choice"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="CashAccount38_pain001_ch_4">
-               <xs:complexContent>
-                       <xs:restriction base="CashAccount38">
-                               <xs:sequence>
-                                       <xs:element name="Id" 
type="AccountIdentification4Choice_pain001_ch"/>
-                                       <xs:element name="Prxy" 
type="ProxyAccountIdentification1" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="CashAccountType2Choice">
-               <xs:choice>
-                       <xs:element name="Cd" 
type="ExternalCashAccountType1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:complexType name="CategoryPurpose1Choice">
-               <xs:choice>
-                       <xs:element name="Cd" 
type="ExternalCategoryPurpose1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:complexType name="CategoryPurpose1Choice_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="CategoryPurpose1Choice">
-                               <xs:choice>
-                                       <xs:element name="Cd" 
type="ExternalCategoryPurpose1Code"/>
-                               </xs:choice>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:simpleType name="ChargeBearerType1Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="CRED"/>
-                       <xs:enumeration value="DEBT"/>
-                       <xs:enumeration value="SHAR"/>
-                       <xs:enumeration value="SLEV"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="Cheque11">
-               <xs:sequence>
-                       <xs:element name="ChqTp" type="ChequeType2Code" 
minOccurs="0"/>
-                       <xs:element name="ChqNb" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="ChqFr" type="NameAndAddress16" 
minOccurs="0"/>
-                       <xs:element name="DlvryMtd" 
type="ChequeDeliveryMethod1Choice" minOccurs="0"/>
-                       <xs:element name="DlvrTo" type="NameAndAddress16" 
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:element name="Sgntr" type="Max70Text" minOccurs="0" 
maxOccurs="5"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="Cheque11_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="Cheque11">
-                               <xs:sequence>
-                                       <xs:element name="ChqTp" 
type="ChequeType2Code" minOccurs="0"/>
-                                       <xs:element name="DlvryMtd" 
type="ChequeDeliveryMethod1Choice" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:simpleType name="ChequeDelivery1Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="CRCD"/>
-                       <xs:enumeration value="CRDB"/>
-                       <xs:enumeration value="CRFA"/>
-                       <xs:enumeration value="MLCD"/>
-                       <xs:enumeration value="MLDB"/>
-                       <xs:enumeration value="MLFA"/>
-                       <xs:enumeration value="PUCD"/>
-                       <xs:enumeration value="PUDB"/>
-                       <xs:enumeration value="PUFA"/>
-                       <xs:enumeration value="RGCD"/>
-                       <xs:enumeration value="RGDB"/>
-                       <xs:enumeration value="RGFA"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="ChequeDeliveryMethod1Choice">
-               <xs:choice>
-                       <xs:element name="Cd" type="ChequeDelivery1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:simpleType name="ChequeType2Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="BCHQ"/>
-                       <xs:enumeration value="CCCH"/>
-                       <xs:enumeration value="CCHQ"/>
-                       <xs:enumeration value="DRFT"/>
-                       <xs:enumeration value="ELDR"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="ClearingSystemIdentification2Choice">
-               <xs:choice>
-                       <xs:element name="Cd" 
type="ExternalClearingSystemIdentification1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:complexType name="ClearingSystemIdentification2Choice_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction 
base="ClearingSystemIdentification2Choice">
-                               <xs:choice>
-                                       <xs:element name="Cd" 
type="ExternalClearingSystemIdentification1Code"/>
-                               </xs:choice>
-                       </xs:restriction>
-               </xs:complexContent>
-       </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="ClearingSystemMemberIdentification2_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction 
base="ClearingSystemMemberIdentification2">
-                               <xs:sequence>
-                                       <xs:element name="ClrSysId" 
type="ClearingSystemIdentification2Choice_pain001_ch" minOccurs="0"/>
-                                       <xs:element name="MmbId" 
type="Max35Text"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="Contact4">
-               <xs:sequence>
-                       <xs:element name="NmPrfx" type="NamePrefix2Code" 
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="EmailPurp" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="JobTitl" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="Rspnsblty" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="Dept" type="Max70Text" minOccurs="0"/>
-                       <xs:element name="Othr" type="OtherContact1" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="PrefrdMtd" 
type="PreferredContactMethod1Code" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="Contact4_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="Contact4">
-                               <xs:sequence>
-                                       <xs:element name="Othr" 
type="OtherContact1_pain001_ch" minOccurs="0" maxOccurs="4"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </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="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:choice>
-                       <xs:element name="Cd" type="DocumentType3Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </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="CreditTransferTransaction34">
-               <xs:sequence>
-                       <xs:element name="PmtId" type="PaymentIdentification6"/>
-                       <xs:element name="PmtTpInf" 
type="PaymentTypeInformation26" minOccurs="0"/>
-                       <xs:element name="Amt" type="AmountType4Choice"/>
-                       <xs:element name="XchgRateInf" type="ExchangeRate1" 
minOccurs="0"/>
-                       <xs:element name="ChrgBr" type="ChargeBearerType1Code" 
minOccurs="0"/>
-                       <xs:element name="ChqInstr" type="Cheque11" 
minOccurs="0"/>
-                       <xs:element name="UltmtDbtr" 
type="PartyIdentification135" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt1" 
type="BranchAndFinancialInstitutionIdentification6" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt1Acct" type="CashAccount38" 
minOccurs="0"/>
-                       <xs:element name="IntrmyAgt2" 
type="BranchAndFinancialInstitutionIdentification6" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt2Acct" type="CashAccount38" 
minOccurs="0"/>
-                       <xs:element name="IntrmyAgt3" 
type="BranchAndFinancialInstitutionIdentification6" minOccurs="0"/>
-                       <xs:element name="IntrmyAgt3Acct" type="CashAccount38" 
minOccurs="0"/>
-                       <xs:element name="CdtrAgt" 
type="BranchAndFinancialInstitutionIdentification6" minOccurs="0"/>
-                       <xs:element name="CdtrAgtAcct" type="CashAccount38" 
minOccurs="0"/>
-                       <xs:element name="Cdtr" type="PartyIdentification135" 
minOccurs="0"/>
-                       <xs:element name="CdtrAcct" type="CashAccount38" 
minOccurs="0"/>
-                       <xs:element name="UltmtCdtr" 
type="PartyIdentification135" 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="TaxInformation8" 
minOccurs="0"/>
-                       <xs:element name="RltdRmtInf" 
type="RemittanceLocation7" minOccurs="0" maxOccurs="10"/>
-                       <xs:element name="RmtInf" 
type="RemittanceInformation16" minOccurs="0"/>
-                       <xs:element name="SplmtryData" 
type="SupplementaryData1" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="CreditTransferTransaction34_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="CreditTransferTransaction34">
-                               <xs:sequence>
-                                       <xs:element name="PmtId" 
type="PaymentIdentification6_pain001_ch"/>
-                                       <xs:element name="PmtTpInf" 
type="PaymentTypeInformation26_pain001_ch_2" minOccurs="0"/>
-                                       <xs:element name="Amt" 
type="AmountType4Choice"/>
-                                       <xs:element name="XchgRateInf" 
type="ExchangeRate1" minOccurs="0"/>
-                                       <xs:element name="ChrgBr" 
type="ChargeBearerType1Code" minOccurs="0"/>
-                                       <xs:element name="ChqInstr" 
type="Cheque11_pain001_ch" minOccurs="0"/>
-                                       <xs:element name="UltmtDbtr" 
type="PartyIdentification135_pain001_ch_3" minOccurs="0"/>
-                                       <xs:element name="IntrmyAgt1" 
type="BranchAndFinancialInstitutionIdentification6_pain001_ch_3" minOccurs="0"/>
-                                       <xs:element name="IntrmyAgt1Acct" 
type="CashAccount38_pain001_ch_3" minOccurs="0"/>
-                                       <xs:element name="CdtrAgt" 
type="BranchAndFinancialInstitutionIdentification6_pain001_ch_4" minOccurs="0"/>
-                                       <xs:element name="CdtrAgtAcct" 
type="CashAccount38_pain001_ch_3" minOccurs="0"/>
-                                       <xs:element name="Cdtr" 
type="PartyIdentification135_pain001_ch_4" minOccurs="0"/>
-                                       <xs:element name="CdtrAcct" 
type="CashAccount38_pain001_ch_4" minOccurs="0"/>
-                                       <xs:element name="UltmtCdtr" 
type="PartyIdentification135_pain001_ch_3" minOccurs="0"/>
-                                       <xs:element name="InstrForCdtrAgt" 
type="InstructionForCreditorAgent1" minOccurs="0" maxOccurs="2"/>
-                                       <xs:element name="InstrForDbtrAgt" 
type="Max140Text" minOccurs="0"/>
-                                       <xs:element name="Purp" 
type="Purpose2Choice_pain001_ch" minOccurs="0"/>
-                                       <xs:element name="RgltryRptg" 
type="RegulatoryReporting3" minOccurs="0" maxOccurs="10"/>
-                                       <xs:element name="RltdRmtInf" 
type="RemittanceLocation7" minOccurs="0"/>
-                                       <xs:element name="RmtInf" 
type="RemittanceInformation16_pain001_ch" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="CustomerCreditTransferInitiationV09">
-               <xs:sequence>
-                       <xs:element name="GrpHdr" type="GroupHeader85"/>
-                       <xs:element name="PmtInf" type="PaymentInstruction30" 
maxOccurs="unbounded"/>
-                       <xs:element name="SplmtryData" 
type="SupplementaryData1" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="CustomerCreditTransferInitiationV09_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction 
base="CustomerCreditTransferInitiationV09">
-                               <xs:sequence>
-                                       <xs:element name="GrpHdr" 
type="GroupHeader85_pain001_ch"/>
-                                       <xs:element name="PmtInf" 
type="PaymentInstruction30_pain001_ch" maxOccurs="unbounded"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="DateAndDateTime2Choice">
-               <xs:choice>
-                       <xs:element name="Dt" type="ISODate"/>
-                       <xs:element name="DtTm" type="ISODateTime"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:complexType name="DateAndPlaceOfBirth1">
-               <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="DatePeriod2">
-               <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:totalDigits value="18"/>
-                       <xs:fractionDigits value="17"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="DiscountAmountAndType1">
-               <xs:sequence>
-                       <xs:element name="Tp" type="DiscountAmountType1Choice" 
minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="DiscountAmountType1Choice">
-               <xs:choice>
-                       <xs:element name="Cd" 
type="ExternalDiscountAmountType1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:complexType name="Document">
-               <xs:sequence>
-                       <xs:element name="CstmrCdtTrfInitn" 
type="CustomerCreditTransferInitiationV09"/>
-               </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:complexType name="DocumentLineIdentification1">
-               <xs:sequence>
-                       <xs:element name="Tp" type="DocumentLineType1" 
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="DocumentLineInformation1">
-               <xs:sequence>
-                       <xs:element name="Id" 
type="DocumentLineIdentification1" maxOccurs="unbounded"/>
-                       <xs:element name="Desc" type="Max2048Text" 
minOccurs="0"/>
-                       <xs:element name="Amt" type="RemittanceAmount3" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="DocumentLineType1">
-               <xs:sequence>
-                       <xs:element name="CdOrPrtry" 
type="DocumentLineType1Choice"/>
-                       <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="DocumentLineType1Choice">
-               <xs:choice>
-                       <xs:element name="Cd" 
type="ExternalDocumentLineType1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:simpleType name="DocumentType3Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="DISP"/>
-                       <xs:enumeration value="FXDR"/>
-                       <xs:enumeration value="PUOR"/>
-                       <xs:enumeration value="RADM"/>
-                       <xs:enumeration value="RPIN"/>
-                       <xs:enumeration value="SCOR"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="DocumentType6Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="AROI"/>
-                       <xs:enumeration value="BOLD"/>
-                       <xs:enumeration value="CINV"/>
-                       <xs:enumeration value="CMCN"/>
-                       <xs:enumeration value="CNFA"/>
-                       <xs:enumeration value="CREN"/>
-                       <xs:enumeration value="DEBN"/>
-                       <xs:enumeration value="DISP"/>
-                       <xs:enumeration value="DNFA"/>
-                       <xs:enumeration value="HIRI"/>
-                       <xs:enumeration value="MSIN"/>
-                       <xs:enumeration value="PUOR"/>
-                       <xs:enumeration value="SBIN"/>
-                       <xs:enumeration value="SOAC"/>
-                       <xs:enumeration value="TSUT"/>
-                       <xs:enumeration value="VCHR"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="Document_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="Document">
-                               <xs:sequence>
-                                       <xs:element name="CstmrCdtTrfInitn" 
type="CustomerCreditTransferInitiationV09_pain001_ch"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="EquivalentAmount2">
-               <xs:sequence>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-                       <xs:element name="CcyOfTrf" 
type="ActiveOrHistoricCurrencyCode"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="Exact4AlphaNumericText">
-               <xs:restriction base="xs:string">
-                       <xs:pattern value="[a-zA-Z0-9]{4}"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="ExchangeRate1">
-               <xs:sequence>
-                       <xs:element name="UnitCcy" 
type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
-                       <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="AGRD"/>
-                       <xs:enumeration value="SALE"/>
-                       <xs:enumeration value="SPOT"/>
-               </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="ExternalCashAccountType1Code">
-               <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="ExternalDiscountAmountType1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="ExternalDocumentLineType1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </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="ExternalGarnishmentType1Code">
-               <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="ExternalProxyAccountType1Code">
-               <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:simpleType name="ExternalTaxAmountType1Code">
-               <xs:restriction base="xs:string">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="4"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="FinancialIdentificationSchemeName1Choice">
-               <xs:choice>
-                       <xs:element name="Cd" 
type="ExternalFinancialInstitutionIdentification1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:complexType name="FinancialInstitutionIdentification18">
-               <xs:sequence>
-                       <xs:element name="BICFI" type="BICFIDec2014Identifier" 
minOccurs="0"/>
-                       <xs:element name="ClrSysMmbId" 
type="ClearingSystemMemberIdentification2" minOccurs="0"/>
-                       <xs:element name="LEI" type="LEIIdentifier" 
minOccurs="0"/>
-                       <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
-                       <xs:element name="PstlAdr" type="PostalAddress24" 
minOccurs="0"/>
-                       <xs:element name="Othr" 
type="GenericFinancialIdentification1" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="FinancialInstitutionIdentification18_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction 
base="FinancialInstitutionIdentification18">
-                               <xs:sequence>
-                                       <xs:element name="BICFI" 
type="BICFIDec2014Identifier" minOccurs="0"/>
-                                       <xs:element name="ClrSysMmbId" 
type="ClearingSystemMemberIdentification2" minOccurs="0"/>
-                                       <xs:element name="LEI" 
type="LEIIdentifier" minOccurs="0"/>
-                                       <xs:element name="Nm" type="Max140Text" 
minOccurs="0"/>
-                                       <xs:element name="PstlAdr" 
type="PostalAddress24_pain001_ch" minOccurs="0"/>
-                                       <xs:element name="Othr" 
type="GenericFinancialIdentification1_pain001_ch" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType 
name="FinancialInstitutionIdentification18_pain001_ch_2">
-               <xs:complexContent>
-                       <xs:restriction 
base="FinancialInstitutionIdentification18">
-                               <xs:sequence>
-                                       <xs:element name="BICFI" 
type="BICFIDec2014Identifier" minOccurs="0"/>
-                                       <xs:element name="ClrSysMmbId" 
type="ClearingSystemMemberIdentification2_pain001_ch" minOccurs="0"/>
-                                       <xs:element name="LEI" 
type="LEIIdentifier" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType 
name="FinancialInstitutionIdentification18_pain001_ch_3">
-               <xs:complexContent>
-                       <xs:restriction 
base="FinancialInstitutionIdentification18">
-                               <xs:sequence>
-                                       <xs:element name="BICFI" 
type="BICFIDec2014Identifier" minOccurs="0"/>
-                                       <xs:element name="ClrSysMmbId" 
type="ClearingSystemMemberIdentification2_pain001_ch" minOccurs="0"/>
-                                       <xs:element name="LEI" 
type="LEIIdentifier" minOccurs="0"/>
-                                       <xs:element name="Nm" type="Max140Text" 
minOccurs="0"/>
-                                       <xs:element name="PstlAdr" 
type="PostalAddress24_pain001_ch_4" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType 
name="FinancialInstitutionIdentification18_pain001_ch_4">
-               <xs:complexContent>
-                       <xs:restriction 
base="FinancialInstitutionIdentification18">
-                               <xs:sequence>
-                                       <xs:element name="BICFI" 
type="BICFIDec2014Identifier" minOccurs="0"/>
-                                       <xs:element name="ClrSysMmbId" 
type="ClearingSystemMemberIdentification2_pain001_ch" minOccurs="0"/>
-                                       <xs:element name="LEI" 
type="LEIIdentifier" minOccurs="0"/>
-                                       <xs:element name="Nm" type="Max140Text" 
minOccurs="0"/>
-                                       <xs:element name="PstlAdr" 
type="PostalAddress24_pain001_ch_3" minOccurs="0"/>
-                                       <xs:element name="Othr" 
type="GenericFinancialIdentification1_pain001_ch_2" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="Garnishment3">
-               <xs:sequence>
-                       <xs:element name="Tp" type="GarnishmentType1"/>
-                       <xs:element name="Grnshee" 
type="PartyIdentification135" minOccurs="0"/>
-                       <xs:element name="GrnshmtAdmstr" 
type="PartyIdentification135" minOccurs="0"/>
-                       <xs:element name="RefNb" type="Max140Text" 
minOccurs="0"/>
-                       <xs:element name="Dt" type="ISODate" minOccurs="0"/>
-                       <xs:element name="RmtdAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
-                       <xs:element name="FmlyMdclInsrncInd" 
type="TrueFalseIndicator" minOccurs="0"/>
-                       <xs:element name="MplyeeTermntnInd" 
type="TrueFalseIndicator" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="Garnishment3_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="Garnishment3">
-                               <xs:sequence>
-                                       <xs:element name="Tp" 
type="GarnishmentType1"/>
-                                       <xs:element name="Grnshee" 
type="PartyIdentification135_pain001_ch_5" minOccurs="0"/>
-                                       <xs:element name="GrnshmtAdmstr" 
type="PartyIdentification135_pain001_ch_5" minOccurs="0"/>
-                                       <xs:element name="RefNb" 
type="Max140Text" minOccurs="0"/>
-                                       <xs:element name="Dt" type="ISODate" 
minOccurs="0"/>
-                                       <xs:element name="RmtdAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
-                                       <xs:element name="FmlyMdclInsrncInd" 
type="TrueFalseIndicator" minOccurs="0"/>
-                                       <xs:element name="MplyeeTermntnInd" 
type="TrueFalseIndicator" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="GarnishmentType1">
-               <xs:sequence>
-                       <xs:element name="CdOrPrtry" 
type="GarnishmentType1Choice"/>
-                       <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="GarnishmentType1Choice">
-               <xs:choice>
-                       <xs:element name="Cd" 
type="ExternalGarnishmentType1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </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="GenericAccountIdentification1_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="GenericAccountIdentification1">
-                               <xs:sequence>
-                                       <xs:element name="Id" type="Max34Text"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </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="GenericFinancialIdentification1_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="GenericFinancialIdentification1">
-                               <xs:sequence>
-                                       <xs:element name="Id" type="Max35Text"/>
-                                       <xs:element name="SchmeNm" 
type="FinancialIdentificationSchemeName1Choice" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="GenericFinancialIdentification1_pain001_ch_2">
-               <xs:complexContent>
-                       <xs:restriction base="GenericFinancialIdentification1">
-                               <xs:sequence>
-                                       <xs:element name="Id" type="Max35Text"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="GenericIdentification30">
-               <xs:sequence>
-                       <xs:element name="Id" type="Exact4AlphaNumericText"/>
-                       <xs:element name="Issr" type="Max35Text"/>
-                       <xs:element name="SchmeNm" 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="GroupHeader85">
-               <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="PartyIdentification135"/>
-                       <xs:element name="FwdgAgt" 
type="BranchAndFinancialInstitutionIdentification6" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="GroupHeader85_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="GroupHeader85">
-                               <xs:sequence>
-                                       <xs:element name="MsgId" 
type="Max35Text_pain001_ch"/>
-                                       <xs:element name="CreDtTm" 
type="ISODateTime"/>
-                                       <xs:element name="NbOfTxs" 
type="Max15NumericText"/>
-                                       <xs:element name="CtrlSum" 
type="DecimalNumber" minOccurs="0"/>
-                                       <xs:element name="InitgPty" 
type="PartyIdentification135_pain001_ch"/>
-                                       <xs:element name="FwdgAgt" 
type="BranchAndFinancialInstitutionIdentification6_pain001_ch" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </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="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:simpleType name="ISODate">
-               <xs:restriction base="xs:date"/>
-       </xs:simpleType>
-       <xs:simpleType name="ISODateTime">
-               <xs:restriction base="xs:dateTime"/>
-       </xs:simpleType>
-       <xs:simpleType name="LEIIdentifier">
-               <xs:restriction base="xs:string">
-                       <xs:pattern value="[A-Z0-9]{18,18}[0-9]{2,2}"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="LocalInstrument2Choice">
-               <xs:choice>
-                       <xs:element name="Cd" 
type="ExternalLocalInstrument1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:simpleType name="Max10Text">
-               <xs:restriction base="SPSText">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="10"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max128Text">
-               <xs:restriction base="SPSText">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="128"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max140Text">
-               <xs:restriction base="SPSText">
-                       <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="SPSText">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="16"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max2048Text">
-               <xs:restriction base="SPSText">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="2048"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max34Text">
-               <xs:restriction base="SPSText">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="34"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max350Text">
-               <xs:restriction base="SPSText">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="350"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max35Text">
-               <xs:restriction base="SPSText">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="35"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Max35Text_pain001_ch">
-               <xs:restriction base="Max35Text">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="35"/>
-                       <xs:pattern 
value="([A-Za-z0-9]|[+|\?|/|\-|:|\(|\)|\.|,|&apos;|\p{Zs}])*"/>
-               </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="SPSText">
-                       <xs:minLength value="1"/>
-                       <xs:maxLength value="70"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="NameAndAddress16">
-               <xs:sequence>
-                       <xs:element name="Nm" type="Max140Text"/>
-                       <xs:element name="Adr" type="PostalAddress24"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="NamePrefix2Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="DOCT"/>
-                       <xs:enumeration value="MADM"/>
-                       <xs:enumeration value="MIKS"/>
-                       <xs:enumeration value="MISS"/>
-                       <xs:enumeration value="MIST"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Number">
-               <xs:restriction base="xs:decimal">
-                       <xs:totalDigits value="18"/>
-                       <xs:fractionDigits value="0"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="OrganisationIdentification29">
-               <xs:sequence>
-                       <xs:element name="AnyBIC" 
type="AnyBICDec2014Identifier" minOccurs="0"/>
-                       <xs:element name="LEI" type="LEIIdentifier" 
minOccurs="0"/>
-                       <xs:element name="Othr" 
type="GenericOrganisationIdentification1" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="OrganisationIdentification29_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="OrganisationIdentification29">
-                               <xs:sequence>
-                                       <xs:element name="AnyBIC" 
type="AnyBICDec2014Identifier" minOccurs="0"/>
-                                       <xs:element name="LEI" 
type="LEIIdentifier" minOccurs="0"/>
-                                       <xs:element name="Othr" 
type="GenericOrganisationIdentification1" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="OrganisationIdentification29_pain001_ch_2">
-               <xs:complexContent>
-                       <xs:restriction base="OrganisationIdentification29">
-                               <xs:sequence>
-                                       <xs:element name="AnyBIC" 
type="AnyBICDec2014Identifier" minOccurs="0"/>
-                                       <xs:element name="LEI" 
type="LEIIdentifier" minOccurs="0"/>
-                                       <xs:element name="Othr" 
type="GenericOrganisationIdentification1" minOccurs="0" maxOccurs="2"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
-               <xs:choice>
-                       <xs:element name="Cd" 
type="ExternalOrganisationIdentification1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:complexType name="OtherContact1">
-               <xs:sequence>
-                       <xs:element name="ChanlTp" type="Max4Text"/>
-                       <xs:element name="Id" type="Max128Text" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="OtherContact1_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="OtherContact1">
-                               <xs:sequence>
-                                       <xs:element name="ChanlTp" 
type="Max4Text"/>
-                                       <xs:element name="Id" 
type="Max128Text"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="Party38Choice">
-               <xs:choice>
-                       <xs:element name="OrgId" 
type="OrganisationIdentification29"/>
-                       <xs:element name="PrvtId" 
type="PersonIdentification13"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:complexType name="Party38Choice_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="Party38Choice">
-                               <xs:choice>
-                                       <xs:element name="OrgId" 
type="OrganisationIdentification29_pain001_ch"/>
-                                       <xs:element name="PrvtId" 
type="PersonIdentification13_pain001_ch"/>
-                               </xs:choice>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="Party38Choice_pain001_ch_2">
-               <xs:complexContent>
-                       <xs:restriction base="Party38Choice">
-                               <xs:choice>
-                                       <xs:element name="OrgId" 
type="OrganisationIdentification29_pain001_ch_2"/>
-                                       <xs:element name="PrvtId" 
type="PersonIdentification13_pain001_ch_2"/>
-                               </xs:choice>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PartyIdentification135">
-               <xs:sequence>
-                       <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
-                       <xs:element name="PstlAdr" type="PostalAddress24" 
minOccurs="0"/>
-                       <xs:element name="Id" type="Party38Choice" 
minOccurs="0"/>
-                       <xs:element name="CtryOfRes" type="CountryCode" 
minOccurs="0"/>
-                       <xs:element name="CtctDtls" type="Contact4" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="PartyIdentification135_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="PartyIdentification135">
-                               <xs:sequence>
-                                       <xs:element name="Nm" type="Max140Text" 
minOccurs="0"/>
-                                       <xs:element name="Id" 
type="Party38Choice_pain001_ch" minOccurs="0"/>
-                                       <xs:element name="CtctDtls" 
type="Contact4_pain001_ch" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PartyIdentification135_pain001_ch_2">
-               <xs:complexContent>
-                       <xs:restriction base="PartyIdentification135">
-                               <xs:sequence>
-                                       <xs:element name="Nm" type="Max140Text" 
minOccurs="0"/>
-                                       <xs:element name="PstlAdr" 
type="PostalAddress24_pain001_ch_2" minOccurs="0"/>
-                                       <xs:element name="Id" 
type="Party38Choice_pain001_ch" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PartyIdentification135_pain001_ch_3">
-               <xs:complexContent>
-                       <xs:restriction base="PartyIdentification135">
-                               <xs:sequence>
-                                       <xs:element name="Nm" type="Max140Text" 
minOccurs="0"/>
-                                       <xs:element name="PstlAdr" 
type="PostalAddress24_pain001_ch_3" minOccurs="0"/>
-                                       <xs:element name="Id" 
type="Party38Choice_pain001_ch" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PartyIdentification135_pain001_ch_4">
-               <xs:complexContent>
-                       <xs:restriction base="PartyIdentification135">
-                               <xs:sequence>
-                                       <xs:element name="Nm" 
type="Max140Text"/>
-                                       <xs:element name="PstlAdr" 
type="PostalAddress24_pain001_ch_3" minOccurs="0"/>
-                                       <xs:element name="Id" 
type="Party38Choice_pain001_ch" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PartyIdentification135_pain001_ch_5">
-               <xs:complexContent>
-                       <xs:restriction base="PartyIdentification135">
-                               <xs:sequence>
-                                       <xs:element name="Nm" type="Max140Text" 
minOccurs="0"/>
-                                       <xs:element name="PstlAdr" 
type="PostalAddress24_pain001_ch_5" minOccurs="0"/>
-                                       <xs:element name="Id" 
type="Party38Choice_pain001_ch_2" minOccurs="0"/>
-                                       <xs:element name="CtryOfRes" 
type="CountryCode" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PaymentIdentification6">
-               <xs:sequence>
-                       <xs:element name="InstrId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="EndToEndId" type="Max35Text"/>
-                       <xs:element name="UETR" type="UUIDv4Identifier" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="PaymentIdentification6_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="PaymentIdentification6">
-                               <xs:sequence>
-                                       <xs:element name="InstrId" 
type="Max35Text_pain001_ch" minOccurs="0"/>
-                                       <xs:element name="EndToEndId" 
type="Max35Text_pain001_ch"/>
-                                       <xs:element name="UETR" 
type="UUIDv4Identifier" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PaymentInstruction30">
-               <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="PaymentTypeInformation26" minOccurs="0"/>
-                       <xs:element name="ReqdExctnDt" 
type="DateAndDateTime2Choice"/>
-                       <xs:element name="PoolgAdjstmntDt" type="ISODate" 
minOccurs="0"/>
-                       <xs:element name="Dbtr" type="PartyIdentification135"/>
-                       <xs:element name="DbtrAcct" type="CashAccount38"/>
-                       <xs:element name="DbtrAgt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-                       <xs:element name="DbtrAgtAcct" type="CashAccount38" 
minOccurs="0"/>
-                       <xs:element name="InstrForDbtrAgt" type="Max140Text" 
minOccurs="0"/>
-                       <xs:element name="UltmtDbtr" 
type="PartyIdentification135" minOccurs="0"/>
-                       <xs:element name="ChrgBr" type="ChargeBearerType1Code" 
minOccurs="0"/>
-                       <xs:element name="ChrgsAcct" type="CashAccount38" 
minOccurs="0"/>
-                       <xs:element name="ChrgsAcctAgt" 
type="BranchAndFinancialInstitutionIdentification6" minOccurs="0"/>
-                       <xs:element name="CdtTrfTxInf" 
type="CreditTransferTransaction34" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="PaymentInstruction30_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="PaymentInstruction30">
-                               <xs:sequence>
-                                       <xs:element name="PmtInfId" 
type="Max35Text_pain001_ch"/>
-                                       <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="PaymentTypeInformation26_pain001_ch" minOccurs="0"/>
-                                       <xs:element name="ReqdExctnDt" 
type="DateAndDateTime2Choice"/>
-                                       <xs:element name="Dbtr" 
type="PartyIdentification135_pain001_ch_2"/>
-                                       <xs:element name="DbtrAcct" 
type="CashAccount38_pain001_ch"/>
-                                       <xs:element name="DbtrAgt" 
type="BranchAndFinancialInstitutionIdentification6_pain001_ch_2"/>
-                                       <xs:element name="InstrForDbtrAgt" 
type="Max140Text" minOccurs="0"/>
-                                       <xs:element name="UltmtDbtr" 
type="PartyIdentification135_pain001_ch_3" minOccurs="0"/>
-                                       <xs:element name="ChrgBr" 
type="ChargeBearerType1Code" minOccurs="0"/>
-                                       <xs:element name="ChrgsAcct" 
type="CashAccount38_pain001_ch_2" minOccurs="0"/>
-                                       <xs:element name="CdtTrfTxInf" 
type="CreditTransferTransaction34_pain001_ch" maxOccurs="unbounded"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:simpleType name="PaymentMethod3Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="CHK"/>
-                       <xs:enumeration value="TRA"/>
-                       <xs:enumeration value="TRF"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="PaymentTypeInformation26">
-               <xs:sequence>
-                       <xs:element name="InstrPrty" type="Priority2Code" 
minOccurs="0"/>
-                       <xs:element name="SvcLvl" type="ServiceLevel8Choice" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="LclInstrm" 
type="LocalInstrument2Choice" minOccurs="0"/>
-                       <xs:element name="CtgyPurp" 
type="CategoryPurpose1Choice" minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="PaymentTypeInformation26_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="PaymentTypeInformation26">
-                               <xs:sequence>
-                                       <xs:element name="InstrPrty" 
type="Priority2Code" minOccurs="0"/>
-                                       <xs:element name="SvcLvl" 
type="ServiceLevel8Choice" minOccurs="0" maxOccurs="3"/>
-                                       <xs:element name="LclInstrm" 
type="LocalInstrument2Choice" minOccurs="0"/>
-                                       <xs:element name="CtgyPurp" 
type="CategoryPurpose1Choice_pain001_ch" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PaymentTypeInformation26_pain001_ch_2">
-               <xs:complexContent>
-                       <xs:restriction base="PaymentTypeInformation26">
-                               <xs:sequence>
-                                       <xs:element name="InstrPrty" 
type="Priority2Code" minOccurs="0"/>
-                                       <xs:element name="SvcLvl" 
type="ServiceLevel8Choice" minOccurs="0" maxOccurs="3"/>
-                                       <xs:element name="LclInstrm" 
type="LocalInstrument2Choice" minOccurs="0"/>
-                                       <xs:element name="CtgyPurp" 
type="CategoryPurpose1Choice" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:simpleType name="PercentageRate">
-               <xs:restriction base="xs:decimal">
-                       <xs:totalDigits value="11"/>
-                       <xs:fractionDigits value="10"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="PersonIdentification13">
-               <xs:sequence>
-                       <xs:element name="DtAndPlcOfBirth" 
type="DateAndPlaceOfBirth1" minOccurs="0"/>
-                       <xs:element name="Othr" 
type="GenericPersonIdentification1" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="PersonIdentification13_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="PersonIdentification13">
-                               <xs:sequence>
-                                       <xs:element name="DtAndPlcOfBirth" 
type="DateAndPlaceOfBirth1" minOccurs="0"/>
-                                       <xs:element name="Othr" 
type="GenericPersonIdentification1" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PersonIdentification13_pain001_ch_2">
-               <xs:complexContent>
-                       <xs:restriction base="PersonIdentification13">
-                               <xs:sequence>
-                                       <xs:element name="DtAndPlcOfBirth" 
type="DateAndPlaceOfBirth1" minOccurs="0"/>
-                                       <xs:element name="Othr" 
type="GenericPersonIdentification1" minOccurs="0" maxOccurs="2"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PersonIdentificationSchemeName1Choice">
-               <xs:choice>
-                       <xs:element name="Cd" 
type="ExternalPersonIdentification1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </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="PostalAddress24">
-               <xs:sequence>
-                       <xs:element name="AdrTp" type="AddressType3Choice" 
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="BldgNm" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="Flr" type="Max70Text" minOccurs="0"/>
-                       <xs:element name="PstBx" type="Max16Text" 
minOccurs="0"/>
-                       <xs:element name="Room" type="Max70Text" minOccurs="0"/>
-                       <xs:element name="PstCd" type="Max16Text" 
minOccurs="0"/>
-                       <xs:element name="TwnNm" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="TwnLctnNm" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="DstrctNm" 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:complexType name="PostalAddress24_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="PostalAddress24">
-                               <xs:sequence>
-                                       <xs:element name="AdrLine" 
type="Max70Text" minOccurs="0" maxOccurs="7"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PostalAddress24_pain001_ch_2">
-               <xs:complexContent>
-                       <xs:restriction base="PostalAddress24">
-                               <xs:sequence>
-                                       <xs:element name="AdrTp" 
type="AddressType3Choice" 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="BldgNm" 
type="Max35Text" minOccurs="0"/>
-                                       <xs:element name="Flr" type="Max70Text" 
minOccurs="0"/>
-                                       <xs:element name="PstBx" 
type="Max16Text" minOccurs="0"/>
-                                       <xs:element name="Room" 
type="Max70Text" minOccurs="0"/>
-                                       <xs:element name="PstCd" 
type="Max16Text" minOccurs="0"/>
-                                       <xs:element name="TwnNm" 
type="Max35Text" minOccurs="0"/>
-                                       <xs:element name="TwnLctnNm" 
type="Max35Text" minOccurs="0"/>
-                                       <xs:element name="DstrctNm" 
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="2"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PostalAddress24_pain001_ch_3">
-               <xs:complexContent>
-                       <xs:restriction base="PostalAddress24">
-                               <xs:sequence>
-                                       <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="BldgNm" 
type="Max35Text" minOccurs="0"/>
-                                       <xs:element name="Flr" type="Max70Text" 
minOccurs="0"/>
-                                       <xs:element name="PstBx" 
type="Max16Text" minOccurs="0"/>
-                                       <xs:element name="Room" 
type="Max70Text" minOccurs="0"/>
-                                       <xs:element name="PstCd" 
type="Max16Text" minOccurs="0"/>
-                                       <xs:element name="TwnNm" 
type="Max35Text" minOccurs="0"/>
-                                       <xs:element name="TwnLctnNm" 
type="Max35Text" minOccurs="0"/>
-                                       <xs:element name="DstrctNm" 
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="2"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PostalAddress24_pain001_ch_4">
-               <xs:complexContent>
-                       <xs:restriction base="PostalAddress24">
-                               <xs:sequence>
-                                       <xs:element name="AdrLine" 
type="Max70Text" minOccurs="0" maxOccurs="2"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="PostalAddress24_pain001_ch_5">
-               <xs:complexContent>
-                       <xs:restriction base="PostalAddress24">
-                               <xs:sequence>
-                                       <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="BldgNm" 
type="Max35Text" minOccurs="0"/>
-                                       <xs:element name="Flr" type="Max70Text" 
minOccurs="0"/>
-                                       <xs:element name="PstBx" 
type="Max16Text" minOccurs="0"/>
-                                       <xs:element name="Room" 
type="Max70Text" minOccurs="0"/>
-                                       <xs:element name="PstCd" 
type="Max16Text" minOccurs="0"/>
-                                       <xs:element name="TwnNm" 
type="Max35Text" minOccurs="0"/>
-                                       <xs:element name="TwnLctnNm" 
type="Max35Text" minOccurs="0"/>
-                                       <xs:element name="DstrctNm" 
type="Max35Text" minOccurs="0"/>
-                                       <xs:element name="CtrySubDvsn" 
type="Max35Text" minOccurs="0"/>
-                                       <xs:element name="Ctry" 
type="CountryCode" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:simpleType name="PreferredContactMethod1Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="CELL"/>
-                       <xs:enumeration value="FAXX"/>
-                       <xs:enumeration value="LETT"/>
-                       <xs:enumeration value="MAIL"/>
-                       <xs:enumeration value="PHON"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="Priority2Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="HIGH"/>
-                       <xs:enumeration value="NORM"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="ProxyAccountIdentification1">
-               <xs:sequence>
-                       <xs:element name="Tp" type="ProxyAccountType1Choice" 
minOccurs="0"/>
-                       <xs:element name="Id" type="Max2048Text"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ProxyAccountType1Choice">
-               <xs:choice>
-                       <xs:element name="Cd" 
type="ExternalProxyAccountType1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:complexType name="Purpose2Choice">
-               <xs:choice>
-                       <xs:element name="Cd" type="ExternalPurpose1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:complexType name="Purpose2Choice_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="Purpose2Choice">
-                               <xs:choice>
-                                       <xs:element name="Cd" 
type="ExternalPurpose1Code"/>
-                               </xs:choice>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="ReferredDocumentInformation7">
-               <xs:sequence>
-                       <xs:element name="Tp" type="ReferredDocumentType4" 
minOccurs="0"/>
-                       <xs:element name="Nb" type="Max35Text" minOccurs="0"/>
-                       <xs:element name="RltdDt" type="ISODate" minOccurs="0"/>
-                       <xs:element name="LineDtls" 
type="DocumentLineInformation1" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="ReferredDocumentType3Choice">
-               <xs:choice>
-                       <xs:element name="Cd" type="DocumentType6Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:complexType name="ReferredDocumentType4">
-               <xs:sequence>
-                       <xs:element name="CdOrPrtry" 
type="ReferredDocumentType3Choice"/>
-                       <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="BOTH"/>
-                       <xs:enumeration value="CRED"/>
-                       <xs:enumeration value="DEBT"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="RemittanceAmount2">
-               <xs:sequence>
-                       <xs:element name="DuePyblAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
-                       <xs:element name="DscntApldAmt" 
type="DiscountAmountAndType1" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="CdtNoteAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
-                       <xs:element name="TaxAmt" type="TaxAmountAndType1" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <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="RemittanceAmount3">
-               <xs:sequence>
-                       <xs:element name="DuePyblAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
-                       <xs:element name="DscntApldAmt" 
type="DiscountAmountAndType1" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="CdtNoteAmt" 
type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
-                       <xs:element name="TaxAmt" type="TaxAmountAndType1" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <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="RemittanceInformation16">
-               <xs:sequence>
-                       <xs:element name="Ustrd" type="Max140Text" 
minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="Strd" 
type="StructuredRemittanceInformation16" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="RemittanceInformation16_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction base="RemittanceInformation16">
-                               <xs:sequence>
-                                       <xs:element name="Ustrd" 
type="Max140Text" minOccurs="0"/>
-                                       <xs:element name="Strd" 
type="StructuredRemittanceInformation16_pain001_ch" minOccurs="0"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="RemittanceLocation7">
-               <xs:sequence>
-                       <xs:element name="RmtId" type="Max35Text" 
minOccurs="0"/>
-                       <xs:element name="RmtLctnDtls" 
type="RemittanceLocationData1" minOccurs="0" maxOccurs="2"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="RemittanceLocationData1">
-               <xs:sequence>
-                       <xs:element name="Mtd" 
type="RemittanceLocationMethod2Code"/>
-                       <xs:element name="ElctrncAdr" type="Max2048Text" 
minOccurs="0"/>
-                       <xs:element name="PstlAdr" type="NameAndAddress16" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="RemittanceLocationMethod2Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="EDIC"/>
-                       <xs:enumeration value="EMAL"/>
-                       <xs:enumeration value="FAXI"/>
-                       <xs:enumeration value="POST"/>
-                       <xs:enumeration value="SMSM"/>
-                       <xs:enumeration value="URID"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="ServiceLevel8Choice">
-               <xs:choice>
-                       <xs:element name="Cd" type="ExternalServiceLevel1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </xs:complexType>
-       <xs:simpleType name="SPSText">
-               <xs:restriction base="xs:string">
-                       <xs:pattern 
value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}\p{IsLatinExtended-A}€ȘșȚț-[\p{C}]]+"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <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="StructuredRemittanceInformation16">
-               <xs:sequence>
-                       <xs:element name="RfrdDocInf" 
type="ReferredDocumentInformation7" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="RfrdDocAmt" type="RemittanceAmount2" 
minOccurs="0"/>
-                       <xs:element name="CdtrRefInf" 
type="CreditorReferenceInformation2" minOccurs="0"/>
-                       <xs:element name="Invcr" type="PartyIdentification135" 
minOccurs="0"/>
-                       <xs:element name="Invcee" type="PartyIdentification135" 
minOccurs="0"/>
-                       <xs:element name="TaxRmt" type="TaxInformation7" 
minOccurs="0"/>
-                       <xs:element name="GrnshmtRmt" type="Garnishment3" 
minOccurs="0"/>
-                       <xs:element name="AddtlRmtInf" type="Max140Text" 
minOccurs="0" maxOccurs="3"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="StructuredRemittanceInformation16_pain001_ch">
-               <xs:complexContent>
-                       <xs:restriction 
base="StructuredRemittanceInformation16">
-                               <xs:sequence>
-                                       <xs:element name="RfrdDocInf" 
type="ReferredDocumentInformation7" minOccurs="0" maxOccurs="unbounded"/>
-                                       <xs:element name="RfrdDocAmt" 
type="RemittanceAmount2" minOccurs="0"/>
-                                       <xs:element name="CdtrRefInf" 
type="CreditorReferenceInformation2" minOccurs="0"/>
-                                       <xs:element name="Invcr" 
type="PartyIdentification135_pain001_ch_5" minOccurs="0"/>
-                                       <xs:element name="Invcee" 
type="PartyIdentification135_pain001_ch_5" minOccurs="0"/>
-                                       <xs:element name="TaxRmt" 
type="TaxInformation7" minOccurs="0"/>
-                                       <xs:element name="GrnshmtRmt" 
type="Garnishment3_pain001_ch" minOccurs="0"/>
-                                       <xs:element name="AddtlRmtInf" 
type="Max140Text" minOccurs="0" maxOccurs="3"/>
-                               </xs:sequence>
-                       </xs:restriction>
-               </xs:complexContent>
-       </xs:complexType>
-       <xs:complexType name="SupplementaryData1">
-               <xs:sequence>
-                       <xs:element name="PlcAndNm" type="Max350Text" 
minOccurs="0"/>
-                       <xs:element name="Envlp" 
type="SupplementaryDataEnvelope1"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="SupplementaryDataEnvelope1">
-               <xs:sequence>
-                       <xs:any namespace="##any" processContents="lax"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TaxAmount2">
-               <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="TaxRecordDetails2" 
minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TaxAmountAndType1">
-               <xs:sequence>
-                       <xs:element name="Tp" type="TaxAmountType1Choice" 
minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TaxAmountType1Choice">
-               <xs:choice>
-                       <xs:element name="Cd" 
type="ExternalTaxAmountType1Code"/>
-                       <xs:element name="Prtry" type="Max35Text"/>
-               </xs:choice>
-       </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="TaxInformation7">
-               <xs:sequence>
-                       <xs:element name="Cdtr" type="TaxParty1" minOccurs="0"/>
-                       <xs:element name="Dbtr" type="TaxParty2" minOccurs="0"/>
-                       <xs:element name="UltmtDbtr" type="TaxParty2" 
minOccurs="0"/>
-                       <xs:element name="AdmstnZone" 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="TaxRecord2" minOccurs="0" 
maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TaxInformation8">
-               <xs:sequence>
-                       <xs:element name="Cdtr" type="TaxParty1" minOccurs="0"/>
-                       <xs:element name="Dbtr" type="TaxParty2" minOccurs="0"/>
-                       <xs:element name="AdmstnZone" 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="TaxRecord2" 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="TaxPeriod2">
-               <xs:sequence>
-                       <xs:element name="Yr" type="ISODate" minOccurs="0"/>
-                       <xs:element name="Tp" type="TaxRecordPeriod1Code" 
minOccurs="0"/>
-                       <xs:element name="FrToDt" type="DatePeriod2" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TaxRecord2">
-               <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="TaxPeriod2" minOccurs="0"/>
-                       <xs:element name="TaxAmt" type="TaxAmount2" 
minOccurs="0"/>
-                       <xs:element name="AddtlInf" type="Max140Text" 
minOccurs="0"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="TaxRecordDetails2">
-               <xs:sequence>
-                       <xs:element name="Prd" type="TaxPeriod2" minOccurs="0"/>
-                       <xs:element name="Amt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:simpleType name="TaxRecordPeriod1Code">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="HLF1"/>
-                       <xs:enumeration value="HLF2"/>
-                       <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:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="TrueFalseIndicator">
-               <xs:restriction base="xs:boolean"/>
-       </xs:simpleType>
-       <xs:simpleType name="UUIDv4Identifier">
-               <xs:restriction base="xs:string">
-                       <xs:pattern 
value="[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}"/>
-               </xs:restriction>
-       </xs:simpleType>
-</xs:schema>
diff --git a/ebics/src/main/resources/xsd/pain.002.001.13.xsd 
b/ebics/src/main/resources/xsd/pain.002.001.13.xsd
deleted file mode 100644
index 01d18ba4..00000000
--- a/ebics/src/main/resources/xsd/pain.002.001.13.xsd
+++ /dev/null
@@ -1,1253 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Generated by Standards Editor (build:R1.6.22) on 2023 Feb 09 10:24:15, ISO 
20022 version : 2013-->
-<xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.13" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified" 
targetNamespace="urn:iso:std:iso:20022:tech:xsd:pain.002.001.13">
-    <xs:element name="Document" type="Document"/>
-    <xs:complexType name="AccountIdentification4Choice">
-        <xs:choice>
-            <xs:element name="IBAN" type="IBAN2007Identifier"/>
-            <xs:element name="Othr" type="GenericAccountIdentification1"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="AccountSchemeName1Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalAccountIdentification1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:simpleType name="ActiveCurrencyAndAmount_SimpleType">
-        <xs:restriction base="xs:decimal">
-            <xs:fractionDigits value="5"/>
-            <xs:totalDigits value="18"/>
-            <xs:minInclusive value="0"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:complexType name="ActiveCurrencyAndAmount">
-        <xs:simpleContent>
-            <xs:extension base="ActiveCurrencyAndAmount_SimpleType">
-                <xs:attribute name="Ccy" type="ActiveCurrencyCode" 
use="required"/>
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-    <xs:simpleType name="ActiveCurrencyCode">
-        <xs:restriction base="xs:string">
-            <xs:pattern value="[A-Z]{3,3}"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
-        <xs:restriction base="xs:decimal">
-            <xs:fractionDigits value="5"/>
-            <xs:totalDigits value="18"/>
-            <xs:minInclusive value="0"/>
-        </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="AddressType3Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="AddressType2Code"/>
-            <xs:element name="Prtry" type="GenericIdentification30"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="AmendmentInformationDetails14">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlMndtId" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlCdtrSchmeId" 
type="PartyIdentification135"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlCdtrAgt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlCdtrAgtAcct" 
type="CashAccount40"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlDbtr" 
type="PartyIdentification135"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlDbtrAcct" 
type="CashAccount40"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlDbtrAgt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlDbtrAgtAcct" 
type="CashAccount40"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlFnlColltnDt" 
type="ISODate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlFrqcy" 
type="Frequency36Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlRsn" 
type="MandateSetupReason1Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlTrckgDays" 
type="Exact2NumericText"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="AmountType4Choice">
-        <xs:choice>
-            <xs:element name="InstdAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-            <xs:element name="EqvtAmt" type="EquivalentAmount2"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:simpleType name="AnyBICDec2014Identifier">
-        <xs:restriction base="xs:string">
-            <xs:pattern 
value="[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="BICFIDec2014Identifier">
-        <xs:restriction base="xs:string">
-            <xs:pattern 
value="[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([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:complexType name="BranchAndFinancialInstitutionIdentification6">
-        <xs:sequence>
-            <xs:element name="FinInstnId" 
type="FinancialInstitutionIdentification18"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" 
type="BranchData3"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="BranchData3">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Id" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="LEI" 
type="LEIIdentifier"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Nm" 
type="Max140Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" 
type="PostalAddress24"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="CashAccount40">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Id" 
type="AccountIdentification4Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Tp" 
type="CashAccountType2Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Ccy" 
type="ActiveOrHistoricCurrencyCode"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Nm" 
type="Max70Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Prxy" 
type="ProxyAccountIdentification1"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="CashAccountType2Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalCashAccountType1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="CategoryPurpose1Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalCategoryPurpose1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </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="ChargeType3Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalChargeType1Code"/>
-            <xs:element name="Prtry" type="GenericIdentification3"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="Charges12">
-        <xs:sequence>
-            <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
-            <xs:element name="Agt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Tp" 
type="ChargeType3Choice"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:simpleType name="ClearingChannel2Code">
-        <xs:restriction base="xs:string">
-            <xs:enumeration value="RTGS"/>
-            <xs:enumeration value="RTNS"/>
-            <xs:enumeration value="MPNS"/>
-            <xs:enumeration value="BOOK"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:complexType name="ClearingSystemIdentification2Choice">
-        <xs:choice>
-            <xs:element name="Cd" 
type="ExternalClearingSystemIdentification1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="ClearingSystemIdentification3Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalCashClearingSystem1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="ClearingSystemMemberIdentification2">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="ClrSysId" 
type="ClearingSystemIdentification2Choice"/>
-            <xs:element name="MmbId" type="Max35Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="Contact4">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="NmPrfx" 
type="NamePrefix2Code"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Nm" 
type="Max140Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="PhneNb" 
type="PhoneNumber"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="MobNb" 
type="PhoneNumber"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="FaxNb" 
type="PhoneNumber"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="EmailAdr" 
type="Max2048Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="EmailPurp" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="JobTitl" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Rspnsblty" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Dept" 
type="Max70Text"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" 
type="OtherContact1"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="PrefrdMtd" 
type="PreferredContactMethod1Code"/>
-        </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="CreditTransferMandateData1">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="MndtId" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Tp" 
type="MandateTypeInformation2"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="DtOfSgntr" 
type="ISODate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="DtOfVrfctn" 
type="ISODateTime"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="ElctrncSgntr" 
type="Max10KBinary"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="FrstPmtDt" 
type="ISODate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="FnlPmtDt" 
type="ISODate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Frqcy" 
type="Frequency36Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Rsn" 
type="MandateSetupReason1Choice"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="CreditorReferenceInformation2">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Tp" 
type="CreditorReferenceType2"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Ref" 
type="Max35Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="CreditorReferenceType1Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="DocumentType3Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="CreditorReferenceType2">
-        <xs:sequence>
-            <xs:element name="CdOrPrtry" type="CreditorReferenceType1Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Issr" 
type="Max35Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="CurrencyExchange13">
-        <xs:sequence>
-            <xs:element name="SrcCcy" type="ActiveCurrencyCode"/>
-            <xs:element name="TrgtCcy" type="ActiveCurrencyCode"/>
-            <xs:element name="XchgRate" type="BaseOneRate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="UnitCcy" 
type="ActiveCurrencyCode"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="CustomerPaymentStatusReportV13">
-        <xs:sequence>
-            <xs:element name="GrpHdr" type="GroupHeader86"/>
-            <xs:element name="OrgnlGrpInfAndSts" type="OriginalGroupHeader17"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" 
name="OrgnlPmtInfAndSts" type="OriginalPaymentInstruction45"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" 
type="SupplementaryData1"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="DateAndDateTime2Choice">
-        <xs:choice>
-            <xs:element name="Dt" type="ISODate"/>
-            <xs:element name="DtTm" type="ISODateTime"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="DateAndPlaceOfBirth1">
-        <xs:sequence>
-            <xs:element name="BirthDt" type="ISODate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" 
type="Max35Text"/>
-            <xs:element name="CityOfBirth" type="Max35Text"/>
-            <xs:element name="CtryOfBirth" type="CountryCode"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="DatePeriod2">
-        <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="DiscountAmountAndType1">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Tp" 
type="DiscountAmountType1Choice"/>
-            <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="DiscountAmountType1Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalDiscountAmountType1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="Document">
-        <xs:sequence>
-            <xs:element name="CstmrPmtStsRpt" 
type="CustomerPaymentStatusReportV13"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="DocumentAdjustment1">
-        <xs:sequence>
-            <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" 
type="CreditDebitCode"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Rsn" 
type="Max4Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" 
type="Max140Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="DocumentLineIdentification1">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Tp" 
type="DocumentLineType1"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Nb" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" 
type="ISODate"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="DocumentLineInformation1">
-        <xs:sequence>
-            <xs:element maxOccurs="unbounded" minOccurs="1" name="Id" 
type="DocumentLineIdentification1"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Desc" 
type="Max2048Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Amt" 
type="RemittanceAmount3"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="DocumentLineType1">
-        <xs:sequence>
-            <xs:element name="CdOrPrtry" type="DocumentLineType1Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Issr" 
type="Max35Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="DocumentLineType1Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalDocumentLineType1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </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="DocumentType6Code">
-        <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:enumeration value="PUOR"/>
-        </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:simpleType name="Exact2NumericText">
-        <xs:restriction base="xs:string">
-            <xs:pattern value="[0-9]{2}"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="Exact4AlphaNumericText">
-        <xs:restriction base="xs:string">
-            <xs:pattern value="[a-zA-Z0-9]{4}"/>
-        </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="ExternalCashAccountType1Code">
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1"/>
-            <xs:maxLength value="4"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="ExternalCashClearingSystem1Code">
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1"/>
-            <xs:maxLength value="3"/>
-        </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="ExternalChargeType1Code">
-        <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="ExternalDiscountAmountType1Code">
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1"/>
-            <xs:maxLength value="4"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="ExternalDocumentLineType1Code">
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1"/>
-            <xs:maxLength value="4"/>
-        </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="ExternalGarnishmentType1Code">
-        <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="ExternalMandateSetupReason1Code">
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1"/>
-            <xs:maxLength value="4"/>
-        </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="ExternalPaymentGroupStatus1Code">
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1"/>
-            <xs:maxLength value="4"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="ExternalPaymentTransactionStatus1Code">
-        <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="ExternalProxyAccountType1Code">
-        <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:simpleType name="ExternalStatusReason1Code">
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1"/>
-            <xs:maxLength value="4"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="ExternalTaxAmountType1Code">
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1"/>
-            <xs:maxLength value="4"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:complexType name="FinancialIdentificationSchemeName1Choice">
-        <xs:choice>
-            <xs:element name="Cd" 
type="ExternalFinancialInstitutionIdentification1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="FinancialInstitutionIdentification18">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="BICFI" 
type="BICFIDec2014Identifier"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" 
type="ClearingSystemMemberIdentification2"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="LEI" 
type="LEIIdentifier"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Nm" 
type="Max140Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" 
type="PostalAddress24"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Othr" 
type="GenericFinancialIdentification1"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="Frequency36Choice">
-        <xs:choice>
-            <xs:element name="Tp" type="Frequency6Code"/>
-            <xs:element name="Prd" type="FrequencyPeriod1"/>
-            <xs:element name="PtInTm" type="FrequencyAndMoment1"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:simpleType name="Frequency6Code">
-        <xs:restriction base="xs:string">
-            <xs:enumeration value="YEAR"/>
-            <xs:enumeration value="MNTH"/>
-            <xs:enumeration value="QURT"/>
-            <xs:enumeration value="MIAN"/>
-            <xs:enumeration value="WEEK"/>
-            <xs:enumeration value="DAIL"/>
-            <xs:enumeration value="ADHO"/>
-            <xs:enumeration value="INDA"/>
-            <xs:enumeration value="FRTN"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:complexType name="FrequencyAndMoment1">
-        <xs:sequence>
-            <xs:element name="Tp" type="Frequency6Code"/>
-            <xs:element name="PtInTm" type="Exact2NumericText"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="FrequencyPeriod1">
-        <xs:sequence>
-            <xs:element name="Tp" type="Frequency6Code"/>
-            <xs:element name="CntPerPrd" type="DecimalNumber"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="Garnishment3">
-        <xs:sequence>
-            <xs:element name="Tp" type="GarnishmentType1"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Grnshee" 
type="PartyIdentification135"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="GrnshmtAdmstr" 
type="PartyIdentification135"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="RefNb" 
type="Max140Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="FmlyMdclInsrncInd" 
type="TrueFalseIndicator"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="MplyeeTermntnInd" 
type="TrueFalseIndicator"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="GarnishmentType1">
-        <xs:sequence>
-            <xs:element name="CdOrPrtry" type="GarnishmentType1Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Issr" 
type="Max35Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="GarnishmentType1Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalGarnishmentType1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="GenericAccountIdentification1">
-        <xs:sequence>
-            <xs:element name="Id" type="Max34Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" 
type="AccountSchemeName1Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Issr" 
type="Max35Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="GenericFinancialIdentification1">
-        <xs:sequence>
-            <xs:element name="Id" type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" 
type="FinancialIdentificationSchemeName1Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Issr" 
type="Max35Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="GenericIdentification3">
-        <xs:sequence>
-            <xs:element name="Id" type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Issr" 
type="Max35Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="GenericIdentification30">
-        <xs:sequence>
-            <xs:element name="Id" type="Exact4AlphaNumericText"/>
-            <xs:element name="Issr" type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" 
type="Max35Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="GenericOrganisationIdentification1">
-        <xs:sequence>
-            <xs:element name="Id" type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" 
type="OrganisationIdentificationSchemeName1Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Issr" 
type="Max35Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="GenericPersonIdentification1">
-        <xs:sequence>
-            <xs:element name="Id" type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" 
type="PersonIdentificationSchemeName1Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Issr" 
type="Max35Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="GroupHeader86">
-        <xs:sequence>
-            <xs:element name="MsgId" type="Max35Text"/>
-            <xs:element name="CreDtTm" type="ISODateTime"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="InitgPty" 
type="PartyIdentification135"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="FwdgAgt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-        </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="ISOYear">
-        <xs:restriction base="xs:gYear"/>
-    </xs:simpleType>
-    <xs:simpleType name="LEIIdentifier">
-        <xs:restriction base="xs:string">
-            <xs:pattern value="[A-Z0-9]{18,18}[0-9]{2,2}"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:complexType name="LocalInstrument2Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalLocalInstrument1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="MandateClassification1Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="MandateClassification1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:simpleType name="MandateClassification1Code">
-        <xs:restriction base="xs:string">
-            <xs:enumeration value="FIXE"/>
-            <xs:enumeration value="USGB"/>
-            <xs:enumeration value="VARI"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:complexType name="MandateRelatedData2Choice">
-        <xs:choice>
-            <xs:element maxOccurs="1" minOccurs="0" name="DrctDbtMndt" 
type="MandateRelatedInformation15"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CdtTrfMndt" 
type="CreditTransferMandateData1"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="MandateRelatedInformation15">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="MndtId" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="DtOfSgntr" 
type="ISODate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="AmdmntInd" 
type="TrueFalseIndicator"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="AmdmntInfDtls" 
type="AmendmentInformationDetails14"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="ElctrncSgntr" 
type="Max1025Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="FrstColltnDt" 
type="ISODate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="FnlColltnDt" 
type="ISODate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Frqcy" 
type="Frequency36Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Rsn" 
type="MandateSetupReason1Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="TrckgDays" 
type="Exact2NumericText"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="MandateSetupReason1Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalMandateSetupReason1Code"/>
-            <xs:element name="Prtry" type="Max70Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="MandateTypeInformation2">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="SvcLvl" 
type="ServiceLevel8Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="LclInstrm" 
type="LocalInstrument2Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CtgyPurp" 
type="CategoryPurpose1Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Clssfctn" 
type="MandateClassification1Choice"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:simpleType name="Max1025Text">
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1"/>
-            <xs:maxLength value="1025"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="Max105Text">
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1"/>
-            <xs:maxLength value="105"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="Max10KBinary">
-        <xs:restriction base="xs:base64Binary">
-            <xs:minLength value="1"/>
-            <xs:maxLength value="10240"/>
-        </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="Max350Text">
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1"/>
-            <xs:maxLength value="350"/>
-        </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:simpleType name="NamePrefix2Code">
-        <xs:restriction base="xs:string">
-            <xs:enumeration value="DOCT"/>
-            <xs:enumeration value="MADM"/>
-            <xs:enumeration value="MISS"/>
-            <xs:enumeration value="MIST"/>
-            <xs:enumeration value="MIKS"/>
-        </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="NumberOfTransactionsPerStatus5">
-        <xs:sequence>
-            <xs:element name="DtldNbOfTxs" type="Max15NumericText"/>
-            <xs:element name="DtldSts" 
type="ExternalPaymentTransactionStatus1Code"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="DtldCtrlSum" 
type="DecimalNumber"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="OrganisationIdentification29">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="AnyBIC" 
type="AnyBICDec2014Identifier"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="LEI" 
type="LEIIdentifier"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" 
type="GenericOrganisationIdentification1"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
-        <xs:choice>
-            <xs:element name="Cd" 
type="ExternalOrganisationIdentification1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="OriginalGroupHeader17">
-        <xs:sequence>
-            <xs:element name="OrgnlMsgId" type="Max35Text"/>
-            <xs:element name="OrgnlMsgNmId" type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlCreDtTm" 
type="ISODateTime"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlNbOfTxs" 
type="Max15NumericText"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlCtrlSum" 
type="DecimalNumber"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="GrpSts" 
type="ExternalPaymentGroupStatus1Code"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="StsRsnInf" 
type="StatusReasonInformation12"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" 
name="NbOfTxsPerSts" type="NumberOfTransactionsPerStatus5"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="OriginalPaymentInstruction45">
-        <xs:sequence>
-            <xs:element name="OrgnlPmtInfId" type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlNbOfTxs" 
type="Max15NumericText"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlCtrlSum" 
type="DecimalNumber"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="PmtInfSts" 
type="ExternalPaymentGroupStatus1Code"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="StsRsnInf" 
type="StatusReasonInformation12"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" 
name="NbOfTxsPerSts" type="NumberOfTransactionsPerStatus5"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="TxInfAndSts" 
type="PaymentTransaction144"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="OriginalTransactionReference35">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Amt" 
type="AmountType4Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" 
type="ISODate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="ReqdColltnDt" 
type="ISODate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="ReqdExctnDt" 
type="DateAndDateTime2Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CdtrSchmeId" 
type="PartyIdentification135"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="SttlmInf" 
type="SettlementInstruction11"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="PmtTpInf" 
type="PaymentTypeInformation27"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="PmtMtd" 
type="PaymentMethod4Code"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="MndtRltdInf" 
type="MandateRelatedData2Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" 
type="RemittanceInformation21"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" 
type="Party40Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" 
type="Party40Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="DbtrAcct" 
type="CashAccount40"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgtAcct" 
type="CashAccount40"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgtAcct" 
type="CashAccount40"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" 
type="Party40Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" 
type="CashAccount40"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" 
type="Party40Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Purp" 
type="Purpose2Choice"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="OtherContact1">
-        <xs:sequence>
-            <xs:element name="ChanlTp" type="Max4Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Id" 
type="Max128Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="Party38Choice">
-        <xs:choice>
-            <xs:element name="OrgId" type="OrganisationIdentification29"/>
-            <xs:element name="PrvtId" type="PersonIdentification13"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="Party40Choice">
-        <xs:choice>
-            <xs:element name="Pty" type="PartyIdentification135"/>
-            <xs:element name="Agt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="PartyIdentification135">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Nm" 
type="Max140Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" 
type="PostalAddress24"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Id" 
type="Party38Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" 
type="CountryCode"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CtctDtls" 
type="Contact4"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:simpleType name="PaymentMethod4Code">
-        <xs:restriction base="xs:string">
-            <xs:enumeration value="CHK"/>
-            <xs:enumeration value="TRF"/>
-            <xs:enumeration value="DD"/>
-            <xs:enumeration value="TRA"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:complexType name="PaymentTransaction144">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="StsId" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlInstrId" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlEndToEndId" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlUETR" 
type="UUIDv4Identifier"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="TxSts" 
type="ExternalPaymentTransactionStatus1Code"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="StsRsnInf" 
type="StatusReasonInformation12"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="ChrgsInf" 
type="Charges12"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="TrckrData" 
type="TrackerData1"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="AccptncDtTm" 
type="ISODateTime"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="ClrSysRef" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="OrgnlTxRef" 
type="OriginalTransactionReference35"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" 
type="SupplementaryData1"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="PaymentTypeInformation27">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="InstrPrty" 
type="Priority2Code"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="ClrChanl" 
type="ClearingChannel2Code"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="SvcLvl" 
type="ServiceLevel8Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="LclInstrm" 
type="LocalInstrument2Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="SeqTp" 
type="SequenceType3Code"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CtgyPurp" 
type="CategoryPurpose1Choice"/>
-        </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="PersonIdentification13">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="DtAndPlcOfBirth" 
type="DateAndPlaceOfBirth1"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" 
type="GenericPersonIdentification1"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="PersonIdentificationSchemeName1Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </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="PostalAddress24">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" 
type="AddressType3Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Dept" 
type="Max70Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="SubDept" 
type="Max70Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" 
type="Max70Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" 
type="Max16Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="BldgNm" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Flr" 
type="Max70Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="PstBx" 
type="Max16Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Room" 
type="Max70Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="PstCd" 
type="Max16Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="TwnLctnNm" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="DstrctNm" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Ctry" 
type="CountryCode"/>
-            <xs:element maxOccurs="7" minOccurs="0" name="AdrLine" 
type="Max70Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:simpleType name="PreferredContactMethod1Code">
-        <xs:restriction base="xs:string">
-            <xs:enumeration value="LETT"/>
-            <xs:enumeration value="MAIL"/>
-            <xs:enumeration value="PHON"/>
-            <xs:enumeration value="FAXX"/>
-            <xs:enumeration value="CELL"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="Priority2Code">
-        <xs:restriction base="xs:string">
-            <xs:enumeration value="HIGH"/>
-            <xs:enumeration value="NORM"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:complexType name="ProxyAccountIdentification1">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Tp" 
type="ProxyAccountType1Choice"/>
-            <xs:element name="Id" type="Max2048Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="ProxyAccountType1Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalProxyAccountType1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="Purpose2Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalPurpose1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="ReferredDocumentInformation7">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Tp" 
type="ReferredDocumentType4"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Nb" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" 
type="ISODate"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="LineDtls" 
type="DocumentLineInformation1"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="ReferredDocumentType3Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="DocumentType6Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="ReferredDocumentType4">
-        <xs:sequence>
-            <xs:element name="CdOrPrtry" type="ReferredDocumentType3Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Issr" 
type="Max35Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="RemittanceAmount2">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" 
name="DscntApldAmt" type="DiscountAmountAndType1"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="TaxAmt" 
type="TaxAmountAndType1"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" 
name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="RemittanceAmount3">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" 
name="DscntApldAmt" type="DiscountAmountAndType1"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="TaxAmt" 
type="TaxAmountAndType1"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" 
name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="RemittanceInformation21">
-        <xs:sequence>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" 
type="Max140Text"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" 
type="StructuredRemittanceInformation17"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:simpleType name="SequenceType3Code">
-        <xs:restriction base="xs:string">
-            <xs:enumeration value="FRST"/>
-            <xs:enumeration value="RCUR"/>
-            <xs:enumeration value="FNAL"/>
-            <xs:enumeration value="OOFF"/>
-            <xs:enumeration value="RPRE"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:complexType name="ServiceLevel8Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalServiceLevel1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="SettlementInstruction11">
-        <xs:sequence>
-            <xs:element name="SttlmMtd" type="SettlementMethod1Code"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="SttlmAcct" 
type="CashAccount40"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="ClrSys" 
type="ClearingSystemIdentification3Choice"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="InstgRmbrsmntAgt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-            <xs:element maxOccurs="1" minOccurs="0" 
name="InstgRmbrsmntAgtAcct" type="CashAccount40"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="InstdRmbrsmntAgt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-            <xs:element maxOccurs="1" minOccurs="0" 
name="InstdRmbrsmntAgtAcct" type="CashAccount40"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="ThrdRmbrsmntAgt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="ThrdRmbrsmntAgtAcct" 
type="CashAccount40"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:simpleType name="SettlementMethod1Code">
-        <xs:restriction base="xs:string">
-            <xs:enumeration value="INDA"/>
-            <xs:enumeration value="INGA"/>
-            <xs:enumeration value="COVE"/>
-            <xs:enumeration value="CLRG"/>
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:complexType name="StatusReason6Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalStatusReason1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="StatusReasonInformation12">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Orgtr" 
type="PartyIdentification135"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Rsn" 
type="StatusReason6Choice"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="AddtlInf" 
type="Max105Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="StructuredRemittanceInformation17">
-        <xs:sequence>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="RfrdDocInf" 
type="ReferredDocumentInformation7"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocAmt" 
type="RemittanceAmount2"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" 
type="CreditorReferenceInformation2"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Invcr" 
type="PartyIdentification135"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Invcee" 
type="PartyIdentification135"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="TaxRmt" 
type="TaxData1"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="GrnshmtRmt" 
type="Garnishment3"/>
-            <xs:element maxOccurs="3" minOccurs="0" name="AddtlRmtInf" 
type="Max140Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="SupplementaryData1">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="PlcAndNm" 
type="Max350Text"/>
-            <xs:element name="Envlp" type="SupplementaryDataEnvelope1"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="SupplementaryDataEnvelope1">
-        <xs:sequence>
-            <xs:any namespace="##any" processContents="lax"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="TaxAmount3">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Rate" 
type="PercentageRate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" 
type="TaxRecordDetails3"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="TaxAmountAndType1">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Tp" 
type="TaxAmountType1Choice"/>
-            <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="TaxAmountType1Choice">
-        <xs:choice>
-            <xs:element name="Cd" type="ExternalTaxAmountType1Code"/>
-            <xs:element name="Prtry" type="Max35Text"/>
-        </xs:choice>
-    </xs:complexType>
-    <xs:complexType name="TaxAuthorisation1">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Titl" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Nm" 
type="Max140Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="TaxData1">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" 
type="TaxParty1"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" 
type="TaxParty2"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" 
type="TaxParty2"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZone" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="RefNb" 
type="Max140Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Mtd" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" 
type="ActiveOrHistoricCurrencyAndAmount"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" 
type="Number"/>
-            <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" 
type="TaxRecord3"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="TaxParty1">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="TaxId" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="RegnId" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" 
type="Max35Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="TaxParty2">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="TaxId" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="RegnId" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Authstn" 
type="TaxAuthorisation1"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="TaxPeriod3">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Yr" type="ISOYear"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Tp" 
type="TaxRecordPeriod1Code"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" 
type="DatePeriod2"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="TaxRecord3">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Tp" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Ctgy" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CtgyDtls" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="DbtrSts" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="CertId" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" 
type="Max35Text"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="Prd" 
type="TaxPeriod3"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" 
type="TaxAmount3"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" 
type="Max140Text"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="TaxRecordDetails3">
-        <xs:sequence>
-            <xs:element maxOccurs="1" minOccurs="0" name="Prd" 
type="TaxPeriod3"/>
-            <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:complexType name="TrackerData1">
-        <xs:sequence>
-            <xs:element name="ConfdDt" type="DateAndDateTime2Choice"/>
-            <xs:element name="ConfdAmt" type="ActiveCurrencyAndAmount"/>
-            <xs:element maxOccurs="unbounded" minOccurs="1" name="TrckrRcrd" 
type="TrackerRecord1"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:complexType name="TrackerRecord1">
-        <xs:sequence>
-            <xs:element name="Agt" 
type="BranchAndFinancialInstitutionIdentification6"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="ChrgBr" 
type="ChargeBearerType1Code"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="ChrgsAmt" 
type="ActiveCurrencyAndAmount"/>
-            <xs:element maxOccurs="1" minOccurs="0" name="XchgRateData" 
type="CurrencyExchange13"/>
-        </xs:sequence>
-    </xs:complexType>
-    <xs:simpleType name="TrueFalseIndicator">
-        <xs:restriction base="xs:boolean"/>
-    </xs:simpleType>
-    <xs:simpleType name="UUIDv4Identifier">
-        <xs:restriction base="xs:string">
-            <xs:pattern 
value="[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}"/>
-        </xs:restriction>
-    </xs:simpleType>
-</xs:schema>
diff --git a/ebics/src/main/resources/xsd/xmldsig-core-schema.xsd 
b/ebics/src/main/resources/xsd/xmldsig-core-schema.xsd
deleted file mode 100644
index 3c397a63..00000000
--- a/ebics/src/main/resources/xsd/xmldsig-core-schema.xsd
+++ /dev/null
@@ -1,318 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- !DOCTYPE schema
-  PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "XMLSchema.dtd"
- [
-   <!ATTLIST schema 
-     xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#";>
-   <!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
-   <!ENTITY % p ''>
-   <!ENTITY % s ''>
-  ] -->
-
-<!-- Schema for XML Signatures
-    http://www.w3.org/2000/09/xmldsig#
-    $Revision: 1.2 $ on $Date: 2006/02/15 16:36:35 $ by $Author: hpl $
-
-    Copyright 2001 The Internet Society and W3C (Massachusetts Institute
-    of Technology, Institut National de Recherche en Informatique et en
-    Automatique, Keio University). All Rights Reserved.
-    http://www.w3.org/Consortium/Legal/
-
-    This document is governed by the W3C Software License [1] as described
-    in the FAQ [2].
-
-    [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
-    [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
--->
-
-
-<schema xmlns="http://www.w3.org/2001/XMLSchema";
-        xmlns:ds="http://www.w3.org/2000/09/xmldsig#";
-        targetNamespace="http://www.w3.org/2000/09/xmldsig#";
-        version="0.1" elementFormDefault="qualified"> 
-
-<!-- Basic Types Defined for Signatures -->
-
-<simpleType name="CryptoBinary">
-  <restriction base="base64Binary">
-  </restriction>
-</simpleType>
-
-<!-- Start Signature -->
-
-<element name="Signature" type="ds:SignatureType"/>
-<complexType name="SignatureType">
-  <sequence> 
-    <element ref="ds:SignedInfo"/> 
-    <element ref="ds:SignatureValue"/> 
-    <element ref="ds:KeyInfo" minOccurs="0"/> 
-    <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/> 
-  </sequence>  
-  <attribute name="Id" type="ID" use="optional"/>
-</complexType>
-
-  <element name="SignatureValue" type="ds:SignatureValueType"/> 
-  <complexType name="SignatureValueType">
-    <simpleContent>
-      <extension base="base64Binary">
-        <attribute name="Id" type="ID" use="optional"/>
-      </extension>
-    </simpleContent>
-  </complexType>
-
-<!-- Start SignedInfo -->
-
-<element name="SignedInfo" type="ds:SignedInfoType"/>
-<complexType name="SignedInfoType">
-  <sequence> 
-    <element ref="ds:CanonicalizationMethod"/> 
-    <element ref="ds:SignatureMethod"/> 
-    <element ref="ds:Reference" maxOccurs="unbounded"/> 
-  </sequence>  
-  <attribute name="Id" type="ID" use="optional"/> 
-</complexType>
-
-  <element name="CanonicalizationMethod" 
type="ds:CanonicalizationMethodType"/> 
-  <complexType name="CanonicalizationMethodType" mixed="true">
-    <sequence>
-      <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
-      <!-- (0,unbounded) elements from (1,1) namespace -->
-    </sequence>
-    <attribute name="Algorithm" type="anyURI" use="required"/> 
-  </complexType>
-
-  <element name="SignatureMethod" type="ds:SignatureMethodType"/>
-  <complexType name="SignatureMethodType" mixed="true">
-    <sequence>
-      <element name="HMACOutputLength" minOccurs="0" 
type="ds:HMACOutputLengthType"/>
-      <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
-      <!-- (0,unbounded) elements from (1,1) external namespace -->
-    </sequence>
-    <attribute name="Algorithm" type="anyURI" use="required"/> 
-  </complexType>
-
-<!-- Start Reference -->
-
-<element name="Reference" type="ds:ReferenceType"/>
-<complexType name="ReferenceType">
-  <sequence> 
-    <element ref="ds:Transforms" minOccurs="0"/> 
-    <element ref="ds:DigestMethod"/> 
-    <element ref="ds:DigestValue"/> 
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/> 
-  <attribute name="URI" type="anyURI" use="optional"/> 
-  <attribute name="Type" type="anyURI" use="optional"/> 
-</complexType>
-
-  <element name="Transforms" type="ds:TransformsType"/>
-  <complexType name="TransformsType">
-    <sequence>
-      <element ref="ds:Transform" maxOccurs="unbounded"/>  
-    </sequence>
-  </complexType>
-
-  <element name="Transform" type="ds:TransformType"/>
-  <complexType name="TransformType" mixed="true">
-    <choice minOccurs="0" maxOccurs="unbounded"> 
-      <any namespace="##other" processContents="lax"/>
-      <!-- (1,1) elements from (0,unbounded) namespaces -->
-      <element name="XPath" type="string"/> 
-    </choice>
-    <attribute name="Algorithm" type="anyURI" use="required"/> 
-  </complexType>
-
-<!-- End Reference -->
-
-<element name="DigestMethod" type="ds:DigestMethodType"/>
-<complexType name="DigestMethodType" mixed="true"> 
-  <sequence>
-    <any namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded"/>
-  </sequence>    
-  <attribute name="Algorithm" type="anyURI" use="required"/> 
-</complexType>
-
-<element name="DigestValue" type="ds:DigestValueType"/>
-<simpleType name="DigestValueType">
-  <restriction base="base64Binary"/>
-</simpleType>
-
-<!-- End SignedInfo -->
-
-<!-- Start KeyInfo -->
-
-<element name="KeyInfo" type="ds:KeyInfoType"/> 
-<complexType name="KeyInfoType" mixed="true">
-  <choice maxOccurs="unbounded">     
-    <element ref="ds:KeyName"/> 
-    <element ref="ds:KeyValue"/> 
-    <element ref="ds:RetrievalMethod"/> 
-    <element ref="ds:X509Data"/> 
-    <element ref="ds:PGPData"/> 
-    <element ref="ds:SPKIData"/>
-    <element ref="ds:MgmtData"/>
-    <any processContents="lax" namespace="##other"/>
-    <!-- (1,1) elements from (0,unbounded) namespaces -->
-  </choice>
-  <attribute name="Id" type="ID" use="optional"/> 
-</complexType>
-
-  <element name="KeyName" type="string"/>
-  <element name="MgmtData" type="string"/>
-
-  <element name="KeyValue" type="ds:KeyValueType"/> 
-  <complexType name="KeyValueType" mixed="true">
-   <choice>
-     <element ref="ds:DSAKeyValue"/>
-     <element ref="ds:RSAKeyValue"/>
-     <any namespace="##other" processContents="lax"/>
-   </choice>
-  </complexType>
-
-  <element name="RetrievalMethod" type="ds:RetrievalMethodType"/> 
-  <complexType name="RetrievalMethodType">
-    <sequence>
-      <element ref="ds:Transforms" minOccurs="0"/> 
-    </sequence>  
-    <attribute name="URI" type="anyURI"/>
-    <attribute name="Type" type="anyURI" use="optional"/>
-  </complexType>
-
-<!-- Start X509Data -->
-
-<element name="X509Data" type="ds:X509DataType"/> 
-<complexType name="X509DataType">
-  <sequence maxOccurs="unbounded">
-    <choice>
-      <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
-      <element name="X509SKI" type="base64Binary"/>
-      <element name="X509SubjectName" type="string"/>
-      <element name="X509Certificate" type="base64Binary"/>
-      <element name="X509CRL" type="base64Binary"/>
-      <any namespace="##other" processContents="lax"/>
-    </choice>
-  </sequence>
-</complexType>
-
-<complexType name="X509IssuerSerialType"> 
-  <sequence> 
-    <element name="X509IssuerName" type="string"/> 
-    <element name="X509SerialNumber" type="integer"/> 
-  </sequence>
-</complexType>
-
-<!-- End X509Data -->
-
-<!-- Begin PGPData -->
-
-<element name="PGPData" type="ds:PGPDataType"/> 
-<complexType name="PGPDataType"> 
-  <choice>
-    <sequence>
-      <element name="PGPKeyID" type="base64Binary"/> 
-      <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/> 
-      <any namespace="##other" processContents="lax" minOccurs="0"
-       maxOccurs="unbounded"/>
-    </sequence>
-    <sequence>
-      <element name="PGPKeyPacket" type="base64Binary"/> 
-      <any namespace="##other" processContents="lax" minOccurs="0"
-       maxOccurs="unbounded"/>
-    </sequence>
-  </choice>
-</complexType>
-
-<!-- End PGPData -->
-
-<!-- Begin SPKIData -->
-
-<element name="SPKIData" type="ds:SPKIDataType"/> 
-<complexType name="SPKIDataType">
-  <sequence maxOccurs="unbounded">
-    <element name="SPKISexp" type="base64Binary"/>
-    <any namespace="##other" processContents="lax" minOccurs="0"/>
-  </sequence>
-</complexType> 
-
-<!-- End SPKIData -->
-
-<!-- End KeyInfo -->
-
-<!-- Start Object (Manifest, SignatureProperty) -->
-
-<element name="Object" type="ds:ObjectType"/> 
-<complexType name="ObjectType" mixed="true">
-  <sequence minOccurs="0" maxOccurs="unbounded">
-    <any namespace="##any" processContents="lax"/>
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/> 
-  <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep 
facet -->
-  <attribute name="Encoding" type="anyURI" use="optional"/> 
-</complexType>
-
-<element name="Manifest" type="ds:ManifestType"/> 
-<complexType name="ManifestType">
-  <sequence>
-    <element ref="ds:Reference" maxOccurs="unbounded"/> 
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/> 
-</complexType>
-
-<element name="SignatureProperties" type="ds:SignaturePropertiesType"/> 
-<complexType name="SignaturePropertiesType">
-  <sequence>
-    <element ref="ds:SignatureProperty" maxOccurs="unbounded"/> 
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/> 
-</complexType>
-
-   <element name="SignatureProperty" type="ds:SignaturePropertyType"/> 
-   <complexType name="SignaturePropertyType" mixed="true">
-     <choice maxOccurs="unbounded">
-       <any namespace="##other" processContents="lax"/>
-       <!-- (1,1) elements from (1,unbounded) namespaces -->
-     </choice>
-     <attribute name="Target" type="anyURI" use="required"/> 
-     <attribute name="Id" type="ID" use="optional"/> 
-   </complexType>
-
-<!-- End Object (Manifest, SignatureProperty) -->
-
-<!-- Start Algorithm Parameters -->
-
-<simpleType name="HMACOutputLengthType">
-  <restriction base="integer"/>
-</simpleType>
-
-<!-- Start KeyValue Element-types -->
-
-<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
-<complexType name="DSAKeyValueType">
-  <sequence>
-    <sequence minOccurs="0">
-      <element name="P" type="ds:CryptoBinary"/>
-      <element name="Q" type="ds:CryptoBinary"/>
-    </sequence>
-    <element name="G" type="ds:CryptoBinary" minOccurs="0"/>
-    <element name="Y" type="ds:CryptoBinary"/>
-    <element name="J" type="ds:CryptoBinary" minOccurs="0"/>
-    <sequence minOccurs="0">
-      <element name="Seed" type="ds:CryptoBinary"/>
-      <element name="PgenCounter" type="ds:CryptoBinary"/>
-    </sequence>
-  </sequence>
-</complexType>
-
-<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
-<complexType name="RSAKeyValueType">
-  <sequence>
-    <element name="Modulus" type="ds:CryptoBinary"/> 
-    <element name="Exponent" type="ds:CryptoBinary"/> 
-  </sequence>
-</complexType> 
-
-<!-- End KeyValue Element-types -->
-
-<!-- End Signature -->
-
-</schema>
diff --git a/ebics/src/test/kotlin/EbicsMessagesTest.kt 
b/ebics/src/test/kotlin/EbicsMessagesTest.kt
deleted file mode 100644
index 28820374..00000000
--- a/ebics/src/test/kotlin/EbicsMessagesTest.kt
+++ /dev/null
@@ -1,365 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2024 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-import junit.framework.TestCase.assertEquals
-import org.apache.xml.security.binding.xmldsig.SignatureType
-import org.junit.Test
-import org.w3c.dom.Element
-import tech.libeufin.common.crypto.CryptoUtil
-import tech.libeufin.ebics.XMLUtil
-import tech.libeufin.ebics.ebics_h004.*
-import tech.libeufin.ebics.ebics_hev.HEVResponse
-import tech.libeufin.ebics.ebics_hev.SystemReturnCodeType
-import tech.libeufin.ebics.ebics_s001.SignatureTypes
-import javax.xml.datatype.DatatypeFactory
-import kotlin.test.assertNotNull
-import kotlin.test.assertTrue
-
-class EbicsMessagesTest {
-    /**
-     * Tests the JAXB instantiation of non-XmlRootElement documents,
-     * as notably are the inner XML strings carrying keys in INI/HIA
-     * messages.
-     */
-    @Test
-    fun testImportNonRoot() {
-        val classLoader = ClassLoader.getSystemClassLoader()
-        val ini = classLoader.getResourceAsStream("ebics_ini_inner_key.xml")
-        val jaxb = 
XMLUtil.convertToJaxb<SignatureTypes.SignaturePubKeyOrderData>(ini)
-        assertEquals("A006", jaxb.value.signaturePubKeyInfo.signatureVersion)
-    }
-
-    /**
-     * Test string -> JAXB
-     */
-    @Test
-    fun testStringToJaxb() {
-        val classLoader = ClassLoader.getSystemClassLoader()
-        val ini = 
classLoader.getResourceAsStream("ebics_ini_request_sample.xml")
-        val jaxb = XMLUtil.convertToJaxb<EbicsUnsecuredRequest>(ini)
-        println("jaxb loaded")
-        assertEquals(
-            "INI",
-            jaxb.value.header.static.orderDetails.orderType
-        )
-    }
-
-    /**
-     * Test JAXB -> string
-     */
-    @Test
-    fun testJaxbToString() {
-        val hevResponseJaxb = HEVResponse().apply {
-            this.systemReturnCode = SystemReturnCodeType().apply {
-                this.reportText = "[EBICS_OK]"
-                this.returnCode = "000000"
-            }
-            this.versionNumber = 
listOf(HEVResponse.VersionNumber.create("H004", "02.50"))
-        }
-        XMLUtil.convertJaxbToBytes(hevResponseJaxb)
-    }
-
-    /**
-     * Test DOM -> JAXB
-     */
-    @Test
-    fun testDomToJaxb() {
-        val classLoader = ClassLoader.getSystemClassLoader()
-        val ini = 
classLoader.getResourceAsStream("ebics_ini_request_sample.xml")
-        val iniDom = XMLUtil.parseIntoDom(ini)
-        XMLUtil.convertDomToJaxb<EbicsUnsecuredRequest>(
-            iniDom
-        )
-    }
-
-    @Test
-    fun testKeyMgmgResponse() {
-        val responseXml = EbicsKeyManagementResponse().apply {
-            header = EbicsKeyManagementResponse.Header().apply {
-                mutable = EbicsKeyManagementResponse.MutableHeaderType().apply 
{
-                    reportText = "foo"
-                    returnCode = "bar"
-                }
-                _static = EbicsKeyManagementResponse.EmptyStaticHeader()
-            }
-            version = "H004"
-            body = EbicsKeyManagementResponse.Body().apply {
-                returnCode = EbicsKeyManagementResponse.ReturnCode().apply {
-                    authenticate = true
-                    value = "000000"
-                }
-            }
-        }
-        val bytes = XMLUtil.convertJaxbToBytes(responseXml)
-        assertTrue(bytes.isNotEmpty())
-    }
-
-    @Test
-    fun testParseHiaRequestOrderData() {
-        val classLoader = ClassLoader.getSystemClassLoader()
-        val hia = classLoader.getResourceAsStream("hia_request_order_data.xml")
-        XMLUtil.convertToJaxb<HIARequestOrderData>(hia)
-    }
-
-    @Test
-    fun testHiaLoad() {
-        val classLoader = ClassLoader.getSystemClassLoader()
-        val hia = classLoader.getResourceAsStream("hia_request.xml")
-        val hiaDom = XMLUtil.parseIntoDom(hia)
-        val x: Element = hiaDom.getElementsByTagNameNS(
-            "urn:org:ebics:H004",
-            "OrderDetails"
-        )?.item(0) as Element
-
-        x.setAttributeNS(
-            "http://www.w3.org/2001/XMLSchema-instance";,
-            "type",
-            "UnsecuredReqOrderDetailsType"
-        )
-
-        XMLUtil.convertDomToJaxb<EbicsUnsecuredRequest>(
-            hiaDom
-        )
-    }
-
-    @Test
-    fun testLoadInnerKey() {
-        val jaxbKey = run {
-            val classLoader = ClassLoader.getSystemClassLoader()
-            val file = classLoader.getResourceAsStream(
-                "ebics_ini_inner_key.xml"
-            )
-            assertNotNull(file)
-            
XMLUtil.convertToJaxb<SignatureTypes.SignaturePubKeyOrderData>(file)
-        }
-
-        val modulus = 
jaxbKey.value.signaturePubKeyInfo.pubKeyValue.rsaKeyValue.modulus
-        val exponent = 
jaxbKey.value.signaturePubKeyInfo.pubKeyValue.rsaKeyValue.exponent
-        CryptoUtil.loadRsaPublicKeyFromComponents(modulus, exponent)
-    }
-
-    @Test
-    fun testLoadIniMessage() {
-        val classLoader = ClassLoader.getSystemClassLoader()
-        val text = 
classLoader.getResourceAsStream("ebics_ini_request_sample.xml")!!
-        XMLUtil.convertToJaxb<EbicsUnsecuredRequest>(text)
-    }
-
-    @Test
-    fun testLoadResponse() {
-        val response = EbicsResponse().apply {
-            version = "H004"
-            header = EbicsResponse.Header().apply {
-                _static = EbicsResponse.StaticHeaderType()
-                mutable = EbicsResponse.MutableHeaderType().apply {
-                    this.reportText = "foo"
-                    this.returnCode = "bar"
-                    this.transactionPhase = 
EbicsTypes.TransactionPhaseType.INITIALISATION
-                }
-            }
-            authSignature = SignatureType()
-            body = EbicsResponse.Body().apply {
-                returnCode = EbicsResponse.ReturnCode().apply {
-                    authenticate = true
-                    value = "asdf"
-                }
-            }
-        }
-        print(XMLUtil.convertJaxbToBytes(response).toString())
-    }
-
-    @Test
-    fun testLoadHpb() {
-        val classLoader = ClassLoader.getSystemClassLoader()
-        val text = classLoader.getResourceAsStream("hpb_request.xml")!!
-        XMLUtil.convertToJaxb<EbicsNpkdRequest>(text)
-    }
-
-    @Test
-    fun testHtd() {
-        val htd = HTDResponseOrderData().apply {
-            this.partnerInfo = EbicsTypes.PartnerInfo().apply {
-                this.accountInfoList = listOf(
-                    EbicsTypes.AccountInfo().apply {
-                        this.id = "acctid1"
-                        this.accountHolder = "Mina Musterfrau"
-                        this.accountNumberList = listOf(
-                            EbicsTypes.GeneralAccountNumber().apply {
-                                this.international = true
-                                this.value = "AT411100000237571500"
-                            }
-                        )
-                        this.currency = "EUR"
-                        this.description = "some account"
-                        this.bankCodeList = listOf(
-                            EbicsTypes.GeneralBankCode().apply {
-                                this.international = true
-                                this.value = "ABAGATWWXXX"
-                            }
-                        )
-                    }
-                )
-                this.addressInfo = EbicsTypes.AddressInfo().apply {
-                    this.name = "Foo"
-                }
-                this.bankInfo = EbicsTypes.BankInfo().apply {
-                    this.hostID = "MYHOST"
-                }
-                this.orderInfoList = listOf(
-                    EbicsTypes.AuthOrderInfoType().apply {
-                        this.description = "foo"
-                        this.orderType = "CCC"
-                        this.orderFormat = "foo"
-                        this.transferType = "Upload"
-                    }
-                )
-            }
-            this.userInfo = EbicsTypes.UserInfo().apply {
-                this.name = "Some User"
-                this.userID = EbicsTypes.UserIDType().apply {
-                    this.status = 2
-                    this.value = "myuserid"
-                }
-                this.permissionList = listOf(
-                    EbicsTypes.UserPermission().apply {
-                        this.orderTypes = "CCC ABC"
-                    }
-                )
-            }
-        }
-
-        val bytes = XMLUtil.convertJaxbToBytes(htd)
-        assert(XMLUtil.validateFromBytes(bytes))
-    }
-
-
-    @Test
-    fun testHkd() {
-        val hkd = HKDResponseOrderData().apply {
-            this.partnerInfo = EbicsTypes.PartnerInfo().apply {
-                this.accountInfoList = listOf(
-                    EbicsTypes.AccountInfo().apply {
-                        this.id = "acctid1"
-                        this.accountHolder = "Mina Musterfrau"
-                        this.accountNumberList = listOf(
-                            EbicsTypes.GeneralAccountNumber().apply {
-                                this.international = true
-                                this.value = "AT411100000237571500"
-                            }
-                        )
-                        this.currency = "EUR"
-                        this.description = "some account"
-                        this.bankCodeList = listOf(
-                            EbicsTypes.GeneralBankCode().apply {
-                                this.international = true
-                                this.value = "ABAGATWWXXX"
-                            }
-                        )
-                    }
-                )
-                this.addressInfo = EbicsTypes.AddressInfo().apply {
-                    this.name = "Foo"
-                }
-                this.bankInfo = EbicsTypes.BankInfo().apply {
-                    this.hostID = "MYHOST"
-                }
-                this.orderInfoList = listOf(
-                    EbicsTypes.AuthOrderInfoType().apply {
-                        this.description = "foo"
-                        this.orderType = "CCC"
-                        this.orderFormat = "foo"
-                        this.transferType = "Upload"
-                    }
-                )
-            }
-            this.userInfoList = listOf(
-                EbicsTypes.UserInfo().apply {
-                    this.name = "Some User"
-                    this.userID = EbicsTypes.UserIDType().apply {
-                        this.status = 2
-                        this.value = "myuserid"
-                    }
-                    this.permissionList = listOf(
-                        EbicsTypes.UserPermission().apply {
-                            this.orderTypes = "CCC ABC"
-                        }
-                    )
-                })
-        }
-
-        val bytes = XMLUtil.convertJaxbToBytes(hkd)
-        assert(XMLUtil.validateFromBytes(bytes))
-    }
-
-    @Test
-    fun testEbicsRequestInitializationPhase() {
-        val ebicsRequestObj = EbicsRequest().apply {
-            this.version = "H004"
-            this.revision = 1
-            this.authSignature = SignatureType()
-            this.header = EbicsRequest.Header().apply {
-                this.authenticate = true
-                this.mutable = EbicsRequest.MutableHeader().apply {
-                    this.transactionPhase = 
EbicsTypes.TransactionPhaseType.INITIALISATION
-                }
-                this.static = EbicsRequest.StaticHeaderType().apply {
-                    this.hostID = "myhost"
-                    this.nonce = ByteArray(16)
-                    this.timestamp =
-                        
DatatypeFactory.newDefaultInstance().newXMLGregorianCalendar(2019, 5, 5, 5, 5, 
5, 0, 0)
-                    this.partnerID = "mypid01"
-                    this.userID = "myusr01"
-                    this.product = EbicsTypes.Product().apply {
-                        this.instituteID = "test"
-                        this.language = "en"
-                        this.value = "test"
-                    }
-                    this.orderDetails = EbicsRequest.OrderDetails().apply {
-                        this.orderAttribute = "DZHNN"
-                        this.orderID = "OR01"
-                        this.orderType = "BLA"
-                        this.orderParams = EbicsRequest.StandardOrderParams()
-                    }
-                    this.bankPubKeyDigests = 
EbicsRequest.BankPubKeyDigests().apply {
-                        this.authentication = EbicsTypes.PubKeyDigest().apply {
-                            this.algorithm = "foo"
-                            this.value = ByteArray(32)
-                            this.version = "X002"
-                        }
-                        this.encryption = EbicsTypes.PubKeyDigest().apply {
-                            this.algorithm = "foo"
-                            this.value = ByteArray(32)
-                            this.version = "E002"
-                        }
-                    }
-                    this.securityMedium = "0000"
-                }
-            }
-            this.body = EbicsRequest.Body().apply {
-            }
-        }
-
-        val str = XMLUtil.convertJaxbToBytes(ebicsRequestObj)
-        val doc = XMLUtil.parseIntoDom(str.inputStream())
-        val pair = CryptoUtil.generateRsaKeyPair(1024)
-        XMLUtil.signEbicsDocument(doc, pair.private)
-        val bytes = XMLUtil.convertDomToBytes(doc)
-        assert(XMLUtil.validateFromBytes(bytes))
-    }
-}
\ No newline at end of file
diff --git a/ebics/src/test/kotlin/EbicsOrderUtilTest.kt 
b/ebics/src/test/kotlin/EbicsOrderUtilTest.kt
deleted file mode 100644
index 1e7afbc1..00000000
--- a/ebics/src/test/kotlin/EbicsOrderUtilTest.kt
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2024 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-import org.junit.Test
-import tech.libeufin.ebics.EbicsOrderUtil
-import tech.libeufin.ebics.XMLUtil
-import tech.libeufin.ebics.ebics_h004.HTDResponseOrderData
-import kotlin.test.assertEquals
-
-
-class EbicsOrderUtilTest {
-
-    @Test
-    fun testComputeOrderIDFromNumber() {
-        assertEquals("OR01", EbicsOrderUtil.computeOrderIDFromNumber(1))
-        assertEquals("OR0A", EbicsOrderUtil.computeOrderIDFromNumber(10))
-        assertEquals("OR10", EbicsOrderUtil.computeOrderIDFromNumber(36))
-        assertEquals("OR11", EbicsOrderUtil.computeOrderIDFromNumber(37))
-    }
-
-    @Test
-    fun testDecodeOrderData() {
-        val orderDataXml = """
-            <?xml version="1.0" encoding="UTF-8"?>
-            <HTDResponseOrderData xmlns="urn:org:ebics:H004" 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:org:ebics:H004 ebics_orders_H004.xsd">
-                <PartnerInfo>
-                    <AddressInfo>
-                        <Name>Mr Anybody</Name>
-                        <Street>CENSORED</Street>
-                        <PostCode>12345</PostCode>
-                        <City>Footown</City>
-                    </AddressInfo>
-                    <BankInfo>
-                        <HostID>BLABLUBLA</HostID>
-                    </BankInfo>
-                    <AccountInfo ID="accid000000001" Currency="EUR">
-                        <AccountNumber 
international="false">12345667</AccountNumber>
-                        <AccountNumber 
international="true">DE54430609999999999999</AccountNumber>
-                        <BankCode international="false">43060967</BankCode>
-                        <BankCode international="true">GENODEM1GLS</BankCode>
-                        <AccountHolder>Mr Anybody</AccountHolder>
-                    </AccountInfo>
-                    <OrderInfo>
-                        <OrderType>C52</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>CAMT052</OrderFormat>
-                        <Description>Abholen Vormerkposten</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>C53</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>CAMT053</OrderFormat>
-                        <Description>Abholen Kontoauszuege</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>C54</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>CAMT054</OrderFormat>
-                        <Description>Abholen Nachricht Sammelbuchungsdatei, 
Soll-, Haben-Avis</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>CDZ</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>XMLBIN</OrderFormat>
-                        <Description>Abholen Payment Status Report for Direct 
Debit</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>CRZ</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>XMLBIN</OrderFormat>
-                        <Description>Abholen Payment Status Report for Credit 
Transfer</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HAA</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>Abrufbare Auftragsarten 
abholen</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HAC</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>HAC</OrderFormat>
-                        <Description>Kundenprotokoll (XML-Format) 
abholen</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HKD</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>Kunden- und Teilnehmerdaten 
abholen</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HPB</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>Public Keys der Bank abholen</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HPD</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>Bankparameter abholen</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HTD</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>Kunden- und Teilnehmerdaten 
abholen</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HVD</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>VEU-Status abrufen</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HVT</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>VEU-Transaktionsdetails 
abrufen</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HVU</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>VEU-Uebersicht abholen</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HVZ</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>VEU-Uebersicht mit Zusatzinformationen 
abholen</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>PTK</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>PTK</OrderFormat>
-                        <Description>Protokolldatei abholen</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>STA</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>MT940</OrderFormat>
-                        <Description>Swift-Tagesauszuege abholen</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>VMK</OrderType>
-                        <TransferType>Download</TransferType>
-                        <OrderFormat>MT942</OrderFormat>
-                        <Description>Abholen kurzfristige 
Vormerkposten</Description>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>AZV</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>DTAZVJS</OrderFormat>
-                        <Description>AZV im Diskettenformat 
senden</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>C1C</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>P8CCOR1</OrderFormat>
-                        <Description>Einreichen von Lastschriften D-1-Option 
in einem Container</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>C2C</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>PN8CONCS</OrderFormat>
-                        <Description>Einreichen von Firmenlastschriften in 
einem Container</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>CCC</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>PN1CONCS</OrderFormat>
-                        <Description>Ueberweisungen im 
SEPA-Container</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>CCT</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>PN1GOCS</OrderFormat>
-                        <Description>Überweisungen im ZKA-Format</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>CCU</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>P1URGCS</OrderFormat>
-                        <Description>Einreichen von 
Eilueberweisungen</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>CDB</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>PAIN8CS</OrderFormat>
-                        <Description>Einreichen von 
Firmenlastschriften</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>CDC</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>PN8CONCS</OrderFormat>
-                        <Description>Einreichen von Lastschriften in einem 
Container</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>CDD</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>PN8GOCS</OrderFormat>
-                        <Description>Einreichen von Lastschriften</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HCA</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>Public Key senden</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HCS</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>Teilnehmerschluessel EU und EBICS 
aendern</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HIA</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>Initiales Senden Public Keys</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HVE</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>VEU-Unterschrift hinzufuegen</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>HVS</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>VEU-Storno</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>INI</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>Passwort-Initialisierung</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>PUB</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>Public-Key senden</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                    <OrderInfo>
-                        <OrderType>SPR</OrderType>
-                        <TransferType>Upload</TransferType>
-                        <OrderFormat>MISC</OrderFormat>
-                        <Description>Sperrung der 
Zugangsberechtigung</Description>
-                        <NumSigRequired>0</NumSigRequired>
-                    </OrderInfo>
-                </PartnerInfo>
-                <UserInfo>
-                    <UserID Status="1">ANYBOMR</UserID>
-                    <Name>Mr Anybody</Name>
-                    <Permission>
-                        <OrderTypes>C52 C53 C54 CDZ CRZ HAA HAC HKD HPB HPD 
HTD HVD HVT HVU HVZ PTK</OrderTypes>
-                    </Permission>
-                    <Permission>
-                        <OrderTypes></OrderTypes>
-                        <AccountID>accid000000001</AccountID>
-                    </Permission>
-                    <Permission AuthorisationLevel="E">
-                        <OrderTypes>AZV CCC CCT CCU</OrderTypes>
-                    </Permission>
-                    <Permission AuthorisationLevel="T">
-                        <OrderTypes>HCA HCS HIA HVE HVS INI PUB 
SPR</OrderTypes>
-                    </Permission>
-                </UserInfo>
-            </HTDResponseOrderData>
-        """.trimIndent().toByteArray().inputStream()
-        XMLUtil.convertToJaxb<HTDResponseOrderData>(orderDataXml)
-    }
-}
\ No newline at end of file
diff --git a/ebics/src/test/kotlin/SignatureDataTest.kt 
b/ebics/src/test/kotlin/SignatureDataTest.kt
deleted file mode 100644
index 9c5e4da6..00000000
--- a/ebics/src/test/kotlin/SignatureDataTest.kt
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2024 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-import org.apache.xml.security.binding.xmldsig.SignatureType
-import org.junit.Test
-import tech.libeufin.common.crypto.CryptoUtil
-import tech.libeufin.ebics.XMLUtil
-import tech.libeufin.ebics.ebics_h004.EbicsRequest
-import tech.libeufin.ebics.ebics_h004.EbicsTypes
-import java.math.BigInteger
-import java.util.*
-import javax.xml.datatype.DatatypeFactory
-
-class SignatureDataTest {
-
-    @Test
-    fun makeSignatureData() {
-
-        val pair = CryptoUtil.generateRsaKeyPair(1024)
-
-        val tmp = EbicsRequest().apply {
-            header = EbicsRequest.Header().apply {
-                version = "H004"
-                revision = 1
-                authenticate = true
-                static = EbicsRequest.StaticHeaderType().apply {
-                    hostID = "some host ID"
-                    nonce = "nonce".toByteArray()
-                    timestamp = 
DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar())
-                    partnerID = "some partner ID"
-                    userID = "some user ID"
-                    orderDetails = EbicsRequest.OrderDetails().apply {
-                        orderType = "TST"
-                        orderAttribute = "OZHNN"
-                    }
-                    bankPubKeyDigests = EbicsRequest.BankPubKeyDigests().apply 
{
-                        authentication = EbicsTypes.PubKeyDigest().apply {
-                            algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                            version = "X002"
-                            value = 
CryptoUtil.getEbicsPublicKeyHash(pair.public)
-                        }
-                        encryption = EbicsTypes.PubKeyDigest().apply {
-                            algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                            version = "E002"
-                            value = 
CryptoUtil.getEbicsPublicKeyHash(pair.public)
-                        }
-                    }
-                    securityMedium = "0000"
-                    numSegments = BigInteger.ONE
-
-                    authSignature = SignatureType()
-                }
-                mutable = EbicsRequest.MutableHeader().apply {
-                    transactionPhase = 
EbicsTypes.TransactionPhaseType.INITIALISATION
-                }
-                body = EbicsRequest.Body().apply {
-                    dataTransfer = EbicsRequest.DataTransfer().apply {
-                        signatureData = EbicsRequest.SignatureData().apply {
-                            authenticate = true
-                            value = "to byte array".toByteArray()
-                        }
-                        dataEncryptionInfo = 
EbicsTypes.DataEncryptionInfo().apply {
-                            transactionKey = "mock".toByteArray()
-                            authenticate = true
-                            encryptionPubKeyDigest = 
EbicsTypes.PubKeyDigest().apply {
-                                algorithm = 
"http://www.w3.org/2001/04/xmlenc#sha256";
-                                version = "E002"
-                                value =
-                                    
CryptoUtil.getEbicsPublicKeyHash(pair.public)
-                            }
-                        }
-                        hostId = "a host ID"
-                    }
-                }
-            }
-        }
-
-        println(XMLUtil.convertJaxbToBytes(tmp))
-
-    }
-}
\ No newline at end of file
diff --git a/ebics/src/test/kotlin/XmlCombinatorsTest.kt 
b/ebics/src/test/kotlin/XmlCombinatorsTest.kt
deleted file mode 100644
index 8d722414..00000000
--- a/ebics/src/test/kotlin/XmlCombinatorsTest.kt
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2024 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-import org.junit.Test
-import tech.libeufin.ebics.XmlBuilder
-import tech.libeufin.ebics.constructXml
-import kotlin.test.assertEquals
-
-class XmlCombinatorsTest {
-
-    @Test
-    fun testWithModularity() {
-        fun module(base: XmlBuilder) {
-            base.el("module")
-        }
-        val s = constructXml("root") {
-            module(this)
-        }
-        println(s)
-        assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" 
standalone=\"yes\"?><root><module/></root>", s)
-    }
-
-    @Test
-    fun testWithIterable() {
-        val s = constructXml("iterable") {
-            el("endOfDocument") {
-                for (i in 1..10)
-                    el("$i/$i$i", "$i$i$i")
-            }
-        }
-        println(s)
-        assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" 
standalone=\"yes\"?><iterable><endOfDocument><1><11>111</11></1><2><22>222</22></2><3><33>333</33></3><4><44>444</44></4><5><55>555</55></5><6><66>666</66></6><7><77>777</77></7><8><88>888</88></8><9><99>999</99></9><10><1010>101010</1010></10></endOfDocument></iterable>",
 s)
-    }
-
-    @Test
-    fun testBasicXmlBuilding() {
-        val s = constructXml("ebics:ebicsRequest") {
-            attr("version", "H004")
-            el("a/b/c") {
-                attr("attribute-of", "c")
-                el("//d/e/f//") {
-                    attr("nested", "true")
-                    el("g/h/")
-                }
-            }
-            el("one more")
-        }
-        println(s)
-        assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" 
standalone=\"yes\"?><ebics:ebicsRequest version=\"H004\"><a><b><c 
attribute-of=\"c\"><><><d><e><f><>< 
nested=\"true\"><g><h></></h></g></></></f></e></d></></></c></b></a><one 
more/></ebics:ebicsRequest>", s)
-    }
-}
diff --git a/ebics/src/test/kotlin/XmlUtilTest.kt 
b/ebics/src/test/kotlin/XmlUtilTest.kt
deleted file mode 100644
index 8b8f340f..00000000
--- a/ebics/src/test/kotlin/XmlUtilTest.kt
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2024 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-import org.apache.xml.security.binding.xmldsig.SignatureType
-import org.junit.Assert.assertTrue
-import org.junit.Test
-import tech.libeufin.common.crypto.CryptoUtil
-import tech.libeufin.common.decodeBase64
-import tech.libeufin.ebics.XMLUtil
-import tech.libeufin.ebics.XMLUtil.Companion.signEbicsResponse
-import tech.libeufin.ebics.ebics_h004.EbicsKeyManagementResponse
-import tech.libeufin.ebics.ebics_h004.EbicsResponse
-import tech.libeufin.ebics.ebics_h004.EbicsTypes
-import tech.libeufin.ebics.ebics_h004.HTDResponseOrderData
-import java.security.KeyPairGenerator
-import javax.xml.transform.stream.StreamSource
-
-class XmlUtilTest {
-
-    @Test
-    fun deserializeConsecutiveLists() {
-        val tmp = XMLUtil.convertToJaxb<HTDResponseOrderData>("""
-            <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-            <HTDResponseOrderData xmlns="urn:org:ebics:H004">
-              <PartnerInfo>
-                <AddressInfo>
-                  <Name>Foo</Name>
-                </AddressInfo>
-                <BankInfo>
-                  <HostID>host01</HostID>
-                </BankInfo>
-                <AccountInfo Currency="EUR" Description="ACCT" ID="acctid1">
-                  <AccountNumber 
international="true">DE21500105174751659277</AccountNumber>
-                  <BankCode international="true">INGDDEFFXXX</BankCode>
-                  <AccountHolder>Mina Musterfrau</AccountHolder>
-                </AccountInfo>
-                <AccountInfo Currency="EUR" Description="glsdemoacct" 
ID="glsdemo">
-                  <AccountNumber 
international="true">DE91430609670123123123</AccountNumber>
-                  <BankCode international="true">GENODEM1GLS</BankCode>
-                  <AccountHolder>Mina Musterfrau</AccountHolder>
-                </AccountInfo>
-                <OrderInfo>
-                  <OrderType>C53</OrderType>
-                  <TransferType>Download</TransferType>
-                  <Description>foo</Description>
-                </OrderInfo>
-                <OrderInfo>
-                  <OrderType>C52</OrderType>
-                  <TransferType>Download</TransferType>
-                  <Description>foo</Description>
-                </OrderInfo>
-                <OrderInfo>
-                  <OrderType>CCC</OrderType>
-                  <TransferType>Upload</TransferType>
-                  <Description>foo</Description>
-                </OrderInfo>
-              </PartnerInfo>
-              <UserInfo>
-                <UserID Status="5">USER1</UserID>
-                <Name>Some User</Name>
-                <Permission>
-                  <OrderTypes>C54 C53 C52 CCC</OrderTypes>
-                </Permission>
-              </UserInfo>
-            </HTDResponseOrderData>""".trimIndent().toByteArray().inputStream()
-        )
-
-        println(tmp.value.partnerInfo.orderInfoList[0].description)
-    }
-
-    @Test
-    fun exceptionOnConversion() {
-        try {
-            XMLUtil.convertToJaxb<EbicsKeyManagementResponse>("<malformed 
xml>".toByteArray().inputStream())
-        } catch (e: javax.xml.bind.UnmarshalException) {
-            // just ensuring this is the exception
-            println("caught")
-            return
-        }
-        assertTrue(false)
-    }
-
-    @Test
-    fun hevValidation(){
-        val classLoader = ClassLoader.getSystemClassLoader()
-        val hev = classLoader.getResourceAsStream("ebics_hev.xml")
-        assertTrue(XMLUtil.validate(StreamSource(hev)))
-    }
-
-    @Test
-    fun iniValidation(){
-        val classLoader = ClassLoader.getSystemClassLoader()
-        val ini = 
classLoader.getResourceAsStream("ebics_ini_request_sample.xml")
-        assertTrue(XMLUtil.validate(StreamSource(ini)))
-    }
-
-    @Test
-    fun basicSigningTest() {
-        val doc = XMLUtil.parseIntoDom("""
-            <myMessage xmlns:ebics="urn:org:ebics:H004">
-                <ebics:AuthSignature />
-                <foo authenticate="true">Hello World</foo>
-            </myMessage>
-        """.trimIndent().toByteArray().inputStream())
-        val kpg = KeyPairGenerator.getInstance("RSA")
-        kpg.initialize(2048)
-        val pair = kpg.genKeyPair()
-        val otherPair = kpg.genKeyPair()
-        XMLUtil.signEbicsDocument(doc, pair.private)
-        kotlin.test.assertTrue(XMLUtil.verifyEbicsDocument(doc, pair.public))
-        kotlin.test.assertFalse(XMLUtil.verifyEbicsDocument(doc, 
otherPair.public))
-    }
-
-    @Test
-    fun verifySigningWithConversion() {
-
-        val pair = CryptoUtil.generateRsaKeyPair(2048)
-
-        val response = EbicsResponse().apply {
-            version = "H004"
-            header = EbicsResponse.Header().apply {
-                _static = EbicsResponse.StaticHeaderType()
-                mutable = EbicsResponse.MutableHeaderType().apply {
-                    this.reportText = "foo"
-                    this.returnCode = "bar"
-                    this.transactionPhase = 
EbicsTypes.TransactionPhaseType.INITIALISATION
-                }
-            }
-            authSignature = SignatureType()
-            body = EbicsResponse.Body().apply {
-                returnCode = EbicsResponse.ReturnCode().apply {
-                    authenticate = true
-                    value = "asdf"
-                }
-            }
-        }
-
-        val signature = signEbicsResponse(response, pair.private)
-        val signatureJaxb = 
XMLUtil.convertToJaxb<EbicsResponse>(signature.inputStream())
-
-        assertTrue(
-            XMLUtil.verifyEbicsDocument(
-                XMLUtil.convertJaxbToDocument(signatureJaxb.value),
-                pair.public
-            )
-        )
-    }
-
-    @Test
-    fun multiAuthSigningTest() {
-        val doc = XMLUtil.parseIntoDom("""
-            <myMessage xmlns:ebics="urn:org:ebics:H004">
-                <ebics:AuthSignature />
-                <foo authenticate="true">Hello World</foo>
-                <bar authenticate="true">Another one!</bar>
-            </myMessage>
-        """.trimIndent().toByteArray().inputStream())
-        val kpg = KeyPairGenerator.getInstance("RSA")
-        kpg.initialize(2048)
-        val pair = kpg.genKeyPair()
-        XMLUtil.signEbicsDocument(doc, pair.private)
-        kotlin.test.assertTrue(XMLUtil.verifyEbicsDocument(doc, pair.public))
-    }
-
-    @Test
-    fun testRefSignature() {
-        val classLoader = ClassLoader.getSystemClassLoader()
-        val docText = classLoader.getResourceAsStream("signature1/doc.xml")
-        val doc = XMLUtil.parseIntoDom(docText)
-        val keyStream = 
classLoader.getResourceAsStream("signature1/public_key.txt")
-        val keyBytes = keyStream.decodeBase64().readAllBytes()
-        val key = CryptoUtil.loadRsaPublicKey(keyBytes)
-        assertTrue(XMLUtil.verifyEbicsDocument(doc, key))
-    }
-}
\ No newline at end of file
diff --git a/ebics/src/test/resources/ebics_hev.xml 
b/ebics/src/test/resources/ebics_hev.xml
deleted file mode 100644
index 9f4598fe..00000000
--- a/ebics/src/test/resources/ebics_hev.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<ebics:ebicsHEVRequest xmlns:ebics="http://www.ebics.org/H000";>
-    <ebics:HostID>EBIXQUAL</ebics:HostID>
-</ebics:ebicsHEVRequest>
diff --git a/ebics/src/test/resources/ebics_ini_inner_key.xml 
b/ebics/src/test/resources/ebics_ini_inner_key.xml
deleted file mode 100644
index 7e199f4f..00000000
--- a/ebics/src/test/resources/ebics_ini_inner_key.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<SignaturePubKeyOrderData 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://www.ebics.org/S001 
http://www.ebics.org/S001/ebics_signature.xsd"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns="http://www.ebics.org/S001";>
-  <SignaturePubKeyInfo>
-    <PubKeyValue>
-      <ds:RSAKeyValue>
-        
<ds:Modulus>s5ktpg3xGjbZZgVTYtW+0e6xsWg142UwvoM3mfuM+qrkIa5bPUGQLH6BRL9IejYosPhoA6jwMBSxO8LfaageyZJt2M5wHklJYz3fADtQrV1bk5R92OaY/9ZZdHxw3xY93tm5JfVrMDW9DEK5B1hUzYFdjuN/qu2/sdE9mwhx2YjYwwdSQzv6MhbtSK9OAJjPGo3fkxsht6maSmRCdgxplIOSO2mmP1wjUzbVUMcrRk9KDMvnb3kCxiTm+evvxX6J4wpY1bAWukolJbaALHlFtgTo1LnulUe/BxiKx9HpmuEAaPsk8kgduXsz5OqH2g/Vyw75x51aKVPxOTBPyP+4kQ==</ds:Modulus>
-        <ds:Exponent>AQAB</ds:Exponent>
-      </ds:RSAKeyValue>
-    </PubKeyValue>
-    <SignatureVersion>A006</SignatureVersion>
-  </SignaturePubKeyInfo>
-  <PartnerID>flo-kid</PartnerID>
-  <UserID>flo-uid</UserID>
-</SignaturePubKeyOrderData>
\ No newline at end of file
diff --git a/ebics/src/test/resources/ebics_ini_request_sample.xml 
b/ebics/src/test/resources/ebics_ini_request_sample.xml
deleted file mode 100644
index a9237a91..00000000
--- a/ebics/src/test/resources/ebics_ini_request_sample.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<ebicsUnsecuredRequest Revision="1" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-                       xsi:schemaLocation="urn:org:ebics:H004 
ebics_keymgmt_request_H004.xsd" Version="H004"
-                       xmlns="urn:org:ebics:H004">
-    <header authenticate="true">
-        <static>
-            <HostID>myhost</HostID>
-            <PartnerID>k1</PartnerID>
-            <UserID>u1</UserID>
-            <OrderDetails>
-                <OrderType>INI</OrderType>
-                <OrderAttribute>DZNNN</OrderAttribute>
-            </OrderDetails>
-            <SecurityMedium>0000</SecurityMedium>
-        </static>
-        <mutable/>
-    </header>
-    <body>
-        <DataTransfer>
-            <OrderData>
-                
eJx9U1tzmkAUfu9M/wNDH524XIINjprBaOIFCopg8CWzyHK/GHaR1V9fhtg0bWrf9nzfdy57LoN7mqXMEZU4KvIhy3c5lkH5vvCiPBiyFfFv7tj70dcvAzMKckiqEhmVu0QnvfRQOYEEMo1/jvsUR0M2JOTQB6Cu624tdosyAALH8eBZU819iDJ4E+WYwHyPWKbR93ELqsUekjb5B3fkRnvcRjCbCMxVBrTmC/5VXJdij72U5OErFXGAk0Gj8Rq3bxf1f7KzzfcZ5u8GzHO/aImGekNsmFboAjWgh/trU/mEvzFa4VVphUdYSsghEOlT7O52gb1xyLbDoR7F24C/Faz6WGhi5lda57VM5lByDetppc5647Uqz1HsFNgIC6UX19rYpPqd6kMYoNNuQQRNqmdJunDOoq9MyKq0eTeR1rKgQwfIu503o7VIHVkkmbTw7VKbbOXJdCmN+dA6O49eXP0Ar5UA
 [...]
-            </OrderData>
-        </DataTransfer>
-    </body>
-</ebicsUnsecuredRequest>
\ No newline at end of file
diff --git a/ebics/src/test/resources/hia_request.xml 
b/ebics/src/test/resources/hia_request.xml
deleted file mode 100644
index 0089a363..00000000
--- a/ebics/src/test/resources/hia_request.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ebicsUnsecuredRequest xmlns="urn:org:ebics:H004"
-                       xmlns:ds="http://www.w3.org/2000/09/xmldsig#";
-                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-                       xsi:schemaLocation="urn:org:ebics:H004 
ebics_keymgmt_request_H004.xsd"
-                       Version="H004"
-                       Revision="1">
-  <header authenticate="true">
-    <static>
-      <HostID>LIBEUFIN-SANDBOX</HostID>
-      <PartnerID>CUSTM001</PartnerID>
-      <UserID>u1</UserID>
-      <OrderDetails>
-      <OrderType>HIA</OrderType>
-      <OrderAttribute>DZNNN</OrderAttribute>
-      </OrderDetails>
-      <SecurityMedium>0000</SecurityMedium>
-    </static>
-    <mutable/>
-  </header>
-  <body>
-    <DataTransfer>
-      
<OrderData>eJzNlsmyo0YWhvf1FBW3l0SZZBY3VHIwCwESM0g7ZpCYxAxPb/mWh7ZdrlUvmhX8Z/gzyPNl5P7npSo/T0nXF0399Q35Cbz9fPi0P8qMmTzHpB8uXZx0fDAEn1+Jdf8e91/f8mFo32F4nuefZuynpstgFAAAAxp+5cR9kf3n7dPn7z0fLb6+jV39/qp6T8Ii6t+PAOA/yn9PXh3/YvpR9+FrAYD8sHbpi39ZLwL7mmpFeVIFX4q6H4I6St4Or157ZhzypB6KKBheP0UfQyVZ5TptDh9G+2+CG5RjcvjNeh/376bF/F3+FtCaeCzH/sCccjF6CEpIHO9qNg7sk6vEJqcu5+zCjy3Te4YaE00r3WCcLidQGGEqJ4uoRMrcaQFlAnAK2xDVb1T2KGFMbW87hbMe9m5XzjCb6kuIareAuStQx66uzs+PUlk5oQim7B6eoNW2qo4Ljxu4jbFWLM4M7n4geL2
 [...]
-    </DataTransfer>
-  </body>
-</ebicsUnsecuredRequest>
diff --git a/ebics/src/test/resources/hia_request_order_data.xml 
b/ebics/src/test/resources/hia_request_order_data.xml
deleted file mode 100644
index cd1f4e4f..00000000
--- a/ebics/src/test/resources/hia_request_order_data.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<HIARequestOrderData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:org:ebics:H004 ebics_orders_H004.xsd" 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns="urn:org:ebics:H004">
-    <AuthenticationPubKeyInfo>
-        <PubKeyValue>
-            <ds:RSAKeyValue>
-                
<ds:Modulus>0Ekicvrcj2+8tsF+DZsWihl9W7AyVwtMLxq3qefSWagpfnV7BVsKYIJ/OhiWpvr3dz6K5lHSatzhG1x//jrZt6VHn5Wkkb0M0vayPUiZbe5s2aLabqfOTrt8TPnHwjZMChDHRmGoKI0OzLyQJ6MIfQrHZ5t61ccWubYO/bgbSnP9H39k8QEp0kmW4Tf4u+28GTLgueNAaaPTdCozZjrST4fH9nyhBUZ3nl+vZ+AiUNdl5UfV109CXhCm3safLboUus6ZcYLm6gTaiwJEdRX7HYbnAQZ5gcoXVz/oyxJqTkicVOLPrTAfi3UmFrnIVF8XBtOPdIXHzSpxZ3yT8gH4zQ==</ds:Modulus>
-                <ds:Exponent>AQAB</ds:Exponent>
-            </ds:RSAKeyValue>
-        </PubKeyValue>
-        <AuthenticationVersion>X002</AuthenticationVersion>
-    </AuthenticationPubKeyInfo>
-    <EncryptionPubKeyInfo>
-        <PubKeyValue>
-            <ds:RSAKeyValue>
-                
<ds:Modulus>0Ekicvrcj2+8tsF+DZsWihl9W7AyVwtMLxq3qefSWagpfnV7BVsKYIJ/OhiWpvr3dz6K5lHSatzhG1x//jrZt6VHn5Wkkb0M0vayPUiZbe5s2aLabqfOTrt8TPnHwjZMChDHRmGoKI0OzLyQJ6MIfQrHZ5t61ccWubYO/bgbSnP9H39k8QEp0kmW4Tf4u+28GTLgueNAaaPTdCozZjrST4fH9nyhBUZ3nl+vZ+AiUNdl5UfV109CXhCm3safLboUus6ZcYLm6gTaiwJEdRX7HYbnAQZ5gcoXVz/oyxJqTkicVOLPrTAfi3UmFrnIVF8XBtOPdIXHzSpxZ3yT8gH4zQ==</ds:Modulus>
-                <ds:Exponent>AQAB</ds:Exponent>
-            </ds:RSAKeyValue>
-        </PubKeyValue>
-        <EncryptionVersion>E002</EncryptionVersion>
-    </EncryptionPubKeyInfo>
-    <PartnerID>PARTNER1</PartnerID>
-    <UserID>USER1</UserID>
-</HIARequestOrderData>
\ No newline at end of file
diff --git a/ebics/src/test/resources/hpb_request.xml 
b/ebics/src/test/resources/hpb_request.xml
deleted file mode 100644
index 3a630fdd..00000000
--- a/ebics/src/test/resources/hpb_request.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ebics:ebicsNoPubKeyDigestsRequest 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:ebics="urn:org:ebics:H004" 
xmlns="http://www.w3.org/2001/XMLSchema"; Version="H004" Revision="1">
-  <ebics:header authenticate="true">
-    <ebics:static>
-      <ebics:HostID>EBIXQUAL</ebics:HostID>
-      <ebics:Nonce>0749134D19E160DA4ACA366180113D44</ebics:Nonce>
-      <ebics:Timestamp>2018-11-01T11:10:35Z</ebics:Timestamp>
-      <ebics:PartnerID>EXCHANGE</ebics:PartnerID>
-      <ebics:UserID>TALER</ebics:UserID>
-      <ebics:OrderDetails>
-        <ebics:OrderType>HPB</ebics:OrderType>
-        <ebics:OrderAttribute>DZHNN</ebics:OrderAttribute>
-      </ebics:OrderDetails>
-      <ebics:SecurityMedium>0000</ebics:SecurityMedium>
-    </ebics:static>
-    <ebics:mutable/>
-  </ebics:header>
-  <ebics:AuthSignature>
-    <ds:SignedInfo>
-      <ds:CanonicalizationMethod 
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
-      <ds:SignatureMethod 
Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
-      <ds:Reference URI="#xpointer(//*[@authenticate='true'])">
-        <ds:Transforms>
-          <ds:Transform 
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
-        </ds:Transforms>
-        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
-        
<ds:DigestValue>yuwpcvmVrNrc1t58aulF6TiqKO+CNe7Dhwaa6V/cKws=</ds:DigestValue>
-      </ds:Reference>
-    </ds:SignedInfo>
-    
<ds:SignatureValue>chhF4/yxSz2WltTR0/DPf01WyncNx3P1XJDr0SylVMVWWSY9S1dYyJKgGOW+g7C/
-HYzrGcFwKrejf79DH3F2Ek8NJLsAFzf/0oxff2eYEe0SlxjXmgsubeMOy5PKB9Ag
-ZiQYMiNy9gaatqcW79E3n/r1nD/lwLsped/4jzWdY+Gfj3z6d18vymmGymbHqIaR
-hawk/Iu/tpMQ3dbvIFbzn9LLMmzfQzG2ZPy3BiQNVWr3aSLl9qG4U9zeK6OyH2/Z
-g1EEnjfJa/+pTCeJmyoDBwgaJWcuCRQmWjvxvbM4ckYnrFkhvLf24on2ydmUeipp
-sMl8q1khyWUC0P0h6otZhD1SUdf1rt14r16bdy1r0ieTVm6m3qXhcX5MXagvFci0
-0OE2mOgf/GXE2WiJLAbRh06s9OvAzHUq4QGQwbkprMBMFw4uxONyNzYl+F9aA5Ic
-Awebf7/dfDJIHZc8XkwY1jNJrmCTzRyTP5eDN4bDPoHqTotDo1CMFaHtnkygg/Lg
-qoirV8mHfqnO4XQBOCUiHZ6mzz81l+O7dYg65cYx9Z76q2cv1PxsMb7Eo4nvux5S
-QPuuid0G5lomHXM/uM3mu4vXcDluCoffgTDimxs0I9X+PB7a2vgSMezwYkj8dA69
-vszH1hwek7DRbRfKUo6HUxl49Gsk0XYG/K30M5fS5JE=</ds:SignatureValue>
-  </ebics:AuthSignature>
-  <ebics:body/>
-</ebics:ebicsNoPubKeyDigestsRequest>
diff --git a/nexus/build.gradle b/nexus/build.gradle
index be202f45..56eda968 100644
--- a/nexus/build.gradle
+++ b/nexus/build.gradle
@@ -22,10 +22,6 @@ dependencies {
     
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version")
 
     implementation(project(":common"))
-    implementation(project(":ebics"))
-
-    // XML parsing/binding and encryption
-    implementation("jakarta.xml.bind:jakarta.xml.bind-api:2.3.3")
 
     // Command line parsing
     implementation("com.github.ajalt.clikt:clikt:$clikt_version")
diff --git a/ebics/codegen.py b/nexus/codegen.py
similarity index 95%
rename from ebics/codegen.py
rename to nexus/codegen.py
index 7b145662..634a9842 100644
--- a/ebics/codegen.py
+++ b/nexus/codegen.py
@@ -58,7 +58,7 @@ def iso20022codegen():
 
 // THIS FILE IS GENERATED, DO NOT EDIT
 
-package tech.libeufin.ebics
+package tech.libeufin.nexus
 
 {extractCodeSet("ExternalStatusReason1Code", "ExternalStatusReasonCode")}
 
@@ -66,7 +66,7 @@ package tech.libeufin.ebics
 
 {extractCodeSet("ExternalPaymentTransactionStatus1Code", 
"ExternalPaymentTransactionStatusCode")}
 """
-    with open("src/main/kotlin/Iso20022CodeSets.kt", "w") as file1:
+    with open("src/main/kotlin/tech/libeufin/nexus/Iso20022CodeSets.kt", "w") 
as file1:
         file1.write(kt)
 
 iso20022codegen()
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt
index 6b88362c..ca7b9116 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt
@@ -27,8 +27,6 @@ import io.ktor.client.*
 import io.ktor.client.plugins.*
 import kotlinx.coroutines.*
 import tech.libeufin.common.*
-import tech.libeufin.ebics.*
-import tech.libeufin.ebics.ebics_h005.Ebics3Request
 import tech.libeufin.nexus.ebics.*
 import java.io.IOException
 import java.io.InputStream
@@ -66,53 +64,6 @@ data class FetchContext(
     val fileLogger: FileLogger
 )
 
-/**
- * Downloads content via EBICS, according to the order params passed
- * by the caller.
- *
- * @param T [Ebics2Request] for EBICS 2 or 
[Ebics3Request.OrderDetails.BTOrderParams] for EBICS 3
- * @param ctx [FetchContext]
- * @param req contains the instructions for the download, namely
- *            which document is going to be downloaded from the bank.
- * @return the [ByteArray] payload.  On an empty response, the array
- *         length is zero.  It returns null, if the bank assigned an
- *         error to the EBICS transaction.
- */
-private suspend fun downloadHelper(
-    ctx: FetchContext,
-    lastExecutionTime: Instant? = null,
-    doc: SupportedDocument,
-    processing: (InputStream) -> Unit
-) {
-    val isEbics3 = doc != SupportedDocument.PAIN_002_LOGS
-    val initXml = if (isEbics3) {
-        createEbics3DownloadInitialization(
-            ctx.cfg,
-            ctx.bankKeys,
-            ctx.clientKeys,
-            prepEbics3Document(doc, lastExecutionTime)
-        )
-    } else {
-        val ebics2Req = prepEbics2Document(doc, lastExecutionTime)
-        createEbics25DownloadInit(
-            ctx.cfg,
-            ctx.clientKeys,
-            ctx.bankKeys,
-            ebics2Req.messageType,
-            ebics2Req.orderParams
-        )
-    }
-    return ebicsDownload(
-        ctx.httpClient,
-        ctx.cfg,
-        ctx.clientKeys,
-        ctx.bankKeys,
-        initXml,
-        isEbics3,
-        processing
-    )
-}
-
 /**
  * Converts the 2-digits fraction value as given by the bank
  * (postfinance dialect), to the Taler 8-digit value (db representation).
@@ -322,7 +273,7 @@ private fun ingestDocuments(
 private suspend fun fetchDocuments(
     db: Database,
     ctx: FetchContext,
-    docs: List<Document>
+    docs: List<EbicsDocument>
 ): Boolean {
     val lastExecutionTime: Instant? = ctx.pinnedStart
     return docs.all { doc ->
@@ -332,9 +283,18 @@ private suspend fun fetchDocuments(
             } else {
                 logger.info("Fetching '${doc.fullDescription()}' from 
timestamp: $lastExecutionTime")
             }
-            val doc = doc.doc()
             // downloading the content
-            downloadHelper(ctx, lastExecutionTime, doc) { stream ->
+            val doc = doc.doc()
+            val order = downloadDocService(doc, doc == 
SupportedDocument.PAIN_002_LOGS)
+            ebicsDownload(
+                ctx.httpClient,
+                ctx.cfg,
+                ctx.clientKeys,
+                ctx.bankKeys,
+                order,
+                lastExecutionTime,
+                null
+            ) { stream ->
                 val loggedStream = ctx.fileLogger.logFetch(
                     stream,
                     doc == SupportedDocument.PAIN_002_LOGS
@@ -349,7 +309,7 @@ private suspend fun fetchDocuments(
     }
 }
 
-enum class Document {
+enum class EbicsDocument {
     /// EBICS acknowledgement - CustomerAcknowledgement HAC pain.002
     acknowledgement,
     /// Payment status - CustomerPaymentStatusReport pain.002
@@ -394,10 +354,10 @@ class EbicsFetch: CliktCommand("Fetches EBICS files") {
         help = "This flag fetches only once from the bank and returns, " +
                 "ignoring the 'frequency' configuration value"
     ).flag(default = false)
-    private val documents: Set<Document> by argument(
+    private val documents: Set<EbicsDocument> by argument(
         help = "Which documents should be fetched? If none are specified, all 
supported documents will be fetched",
-        helpTags = Document.entries.map { Pair(it.name, it.shortDescription()) 
}.toMap()
-    ).enum<Document>().multiple().unique()
+        helpTags = EbicsDocument.entries.map { Pair(it.name, 
it.shortDescription()) }.toMap()
+    ).enum<EbicsDocument>().multiple().unique()
     private val pinnedStart by option(
         help = "Constant YYYY-MM-DD date for the earliest document" +
                 " to download (only consumed in --transient mode).  The" +
@@ -434,7 +394,7 @@ class EbicsFetch: CliktCommand("Fetches EBICS files") {
                 null,
                 FileLogger(ebicsLog)
             )
-            val docs = if (documents.isEmpty()) Document.entries else 
documents.toList()
+            val docs = if (documents.isEmpty()) EbicsDocument.entries else 
documents.toList()
             if (transient) {
                 logger.info("Transient mode: fetching once and returning.")
                 val pinnedStartVal = pinnedStart
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSetup.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSetup.kt
index a9e595f4..b0cbc299 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSetup.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSetup.kt
@@ -23,9 +23,9 @@ import com.github.ajalt.clikt.core.CliktCommand
 import com.github.ajalt.clikt.parameters.groups.*
 import com.github.ajalt.clikt.parameters.options.*
 import io.ktor.client.*
+import io.ktor.client.plugins.*
 import tech.libeufin.common.*
 import tech.libeufin.common.crypto.*
-import tech.libeufin.ebics.*
 import tech.libeufin.nexus.ebics.*
 import java.nio.file.*
 import java.time.Instant
@@ -81,8 +81,8 @@ fun String.spaceEachTwo() =
  * @return true if the user accepted, false otherwise.
  */
 private fun askUserToAcceptKeys(bankKeys: BankPublicKeysFile): Boolean {
-    val encHash = 
CryptoUtil.getEbicsPublicKeyHash(bankKeys.bank_encryption_public_key).toHexString()
-    val authHash = 
CryptoUtil.getEbicsPublicKeyHash(bankKeys.bank_authentication_public_key).toHexString()
+    val encHash = 
CryptoUtil.getEbicsPublicKeyHash(bankKeys.bank_encryption_public_key).encodeUpHex()
+    val authHash = 
CryptoUtil.getEbicsPublicKeyHash(bankKeys.bank_authentication_public_key).encodeUpHex()
     println("The bank has the following keys:")
     println("Encryption key: ${encHash.spaceEachTwo()}")
     println("Authentication key: ${authHash.spaceEachTwo()}")
@@ -91,43 +91,6 @@ private fun askUserToAcceptKeys(bankKeys: 
BankPublicKeysFile): Boolean {
     return userResponse == "yes, accept"
 }
 
-/**
- * Parses the HPB response and stores the bank keys as "NOT accepted" to disk.
- *
- * @param cfg used to get the location of the bank keys file.
- * @param bankKeys bank response to the HPB message.
- */
-private fun handleHpbResponse(
-    cfg: EbicsSetupConfig,
-    bankKeys: EbicsKeyManagementResponseContent
-) {
-    val hpbBytes = bankKeys.orderData // silences compiler.
-    if (hpbBytes == null) {
-        throw Exception("HPB content not found in a EBICS response with 
successful return codes.")
-    }
-    val hpbObj = try {
-        parseEbicsHpbOrder(hpbBytes.inputStream())
-    } catch (e: Exception) {
-        throw Exception("HPB response content seems invalid", e)
-    }
-    val encPub = try {
-        CryptoUtil.loadRsaPublicKey(hpbObj.encryptionPubKey.encoded)
-    } catch (e: Exception) {
-        throw Exception("Could not import bank encryption key from HPB 
response", e)
-    }
-    val authPub = try {
-        CryptoUtil.loadRsaPublicKey(hpbObj.authenticationPubKey.encoded)
-    } catch (e: Exception) {
-        throw Exception("Could not import bank authentication key from HPB 
response", e)
-    }
-    val json = BankPublicKeysFile(
-        bank_authentication_public_key = authPub,
-        bank_encryption_public_key = encPub,
-        accepted = false
-    )
-    persistBankKeys(json, cfg.bankPublicKeysFilename)
-}
-
 /**
  * Collects all the steps from generating the message, to
  * sending it to the bank, and finally updating the state
@@ -147,37 +110,57 @@ suspend fun doKeysRequestAndUpdateState(
     orderType: KeysOrderType
 ) {
     logger.info("Doing key request ${orderType.name}")
+    val impl = Ebics3KeyMng(cfg, privs)
     val req = when(orderType) {
-        KeysOrderType.INI -> generateIniMessage(cfg, privs)
-        KeysOrderType.HIA -> generateHiaMessage(cfg, privs)
-        KeysOrderType.HPB -> generateHpbMessage(cfg, privs)
+        KeysOrderType.INI -> impl.INI()
+        KeysOrderType.HIA -> impl.HIA()
+        KeysOrderType.HPB -> impl.HPB()
     }
-    val xml = try {
-        client.postToBank(cfg.hostBaseUrl, req)
-    } catch (e: Exception) {
-        throw Exception("Could not POST the ${orderType.name} message to the 
bank at '${cfg.hostBaseUrl}'", e)
-    }
-    val ebics = parseKeysMgmtResponse(privs.encryption_private_key, xml)
-    if (ebics == null) {
-        throw Exception("Could not get any EBICS from the bank 
${orderType.name} response ($xml).")
-    }
-    if (ebics.technicalReturnCode != EbicsReturnCode.EBICS_OK) {
-        throw Exception("EBICS ${orderType.name} failed with code: 
${ebics.technicalReturnCode}")
-    }
-    if (ebics.bankReturnCode != EbicsReturnCode.EBICS_OK) {
-        throw Exception("EBICS ${orderType.name} reached the bank, but could 
not be fulfilled, error code: ${ebics.bankReturnCode}")
+    val xml = client.postToBank(cfg.hostBaseUrl, req, "$orderType")
+    val resp = Ebics3KeyMng.parseResponse(xml, privs.encryption_private_key)
+    
+    when (orderType) {
+        KeysOrderType.INI, KeysOrderType.HIA -> {
+            if (resp.technicalCode == 
EbicsReturnCode.EBICS_INVALID_USER_OR_USER_STATE) {
+                throw Exception("$orderType status code ${resp.technicalCode}: 
either your IDs are incorrect, or you already have keys registered with this 
bank")
+            }
+        }
+        KeysOrderType.HPB -> {
+            if (resp.technicalCode == 
EbicsReturnCode.EBICS_AUTHENTICATION_FAILED) {
+                throw Exception("$orderType status code ${resp.technicalCode}: 
could not download bank keys, send client keys (and/or related PDF document 
with --generate-registration-pdf) to the bank")
+            }
+        }
     }
-
+    
+    val orderData = resp.okOrFail("${orderType.name}")
     when (orderType) {
         KeysOrderType.INI -> privs.submitted_ini = true
         KeysOrderType.HIA -> privs.submitted_hia = true
-        KeysOrderType.HPB -> return handleHpbResponse(cfg, ebics)
+        KeysOrderType.HPB -> {
+            val orderData = requireNotNull(orderData) {
+                "HPB: missing order data"
+            }
+            val (authPub, encPub) = Ebics3KeyMng.parseHpbOrder(orderData)
+            val bankKeys = BankPublicKeysFile(
+                bank_authentication_public_key = authPub,
+                bank_encryption_public_key = encPub,
+                accepted = false
+            )
+            try {
+                persistBankKeys(bankKeys, cfg.bankPublicKeysFilename)
+            } catch (e: Exception) {
+                throw Exception("Could not update the ${orderType.name} state 
on disk", e)
+            }
+        }
     }
-    try {
-        persistClientKeys(privs, cfg.clientPrivateKeysFilename)
-    } catch (e: Exception) {
-        throw Exception("Could not update the ${orderType.name} state on 
disk", e)
+    if (orderType != KeysOrderType.HPB) {
+        try {
+            persistClientKeys(privs, cfg.clientPrivateKeysFilename)
+        } catch (e: Exception) {
+            throw Exception("Could not update the ${orderType.name} state on 
disk", e)
+        }
     }
+    
 }
 
 /**
@@ -231,7 +214,12 @@ class EbicsSetup: CliktCommand("Set up the EBICS 
subscriber") {
         val cfg = extractEbicsConfig(common.config)
         // Config is sane.  Go (maybe) making the private keys.
         val clientKeys = 
loadOrGenerateClientKeys(cfg.clientPrivateKeysFilename)
-        val httpClient = HttpClient()
+        val httpClient =  HttpClient {
+            install(HttpTimeout) {
+                // It can take a lot of time for the bank to generate documents
+                socketTimeoutMillis = 5 * 60 * 1000
+            }
+        }
         // Privs exist.  Upload their pubs
         val keysNotSub = !clientKeys.submitted_ini
         if ((!clientKeys.submitted_ini) || forceKeysResubmission)
@@ -244,16 +232,12 @@ class EbicsSetup: CliktCommand("Set up the EBICS 
subscriber") {
         // Checking if the bank keys exist on disk.
         var bankKeys = loadBankKeys(cfg.bankPublicKeysFilename)
         if (bankKeys == null) {
-            try {
-                doKeysRequestAndUpdateState(
-                    cfg,
-                    clientKeys,
-                    httpClient,
-                    KeysOrderType.HPB
-                )
-            } catch (e: Exception) {
-                throw Exception("Could not download bank keys. Send client 
keys (and/or related PDF document with --generate-registration-pdf) to the 
bank", e)
-            }
+            doKeysRequestAndUpdateState(
+                cfg,
+                clientKeys,
+                httpClient,
+                KeysOrderType.HPB
+            )
             logger.info("Bank keys stored at ${cfg.bankPublicKeysFilename}")
             bankKeys = loadBankKeys(cfg.bankPublicKeysFilename)!!
         }
@@ -264,12 +248,12 @@ class EbicsSetup: CliktCommand("Set up the EBICS 
subscriber") {
             else bankKeys.accepted = askUserToAcceptKeys(bankKeys)
 
             if (!bankKeys.accepted) {
-                throw Exception("Cannot successfully finish the setup without 
accepting the bank keys.")
+                throw Exception("Cannot successfully finish the setup without 
accepting the bank keys")
             }
             try {
                 persistBankKeys(bankKeys, cfg.bankPublicKeysFilename)
             } catch (e: Exception) {
-                throw Exception("Could not set bank keys as accepted on 
disk.", e)
+                throw Exception("Could not set bank keys as accepted on disk", 
e)
             }
         }
         
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt
index d38ee64c..82c1a459 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt
@@ -25,28 +25,10 @@ import com.github.ajalt.clikt.parameters.options.*
 import io.ktor.client.*
 import kotlinx.coroutines.*
 import tech.libeufin.common.*
-import tech.libeufin.nexus.ebics.EbicsSideError
-import tech.libeufin.nexus.ebics.EbicsSideException
-import tech.libeufin.nexus.ebics.EbicsUploadException
-import tech.libeufin.nexus.ebics.submitPain001
+import tech.libeufin.nexus.ebics.*
 import java.time.*
 import java.util.*
 
-/**
- * Possible stages when an error may occur.  These stages
- * help to decide the retry policy.
- */
-enum class NexusSubmissionStage {
-    pain,
-    ebics,
-    /**
-     * Includes both non-200 responses and network issues.
-     * They are both considered transient (non-200 responses
-     * can be fixed by changing and reloading the configuration).
-     */
-    reachability
-}
-
 /**
  * Groups useful parameters to submit pain.001 via EBICS.
  */
@@ -70,16 +52,6 @@ data class SubmissionContext(
     val fileLogger: FileLogger
 )
 
-/**
- * Expresses one error that occurred while submitting one pain.001
- * document via EBICS.
- */
-class NexusSubmitException(
-    msg: String? = null,
-    cause: Throwable? = null,
-    val stage: NexusSubmissionStage
-) : Exception(msg, cause)
-
 /**
  * Takes the initiated payment data as it was returned from the
  * database, sanity-checks it, gets the pain.001 from the helper
@@ -113,38 +85,14 @@ private suspend fun submitInitiatedPayment(
         wireTransferSubject = payment.wireTransferSubject
     )
     ctx.fileLogger.logSubmit(xml)
-    try {
-        return submitPain001(
-            xml,
-            ctx.cfg,
-            ctx.clientPrivateKeysFile,
-            ctx.bankPublicKeysFile,
-            ctx.httpClient
-        )
-    } catch (early: EbicsSideException) {
-        val errorStage = when (early.sideEc) {
-            EbicsSideError.HTTP_POST_FAILED ->
-                NexusSubmissionStage.reachability // transient error
-            /**
-             * Any other [EbicsSideError] should be treated as permanent,
-             * as they involve invalid signatures or an unexpected response
-             * format.  For this reason, they get the "ebics" stage assigned
-             * below, that will cause the payment as permanently failed and
-             * not to be retried.
-             */
-            else ->
-                NexusSubmissionStage.ebics // permanent error
-        }
-        throw NexusSubmitException(
-            stage = errorStage,
-            cause = early
-        )
-    } catch (permanent: EbicsUploadException) {
-        throw NexusSubmitException(
-            stage = NexusSubmissionStage.ebics,
-            cause = permanent
-        )
-    }
+    return doEbicsUpload(
+        ctx.httpClient,
+        ctx.cfg,
+        ctx.clientPrivateKeysFile,
+        ctx.bankPublicKeysFile,
+        uploadPaymentService(),
+        xml
+    )
 }
 
 /**
@@ -157,43 +105,23 @@ private suspend fun submitInitiatedPayment(
  * @param clientKeys subscriber private keys.
  * @param bankKeys bank public keys.
  */
-private fun submitBatch(
+private suspend fun submitBatch(
     ctx: SubmissionContext,
     db: Database,
 ) {
     logger.debug("Running submit at: ${Instant.now()}")
-    runBlocking {
-        db.initiatedPaymentsSubmittableGet(ctx.cfg.currency).forEach {
-            logger.debug("Submitting payment initiation with row ID: ${it.id}")
-            val submissionState = try {
-                val orderId = submitInitiatedPayment(ctx, it)
-                db.mem[orderId] = "Init"
-                DatabaseSubmissionState.success
-            } catch (e: NexusSubmitException) {
-                logger.error(e.message)
-                when (e.stage) {
-                    /**
-                     * Permanent failure: the pain.001 was invalid.  For 
example a Payto
-                     * URI was missing the receiver name, or the currency was 
wrong.  Must
-                     * not be retried.
-                     */
-                    NexusSubmissionStage.pain -> 
DatabaseSubmissionState.permanent_failure
-                    /**
-                     * Transient failure: HTTP or network failed, either 
because one party
-                     * was offline / unreachable, or because the bank URL is 
wrong.  In both
-                     * cases, the initiated payment stored in the database may 
still be correct,
-                     * therefore we set this error as transient, and it'll be 
retried.
-                     */
-                    NexusSubmissionStage.reachability -> 
DatabaseSubmissionState.transient_failure
-                    /**
-                     * As in the pain.001 case, there is a fundamental problem 
in the document
-                     * being submitted, so it should not be retried.
-                     */
-                    NexusSubmissionStage.ebics -> 
DatabaseSubmissionState.permanent_failure
-                }
-            }
-            db.initiatedPaymentSetSubmittedState(it.id, submissionState)
+    db.initiatedPaymentsSubmittableGet(ctx.cfg.currency).forEach {
+        logger.debug("Submitting payment initiation with row ID: ${it.id}")
+        val submissionState = try {
+            val orderId = submitInitiatedPayment(ctx, it)
+            db.mem[orderId] = "Init"
+            DatabaseSubmissionState.success
+        } catch (e: Exception) {
+            e.fmtLog(logger)
+            DatabaseSubmissionState.transient_failure
+            // TODO 
         }
+        db.initiatedPaymentSetSubmittedState(it.id, submissionState)
     }
 }
 
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt
index fb9c03ce..a9f44077 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt
@@ -19,7 +19,6 @@
 package tech.libeufin.nexus
 
 import tech.libeufin.common.*
-import tech.libeufin.ebics.*
 import java.io.InputStream
 import java.net.URLEncoder
 import java.time.*
@@ -76,14 +75,14 @@ fun createPain001(
     amount: TalerAmount,
     wireTransferSubject: String,
     creditAccount: IbanAccountMetadata
-): String {
+): ByteArray {
     val namespace = Pain001Namespaces(
         fullNamespace = "urn:iso:std:iso:20022:tech:xsd:pain.001.001.09",
         xsdFilename = "pain.001.001.09.ch.03.xsd"
     )
     val zonedTimestamp = ZonedDateTime.ofInstant(initiationTimestamp, 
ZoneId.of("UTC"))
     val amountWithoutCurrency: String = getAmountNoCurrency(amount)
-    return constructXml("Document") {
+    return XmlBuilder.toBytes("Document") {
         attr("xmlns", namespace.fullNamespace)
         attr("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance";)
         attr("xsi:schemaLocation", "${namespace.fullNamespace} 
${namespace.xsdFilename}")
diff --git a/ebics/src/main/kotlin/Iso20022CodeSets.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022CodeSets.kt
similarity index 99%
rename from ebics/src/main/kotlin/Iso20022CodeSets.kt
rename to nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022CodeSets.kt
index f5e338df..bc2c7eae 100644
--- a/ebics/src/main/kotlin/Iso20022CodeSets.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022CodeSets.kt
@@ -19,7 +19,7 @@
 
 // THIS FILE IS GENERATED, DO NOT EDIT
 
-package tech.libeufin.ebics
+package tech.libeufin.nexus
 
 enum class ExternalStatusReasonCode(val isoCode: String, val description: 
String) {
        AB01("AbortedClearingTimeout", "Clearing process aborted due to 
timeout."),
diff --git a/ebics/src/main/kotlin/Iso20022Constants.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022Constants.kt
similarity index 97%
rename from ebics/src/main/kotlin/Iso20022Constants.kt
rename to nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022Constants.kt
index 961f5f90..abc7bc80 100644
--- a/ebics/src/main/kotlin/Iso20022Constants.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022Constants.kt
@@ -17,7 +17,7 @@
  * <http://www.gnu.org/licenses/>
  */
 
-package tech.libeufin.ebics
+package tech.libeufin.nexus
 
 enum class HacAction(val description: String) {
        FILE_UPLOAD("File submitted to the bank"),
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Log.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/Log.kt
index 9b4867d1..1367c97c 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Log.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Log.kt
@@ -80,7 +80,7 @@ class FileLogger(path: String?) {
      *
      * @param content EBICS submit content
      */
-    fun logSubmit(content: String) {
+    fun logSubmit(content: ByteArray) {
         if (dir == null) return
 
         // Subdir based on current day.
@@ -90,6 +90,6 @@ class FileLogger(path: String?) {
         // Creating the combined dir.
         val subDir = 
dir.resolve("${asUtcDate.year}-${asUtcDate.monthValue}-${asUtcDate.dayOfMonth}").resolve("submit")
         subDir.createDirectories()
-        subDir.resolve("${nowMs}_pain.001.xml").writeText(content)
+        subDir.resolve("${nowMs}_pain.001.xml").writeBytes(content)
     }
 }
\ No newline at end of file
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/PDF.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/PDF.kt
new file mode 100644
index 00000000..a485477c
--- /dev/null
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/PDF.kt
@@ -0,0 +1,115 @@
+/*
+ * This file is part of LibEuFin.
+ * Copyright (C) 2024 Taler Systems S.A.
+
+ * LibEuFin is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation; either version 3, or
+ * (at your option) any later version.
+
+ * LibEuFin is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
+ * Public License for more details.
+
+ * You should have received a copy of the GNU Affero General Public
+ * License along with LibEuFin; see the file COPYING.  If not, see
+ * <http://www.gnu.org/licenses/>
+ */
+
+package tech.libeufin.nexus
+
+import com.itextpdf.kernel.pdf.PdfDocument
+import com.itextpdf.kernel.pdf.PdfWriter
+import com.itextpdf.layout.Document
+import com.itextpdf.layout.element.AreaBreak
+import com.itextpdf.layout.element.Paragraph
+import java.security.interfaces.RSAPrivateCrtKey
+import java.time.LocalDateTime
+import java.time.format.DateTimeFormatter
+import java.util.*
+import java.io.ByteArrayOutputStream
+import tech.libeufin.common.crypto.*
+
+/**
+ * Generate the PDF document with all the client public keys
+ * to be sent on paper to the bank.
+ */
+fun generateKeysPdf(
+    clientKeys: ClientPrivateKeysFile,
+    cfg: EbicsSetupConfig
+): ByteArray {
+    val po = ByteArrayOutputStream()
+    val pdfWriter = PdfWriter(po)
+    val pdfDoc = PdfDocument(pdfWriter)
+    val date = LocalDateTime.now()
+    val dateStr = date.format(DateTimeFormatter.ISO_LOCAL_DATE)
+
+    fun formatHex(ba: ByteArray): String {
+        var out = ""
+        for (i in ba.indices) {
+            val b = ba[i]
+            if (i > 0 && i % 16 == 0) {
+                out += "\n"
+            }
+            out += java.lang.String.format("%02X", b)
+            out += " "
+        }
+        return out
+    }
+
+    fun writeCommon(doc: Document) {
+        doc.add(
+            Paragraph(
+                """
+            Datum: $dateStr
+            Host-ID: ${cfg.ebicsHostId}
+            User-ID: ${cfg.ebicsUserId}
+            Partner-ID: ${cfg.ebicsPartnerId}
+            ES version: A006
+        """.trimIndent()
+            )
+        )
+    }
+
+    fun writeKey(doc: Document, priv: RSAPrivateCrtKey) {
+        val pub = CryptoUtil.getRsaPublicFromPrivate(priv)
+        val hash = CryptoUtil.getEbicsPublicKeyHash(pub)
+        
doc.add(Paragraph("Exponent:\n${formatHex(pub.publicExponent.toByteArray())}"))
+        doc.add(Paragraph("Modulus:\n${formatHex(pub.modulus.toByteArray())}"))
+        doc.add(Paragraph("SHA-256 hash:\n${formatHex(hash)}"))
+    }
+
+    fun writeSigLine(doc: Document) {
+        doc.add(Paragraph("Ort / Datum: ________________"))
+        doc.add(Paragraph("Firma / Name: ________________"))
+        doc.add(Paragraph("Unterschrift: ________________"))
+    }
+
+    Document(pdfDoc).use {
+        it.add(Paragraph("Signaturschlüssel").setFontSize(24f))
+        writeCommon(it)
+        it.add(Paragraph("Öffentlicher Schlüssel (Public key for the 
electronic signature)"))
+        writeKey(it, clientKeys.signature_private_key)
+        it.add(Paragraph("\n"))
+        writeSigLine(it)
+        it.add(AreaBreak())
+
+        it.add(Paragraph("Authentifikationsschlüssel").setFontSize(24f))
+        writeCommon(it)
+        it.add(Paragraph("Öffentlicher Schlüssel (Public key for the 
identification and authentication signature)"))
+        writeKey(it, clientKeys.authentication_private_key)
+        it.add(Paragraph("\n"))
+        writeSigLine(it)
+        it.add(AreaBreak())
+
+        it.add(Paragraph("Verschlüsselungsschlüssel").setFontSize(24f))
+        writeCommon(it)
+        it.add(Paragraph("Öffentlicher Schlüssel (Public encryption key)"))
+        writeKey(it, clientKeys.encryption_private_key)
+        it.add(Paragraph("\n"))
+        writeSigLine(it)
+    }
+    pdfWriter.flush()
+    return po.toByteArray()
+}
\ No newline at end of file
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/XMLUtil.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/XMLUtil.kt
new file mode 100644
index 00000000..2893f367
--- /dev/null
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/XMLUtil.kt
@@ -0,0 +1,175 @@
+/*
+ * This file is part of LibEuFin.
+ * Copyright (C) 2024 Taler Systems S.A.
+
+ * LibEuFin is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation; either version 3, or
+ * (at your option) any later version.
+
+ * LibEuFin is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
+ * Public License for more details.
+
+ * You should have received a copy of the GNU Affero General Public
+ * License along with LibEuFin; see the file COPYING.  If not, see
+ * <http://www.gnu.org/licenses/>
+ */
+
+package tech.libeufin.nexus
+
+import tech.libeufin.nexus.ebics.*
+import io.ktor.http.*
+import org.w3c.dom.Document
+import org.w3c.dom.Node
+import org.w3c.dom.NodeList
+import org.w3c.dom.ls.LSInput
+import org.w3c.dom.ls.LSResourceResolver
+import org.xml.sax.ErrorHandler
+import org.xml.sax.InputSource
+import org.xml.sax.SAXException
+import org.xml.sax.SAXParseException
+import java.io.*
+import java.security.PrivateKey
+import java.security.PublicKey
+import java.security.interfaces.RSAPrivateCrtKey
+import javax.xml.XMLConstants
+import javax.xml.crypto.*
+import javax.xml.crypto.dom.DOMURIReference
+import javax.xml.crypto.dsig.*
+import javax.xml.crypto.dsig.dom.DOMSignContext
+import javax.xml.crypto.dsig.dom.DOMValidateContext
+import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec
+import javax.xml.crypto.dsig.spec.TransformParameterSpec
+import javax.xml.namespace.NamespaceContext
+import javax.xml.parsers.DocumentBuilderFactory
+import javax.xml.transform.OutputKeys
+import javax.xml.transform.Source
+import javax.xml.transform.TransformerFactory
+import javax.xml.transform.dom.DOMSource
+import javax.xml.transform.stream.StreamResult
+import javax.xml.transform.stream.StreamSource
+import javax.xml.validation.SchemaFactory
+import javax.xml.validation.Validator
+import javax.xml.xpath.XPath
+import javax.xml.xpath.XPathConstants
+import javax.xml.xpath.XPathFactory
+
+/**
+ * This URI dereferencer allows handling the resource reference used for
+ * XML signatures in EBICS.
+ */
+private class EbicsSigUriDereferencer : URIDereferencer {
+    override fun dereference(myRef: URIReference?, myCtx: XMLCryptoContext?): 
Data {
+        if (myRef !is DOMURIReference)
+            throw Exception("invalid type")
+        if (myRef.uri != "#xpointer(//*[@authenticate='true'])")
+            throw Exception("invalid EBICS XML signature URI: '${myRef.uri}'")
+        val xp: XPath = XPathFactory.newInstance().newXPath()
+        val nodeSet = 
xp.compile("//*[@authenticate='true']/descendant-or-self::node()").evaluate(
+            myRef.here.ownerDocument, XPathConstants.NODESET
+        )
+        if (nodeSet !is NodeList)
+            throw Exception("invalid type")
+        if (nodeSet.length <= 0) {
+            throw Exception("no nodes to sign")
+        }
+        val nodeList = ArrayList<Node>()
+        for (i in 0 until nodeSet.length) {
+            val node = nodeSet.item(i)
+            nodeList.add(node)
+        }
+        return NodeSetData { nodeList.iterator() }
+    }
+}
+
+/**
+ * Helpers for dealing with XML in EBICS.
+ */
+object XMLUtil {
+    fun convertDomToBytes(document: Document): ByteArray {
+        val w = ByteArrayOutputStream()
+        val transformer = TransformerFactory.newInstance().newTransformer()
+        transformer.setOutputProperty(OutputKeys.STANDALONE, "yes")
+        transformer.transform(DOMSource(document), StreamResult(w))
+        return w.toByteArray()
+    }
+
+    /** Parse [xml] into a XML DOM */
+    fun parseIntoDom(xml: InputStream): Document {
+        val factory = DocumentBuilderFactory.newInstance().apply {
+            isNamespaceAware = true
+        }
+        val builder = factory.newDocumentBuilder()
+        return xml.use { 
+            builder.parse(InputSource(it))
+        }
+    }
+
+    /**
+     * Sign an EBICS document with the authentication and identity signature.
+     */
+    fun signEbicsDocument(
+        doc: Document,
+        signingPriv: PrivateKey,
+        schema: String
+    ) {
+        val authSigNode = XPathFactory.newInstance().newXPath()
+            .evaluate("/*[1]/urn:org:ebics:$schema:AuthSignature", doc, 
XPathConstants.NODE)
+        if (authSigNode !is Node)
+            throw java.lang.Exception("no AuthSignature")
+        val fac = XMLSignatureFactory.getInstance("DOM")
+        val c14n = fac.newTransform(CanonicalizationMethod.INCLUSIVE, null as 
TransformParameterSpec?)
+        val ref: Reference =
+            fac.newReference(
+                "#xpointer(//*[@authenticate='true'])",
+                fac.newDigestMethod(DigestMethod.SHA256, null),
+                listOf(c14n),
+                null,
+                null
+            )
+        val canon: CanonicalizationMethod =
+            fac.newCanonicalizationMethod(CanonicalizationMethod.INCLUSIVE, 
null as C14NMethodParameterSpec?)
+        val signatureMethod = 
fac.newSignatureMethod("http://www.w3.org/2001/04/xmldsig-more#rsa-sha256";, 
null)
+        val si: SignedInfo = fac.newSignedInfo(canon, signatureMethod, 
listOf(ref))
+        val sig: XMLSignature = fac.newXMLSignature(si, null)
+        val dsc = DOMSignContext(signingPriv, authSigNode)
+        dsc.defaultNamespacePrefix = "ds"
+        dsc.uriDereferencer = EbicsSigUriDereferencer()
+        dsc.setProperty("javax.xml.crypto.dsig.cacheReference", true)
+        sig.sign(dsc)
+        val innerSig = authSigNode.firstChild
+        while (innerSig.hasChildNodes()) {
+            authSigNode.appendChild(innerSig.firstChild)
+        }
+        authSigNode.removeChild(innerSig)
+    }
+
+    fun verifyEbicsDocument(
+        doc: Document,
+        signingPub: PublicKey,
+        schema: String
+    ): Boolean {
+        val doc2: Document = doc.cloneNode(true) as Document
+        val authSigNode = XPathFactory.newInstance().newXPath()
+            .evaluate("/*[1]/urn:org:ebics:$schema:AuthSignature", doc2, 
XPathConstants.NODE)
+        if (authSigNode !is Node)
+            throw java.lang.Exception("no AuthSignature")
+        val sigEl = doc2.createElementNS("http://www.w3.org/2000/09/xmldsig#";, 
"ds:Signature")
+        authSigNode.parentNode.insertBefore(sigEl, authSigNode)
+        while (authSigNode.hasChildNodes()) {
+            sigEl.appendChild(authSigNode.firstChild)
+        }
+        authSigNode.parentNode.removeChild(authSigNode)
+        val fac = XMLSignatureFactory.getInstance("DOM")
+        val dvc = DOMValidateContext(signingPub, sigEl)
+        dvc.setProperty("javax.xml.crypto.dsig.cacheReference", true)
+        dvc.uriDereferencer = EbicsSigUriDereferencer()
+        val sig = fac.unmarshalXMLSignature(dvc)
+        // FIXME: check that parameters are okay!
+        val valResult = sig.validate(dvc)
+        sig.signedInfo.references[0].validate(dvc)
+        return valResult
+    }
+}
\ No newline at end of file
diff --git a/ebics/src/main/kotlin/XmlCombinators.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/XmlCombinators.kt
similarity index 52%
rename from ebics/src/main/kotlin/XmlCombinators.kt
rename to nexus/src/main/kotlin/tech/libeufin/nexus/XmlCombinators.kt
index ce1c9f37..cfb93782 100644
--- a/ebics/src/main/kotlin/XmlCombinators.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/XmlCombinators.kt
@@ -17,19 +17,64 @@
  * <http://www.gnu.org/licenses/>
  */
 
-package tech.libeufin.ebics
+package tech.libeufin.nexus
 
-import org.w3c.dom.Element
+import org.w3c.dom.*
 import java.io.InputStream
 import java.io.StringWriter
 import java.time.LocalDate
 import java.time.LocalDateTime
 import java.time.format.DateTimeFormatter
+import javax.xml.parsers.*
 import javax.xml.stream.XMLOutputFactory
 import javax.xml.stream.XMLStreamWriter
 
-class XmlBuilder(private val w: XMLStreamWriter) {
-    fun el(path: String, lambda: XmlBuilder.() -> Unit = {}) {
+interface XmlBuilder {
+    fun el(path: String, lambda: XmlBuilder.() -> Unit = {})
+    fun el(path: String, content: String) {
+        el(path) {
+            text(content)
+        }
+    }
+    fun attr(namespace: String, name: String, value: String)
+    fun attr(name: String, value: String)
+    fun text(content: String)
+
+    companion object {
+        fun toBytes(root: String, f: XmlBuilder.() -> Unit): ByteArray {
+            val factory = XMLOutputFactory.newFactory()
+            val stream = StringWriter()
+            var writer = factory.createXMLStreamWriter(stream)
+            /**
+             * NOTE: commenting out because it wasn't obvious how to output the
+             * "standalone = 'yes' directive".  Manual forge was therefore 
preferred.
+             */
+            stream.write("<?xml version=\"1.0\" encoding=\"UTF-8\" 
standalone=\"yes\"?>")
+            XmlStreamBuilder(writer).el(root) {
+                this.f()
+            }
+            writer.writeEndDocument()
+            return stream.buffer.toString().toByteArray()
+        }
+
+        fun toDom(root: String, schema: String?, f: XmlBuilder.() -> Unit): 
Document {
+            val factory = DocumentBuilderFactory.newInstance();
+            factory.isNamespaceAware = true
+            val builder = factory.newDocumentBuilder();
+            val doc = builder.newDocument();
+            doc.setXmlVersion("1.0")
+            doc.setXmlStandalone(true)
+            val root = doc.createElementNS(schema, root)
+            doc.appendChild(root);
+            XmlDOMBuilder(doc, schema, root).f()
+            doc.normalize()
+            return doc
+        }
+    }
+}
+
+private class XmlStreamBuilder(private val w: XMLStreamWriter): XmlBuilder {
+    override fun el(path: String, lambda: XmlBuilder.() -> Unit) {
         path.splitToSequence('/').forEach { 
             w.writeStartElement(it)
         }
@@ -39,35 +84,42 @@ class XmlBuilder(private val w: XMLStreamWriter) {
         }
     }
 
-    fun el(path: String, content: String) {
-        el(path) {
-            text(content)
-        }
+    override fun attr(namespace: String, name: String, value: String) {
+        w.writeAttribute(namespace, name, value)
     }
 
-    fun attr(name: String, value: String) {
+    override fun attr(name: String, value: String) {
         w.writeAttribute(name, value)
     }
 
-    fun text(content: String) {
+    override fun text(content: String) {
         w.writeCharacters(content)
     }
 }
 
-fun constructXml(root: String, f: XmlBuilder.() -> Unit): String {
-    val factory = XMLOutputFactory.newFactory()
-    val stream = StringWriter()
-    var writer = factory.createXMLStreamWriter(stream)
-    /**
-     * NOTE: commenting out because it wasn't obvious how to output the
-     * "standalone = 'yes' directive".  Manual forge was therefore preferred.
-     */
-    stream.write("<?xml version=\"1.0\" encoding=\"UTF-8\" 
standalone=\"yes\"?>")
-    XmlBuilder(writer).el(root) {
-        this.f()
-    }
-    writer.writeEndDocument()
-    return stream.buffer.toString()
+private class XmlDOMBuilder(private val doc: Document, private val schema: 
String?, private var node: Element): XmlBuilder {
+    override fun el(path: String, lambda: XmlBuilder.() -> Unit) {
+        val current = node
+        path.splitToSequence('/').forEach {
+            val new = doc.createElementNS(schema, it)
+            node.appendChild(new)
+            node = new
+        }
+        lambda()
+        node = current
+    }
+
+    override fun attr(namespace: String, name: String, value: String) {
+        node.setAttributeNS(namespace, name, value)
+    }
+
+    override fun attr(name: String, value: String) {
+        node.setAttribute(name, value)
+    }
+
+    override fun text(content: String) {
+        node.appendChild(doc.createTextNode(content));
+    }
 }
 
 class DestructionError(m: String) : Exception(m)
@@ -131,13 +183,22 @@ class XmlDestructor internal constructor(private val el: 
Element) {
     inline fun <reified T : Enum<T>> enum(): T = 
java.lang.Enum.valueOf(T::class.java, text())
 
     fun attr(index: String): String = el.getAttribute(index)
-}
 
-fun <T> destructXml(xml: InputStream, root: String, f: XmlDestructor.() -> T): 
T {
-    val doc = XMLUtil.parseIntoDom(xml)
-    if (doc.documentElement.tagName != root) {
-        throw DestructionError("expected root '$root' got 
'${doc.documentElement.tagName}'")
+    companion object {
+        fun <T> fromStream(xml: InputStream, root: String, f: XmlDestructor.() 
-> T): T {
+            val doc = XMLUtil.parseIntoDom(xml)
+            return fromDoc(doc, root, f)
+        }
+
+        fun <T> fromDoc(doc: Document, root: String, f: XmlDestructor.() -> 
T): T {
+            if (doc.documentElement.tagName != root) {
+                throw DestructionError("expected root '$root' got 
'${doc.documentElement.tagName}'")
+            }
+            val destr = XmlDestructor(doc.documentElement)
+            return f(destr)
+        }
     }
-    val destr = XmlDestructor(doc.documentElement)
-    return f(destr)
 }
+
+fun <T> destructXml(xml: InputStream, root: String, f: XmlDestructor.() -> T): 
T 
+    = XmlDestructor.fromStream(xml, root, f)
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics2.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics2.kt
deleted file mode 100644
index dd2cd67b..00000000
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics2.kt
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2024 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-/**
- * This file contains helpers to construct EBICS 2.x requests.
- */
-
-package tech.libeufin.nexus.ebics
-
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-import tech.libeufin.ebics.*
-import tech.libeufin.ebics.ebics_h004.EbicsKeyManagementResponse
-import tech.libeufin.ebics.ebics_h004.EbicsNpkdRequest
-import tech.libeufin.ebics.ebics_h004.EbicsRequest
-import tech.libeufin.ebics.ebics_h004.EbicsUnsecuredRequest
-import tech.libeufin.nexus.BankPublicKeysFile
-import tech.libeufin.nexus.ClientPrivateKeysFile
-import tech.libeufin.nexus.EbicsSetupConfig
-import java.io.InputStream
-import java.security.interfaces.RSAPrivateCrtKey
-import java.time.Instant
-import java.time.ZoneId
-import java.util.*
-import javax.xml.datatype.DatatypeFactory
-
-private val logger: Logger = LoggerFactory.getLogger("libeufin-nexus-ebics2")
-
-/**
- * Creates a EBICS 2.5 download init. message.  So far only used
- * to fetch the PostFinance bank accounts.
- */
-fun createEbics25DownloadInit(
-    cfg: EbicsSetupConfig,
-    clientKeys: ClientPrivateKeysFile,
-    bankKeys: BankPublicKeysFile,
-    orderType: String,
-    orderParams: EbicsOrderParams = EbicsStandardOrderParams()
-): ByteArray {
-    val nonce = getNonce(128)
-    val req = EbicsRequest.createForDownloadInitializationPhase(
-        cfg.ebicsUserId,
-        cfg.ebicsPartnerId,
-        cfg.ebicsHostId,
-        nonce,
-        DatatypeFactory.newInstance().newXMLGregorianCalendar(
-            GregorianCalendar(
-            TimeZone.getTimeZone(ZoneId.systemDefault())
-        )
-        ),
-        bankKeys.bank_encryption_public_key,
-        bankKeys.bank_authentication_public_key,
-        orderType,
-        makeOrderParams(orderParams)
-    )
-    val doc = XMLUtil.convertJaxbToDocument(req)
-    XMLUtil.signEbicsDocument(
-        doc,
-        clientKeys.authentication_private_key,
-        withEbics3 = false
-    )
-    return XMLUtil.convertDomToBytes(doc)
-}
-
-/**
- * Creates raw XML for an EBICS receipt phase.
- *
- * @param cfg configuration handle.
- * @param clientKeys user EBICS private keys.
- * @param transactionId transaction ID of the EBICS communication that
- *        should receive this receipt.
- * @param success was the download successfully processed
- * @return receipt request in XML.
- */
-fun createEbics25DownloadReceiptPhase(
-    cfg: EbicsSetupConfig,
-    clientKeys: ClientPrivateKeysFile,
-    transactionId: String,
-    success: Boolean
-): ByteArray {
-    val req = EbicsRequest.createForDownloadReceiptPhase(
-        transactionId,
-        cfg.ebicsHostId,
-        success
-    )
-    val doc = XMLUtil.convertJaxbToDocument(req)
-    XMLUtil.signEbicsDocument(
-        doc,
-        clientKeys.authentication_private_key,
-        withEbics3 = false
-    )
-    return XMLUtil.convertDomToBytes(doc)
-}
-
-/**
- * Creates raw XML for an EBICS transfer phase.
- *
- * @param cfg configuration handle.
- * @param clientKeys user EBICS private keys.
- * @param segNumber which segment we ask the bank.
- * @param totalSegments how many segments compose the whole EBICS transaction.
- * @param transactionId ID of the EBICS transaction that transports all the 
segments.
- * @return raw XML string of the request.
- */
-fun createEbics25DownloadTransferPhase(
-    cfg: EbicsSetupConfig,
-    clientKeys: ClientPrivateKeysFile,
-    segNumber: Int,
-    totalSegments: Int,
-    transactionId: String
-): ByteArray {
-    val req = EbicsRequest.createForDownloadTransferPhase(
-        hostID = cfg.ebicsHostId,
-        segmentNumber = segNumber,
-        numSegments = totalSegments,
-        transactionID = transactionId
-    )
-    val doc = XMLUtil.convertJaxbToDocument(req)
-    XMLUtil.signEbicsDocument(
-        doc,
-        clientKeys.authentication_private_key,
-        withEbics3 = false
-    )
-    return XMLUtil.convertDomToBytes(doc)
-}
-
-/**
- * Parses the raw XML that came from the bank into the Nexus representation.
- *
- * @param clientEncryptionKey client private encryption key, used to decrypt
- *                            the transaction key.
- * @param xml the bank raw XML response
- * @return the internal representation of the XML response, or null if the 
parsing or the decryption failed.
- *         Note: it _is_ possible to successfully return the internal repr. of 
this response, where
- *         the payload is null.  That's however still useful, because the 
returned type provides bank
- *         and EBICS return codes.
- */
-fun parseKeysMgmtResponse(
-    clientEncryptionKey: RSAPrivateCrtKey,
-    xml: InputStream
-): EbicsKeyManagementResponseContent? {
-    // TODO throw instead of null
-    val jaxb = try {
-        XMLUtil.convertToJaxb<EbicsKeyManagementResponse>(xml)
-    } catch (e: Exception) {
-        tech.libeufin.nexus.logger.error("Could not parse the raw response 
from bank into JAXB.")
-        return null
-    }
-    var payload: ByteArray? = null
-    jaxb.value.body.dataTransfer?.dataEncryptionInfo.apply {
-        // non-null indicates that an encrypted payload should be found.
-        if (this != null) {
-            val encOrderData = jaxb.value.body.dataTransfer?.orderData?.value
-            if (encOrderData == null) {
-                tech.libeufin.nexus.logger.error("Despite a non-null 
DataEncryptionInfo, OrderData could not be found, can't decrypt any payload!")
-                return null
-            }
-            payload = decryptAndDecompressPayload(
-                clientEncryptionKey,
-                DataEncryptionInfo(this.transactionKey, 
this.encryptionPubKeyDigest.value),
-                listOf(encOrderData)
-            ).readBytes()
-        }
-    }
-    val bankReturnCode = 
EbicsReturnCode.lookup(jaxb.value.body.returnCode.value) // business error
-    val ebicsReturnCode = 
EbicsReturnCode.lookup(jaxb.value.header.mutable.returnCode) // ebics error
-    return EbicsKeyManagementResponseContent(ebicsReturnCode, bankReturnCode, 
payload)
-}
-
-/**
- * Generates the INI message to upload the signature key.
- *
- * @param cfg handle to the configuration.
- * @param clientKeys set of all the client keys.
- * @return the raw EBICS INI message.
- */
-fun generateIniMessage(cfg: EbicsSetupConfig, clientKeys: 
ClientPrivateKeysFile): ByteArray {
-    val iniRequest = EbicsUnsecuredRequest.createIni(
-        cfg.ebicsHostId,
-        cfg.ebicsUserId,
-        cfg.ebicsPartnerId,
-        clientKeys.signature_private_key
-    )
-    val doc = XMLUtil.convertJaxbToDocument(iniRequest)
-    return XMLUtil.convertDomToBytes(doc)
-}
-
-/**
- * Generates the HIA message: uploads the authentication and
- * encryption keys.
- *
- * @param cfg handle to the configuration.
- * @param clientKeys set of all the client keys.
- * @return the raw EBICS HIA message.
- */
-fun generateHiaMessage(cfg: EbicsSetupConfig, clientKeys: 
ClientPrivateKeysFile): ByteArray {
-    val hiaRequest = EbicsUnsecuredRequest.createHia(
-        cfg.ebicsHostId,
-        cfg.ebicsUserId,
-        cfg.ebicsPartnerId,
-        clientKeys.authentication_private_key,
-        clientKeys.encryption_private_key
-    )
-    val doc = XMLUtil.convertJaxbToDocument(hiaRequest)
-    return XMLUtil.convertDomToBytes(doc)
-}
-
-/**
- * Generates the HPB message: downloads the bank keys.
- *
- * @param cfg handle to the configuration.
- * @param clientKeys set of all the client keys.
- * @return the raw EBICS HPB message.
- */
-fun generateHpbMessage(cfg: EbicsSetupConfig, clientKeys: 
ClientPrivateKeysFile): ByteArray {
-    val hpbRequest = EbicsNpkdRequest.createRequest(
-        cfg.ebicsHostId,
-        cfg.ebicsPartnerId,
-        cfg.ebicsUserId,
-        getNonce(128),
-        
DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar())
-    )
-    val doc = XMLUtil.convertJaxbToDocument(hpbRequest)
-    XMLUtil.signEbicsDocument(doc, clientKeys.authentication_private_key)
-    return XMLUtil.convertDomToBytes(doc)
-}
-
-/**
- * Collects message type and date range of an EBICS 2 request.
- */
-data class Ebics2Request(
-    val messageType: String,
-    val orderParams: EbicsOrderParams
-)
-
-/**
- * Prepares an EBICS 2 request to get pain.002 acknowledgements
- * about submitted pain.001 documents.
- *
- * @param startDate earliest timestamp of the returned document(s).  If
- *        null, it defaults to download the unseen documents.
- * @param endDate latest timestamp of the returned document(s).  If
- *        null, it defaults to the current time.
- * @return [Ebics2Request] object to be first converted in XML and
- *         then be passed to the EBICS downloader.
- */
-private fun prepAckRequest2(
-    startDate: Instant? = null,
-    endDate: Instant? = null
-): Ebics2Request {
-    val maybeDateRange = if (startDate != null) EbicsDateRange(startDate, 
endDate ?: Instant.now()) else null
-    return Ebics2Request(
-        messageType = "Z01",
-        orderParams = EbicsStandardOrderParams(dateRange = maybeDateRange)
-    )
-}
-
-/**
- * Prepares an EBICS 2 request to get intraday camt.052 reports.
- *
- * @param startDate earliest timestamp of the returned document(s).  If
- *        null, it defaults to download the unseen documents.
- * @param endDate latest timestamp of the returned document(s).  If
- *        null, it defaults to the current time.
- * @return [Ebics2Request] object to be first converted in XML and
- *         then be passed to the EBICS downloader.
- */
-private fun prepReportRequest2(
-    startDate: Instant? = null,
-    endDate: Instant? = null
-): Ebics2Request {
-    val maybeDateRange = if (startDate != null) EbicsDateRange(startDate, 
endDate ?: Instant.now()) else null
-    return Ebics2Request(
-        messageType = "Z52",
-        orderParams = EbicsStandardOrderParams(dateRange = maybeDateRange)
-    )
-}
-
-/**
- * Prepares an EBICS 2 request to get daily camt.053 statements.
- *
- * @param startDate earliest timestamp of the returned document(s).  If
- *        null, it defaults to download the unseen documents.
- * @param endDate latest timestamp of the returned document(s).  If
- *        null, it defaults to the current time.
- * @return [Ebics2Request] object to be first converted in XML and
- *         then be passed to the EBICS downloader.
- */
-private fun prepStatementRequest2(
-    startDate: Instant? = null,
-    endDate: Instant? = null
-): Ebics2Request {
-    val maybeDateRange = if (startDate != null) EbicsDateRange(startDate, 
endDate ?: Instant.now()) else null
-    return Ebics2Request(
-        messageType = "Z53",
-        orderParams = EbicsStandardOrderParams(dateRange = maybeDateRange)
-    )
-}
-
-/**
- * Prepares an EBICS 2 request to get camt.054 notifications.
- *
- * @param startDate earliest timestamp of the returned document(s).  If
- *        null, it defaults to download the unseen documents.
- * @param endDate latest timestamp of the returned document(s).  If
- *        null, it defaults to the current time.
- * @return [Ebics2Request] object to be first converted in XML and
- *         then be passed to the EBICS downloader.
- */
-private fun prepNotificationRequest2(
-    startDate: Instant? = null,
-    endDate: Instant? = null
-): Ebics2Request {
-    val maybeDateRange = if (startDate != null) EbicsDateRange(startDate, 
endDate ?: Instant.now()) else null
-    return Ebics2Request(
-        messageType = "Z54", // ZS2 is the non-appendix type
-        orderParams = EbicsStandardOrderParams(dateRange = maybeDateRange)
-    )
-}
-
-/**
- * Prepares an EBICS 2 request to get logs from the bank about any
- * uploaded or downloaded document.
- *
- * @param startDate earliest timestamp of the returned document(s).  If
- *        null, it defaults to download the unseen documents.
- * @param endDate latest timestamp of the returned document(s).  If
- *        null, it defaults to the current time.
- * @return [Ebics2Request] object to be first converted in XML and
- *         then be passed to the EBICS downloader.
- */
-private fun prepLogsRequest2(
-    startDate: Instant? = null,
-    endDate: Instant? = null
-): Ebics2Request {
-    val maybeDateRange = if (startDate != null) EbicsDateRange(startDate, 
endDate ?: Instant.now()) else null
-    return Ebics2Request(
-        messageType = "HAC",
-        orderParams = EbicsStandardOrderParams(dateRange = maybeDateRange)
-    )
-}
-
-/**
- * Abstracts EBICS 2 request creation of a download init phase.
- *
- * @param whichDoc type of wanted document.
- * @param startDate earliest timestamp of the document(s) to download.
- *                  If null, it gets the unseen documents.  If defined,
- *                  the latest timestamp defaults to the current time.
- * @return [Ebics2Request] to be converted to XML string and passed to
- *         the EBICS downloader.
- */
-fun prepEbics2Document(
-    whichDoc: SupportedDocument,
-    startDate: Instant? = null
-): Ebics2Request =
-    when(whichDoc) {
-        SupportedDocument.PAIN_002 -> prepAckRequest2(startDate)
-        SupportedDocument.CAMT_052 -> prepReportRequest2(startDate)
-        SupportedDocument.CAMT_053 -> prepStatementRequest2(startDate)
-        SupportedDocument.CAMT_054 -> prepNotificationRequest2(startDate)
-        SupportedDocument.PAIN_002_LOGS -> prepLogsRequest2(startDate)
-    }
\ No newline at end of file
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics3.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics3.kt
deleted file mode 100644
index 09aac3df..00000000
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics3.kt
+++ /dev/null
@@ -1,443 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2024 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-package tech.libeufin.nexus.ebics
-
-import io.ktor.client.*
-import tech.libeufin.ebics.PreparedUploadData
-import tech.libeufin.ebics.XMLUtil
-import tech.libeufin.ebics.ebics_h005.Ebics3Request
-import tech.libeufin.ebics.getNonce
-import tech.libeufin.ebics.getXmlDate
-import tech.libeufin.nexus.BankPublicKeysFile
-import tech.libeufin.nexus.ClientPrivateKeysFile
-import tech.libeufin.nexus.EbicsSetupConfig
-import tech.libeufin.nexus.logger
-import java.math.BigInteger
-import java.time.Instant
-import java.util.*
-import javax.xml.datatype.DatatypeFactory
-
-/**
- * Crafts an EBICS request for the receipt phase of a download
- * transaction.
- *
- * @param cfg config handle
- * @param clientKeys subscriber private keys.
- * @param transactionId EBICS transaction ID as assigned by the
- *        bank to any successful transaction.
- * @param success was the download successfully processed
- * @return the raw XML of the EBICS request.
- */
-fun createEbics3DownloadReceiptPhase(
-    cfg: EbicsSetupConfig,
-    clientKeys: ClientPrivateKeysFile,
-    transactionId: String,
-    success: Boolean
-): ByteArray {
-    val req = Ebics3Request.createForDownloadReceiptPhase(
-        transactionId,
-        cfg.ebicsHostId,
-        success
-    )
-    val doc = XMLUtil.convertJaxbToDocument(req)
-    XMLUtil.signEbicsDocument(
-        doc,
-        clientKeys.authentication_private_key,
-        withEbics3 = true
-    )
-    return XMLUtil.convertDomToBytes(doc)
-}
-
-/**
- * Crafts an EBICS download request for the transfer phase.
- *
- * @param cfg config handle
- * @param clientKeys subscriber private keys
- * @param transactionId EBICS transaction ID.  That came from the
- *        bank after the initialization phase ended successfully.
- * @param segmentNumber which (payload's) segment number this requests wants.
- * @param howManySegments total number of segments that the payload is split 
to.
- * @return the raw XML EBICS request.
- */
-fun createEbics3DownloadTransferPhase(
-    cfg: EbicsSetupConfig,
-    clientKeys: ClientPrivateKeysFile,
-    howManySegments: Int,
-    segmentNumber: Int,
-    transactionId: String
-): ByteArray {
-    val req = Ebics3Request.createForDownloadTransferPhase(
-        cfg.ebicsHostId,
-        transactionId,
-        segmentNumber,
-        howManySegments
-    )
-    val doc = XMLUtil.convertJaxbToDocument(req)
-    XMLUtil.signEbicsDocument(
-        doc,
-        clientKeys.authentication_private_key,
-        withEbics3 = true
-    )
-    return XMLUtil.convertDomToBytes(doc)
-}
-
-/**
- * Creates the EBICS 3 document for the init phase of a download
- * transaction.
- *
- * @param cfg configuration handle.
- * @param bankkeys bank public keys.
- * @param clientKeys client private keys.
- * @param orderService EBICS 3 document defining the request type
- */
-fun createEbics3DownloadInitialization(
-    cfg: EbicsSetupConfig,
-    bankkeys: BankPublicKeysFile,
-    clientKeys: ClientPrivateKeysFile,
-    orderParams: Ebics3Request.OrderDetails.BTDOrderParams
-): ByteArray {
-    val nonce = getNonce(128)
-    val req = Ebics3Request.createForDownloadInitializationPhase(
-        cfg.ebicsUserId,
-        cfg.ebicsPartnerId,
-        cfg.ebicsHostId,
-        nonce,
-        
DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar()),
-        bankAuthPub = bankkeys.bank_authentication_public_key,
-        bankEncPub = bankkeys.bank_encryption_public_key,
-        myOrderParams = orderParams
-    )
-    val doc = XMLUtil.convertJaxbToDocument(
-        req,
-        withSchemaLocation = "urn:org:ebics:H005 ebics_request_H005.xsd"
-    )
-    XMLUtil.signEbicsDocument(
-        doc,
-        clientKeys.authentication_private_key,
-        withEbics3 = true
-    )
-    return XMLUtil.convertDomToBytes(doc)
-}
-
-/**
- * Creates the EBICS 3 document for the init phase of an upload
- * transaction.
- *
- * @param cfg configuration handle.
- * @param preparedUploadData business payload to send.
- * @param bankkeys bank public keys.
- * @param clientKeys client private keys.
- * @param orderService EBICS 3 document defining the request type
- * @return raw XML of the EBICS 3 init phase.
- */
-fun createEbics3RequestForUploadInitialization(
-    cfg: EbicsSetupConfig,
-    preparedUploadData: PreparedUploadData,
-    bankkeys: BankPublicKeysFile,
-    clientKeys: ClientPrivateKeysFile,
-    orderService: Ebics3Request.OrderDetails.Service
-): ByteArray {
-    val nonce = getNonce(128)
-    val req = Ebics3Request.createForUploadInitializationPhase(
-        preparedUploadData.transactionKey,
-        preparedUploadData.userSignatureDataEncrypted,
-        preparedUploadData.dataDigest,
-        cfg.ebicsHostId,
-        nonce,
-        cfg.ebicsPartnerId,
-        cfg.ebicsUserId,
-        
DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar()),
-        bankkeys.bank_authentication_public_key,
-        bankkeys.bank_encryption_public_key,
-        BigInteger.ONE,
-        orderService
-    )
-    val doc = XMLUtil.convertJaxbToDocument(
-        req,
-        withSchemaLocation = "urn:org:ebics:H005 ebics_request_H005.xsd"
-    )
-    XMLUtil.signEbicsDocument(
-        doc,
-        clientKeys.authentication_private_key,
-        withEbics3 = true
-    )
-    return XMLUtil.convertDomToBytes(doc)
-}
-
-/**
- * Crafts one EBICS 3 request for the upload transfer phase.  Currently
- * only 1-chunk payloads are supported.
- *
- * @param cfg configuration handle.
- * @param clientKeys client private keys.
- * @param transactionId EBICS transaction ID obtained from an init phase.
- * @param uploadData business content to upload.
- *
- * @return raw XML document.
- */
-fun createEbics3RequestForUploadTransferPhase(
-    cfg: EbicsSetupConfig,
-    clientKeys: ClientPrivateKeysFile,
-    transactionId: String,
-    uploadData: PreparedUploadData
-): ByteArray {
-    val chunkIndex = 1 // only 1-chunk communication currently supported.
-    val req = Ebics3Request.createForUploadTransferPhase(
-        cfg.ebicsHostId,
-        transactionId,
-        BigInteger.valueOf(chunkIndex.toLong()),
-        uploadData.encryptedPayloadChunks[chunkIndex - 1]
-    )
-    val doc = XMLUtil.convertJaxbToDocument(req)
-    XMLUtil.signEbicsDocument(
-        doc,
-        clientKeys.authentication_private_key,
-        withEbics3 = true
-    )
-    return XMLUtil.convertDomToBytes(doc)
-}
-
-/**
- * Collects all the steps to prepare the submission of a pain.001
- * document to the bank, and finally send it.  Indirectly throws
- * [EbicsSideException] or [EbicsUploadException].  The first means
- * that the bank sent an invalid response or signature, the second
- * that a proper EBICS or business error took place.  The caller must
- * catch those exceptions and decide the retry policy.
- *
- * @param pain001xml pain.001 document in XML.  The caller should
- *                   ensure its validity.
- * @param cfg configuration handle.
- * @param clientKeys client private keys.
- * @param bankkeys bank public keys.
- * @param httpClient HTTP client to connect to the bank.
- */
-suspend fun submitPain001(
-    pain001xml: String,
-    cfg: EbicsSetupConfig,
-    clientKeys: ClientPrivateKeysFile,
-    bankkeys: BankPublicKeysFile,
-    httpClient: HttpClient
-): String {
-    val orderService: Ebics3Request.OrderDetails.Service = 
Ebics3Request.OrderDetails.Service().apply {
-        serviceName = "MCT"
-        scope = "CH"
-        messageName = Ebics3Request.OrderDetails.Service.MessageName().apply {
-            value = "pain.001"
-            version = "09"
-        }
-    }
-    val maybeUploaded = doEbicsUpload(
-        httpClient,
-        cfg,
-        clientKeys,
-        bankkeys,
-        orderService,
-        pain001xml.toByteArray(Charsets.UTF_8),
-    )
-    logger.debug("Payment submitted, report text is: 
${maybeUploaded.reportText}," +
-            " EBICS technical code is: ${maybeUploaded.technicalReturnCode}," +
-            " bank technical return code is: ${maybeUploaded.bankReturnCode}"
-    )
-    return maybeUploaded.orderID!!
-}
-
-/**
- * Crafts a date range object, when the caller needs a time range.
- *
- * @param startDate inclusive starting date for the returned banking events.
- * @param endDate inclusive ending date for the returned banking events.
- * @return [Ebics3Request.DateRange]
- */
-private fun getEbics3DateRange(
-    startDate: Instant,
-    endDate: Instant
-): Ebics3Request.DateRange {
-    return Ebics3Request.DateRange().apply {
-        start = getXmlDate(startDate)
-        end = getXmlDate(endDate)
-    }
-}
-
-/**
- * Prepares the request for a camt.054 notification from the bank,
- * via EBICS 3.
- * Notifications inform the subscriber that some new events occurred
- * on their account.  One main difference with reports/statements is
- * that notifications - according to the ISO20022 documentation - do
- * NOT contain any balance.
- *
- * @param startDate inclusive starting date for the returned notification(s).
- * @param endDate inclusive ending date for the returned notification(s).  
NOTE:
- *        if startDate is NOT null and endDate IS null, endDate gets defaulted
- *        to the current UTC time.
- * @param isAppendix if true, the responded camt.054 will be an appendix of
- *        another camt.053 document, not therefore strictly acting as a 
notification.
- *        For example, camt.053 may omit wire transfer subjects and its related
- *        camt.054 appendix would instead contain those.
- *
- * @return [Ebics3Request.OrderDetails.BTOrderParams]
- */
-fun prepNotificationRequest3(
-    startDate: Instant? = null,
-    endDate: Instant? = null,
-    isAppendix: Boolean
-): Ebics3Request.OrderDetails.BTDOrderParams {
-    val service = Ebics3Request.OrderDetails.Service().apply {
-        serviceName = "REP"
-        scope = "CH"
-        container = Ebics3Request.OrderDetails.Service.Container().apply {
-            containerType = "ZIP"
-        }
-        messageName = Ebics3Request.OrderDetails.Service.MessageName().apply {
-            value = "camt.054"
-            version = "08"
-        }
-        if (!isAppendix)
-            serviceOption = "XDCI"
-    }
-    return Ebics3Request.OrderDetails.BTDOrderParams().apply {
-        this.service = service
-        this.dateRange = if (startDate != null)
-            getEbics3DateRange(startDate, endDate ?: Instant.now())
-        else null
-    }
-}
-
-/**
- * Prepares the request for a pain.002 acknowledgement from the bank, via
- * EBICS 3.
- *
- * @param startDate inclusive starting date for the returned acknowledgements.
- * @param endDate inclusive ending date for the returned acknowledgements.  
NOTE:
- *        if startDate is NOT null and endDate IS null, endDate gets defaulted
- *        to the current UTC time.
- *
- * @return [Ebics3Request.OrderDetails.BTOrderParams]
- */
-fun prepAckRequest3(
-    startDate: Instant? = null,
-    endDate: Instant? = null
-): Ebics3Request.OrderDetails.BTDOrderParams {
-    val service = Ebics3Request.OrderDetails.Service().apply {
-        serviceName = "PSR"
-        scope = "CH"
-        container = Ebics3Request.OrderDetails.Service.Container().apply {
-            containerType = "ZIP"
-        }
-        messageName = Ebics3Request.OrderDetails.Service.MessageName().apply {
-            value = "pain.002"
-            version = "10"
-        }
-    }
-    return Ebics3Request.OrderDetails.BTDOrderParams().apply {
-        this.service = service
-        this.dateRange = if (startDate != null)
-            getEbics3DateRange(startDate, endDate ?: Instant.now())
-        else null
-    }
-}
-
-/**
- * Prepares the request for (a) camt.053/statement(s) via EBICS 3.
- *
- * @param startDate inclusive starting date for the returned banking events.
- * @param endDate inclusive ending date for the returned banking events.  NOTE:
- *        if startDate is NOT null and endDate IS null, endDate gets defaulted
- *        to the current UTC time.
- *
- * @return [Ebics3Request.OrderDetails.BTOrderParams]
- */
-fun prepStatementRequest3(
-    startDate: Instant? = null,
-    endDate: Instant? = null
-): Ebics3Request.OrderDetails.BTDOrderParams {
-    val service = Ebics3Request.OrderDetails.Service().apply {
-        serviceName = "EOP"
-        scope = "CH"
-        container = Ebics3Request.OrderDetails.Service.Container().apply {
-            containerType = "ZIP"
-        }
-        messageName = Ebics3Request.OrderDetails.Service.MessageName().apply {
-            value = "camt.053"
-            version = "08"
-        }
-    }
-    return Ebics3Request.OrderDetails.BTDOrderParams().apply {
-        this.service = service
-        this.dateRange = if (startDate != null)
-            getEbics3DateRange(startDate, endDate ?: Instant.now())
-        else null
-    }
-}
-
-/**
- * Prepares the request for camt.052/intraday records via EBICS 3.
- *
- * @param startDate inclusive starting date for the returned banking events.
- * @param endDate inclusive ending date for the returned banking events.  NOTE:
- *        if startDate is NOT null and endDate IS null, endDate gets defaulted
- *        to the current UTC time.
- *
- * @return [Ebics3Request.OrderDetails.BTOrderParams]
- */
-fun prepReportRequest3(
-    startDate: Instant? = null,
-    endDate: Instant? = null
-): Ebics3Request.OrderDetails.BTDOrderParams {
-    val service = Ebics3Request.OrderDetails.Service().apply {
-        serviceName = "STM"
-        scope = "CH"
-        container = Ebics3Request.OrderDetails.Service.Container().apply {
-            containerType = "ZIP"
-        }
-        messageName = Ebics3Request.OrderDetails.Service.MessageName().apply {
-            value = "camt.052"
-            version = "08"
-        }
-    }
-    return Ebics3Request.OrderDetails.BTDOrderParams().apply {
-        this.service = service
-        this.dateRange = if (startDate != null)
-            getEbics3DateRange(startDate, endDate ?: Instant.now())
-        else null
-    }
-}
-
-/**
- * Abstracts EBICS 3 request creation of a download init phase.
- *
- * @param whichDoc type of wanted document.
- * @param startDate earliest timestamp of the document(s) to download.
- *                  If null, it gets the unseen documents.  If defined,
- *                  the latest timestamp defaults to the current time.
- * @return [Ebics2Request] to be converted to XML string and passed to
- *         the EBICS downloader.
- */
-fun prepEbics3Document(
-    whichDoc: SupportedDocument,
-    startDate: Instant? = null
-): Ebics3Request.OrderDetails.BTDOrderParams =
-    when(whichDoc) {
-        SupportedDocument.PAIN_002 -> prepAckRequest3(startDate)
-        SupportedDocument.CAMT_052 -> prepReportRequest3(startDate)
-        SupportedDocument.CAMT_053 -> prepStatementRequest3(startDate)
-        SupportedDocument.CAMT_054 -> prepNotificationRequest3(startDate, 
isAppendix = true)
-        SupportedDocument.PAIN_002_LOGS -> throw Exception("HAC (--only-logs) 
not available in EBICS 3")
-    }
\ No newline at end of file
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsBTS.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsBTS.kt
new file mode 100644
index 00000000..356d4b96
--- /dev/null
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsBTS.kt
@@ -0,0 +1,347 @@
+/*
+ * This file is part of LibEuFin.
+ * Copyright (C) 2024 Taler Systems S.A.
+
+ * LibEuFin is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation; either version 3, or
+ * (at your option) any later version.
+
+ * LibEuFin is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
+ * Public License for more details.
+
+ * You should have received a copy of the GNU Affero General Public
+ * License along with LibEuFin; see the file COPYING.  If not, see
+ * <http://www.gnu.org/licenses/>
+ */
+package tech.libeufin.nexus.ebics
+
+import io.ktor.client.*
+import tech.libeufin.nexus.*
+import tech.libeufin.common.*
+import tech.libeufin.common.crypto.*
+import java.math.BigInteger
+import java.time.*
+import java.time.format.*
+import java.util.*
+import java.io.File
+import org.w3c.dom.*
+import javax.xml.datatype.XMLGregorianCalendar
+import javax.xml.datatype.DatatypeFactory
+import java.security.interfaces.*
+
+
+fun Instant.xmlDate(): String = 
DateTimeFormatter.ISO_DATE.withZone(ZoneId.of("UTC")).format(this)
+fun Instant.xmlDateTime(): String = 
DateTimeFormatter.ISO_OFFSET_DATE_TIME.withZone(ZoneId.of("UTC")).format(this)
+
+/** EBICS protocol for business transactions */
+class EbicsBTS(
+    val cfg: EbicsSetupConfig, 
+    val bankKeys: BankPublicKeysFile,
+    val clientKeys: ClientPrivateKeysFile,
+    val order: EbicsOrder
+) {
+    /* ----- Download ----- */
+
+    fun downloadInitialization(startDate: Instant?, endDate: Instant?): 
ByteArray {
+        val nonce = getNonce(128)
+        return signedRequest {
+            el("header") {
+                attr("authenticate", "true")
+                el("static") {
+                    el("HostID", cfg.ebicsHostId)
+                    el("Nonce", nonce.encodeHex())
+                    el("Timestamp", Instant.now().xmlDateTime())
+                    el("PartnerID", cfg.ebicsPartnerId)
+                    el("UserID", cfg.ebicsUserId)
+                    // SystemID
+                    // Product
+                    el("OrderDetails") {
+                        when (order) {
+                            is EbicsOrder.V2_5 -> {
+                                el("OrderType", order.type)
+                                el("OrderAttribute", order.attribute)
+                                el("StandardOrderParams") {
+                                    if (startDate != null) {
+                                        el("DateRange") {
+                                            el("Start", startDate.xmlDate())
+                                            el("End", (endDate ?: 
Instant.now()).xmlDate())
+                                        }
+                                    }
+                                }
+                            }
+                            is EbicsOrder.V3 -> {
+                                el("AdminOrderType", order.type)
+                                if (order.type == "BTD") {
+                                    el("BTDOrderParams") {
+                                        el("Service") {
+                                            el("ServiceName", order.name!!)
+                                            el("Scope", order.scope!!)
+                                            if (order.container != null) {
+                                                el("Container") {
+                                                    attr("containerType", 
order.container)
+                                                }
+                                            }
+                                            el("MsgName") {
+                                                attr("version", 
order.messageVersion!!)
+                                                text(order.messageName!!)
+                                            }
+                                        }
+                                        if (startDate != null) {
+                                            el("DateRange") {
+                                                el("Start", 
startDate.xmlDate())
+                                                el("End", (endDate ?: 
Instant.now()).xmlDate())
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    bankDigest()
+                }
+                el("mutable/TransactionPhase", "Initialisation")
+            }
+            el("AuthSignature")
+            el("body")
+        }
+    }
+
+    fun downloadTransfer(
+        howManySegments: Int,
+        segmentNumber: Int,
+        transactionId: String
+    ): ByteArray {
+        return signedRequest {
+            el("header") {
+                attr("authenticate", "true")
+                el("static") {
+                    el("HostID", cfg.ebicsHostId)
+                    el("TransactionID", transactionId)
+                }
+                el("mutable") {
+                    el("TransactionPhase", "Transfer")
+                    el("SegmentNumber") {
+                        attr("lastSegment", if (howManySegments == 
segmentNumber) "true" else "false")
+                    }
+                }
+            }
+            el("AuthSignature")
+            el("body")
+        }
+    }
+
+    fun downloadReceipt(
+        transactionId: String,
+        success: Boolean
+    ): ByteArray {
+        return signedRequest {
+            el("header") {
+                attr("authenticate", "true")
+                el("static") {
+                    el("HostID", cfg.ebicsHostId)
+                    el("TransactionID", transactionId)
+                }
+                el("mutable") {
+                    el("TransactionPhase", "Receipt")
+                }
+            }
+            el("AuthSignature")
+            el("body/TransferReceipt") {
+                attr("authenticate", "true")
+                el("ReceiptCode", if (success) "0" else "1")
+            }
+        }
+    }
+
+    /* ----- Upload ----- */
+
+    fun uploadInitialization(preparedUploadData: PreparedUploadData): 
ByteArray {
+        val nonce = getNonce(128)
+        return signedRequest {
+            el("header") {
+                attr("authenticate", "true")
+                el("static") {
+                    el("HostID", cfg.ebicsHostId)
+                    el("Nonce", nonce.encodeUpHex())
+                    el("Timestamp", Instant.now().xmlDateTime())
+                    el("PartnerID", cfg.ebicsPartnerId)
+                    el("UserID", cfg.ebicsUserId)
+                    // SystemID
+                    // Product
+                    el("OrderDetails") {
+                        when (order) {
+                            is EbicsOrder.V2_5 -> {
+                                // TODO
+                            }
+                            is EbicsOrder.V3 -> {
+                                el("AdminOrderType", order.type)
+                                el("BTUOrderParams") {
+                                    el("Service") {
+                                        el("ServiceName", order.name!!)
+                                        el("Scope", order.scope!!)
+                                        el("MsgName") {
+                                            attr("version", 
order.messageVersion!!)
+                                            text(order.messageName!!)
+                                        }
+                                    }
+                                    el("SignatureFlag", "true")
+                                }
+                            }
+                        }
+                    }
+                    bankDigest()
+                    el("NumSegments", "1") // TODO test upload of many segment
+                    
+                }
+                el("mutable") {
+                    el("TransactionPhase", "Initialisation")
+                }
+            }
+            el("AuthSignature")
+            el("body") {
+                el("DataTransfer") {
+                    el("DataEncryptionInfo") {
+                        attr("authenticate", "true")
+                        el("EncryptionPubKeyDigest") {
+                            attr("Version", "E002")
+                            attr("Algorithm", 
"http://www.w3.org/2001/04/xmlenc#sha256";)
+                            
text(CryptoUtil.getEbicsPublicKeyHash(bankKeys.bank_encryption_public_key).encodeBase64())
+                        }
+                        el("TransactionKey", 
preparedUploadData.transactionKey.encodeBase64())
+                    }
+                    el("SignatureData") {
+                        attr("authenticate", "true")
+                        
text(preparedUploadData.userSignatureDataEncrypted.encodeBase64())
+                    }
+                    el("DataDigest") {
+                        attr("SignatureVersion", "A006")
+                        text(preparedUploadData.dataDigest.encodeBase64())
+                    }
+                }
+            }
+        }
+    }
+
+    fun uploadTransfer(
+        transactionId: String,
+        uploadData: PreparedUploadData
+    ): ByteArray {
+        val chunkIndex = 1 // TODO test upload of many segment
+        return signedRequest {
+            el("header") {
+                attr("authenticate", "true")
+                el("static") {
+                    el("HostID", cfg.ebicsHostId)
+                    el("TransactionID", transactionId)
+                }
+                el("mutable") {
+                    el("TransactionPhase", "Transfer")
+                    el("SegmentNumber") {
+                        attr("lastSegment", "true")
+                        text(chunkIndex.toString())
+                    }
+                }
+            }
+            el("AuthSignature")
+            el("body/DataTransfer/OrderData", 
uploadData.encryptedPayloadChunks[chunkIndex - 1])
+        }
+    }
+
+    /* ----- Helpers ----- */
+
+    /** Generate a signed ebicsRequest */
+    private fun signedRequest(lambda: XmlBuilder.() -> Unit): ByteArray  {
+        val doc = XmlBuilder.toDom("ebicsRequest", 
"urn:org:ebics:${order.schema}") {
+            attr("http://www.w3.org/2000/xmlns/";, "xmlns", 
"urn:org:ebics:${order.schema}")
+            attr("http://www.w3.org/2000/xmlns/";, "xmlns:ds", 
"http://www.w3.org/2000/09/xmldsig#";)
+            attr("Version", order.schema)
+            attr("Revision", "1")
+            lambda()
+        }
+        XMLUtil.signEbicsDocument(
+            doc,
+            clientKeys.authentication_private_key,
+            order.schema
+        )
+        return XMLUtil.convertDomToBytes(doc)
+    }
+
+    private fun XmlBuilder.bankDigest() {
+        el("BankPubKeyDigests") {
+            el("Authentication") {
+                attr("Version", "X002")
+                attr("Algorithm", "http://www.w3.org/2001/04/xmlenc#sha256";)
+                
text(CryptoUtil.getEbicsPublicKeyHash(bankKeys.bank_authentication_public_key).encodeBase64())
+            }
+            el("Encryption") {
+                attr("Version", "E002")
+                attr("Algorithm", "http://www.w3.org/2001/04/xmlenc#sha256";)
+                
text(CryptoUtil.getEbicsPublicKeyHash(bankKeys.bank_encryption_public_key).encodeBase64())
+            }
+            // Signature
+        }
+        el("SecurityMedium", "0000")
+    }
+
+    companion object {
+        fun parseResponse(doc: Document): EbicsResponse<BTSResponse> {
+            return XmlDestructor.fromDoc(doc, "ebicsResponse") {
+                var transactionID: String? = null
+                var numSegments: Int? = null
+                lateinit var technicalCode: EbicsReturnCode
+                lateinit var bankCode: EbicsReturnCode
+                var orderID: String? = null
+                var segmentNumber: Int? = null
+                var payloadChunk: ByteArray? = null
+                var dataEncryptionInfo: DataEncryptionInfo? = null
+                one("header") {
+                    one("static") {
+                        transactionID = opt("TransactionID")?.text()
+                        numSegments = opt("NumSegments")?.text()?.toInt()
+                    }
+                    one("mutable") {
+                        segmentNumber = opt("SegmentNumber")?.text()?.toInt()
+                        orderID = opt("OrderID")?.text()
+                        technicalCode = 
EbicsReturnCode.lookup(one("ReturnCode").text())
+                    }
+                }
+                one("body") {
+                    opt("DataTransfer") {
+                        payloadChunk = one("OrderData").text().decodeBase64()
+                        dataEncryptionInfo = opt("DataEncryptionInfo") {
+                            DataEncryptionInfo(
+                                one("TransactionKey").text().decodeBase64(),
+                                
one("EncryptionPubKeyDigest").text().decodeBase64()
+                            )
+                        }
+                    }
+                    bankCode = EbicsReturnCode.lookup(one("ReturnCode").text())
+                }
+                EbicsResponse(
+                    bankCode = bankCode,
+                    technicalCode = technicalCode,
+                    content = BTSResponse(
+                        transactionID = transactionID,
+                        orderID = orderID,
+                        payloadChunk = payloadChunk,
+                        dataEncryptionInfo = dataEncryptionInfo,
+                        numSegments = numSegments,
+                        segmentNumber = segmentNumber
+                    )
+                )
+            }
+        }
+    }
+}
+
+data class BTSResponse(
+    val transactionID: String?,
+    val orderID: String?,
+    val dataEncryptionInfo: DataEncryptionInfo?,
+    val payloadChunk: ByteArray?,
+    val segmentNumber: Int?,
+    val numSegments: Int?
+)
\ No newline at end of file
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt
index c4231455..74c1dd32 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt
@@ -32,11 +32,6 @@
 
 package tech.libeufin.nexus.ebics
 
-import com.itextpdf.kernel.pdf.PdfDocument
-import com.itextpdf.kernel.pdf.PdfWriter
-import com.itextpdf.layout.Document
-import com.itextpdf.layout.element.AreaBreak
-import com.itextpdf.layout.element.Paragraph
 import io.ktor.client.*
 import io.ktor.client.plugins.*
 import io.ktor.client.request.*
@@ -45,8 +40,6 @@ import io.ktor.http.*
 import io.ktor.utils.io.jvm.javaio.*
 import tech.libeufin.common.*
 import tech.libeufin.common.crypto.*
-import tech.libeufin.ebics.*
-import tech.libeufin.ebics.ebics_h005.Ebics3Request
 import tech.libeufin.nexus.*
 import java.io.ByteArrayOutputStream
 import java.io.InputStream
@@ -55,7 +48,11 @@ import java.security.interfaces.RSAPrivateCrtKey
 import java.time.LocalDateTime
 import java.time.format.DateTimeFormatter
 import java.util.*
+import java.time.Instant
 import kotlinx.coroutines.*
+import java.security.SecureRandom
+import org.w3c.dom.Document
+import org.xml.sax.SAXException
 
 /**
  * Available EBICS versions.
@@ -82,15 +79,14 @@ enum class SupportedDocument {
  *                            one actually used to encrypt the payload.
  * @param encryptionInfo details related to the encrypted payload.
  * @param chunks the several chunks that constitute the whole encrypted 
payload.
- * @return the plain payload.  Errors throw, so the caller must handle those.
+ * @return the plain payload.
  */
 fun decryptAndDecompressPayload(
     clientEncryptionKey: RSAPrivateCrtKey,
     encryptionInfo: DataEncryptionInfo,
-    chunks: List<String>
+    chunks: List<ByteArray>
 ): InputStream =
-    SequenceInputStream(Collections.enumeration(chunks.map { 
it.toByteArray().inputStream() })) // Aggregate
-        .decodeBase64()
+    SequenceInputStream(Collections.enumeration(chunks.map { it.inputStream() 
})) // Aggregate
         .run {
             CryptoUtil.decryptEbicsE002(
                 encryptionInfo.transactionKey,
@@ -99,6 +95,13 @@ fun decryptAndDecompressPayload(
             )
         }.inflate()
 
+sealed class EbicsError(msg: String, cause: Throwable? = null): Exception(msg, 
cause) {
+    /** Http and network errors */
+    class Transport(msg: String, cause: Throwable? = null): EbicsError(msg, 
cause)
+    /** EBICS protocol & XML format error */
+    class Protocol(msg: String, cause: Throwable? = null): EbicsError(msg, 
cause)
+}
+
 /**
  * POSTs the EBICS message to the bank.
  *
@@ -106,163 +109,48 @@ fun decryptAndDecompressPayload(
  * @param msg EBICS message as raw bytes.
  * @return the raw bank response.
  */
-suspend fun HttpClient.postToBank(bankUrl: String, msg: ByteArray): 
InputStream {
-    logger.debug("POSTing EBICS to '$bankUrl'")
-    val res = post(urlString = bankUrl) {
-        contentType(ContentType.Text.Xml)
-        setBody(msg)
-    }
-    if (res.status != HttpStatusCode.OK) {
-        throw Exception("Invalid response status: ${res.status}")
-    }
-    return res.bodyAsChannel().toInputStream()
-}
-
-/**
- * Generate the PDF document with all the client public keys
- * to be sent on paper to the bank.
- */
-fun generateKeysPdf(
-    clientKeys: ClientPrivateKeysFile,
-    cfg: EbicsSetupConfig
-): ByteArray {
-    val po = ByteArrayOutputStream()
-    val pdfWriter = PdfWriter(po)
-    val pdfDoc = PdfDocument(pdfWriter)
-    val date = LocalDateTime.now()
-    val dateStr = date.format(DateTimeFormatter.ISO_LOCAL_DATE)
-
-    fun formatHex(ba: ByteArray): String {
-        var out = ""
-        for (i in ba.indices) {
-            val b = ba[i]
-            if (i > 0 && i % 16 == 0) {
-                out += "\n"
-            }
-            out += java.lang.String.format("%02X", b)
-            out += " "
+suspend fun HttpClient.postToBank(bankUrl: String, msg: ByteArray, phase: 
String): Document {
+    val res = try {
+        post(urlString = bankUrl) {
+            contentType(ContentType.Text.Xml)
+            setBody(msg)
         }
-        return out
-    }
-
-    fun writeCommon(doc: Document) {
-        doc.add(
-            Paragraph(
-                """
-            Datum: $dateStr
-            Host-ID: ${cfg.ebicsHostId}
-            User-ID: ${cfg.ebicsUserId}
-            Partner-ID: ${cfg.ebicsPartnerId}
-            ES version: A006
-        """.trimIndent()
-            )
-        )
-    }
-
-    fun writeKey(doc: Document, priv: RSAPrivateCrtKey) {
-        val pub = CryptoUtil.getRsaPublicFromPrivate(priv)
-        val hash = CryptoUtil.getEbicsPublicKeyHash(pub)
-        
doc.add(Paragraph("Exponent:\n${formatHex(pub.publicExponent.toByteArray())}"))
-        doc.add(Paragraph("Modulus:\n${formatHex(pub.modulus.toByteArray())}"))
-        doc.add(Paragraph("SHA-256 hash:\n${formatHex(hash)}"))
+    } catch (e: Exception) {
+        throw EbicsError.Transport("$phase: failed to contact bank", e)
     }
-
-    fun writeSigLine(doc: Document) {
-        doc.add(Paragraph("Ort / Datum: ________________"))
-        doc.add(Paragraph("Firma / Name: ________________"))
-        doc.add(Paragraph("Unterschrift: ________________"))
+    
+    if (res.status != HttpStatusCode.OK) {
+        throw EbicsError.Transport("$phase: bank HTTP error: ${res.status}")
     }
-
-    Document(pdfDoc).use {
-        it.add(Paragraph("Signaturschlüssel").setFontSize(24f))
-        writeCommon(it)
-        it.add(Paragraph("Öffentlicher Schlüssel (Public key for the 
electronic signature)"))
-        writeKey(it, clientKeys.signature_private_key)
-        it.add(Paragraph("\n"))
-        writeSigLine(it)
-        it.add(AreaBreak())
-
-        it.add(Paragraph("Authentifikationsschlüssel").setFontSize(24f))
-        writeCommon(it)
-        it.add(Paragraph("Öffentlicher Schlüssel (Public key for the 
identification and authentication signature)"))
-        writeKey(it, clientKeys.authentication_private_key)
-        it.add(Paragraph("\n"))
-        writeSigLine(it)
-        it.add(AreaBreak())
-
-        it.add(Paragraph("Verschlüsselungsschlüssel").setFontSize(24f))
-        writeCommon(it)
-        it.add(Paragraph("Öffentlicher Schlüssel (Public encryption key)"))
-        writeKey(it, clientKeys.encryption_private_key)
-        it.add(Paragraph("\n"))
-        writeSigLine(it)
+    try {
+        return XMLUtil.parseIntoDom(res.bodyAsChannel().toInputStream())
+    } catch (e: SAXException) {
+        throw EbicsError.Protocol("$phase: invalid XML bank reponse", e)
+    } catch (e: Exception) {
+        throw EbicsError.Transport("$phase: failed read bank response", e)
     }
-    pdfWriter.flush()
-    return po.toByteArray()
 }
 
-/**
- * POSTs raw EBICS XML to the bank and checks the two return codes:
- * EBICS- and bank-technical.
- *
- * @param clientKeys client keys, used to sign the request.
- * @param bankKeys bank keys, used to decrypt and validate the response.
- * @param xmlReq raw EBICS request in XML.
- * @param isEbics3 true in case the communication is EBICS 3, false 
- * @return [EbicsResponseContent] or throws [EbicsSideException]
- */
-suspend fun postEbics(
+suspend fun EbicsBTS.postBTS(
     client: HttpClient,
-    cfg: EbicsSetupConfig,
-    bankKeys: BankPublicKeysFile,
     xmlReq: ByteArray,
-    isEbics3: Boolean
-): EbicsResponseContent {
-    val respXml = try {
-        client.postToBank(cfg.hostBaseUrl, xmlReq)
-    } catch (e: Exception) {
-        throw EbicsSideException(
-            "POSTing to ${cfg.hostBaseUrl} failed",
-            sideEc = EbicsSideError.HTTP_POST_FAILED,
-            e
-        )
-    }
-
-    // Parses the bank response from the raw XML and verifies
-    // the bank signature.
-    val doc = try {
-        XMLUtil.parseIntoDom(respXml)
-    } catch (e: Exception) {
-        throw EbicsSideException(
-            "Bank response apparently invalid",
-            sideEc = EbicsSideError.BANK_RESPONSE_IS_INVALID
-        )
-    }
+    phase: String,
+): EbicsResponse<BTSResponse> {
+    val doc = client.postToBank(cfg.hostBaseUrl, xmlReq, phase)
     if (!XMLUtil.verifyEbicsDocument(
         doc,
         bankKeys.bank_authentication_public_key,
-        isEbics3
+        order.schema
     )) {
-        throw EbicsSideException(
-            "Bank signature did not verify",
-            sideEc = EbicsSideError.BANK_SIGNATURE_DIDNT_VERIFY
-        )
+        throw EbicsError.Protocol("$phase: bank signature did not verify")
+    }
+    try {
+        return EbicsBTS.parseResponse(doc)
+    } catch (e: Exception) {
+        throw EbicsError.Protocol("$phase: invalid ebics response", e)
     }
-    if (isEbics3)
-        return ebics3toInternalRepr(doc)
-    return ebics25toInternalRepr(doc)
 }
 
-/**
- * Checks that EBICS- and bank-technical return codes are both EBICS_OK.
- *
- * @param ebicsResponseContent valid response gotten from the bank.
- * @return true only if both codes are EBICS_OK.
- */
-private fun areCodesOk(ebicsResponseContent: EbicsResponseContent) =
-    ebicsResponseContent.technicalReturnCode == EbicsReturnCode.EBICS_OK &&
-            ebicsResponseContent.bankReturnCode == EbicsReturnCode.EBICS_OK
-
 /**
  * Perform an EBICS download transaction.
  * 
@@ -273,7 +161,6 @@ private fun areCodesOk(ebicsResponseContent: 
EbicsResponseContent) =
  * @param clientKeys client EBICS private keys.
  * @param bankKeys bank EBICS public keys.
  * @param reqXml raw EBICS XML request of the init phase.
- * @param isEbics3 true for EBICS 3, false otherwise.
  * @param processing processing lambda receiving EBICS files as a byte stream 
if the transaction was not empty.
  * @return T if the transaction was successful. If the failure is at the EBICS 
  *         level EbicsSideException is thrown else ités the exception of the 
processing lambda.
@@ -283,141 +170,97 @@ suspend fun ebicsDownload(
     cfg: EbicsSetupConfig,
     clientKeys: ClientPrivateKeysFile,
     bankKeys: BankPublicKeysFile,
-    reqXml: ByteArray,
-    isEbics3: Boolean,
-    processing: (InputStream) -> Unit
+    order: EbicsOrder,
+    startDate: Instant?, 
+    endDate: Instant?,
+    processing: (InputStream) -> Unit,
 ) = coroutineScope {
-    val scope = this
+    val impl = EbicsBTS(cfg, bankKeys, clientKeys, order)
+    val parentScope = this
+    
     // We need to run the logic in a non-cancelable context because we need to 
send 
     // a receipt for each open download transaction, otherwise we'll be stuck 
in an 
     // error loop until the pending transaction timeout.
     // TODO find a way to cancel the pending transaction ?
-    withContext(NonCancellable) { 
-        val initResp = postEbics(client, cfg, bankKeys, reqXml, isEbics3) 
-        logger.debug("Download init phase done.  EBICS- and bank-technical 
codes are: ${initResp.technicalReturnCode}, ${initResp.bankReturnCode}")
-        if (initResp.technicalReturnCode != EbicsReturnCode.EBICS_OK) {
-            throw Exception("Download init phase has EBICS-technical error: 
${initResp.technicalReturnCode}")
+    withContext(NonCancellable) {
+        // Init phase
+        val initReq = impl.downloadInitialization(startDate, endDate)
+        val initResp = impl.postBTS(client, initReq, "Download init phase")
+        if (initResp.bankCode == 
EbicsReturnCode.EBICS_NO_DOWNLOAD_DATA_AVAILABLE) {
+           logger.debug("Download content is empty")
+           return@withContext
         }
-        if (initResp.bankReturnCode == 
EbicsReturnCode.EBICS_NO_DOWNLOAD_DATA_AVAILABLE) {
-            logger.debug("Download content is empty")
-            return@withContext
-        } else if (initResp.bankReturnCode != EbicsReturnCode.EBICS_OK) {
-            throw Exception("Download init phase has bank-technical error: 
${initResp.bankReturnCode}")
+        val initContent = initResp.okOrFail("Download init phase")
+        val tId = requireNotNull(initContent.transactionID) {
+            "Download init phase: missing transaction ID"
         }
-        val tId = initResp.transactionID
-            ?: throw EbicsSideException(
-                "EBICS download init phase did not return a transaction ID, 
cannot do the transfer phase.",
-                sideEc = EbicsSideError.EBICS_UPLOAD_TRANSACTION_ID_MISSING
-            )
-        logger.debug("EBICS download transaction passed the init phase, got 
ID: $tId")
-        val howManySegments = initResp.numSegments
-        if (howManySegments == null) {
-            throw Exception("Init response lacks the quantity of segments, 
failing.")
+        val howManySegments = requireNotNull(initContent.numSegments) {
+            "Download init phase: missing num segments"
         }
-        val ebicsChunks = mutableListOf<String>()
-        // Getting the chunk(s)
-        val firstDataChunk = initResp.orderDataEncChunk
-            ?: throw EbicsSideException(
-                "OrderData element not found, despite non empty payload, 
failing.",
-                sideEc = EbicsSideError.ORDER_DATA_ELEMENT_NOT_FOUND
-            )
-        val dataEncryptionInfo = initResp.dataEncryptionInfo ?: run {
-            throw EbicsSideException(
-                "EncryptionInfo element not found, despite non empty payload, 
failing.",
-                sideEc = EbicsSideError.ENCRYPTION_INFO_ELEMENT_NOT_FOUND
-            )
+        val firstDataChunk = requireNotNull(initContent.payloadChunk) {
+            "Download init phase: missing OrderData"
         }
-        ebicsChunks.add(firstDataChunk)
-        // proceed with the transfer phase.
-        for (x in 2 .. howManySegments) {
-            if (!scope.isActive) break
-            // request segment number x.
-            val transReq = if (isEbics3)
-                createEbics3DownloadTransferPhase(cfg, clientKeys, x, 
howManySegments, tId)
-            else createEbics25DownloadTransferPhase(cfg, clientKeys, x, 
howManySegments, tId)
-
-            val transResp = postEbics(client, cfg, bankKeys, transReq, 
isEbics3)
-            if (!areCodesOk(transResp)) {
-                throw EbicsSideException(
-                    "EBICS transfer segment #$x failed.",
-                    sideEc = EbicsSideError.TRANSFER_SEGMENT_FAILED
-                )
+        val dataEncryptionInfo = 
requireNotNull(initContent.dataEncryptionInfo) {
+            "Download init phase: missing EncryptionInfo"
+        }
+
+        logger.debug("Download init phase for transaction '$tId'")
+    
+        /** Send download receipt */
+        suspend fun receipt(success: Boolean) {
+            val xml = impl.downloadReceipt(tId, success)
+            impl.postBTS(client, xml, "Download receipt 
phase").okOrFail("Download receipt phase")
+        }
+        /** Throw if parent scope have been canceled */
+        suspend fun checkCancellation() {
+            if (!parentScope.isActive) {
+                // First send a proper EBICS transaction failure
+                receipt(false)
+                // Send throw cancelation exception
+                throw CancellationException()
             }
-            val chunk = transResp.orderDataEncChunk
-            if (chunk == null) {
-                throw Exception("EBICS transfer phase lacks chunk #$x, 
failing.")
+        }
+
+        // Transfer phase
+        val ebicsChunks = mutableListOf(firstDataChunk)
+        for (x in 2 .. howManySegments) {
+            checkCancellation()
+            val transReq = impl.downloadTransfer(x, howManySegments, tId)
+            val transResp = impl.postBTS(client, transReq, "Download transfer 
phase").okOrFail("Download transfer phase")
+            val chunk = requireNotNull(transResp.payloadChunk) {
+                "Download transfer phase: missing encrypted chunk"
             }
             ebicsChunks.add(chunk)
         }
-        suspend fun receipt(success: Boolean) {
-            val receiptXml = if (isEbics3)
-                createEbics3DownloadReceiptPhase(cfg, clientKeys, tId, success)
-            else createEbics25DownloadReceiptPhase(cfg, clientKeys, tId, 
success)
-
-            // Sending the receipt to the bank.
-            postEbics(
-                client,
-                cfg,
-                bankKeys,
-                receiptXml,
-                isEbics3
-            )
-        }
-        if (scope.isActive) {
-            // all chunks gotten, shaping a meaningful response now.
-            val payloadBytes = decryptAndDecompressPayload(
+
+        checkCancellation()
+
+        // Decompress encrypted chunks
+        val payloadStream = try {
+            decryptAndDecompressPayload(
                 clientKeys.encryption_private_key,
                 dataEncryptionInfo,
                 ebicsChunks
             )
-            // Process payload
-            val res = runCatching {
-                processing(payloadBytes)
-            }
-            receipt(res.isSuccess)
+        } catch (e: Exception) {
+            throw EbicsError.Protocol("invalid chunks", e)
+        }
 
-            res.getOrThrow()
-        } else {
-            receipt(false)
-            throw CancellationException()
+        checkCancellation()
+
+        // Run business logic
+        val res = runCatching {
+            processing(payloadStream)
         }
+
+        // First send a proper EBICS transaction receipt
+        receipt(res.isSuccess)
+        // Then throw business logic exception if any
+        res.getOrThrow()
     }
     Unit
 }
 
-/**
- * These errors affect an EBICS transaction regardless
- * of the standard error codes.
- */
-enum class EbicsSideError {
-    BANK_SIGNATURE_DIDNT_VERIFY,
-    BANK_RESPONSE_IS_INVALID,
-    ENCRYPTION_INFO_ELEMENT_NOT_FOUND,
-    ORDER_DATA_ELEMENT_NOT_FOUND,
-    TRANSFER_SEGMENT_FAILED,
-    /**
-     * This might indicate that the EBICS transaction had errors.
-     */
-    EBICS_UPLOAD_TRANSACTION_ID_MISSING,
-    /**
-     * May be caused by a connection issue OR the HTTP response
-     * code was not 200 OK.  Both cases should lead to retry as
-     * they are fixable or transient.
-     */
-    HTTP_POST_FAILED
-}
-
-/**
- * Those errors happen before getting to validate the bank response
- * and successfully verify its signature.  They bring therefore NO
- * business meaning and may be retried.
- */
-class EbicsSideException(
-    msg: String,
-    val sideEc: EbicsSideError,
-    cause: Exception? = null
-) : Exception(msg, cause)
-
 /**
  * Signs and the encrypts the data to send via EBICS.
  *
@@ -433,43 +276,32 @@ fun prepareUploadPayload(
     clientKeys: ClientPrivateKeysFile,
     bankKeys: BankPublicKeysFile,
     payload: ByteArray,
-    isEbics3: Boolean
 ): PreparedUploadData {
-    val encryptionResult: CryptoUtil.EncryptionResult = if (isEbics3) {
-        val innerSignedEbicsXml = signOrderEbics3( // A006 signature.
-            payload,
-            clientKeys.signature_private_key,
-            cfg.ebicsPartnerId,
-            cfg.ebicsUserId
-        )
-        val userSignatureDataEncrypted = CryptoUtil.encryptEbicsE002(
-            EbicsOrderUtil.encodeOrderDataXml(innerSignedEbicsXml),
-            bankKeys.bank_encryption_public_key
-        )
-        userSignatureDataEncrypted
-    } else {
-        val innerSignedEbicsXml = signOrder( // A006 signature.
-            payload,
-            clientKeys.signature_private_key,
-            cfg.ebicsPartnerId,
-            cfg.ebicsUserId
-        )
-        val userSignatureDataEncrypted = CryptoUtil.encryptEbicsE002(
-            EbicsOrderUtil.encodeOrderDataXml(innerSignedEbicsXml),
-            bankKeys.bank_encryption_public_key
-        )
-        userSignatureDataEncrypted
+    val innerSignedEbicsXml = XmlBuilder.toBytes("UserSignatureData") {
+        attr("xmlns", "http://www.ebics.org/S002";)
+        el("OrderSignatureData") {
+            el("SignatureVersion", "A006")
+            el("SignatureValue", CryptoUtil.signEbicsA006(
+                CryptoUtil.digestEbicsOrderA006(payload),
+                clientKeys.signature_private_key,
+            ).encodeBase64())
+            el("PartnerID", cfg.ebicsPartnerId)
+            el("UserID", cfg.ebicsUserId)
+        }
     }
-    val plainTransactionKey = encryptionResult.plainTransactionKey
-        ?: throw Exception("Could not generate the transaction key, cannot 
encrypt the payload!")
+    val encryptionResult = CryptoUtil.encryptEbicsE002(
+        innerSignedEbicsXml.inputStream().deflate(),
+        bankKeys.bank_encryption_public_key
+    )
     // Then only E002 symmetric (with ephemeral key) encrypt.
-    val compressedInnerPayload = payload.inputStream().deflate().readAllBytes()
+    val compressedInnerPayload = payload.inputStream().deflate()
+    // TODO stream
     val encryptedPayload = CryptoUtil.encryptEbicsE002withTransactionKey(
         compressedInnerPayload,
         bankKeys.bank_encryption_public_key,
-        plainTransactionKey
+        encryptionResult.plainTransactionKey
     )
-    val encodedEncryptedPayload = 
Base64.getEncoder().encodeToString(encryptedPayload.encryptedData)
+    val encodedEncryptedPayload = encryptedPayload.encryptedData.encodeBase64()
 
     return PreparedUploadData(
         encryptionResult.encryptedTransactionKey, // ephemeral key
@@ -479,32 +311,6 @@ fun prepareUploadPayload(
     )
 }
 
-/**
- * Possible states of an EBICS transaction.
- */
-enum class EbicsPhase {
-    initialization,
-    transmission,
-    receipt
-}
-
-/**
- * Witnesses a failure in an EBICS communication.  That
- * implies that the bank response and its signature were
- * both valid.
- */
-class EbicsUploadException(
-    msg: String,
-    val phase: EbicsPhase,
-    val ebicsErrorCode: EbicsReturnCode,
-    /**
-     * If the error was EBICS-technical, then we might not
-     * even have interest on the business error code, therefore
-     * the value below may be null.
-     */
-    val bankErrorCode: EbicsReturnCode? = null
-) : Exception(msg)
-
 /**
  * Collects all the steps of an EBICS 3 upload transaction.
  * NOTE: this function could conveniently be reused for an EBICS 2.x
@@ -522,56 +328,122 @@ suspend fun doEbicsUpload(
     cfg: EbicsSetupConfig,
     clientKeys: ClientPrivateKeysFile,
     bankKeys: BankPublicKeysFile,
-    orderService: Ebics3Request.OrderDetails.Service,
+    order: EbicsOrder,
     payload: ByteArray,
-): EbicsResponseContent = withContext(NonCancellable) {
+): String = withContext(NonCancellable) {
+    val impl = EbicsBTS(cfg, bankKeys, clientKeys, order)
     // TODO use a lambda and pass the order detail there for atomicity ?
-    val preparedPayload = prepareUploadPayload(cfg, clientKeys, bankKeys, 
payload, isEbics3 = true)
-    val initXml = createEbics3RequestForUploadInitialization(
-        cfg,
-        preparedPayload,
-        bankKeys,
-        clientKeys,
-        orderService
-    )
-    val initResp = postEbics( // may throw EbicsEarlyException
-        client,
-        cfg,
-        bankKeys,
-        initXml,
-        isEbics3 = true
-    )
-    if (!areCodesOk(initResp)) throw EbicsUploadException(
-        "EBICS upload init failed",
-        phase = EbicsPhase.initialization,
-        ebicsErrorCode = initResp.technicalReturnCode,
-        bankErrorCode = initResp.bankReturnCode
-    )
-    // Init phase OK, proceeding with the transfer phase.
-    val tId = initResp.transactionID
-        ?: throw EbicsSideException(
-            "EBICS upload init phase did not return a transaction ID, cannot 
do the transfer phase.",
-            sideEc = EbicsSideError.EBICS_UPLOAD_TRANSACTION_ID_MISSING
-        )
-    val transferXml = createEbics3RequestForUploadTransferPhase(
-        cfg,
-        clientKeys,
-        tId,
-        preparedPayload
-    )
-    val transferResp = postEbics(
-        client,
-        cfg,
-        bankKeys,
-        transferXml,
-        isEbics3 = true
-    )
-    if (!areCodesOk(transferResp)) throw EbicsUploadException(
-        "EBICS upload transfer failed",
-        phase = EbicsPhase.transmission,
-        ebicsErrorCode = initResp.technicalReturnCode,
-        bankErrorCode = initResp.bankReturnCode
-    )
-    // EBICS- and bank-technical codes were both EBICS_OK, success!
-    transferResp
+    val preparedPayload = prepareUploadPayload(cfg, clientKeys, bankKeys, 
payload)
+    
+    // Init phase
+    val initXml = impl.uploadInitialization(preparedPayload)
+    val initResp = impl.postBTS(client, initXml, "Upload init 
phase").okOrFail("Upload init phase")
+    val tId = requireNotNull(initResp.transactionID) {
+        "Upload init phase: missing transaction ID"
+    }
+
+    // Transfer phase
+    val transferXml = impl.uploadTransfer(tId, preparedPayload)
+    val transferResp = impl.postBTS(client, transferXml, "Upload transfer 
phase").okOrFail("Upload transfer phase")
+    val orderId = requireNotNull(transferResp.orderID) {
+        "Upload transfer phase: missing order ID"
+    }
+    orderId
+}
+
+/**
+ * @param size in bits
+ */
+fun getNonce(size: Int): ByteArray {
+    val sr = SecureRandom()
+    val ret = ByteArray(size / 8)
+    sr.nextBytes(ret)
+    return ret
+}
+
+class PreparedUploadData(
+    val transactionKey: ByteArray,
+    val userSignatureDataEncrypted: ByteArray,
+    val dataDigest: ByteArray,
+    val encryptedPayloadChunks: List<String>
+)
+
+class DataEncryptionInfo(
+    val transactionKey: ByteArray,
+    val bankPubDigest: ByteArray
+)
+
+class EbicsResponse<T>(
+    val technicalCode: EbicsReturnCode,
+    val bankCode: EbicsReturnCode,
+    private val content: T
+) {
+    /** Checks that return codes are both EBICS_OK or throw an exception */
+    fun okOrFail(phase: String): T {
+        logger.debug("$phase return codes: $technicalCode & $bankCode")
+        require(technicalCode.kind() != EbicsReturnCode.Kind.Error) {
+            "$phase has technical error: $technicalCode"
+        }
+        require(bankCode.kind() != EbicsReturnCode.Kind.Error) {
+            "$phase has bank error: $bankCode"
+        }
+        return content
+    }
+}
+
+// TODO import missing using a script
+@Suppress("SpellCheckingInspection")
+enum class EbicsReturnCode(val code: String) {
+    EBICS_OK("000000"),
+    EBICS_DOWNLOAD_POSTPROCESS_DONE("011000"),
+    EBICS_DOWNLOAD_POSTPROCESS_SKIPPED("011001"),
+    EBICS_TX_SEGMENT_NUMBER_UNDERRUN("011101"),
+    EBICS_AUTHENTICATION_FAILED("061001"),
+    EBICS_INVALID_REQUEST("061002"),
+    EBICS_INTERNAL_ERROR("061099"),
+    EBICS_TX_RECOVERY_SYNC("061101"),
+    EBICS_AUTHORISATION_ORDER_IDENTIFIER_FAILED("090003"),
+    EBICS_INVALID_ORDER_DATA_FORMAT("090004"),
+    EBICS_NO_DOWNLOAD_DATA_AVAILABLE("090005"),
+    EBICS_INVALID_USER_OR_USER_STATE("091002"),
+    EBICS_USER_UNKNOWN("091003"),
+    EBICS_INVALID_USER_STATE("091004"),
+    EBICS_INVALID_ORDER_IDENTIFIER("091005"),
+    EBICS_UNSUPPORTED_ORDER_TYPE("091006"),
+    EBICS_INVALID_XML("091010"),
+    EBICS_TX_MESSAGE_REPLAY("091103"),
+    EBICS_INVALID_REQUEST_CONTENT("091113"),
+    EBICS_PROCESSING_ERROR("091116"),
+    EBICS_ACCOUNT_AUTHORISATION_FAILED("091302"),
+    EBICS_AMOUNT_CHECK_FAILED("091303");
+
+    enum class Kind {
+        Information,
+        Note,
+        Warning,
+        Error
+    }
+
+    fun kind(): Kind {
+        return when (val errorClass = code.substring(0..1)) {
+            "00" -> Kind.Information
+            "01" -> Kind.Note
+            "03" -> Kind.Warning
+            "06", "09" -> Kind.Error
+            else -> throw Exception("Unknown EBICS status code error class: 
$errorClass")
+        }
+    }
+
+    companion object {
+        fun lookup(code: String): EbicsReturnCode {
+            for (x in entries) {
+                if (x.code == code) {
+                    return x
+                }
+            }
+            throw Exception(
+                "Unknown EBICS status code: $code"
+            )
+        }
+    }
 }
\ No newline at end of file
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsKeyMng.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsKeyMng.kt
new file mode 100644
index 00000000..a6d965e5
--- /dev/null
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsKeyMng.kt
@@ -0,0 +1,210 @@
+/*
+ * This file is part of LibEuFin.
+ * Copyright (C) 2024 Taler Systems S.A.
+
+ * LibEuFin is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation; either version 3, or
+ * (at your option) any later version.
+
+ * LibEuFin is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
+ * Public License for more details.
+
+ * You should have received a copy of the GNU Affero General Public
+ * License along with LibEuFin; see the file COPYING.  If not, see
+ * <http://www.gnu.org/licenses/>
+ */
+
+package tech.libeufin.nexus.ebics
+
+import org.w3c.dom.Document
+import tech.libeufin.common.crypto.CryptoUtil
+import tech.libeufin.common.*
+import tech.libeufin.nexus.*
+import tech.libeufin.nexus.BankPublicKeysFile
+import tech.libeufin.nexus.ClientPrivateKeysFile
+import tech.libeufin.nexus.EbicsSetupConfig
+import java.io.InputStream
+import java.time.Instant
+import java.time.ZoneId
+import java.util.*
+import javax.xml.datatype.DatatypeFactory
+import java.security.interfaces.*
+
+/** EBICS protocol for key management */
+class Ebics3KeyMng(
+    private val cfg: EbicsSetupConfig,
+    private val clientKeys: ClientPrivateKeysFile
+) {
+    fun INI(): ByteArray {
+        val inner = XMLOrderData(cfg, "ns2:SignaturePubKeyOrderData", 
"http://www.ebics.org/S001";) {
+            el("ns2:SignaturePubKeyInfo") {
+                RSAKeyXml(clientKeys.signature_private_key)
+                el("ns2:SignatureVersion", "A006")
+            }
+        }
+        val doc = request("ebicsUnsecuredRequest") {
+            el("header") {
+                attr("authenticate", "true")
+                el("static") {
+                    el("HostID", cfg.ebicsHostId)
+                    el("PartnerID", cfg.ebicsPartnerId)
+                    el("UserID", cfg.ebicsUserId)
+                    el("OrderDetails") {
+                        el("OrderType", "INI")
+                        el("OrderAttribute", "DZNNN")
+                    }
+                    el("SecurityMedium", "0200")
+                }
+                el("mutable")
+            }
+            el("body/DataTransfer/OrderData", inner)
+        }
+        return XMLUtil.convertDomToBytes(doc)
+    }
+
+    fun HIA(): ByteArray {
+        val inner = XMLOrderData(cfg, "ns2:HIARequestOrderData", 
"urn:org:ebics:H004") {
+            el("ns2:AuthenticationPubKeyInfo") {
+                RSAKeyXml(clientKeys.authentication_private_key)
+                el("ns2:AuthenticationVersion", "X002")
+            }
+            el("ns2:EncryptionPubKeyInfo") {
+                RSAKeyXml(clientKeys.encryption_private_key)
+                el("ns2:EncryptionVersion", "E002")
+            }
+        }
+        val doc = request("ebicsUnsecuredRequest") {
+            el("header") {
+                attr("authenticate", "true")
+                el("static") {
+                    el("HostID", cfg.ebicsHostId)
+                    el("PartnerID", cfg.ebicsPartnerId)
+                    el("UserID", cfg.ebicsUserId)
+                    el("OrderDetails") {
+                        el("OrderType", "HIA")
+                        el("OrderAttribute", "DZNNN")
+                    }
+                    el("SecurityMedium", "0200")
+                }
+                el("mutable")
+            }
+            el("body/DataTransfer/OrderData", inner)
+        }
+        return XMLUtil.convertDomToBytes(doc)
+    }
+
+    fun HPB(): ByteArray {
+        val nonce = getNonce(128)
+        val doc = request("ebicsNoPubKeyDigestsRequest") {
+            el("header") {
+                attr("authenticate", "true")
+                el("static") {
+                    el("HostID", cfg.ebicsHostId)
+                    el("Nonce", nonce.encodeUpHex())
+                    el("Timestamp", Instant.now().xmlDateTime())
+                    el("PartnerID", cfg.ebicsPartnerId)
+                    el("UserID", cfg.ebicsUserId)
+                    el("OrderDetails") {
+                        el("OrderType", "HPB")
+                        el("OrderAttribute", "DZHNN")
+                    }
+                    el("SecurityMedium", "0000")
+                }
+                el("mutable")
+            }
+            el("AuthSignature")
+            el("body")
+        }
+        XMLUtil.signEbicsDocument(doc, clientKeys.authentication_private_key, 
"H004")
+        return XMLUtil.convertDomToBytes(doc)
+    }
+
+    /* ----- Helpers ----- */
+
+    private fun request(name: String, build: XmlBuilder.() -> Unit): Document {
+        return XmlBuilder.toDom(name, "urn:org:ebics:H004") {
+            attr("http://www.w3.org/2000/xmlns/";, "xmlns", 
"urn:org:ebics:H004")
+            attr("http://www.w3.org/2000/xmlns/";, "xmlns:ds", 
"http://www.w3.org/2000/09/xmldsig#";)
+            attr("Version", "H004")
+            attr("Revision", "1")
+            build()
+        }
+    }
+
+    private fun XmlBuilder.RSAKeyXml(key: RSAPrivateCrtKey) {
+        el("ns2:PubKeyValue") {
+            el("ds:RSAKeyValue") {
+                el("ds:Modulus", key.modulus.encodeBase64())
+                el("ds:Exponent", key.publicExponent.encodeBase64())
+            }
+        }
+    }
+    
+    private fun XMLOrderData(cfg: EbicsSetupConfig, name: String, schema: 
String, build: XmlBuilder.() -> Unit): String {
+        return XmlBuilder.toBytes(name) {
+            attr("xmlns:ds", "http://www.w3.org/2000/09/xmldsig#";)
+            attr("xmlns:ns2", schema)
+            build()
+            el("ns2:PartnerID", cfg.ebicsPartnerId)
+            el("ns2:UserID", cfg.ebicsUserId)
+        }.inputStream().deflate().encodeBase64()
+    }
+
+    companion object {
+        fun parseResponse(doc: Document, clientEncryptionKey: 
RSAPrivateCrtKey): EbicsResponse<InputStream?> {
+            return XmlDestructor.fromDoc(doc, "ebicsKeyManagementResponse") {
+                lateinit var technicalCode: EbicsReturnCode
+                lateinit var bankCode: EbicsReturnCode
+                var payload: InputStream? = null
+                one("header") {
+                    one("mutable") {
+                        technicalCode = 
EbicsReturnCode.lookup(one("ReturnCode").text())
+                    }
+                }
+                one("body") {
+                    bankCode = EbicsReturnCode.lookup(one("ReturnCode").text())
+                    payload = opt("DataTransfer") {
+                        val descriptionInfo = one("DataEncryptionInfo") {
+                            DataEncryptionInfo(
+                                one("TransactionKey").text().decodeBase64(),
+                                
one("EncryptionPubKeyDigest").text().decodeBase64()
+                            )
+                        }
+                        val chunk = one("OrderData").text().decodeBase64()
+                        decryptAndDecompressPayload(
+                            clientEncryptionKey,
+                            descriptionInfo,
+                            listOf(chunk)
+                        )
+                    }
+                }
+                EbicsResponse(
+                    technicalCode = technicalCode, 
+                    bankCode, 
+                    content = payload
+                )
+            }
+        }
+
+        fun parseHpbOrder(data: InputStream): Pair<RSAPublicKey, RSAPublicKey> 
{
+            return XmlDestructor.fromStream(data, "HPBResponseOrderData") {
+                val authPub = 
one("AuthenticationPubKeyInfo").one("PubKeyValue").one("RSAKeyValue") {
+                    CryptoUtil.loadRsaPublicKeyFromComponents(
+                        one("Modulus").text().decodeBase64(),
+                        one("Exponent").text().decodeBase64(),
+                    )
+                }
+                val encPub = 
one("EncryptionPubKeyInfo").one("PubKeyValue").one("RSAKeyValue") {
+                    CryptoUtil.loadRsaPublicKeyFromComponents(
+                        one("Modulus").text().decodeBase64(),
+                        one("Exponent").text().decodeBase64(),
+                    )
+                }
+                Pair(authPub, encPub)
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsOrder.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsOrder.kt
new file mode 100644
index 00000000..3c73fff0
--- /dev/null
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsOrder.kt
@@ -0,0 +1,59 @@
+/*
+ * This file is part of LibEuFin.
+ * Copyright (C) 2024 Taler Systems S.A.
+
+ * LibEuFin is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation; either version 3, or
+ * (at your option) any later version.
+
+ * LibEuFin is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
+ * Public License for more details.
+
+ * You should have received a copy of the GNU Affero General Public
+ * License along with LibEuFin; see the file COPYING.  If not, see
+ * <http://www.gnu.org/licenses/>
+ */
+package tech.libeufin.nexus.ebics
+
+// We will support more dialect in the future
+
+sealed class EbicsOrder(val schema: String) {
+    data class V2_5(
+        val type: String,
+        val attribute: String
+    ): EbicsOrder("H004")
+    data class V3(
+        val type: String,
+        val name: String? = null,
+        val scope: String? = null,
+        val messageName: String? = null,
+        val messageVersion: String? = null,
+        val container: String? = null,
+    ): EbicsOrder("H005")
+}
+
+fun downloadDocService(doc: SupportedDocument, ebics2: Boolean): EbicsOrder {
+    return if (ebics2) {
+        when (doc) {
+            SupportedDocument.PAIN_002 -> EbicsOrder.V2_5("Z01", "DZHNN")
+            SupportedDocument.CAMT_052 -> EbicsOrder.V2_5("Z52", "DZHNN")
+            SupportedDocument.CAMT_053 -> EbicsOrder.V2_5("Z53", "DZHNN")
+            SupportedDocument.CAMT_054 -> EbicsOrder.V2_5("Z54", "DZHNN")
+            SupportedDocument.PAIN_002_LOGS -> EbicsOrder.V2_5("HAC", "DZHNN")
+        }
+    } else {
+        when (doc) {
+            SupportedDocument.PAIN_002 -> EbicsOrder.V3("BTD", "PSR", "CH", 
"pain.002", "10", "ZIP")
+            SupportedDocument.CAMT_052 -> EbicsOrder.V3("BTD", "STM", "CH", 
"camt.052", "08", "ZIP")
+            SupportedDocument.CAMT_053 -> EbicsOrder.V3("BTD", "EOP", "CH", 
"camt.053", "08", "ZIP")
+            SupportedDocument.CAMT_054 -> EbicsOrder.V3("BTD", "REP", "CH", 
"camt.054", "08", "ZIP")
+            SupportedDocument.PAIN_002_LOGS -> EbicsOrder.V3("HAC")
+        }
+    }
+}
+
+fun uploadPaymentService(): EbicsOrder =
+    EbicsOrder.V3("BTU", "MCT", "CH", "pain.001", "09")
diff --git a/nexus/src/test/kotlin/Ebics.kt b/nexus/src/test/kotlin/Ebics.kt
deleted file mode 100644
index a1c86f20..00000000
--- a/nexus/src/test/kotlin/Ebics.kt
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2024 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-import io.ktor.client.engine.mock.*
-import io.ktor.http.*
-import org.junit.Test
-import tech.libeufin.ebics.XMLUtil
-import tech.libeufin.ebics.ebics_h004.EbicsUnsecuredRequest
-import tech.libeufin.nexus.ebics.*
-import kotlin.io.path.Path
-import kotlin.io.path.writeBytes
-import kotlin.test.assertEquals
-
-class Ebics {
-    // Checks XML is valid and INI.
-    @Test
-    fun iniMessage() = conf { config -> 
-        val msg = generateIniMessage(config, clientKeys)
-        val ini = 
XMLUtil.convertToJaxb<EbicsUnsecuredRequest>(msg.inputStream()) // ensures is 
valid
-        assertEquals(ini.value.header.static.orderDetails.orderType, "INI") // 
ensures is INI
-    }
-
-    // Checks XML is valid and HIA.
-    @Test
-    fun hiaMessage() = conf { config -> 
-        val msg = generateHiaMessage(config, clientKeys)
-        val ini = 
XMLUtil.convertToJaxb<EbicsUnsecuredRequest>(msg.inputStream()) // ensures is 
valid
-        assertEquals(ini.value.header.static.orderDetails.orderType, "HIA") // 
ensures is HIA
-    }
-
-    // Checks XML is valid and HPB.
-    @Test
-    fun hpbMessage() = conf { config -> 
-        val msg = generateHpbMessage(config, clientKeys)
-        val ini = 
XMLUtil.convertToJaxb<EbicsUnsecuredRequest>(msg.inputStream()) // ensures is 
valid
-        assertEquals(ini.value.header.static.orderDetails.orderType, "HPB") // 
ensures is HPB
-    }
-    // POSTs an EBICS message to the mock bank.  Tests
-    // the main branches: unreachable bank, non-200 status
-    // code, and 200.
-    @Test
-    fun postMessage() = conf { config -> 
-        val client404 = getMockedClient {
-            respondError(HttpStatusCode.NotFound)
-        }
-        val clientNoResponse = getMockedClient {
-            throw Exception("Network issue.")
-        }
-        val clientOk = getMockedClient {
-            respondOk("Not EBICS anyway.")
-        }
-        runCatching {
-            client404.postToBank("http://ignored.example.com/";, 
"ignored".toByteArray())
-        }.run {
-            val exp = exceptionOrNull()!!
-            assertEquals(exp.message, "Invalid response status: 404 Not Found")
-        }
-        runCatching {
-            clientNoResponse.postToBank("http://ignored.example.com/";, 
"ignored".toByteArray())
-        }.run {
-            val exp = exceptionOrNull()!!
-            assertEquals(exp.message, "Network issue.")
-        }
-        clientOk.postToBank("http://ignored.example.com/";, 
"ignored".toByteArray())
-    }
-
-    // Tests that internal repr. of keys lead to valid PDF.
-    // Mainly tests that the function does not throw any error.
-    @Test
-    fun keysPdf() = conf { config -> 
-        val pdf = generateKeysPdf(clientKeys, config)
-        Path("/tmp/libeufin-nexus-test-keys.pdf").writeBytes(pdf)
-    }
-}
\ No newline at end of file
diff --git a/nexus/src/test/kotlin/EbicsTest.kt 
b/nexus/src/test/kotlin/EbicsTest.kt
new file mode 100644
index 00000000..a67a48d6
--- /dev/null
+++ b/nexus/src/test/kotlin/EbicsTest.kt
@@ -0,0 +1,70 @@
+/*
+ * This file is part of LibEuFin.
+ * Copyright (C) 2024 Taler Systems S.A.
+
+ * LibEuFin is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation; either version 3, or
+ * (at your option) any later version.
+
+ * LibEuFin is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
+ * Public License for more details.
+
+ * You should have received a copy of the GNU Affero General Public
+ * License along with LibEuFin; see the file COPYING.  If not, see
+ * <http://www.gnu.org/licenses/>
+ */
+
+import io.ktor.client.engine.mock.*
+import io.ktor.http.*
+import org.junit.Test
+import tech.libeufin.nexus.*
+import tech.libeufin.nexus.ebics.*
+import kotlin.io.path.Path
+import kotlin.io.path.writeBytes
+import kotlin.test.*
+
+class EbicsTest {
+    // POSTs an EBICS message to the mock bank.  Tests
+    // the main branches: unreachable bank, non-200 status
+    // code, and 200.
+    @Test
+    fun postMessage() = conf { config ->
+        assertFailsWith<EbicsError.Transport> {
+            getMockedClient {
+                respondError(HttpStatusCode.NotFound)
+            }.postToBank("http://ignored.example.com/";, ByteArray(0), "Test")
+        }.run {
+            assertEquals("Test: bank HTTP error: 404 Not Found", message)
+        }
+        assertFailsWith<EbicsError.Transport> {
+            getMockedClient {
+                throw Exception("Simulate failure")
+            }.postToBank("http://ignored.example.com/";, ByteArray(0), "Test")
+        }.run {
+            assertEquals("Test: failed to contact bank", message)
+            assertEquals("Simulate failure", cause!!.message)
+        }
+        assertFailsWith<EbicsError.Protocol> {
+            getMockedClient {
+                respondOk("<ebics broken></ebics>")
+            }.postToBank("http://ignored.example.com/";, ByteArray(0), "Test")
+        }.run {
+            assertEquals("Test: invalid XML bank reponse", message)
+            assertEquals("Attribute name \"broken\" associated with an element 
type \"ebics\" must be followed by the ' = ' character.", cause!!.message)
+        }
+        getMockedClient {
+            respondOk("<ebics></ebics>")
+        }.postToBank("http://ignored.example.com/";, ByteArray(0), "Test")
+    }
+
+    // Tests that internal repr. of keys lead to valid PDF.
+    // Mainly tests that the function does not throw any error.
+    @Test
+    fun keysPdf() = conf { config -> 
+        val pdf = generateKeysPdf(clientKeys, config)
+        Path("/tmp/libeufin-nexus-test-keys.pdf").writeBytes(pdf)
+    }
+}
\ No newline at end of file
diff --git a/nexus/src/test/kotlin/XmlCombinatorsTest.kt 
b/nexus/src/test/kotlin/XmlCombinatorsTest.kt
new file mode 100644
index 00000000..aeb8b327
--- /dev/null
+++ b/nexus/src/test/kotlin/XmlCombinatorsTest.kt
@@ -0,0 +1,76 @@
+/*
+ * This file is part of LibEuFin.
+ * Copyright (C) 2024 Taler Systems S.A.
+
+ * LibEuFin is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation; either version 3, or
+ * (at your option) any later version.
+
+ * LibEuFin is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
+ * Public License for more details.
+
+ * You should have received a copy of the GNU Affero General Public
+ * License along with LibEuFin; see the file COPYING.  If not, see
+ * <http://www.gnu.org/licenses/>
+ */
+
+import org.junit.Test
+import tech.libeufin.nexus.XmlBuilder
+import tech.libeufin.nexus.XMLUtil
+import kotlin.test.assertEquals
+
+class XmlCombinatorsTest {
+    fun testBuilder(expected: String, root: String, builder: XmlBuilder.() -> 
Unit) {
+        val toBytes = XmlBuilder.toBytes(root, builder)
+        val toDom = XmlBuilder.toDom(root, null, builder)
+        //assertEquals(expected, toString) TODO fix empty tag being closed 
only with toString
+        assertEquals(expected, 
XMLUtil.convertDomToBytes(toDom).toString(Charsets.UTF_8))
+    }
+
+    @Test
+    fun testWithModularity() {
+        fun module(base: XmlBuilder) {
+            base.el("module")
+        }
+        testBuilder(
+            "<?xml version=\"1.0\" encoding=\"UTF-8\" 
standalone=\"yes\"?><root><module/></root>",
+            "root"
+        ) {
+            module(this)
+        }
+    }
+
+    @Test
+    fun testWithIterable() {
+        testBuilder(
+            "<?xml version=\"1.0\" encoding=\"UTF-8\" 
standalone=\"yes\"?><iterable><endOfDocument><e1><e11>111</e11></e1><e2><e22>222</e22></e2><e3><e33>333</e33></e3><e4><e44>444</e44></e4><e5><e55>555</e55></e5><e6><e66>666</e66></e6><e7><e77>777</e77></e7><e8><e88>888</e88></e8><e9><e99>999</e99></e9><e10><e1010>101010</e1010></e10></endOfDocument></iterable>",
 
+            "iterable"
+        ) {
+            el("endOfDocument") {
+                for (i in 1..10)
+                    el("e$i/e$i$i", "$i$i$i")
+            }
+        }
+    }
+
+    @Test
+    fun testBasicXmlBuilding() {
+        testBuilder(
+            "<?xml version=\"1.0\" encoding=\"UTF-8\" 
standalone=\"yes\"?><ebicsRequest version=\"H004\"><a><b><c 
attribute-of=\"c\"><d><e><f 
nested=\"true\"><g><h/></g></f></e></d></c></b></a><one_more/></ebicsRequest>",
+            "ebicsRequest"
+        ) {
+            attr("version", "H004")
+            el("a/b/c") {
+                attr("attribute-of", "c")
+                el("d/e/f") {
+                    attr("nested", "true")
+                    el("g/h")
+                }
+            }
+            el("one_more")
+        }
+    }
+}
diff --git a/nexus/src/test/kotlin/XmlUtilTest.kt 
b/nexus/src/test/kotlin/XmlUtilTest.kt
new file mode 100644
index 00000000..03941f3f
--- /dev/null
+++ b/nexus/src/test/kotlin/XmlUtilTest.kt
@@ -0,0 +1,73 @@
+/*
+ * This file is part of LibEuFin.
+ * Copyright (C) 2024 Taler Systems S.A.
+
+ * LibEuFin is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation; either version 3, or
+ * (at your option) any later version.
+
+ * LibEuFin is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
+ * Public License for more details.
+
+ * You should have received a copy of the GNU Affero General Public
+ * License along with LibEuFin; see the file COPYING.  If not, see
+ * <http://www.gnu.org/licenses/>
+ */
+
+import org.junit.Assert.assertTrue
+import org.junit.Test
+import tech.libeufin.common.crypto.CryptoUtil
+import tech.libeufin.common.decodeBase64
+import tech.libeufin.nexus.XMLUtil
+import java.security.KeyPairGenerator
+import javax.xml.transform.stream.StreamSource
+
+class XmlUtilTest {
+
+    @Test
+    fun basicSigningTest() {
+        val doc = XMLUtil.parseIntoDom("""
+            <myMessage xmlns:ebics="urn:org:ebics:H004">
+                <ebics:AuthSignature />
+                <foo authenticate="true">Hello World</foo>
+            </myMessage>
+        """.trimIndent().toByteArray().inputStream())
+        val kpg = KeyPairGenerator.getInstance("RSA")
+        kpg.initialize(2048)
+        val pair = kpg.genKeyPair()
+        val otherPair = kpg.genKeyPair()
+        XMLUtil.signEbicsDocument(doc, pair.private, "H004")
+        kotlin.test.assertTrue(XMLUtil.verifyEbicsDocument(doc, pair.public, 
"H004"))
+        kotlin.test.assertFalse(XMLUtil.verifyEbicsDocument(doc, 
otherPair.public, "H004"))
+    }
+
+    @Test
+    fun multiAuthSigningTest() {
+        val doc = XMLUtil.parseIntoDom("""
+            <myMessage xmlns:ebics="urn:org:ebics:H004">
+                <ebics:AuthSignature />
+                <foo authenticate="true">Hello World</foo>
+                <bar authenticate="true">Another one!</bar>
+            </myMessage>
+        """.trimIndent().toByteArray().inputStream())
+        val kpg = KeyPairGenerator.getInstance("RSA")
+        kpg.initialize(2048)
+        val pair = kpg.genKeyPair()
+        XMLUtil.signEbicsDocument(doc, pair.private, "H004")
+        kotlin.test.assertTrue(XMLUtil.verifyEbicsDocument(doc, pair.public, 
"H004"))
+    }
+
+    @Test
+    fun testRefSignature() {
+        val classLoader = ClassLoader.getSystemClassLoader()
+        val docText = classLoader.getResourceAsStream("signature1/doc.xml")
+        val doc = XMLUtil.parseIntoDom(docText)
+        val keyStream = 
classLoader.getResourceAsStream("signature1/public_key.txt")
+        val keyBytes = keyStream.decodeBase64().readAllBytes()
+        val key = CryptoUtil.loadRsaPublicKey(keyBytes)
+        assertTrue(XMLUtil.verifyEbicsDocument(doc, key, "H004"))
+    }
+}
\ No newline at end of file
diff --git a/ebics/src/test/resources/signature1/doc.xml 
b/nexus/src/test/resources/signature1/doc.xml
similarity index 100%
rename from ebics/src/test/resources/signature1/doc.xml
rename to nexus/src/test/resources/signature1/doc.xml
diff --git a/ebics/src/test/resources/signature1/public_key.txt 
b/nexus/src/test/resources/signature1/public_key.txt
similarity index 100%
rename from ebics/src/test/resources/signature1/public_key.txt
rename to nexus/src/test/resources/signature1/public_key.txt
diff --git a/settings.gradle b/settings.gradle
index 48e088f8..310fbee3 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -2,5 +2,4 @@ rootProject.name = 'libeufin'
 include("bank")
 include("nexus")
 include("common")
-include("testbench")
-include("ebics")
\ No newline at end of file
+include("testbench")
\ No newline at end of file
diff --git a/testbench/src/main/kotlin/Main.kt 
b/testbench/src/main/kotlin/Main.kt
index cf50c59d..1c21d8da 100644
--- a/testbench/src/main/kotlin/Main.kt
+++ b/testbench/src/main/kotlin/Main.kt
@@ -121,8 +121,7 @@ class Cli : CliktCommand("Run integration tests on banks 
provider") {
         runBlocking {
             step("Init ${kind.name}")
 
-            if (ask("Reset DB ? y/n>") == "y") nexusCmd.test("dbinit -r 
$flags").assertOk()
-            else nexusCmd.test("dbinit $flags").assertOk()
+            nexusCmd.test("dbinit $flags").assertOk()
 
             val cmds = buildMap<String, suspend () -> Unit> {
                 put("reset-db", suspend {

-- 
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]