[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libeufin] branch master updated: Introducing EBICS 3.
From: |
gnunet |
Subject: |
[libeufin] branch master updated: Introducing EBICS 3. |
Date: |
Fri, 23 Jun 2023 14:27:01 +0200 |
This is an automated email from the git hooks/post-receive script.
ms pushed a commit to branch master
in repository libeufin.
The following commit(s) were added to refs/heads/master by this push:
new e0512009 Introducing EBICS 3.
e0512009 is described below
commit e0512009c7e66e9882a1d5a741c1183b8ebc21dc
Author: MS <ms@taler.net>
AuthorDate: Fri Jun 23 14:25:35 2023 +0200
Introducing EBICS 3.
Getting the <ebicsRequest> document to validate and
the switch between 2.5 and 3.0 based on the connection
dialect.
---
.../tech/libeufin/nexus/ebics/EbicsClient.kt | 42 +-
.../kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt | 257 ++-
nexus/src/test/kotlin/EbicsTest.kt | 37 +
nexus/src/test/kotlin/PostFinance.kt | 1 -
util/src/main/kotlin/Ebics.kt | 154 +-
util/src/main/kotlin/XMLUtil.kt | 17 +-
util/src/main/kotlin/ebics_h004/EbicsRequest.kt | 2 -
.../Ebics3Request.kt} | 161 +-
util/src/main/kotlin/ebics_h005/Ebics3Types.kt | 402 ++++
util/src/main/kotlin/ebics_h005/package-info.java | 12 +
util/src/main/resources/xsd/ebics_H005.xsd | 11 +
.../resources/xsd/ebics_keymgmt_request_H005.xsd | 523 +++++
.../resources/xsd/ebics_keymgmt_response_H005.xsd | 137 ++
util/src/main/resources/xsd/ebics_orders_H005.xsd | 2094 ++++++++++++++++++++
util/src/main/resources/xsd/ebics_request_H005.xsd | 349 ++++
.../src/main/resources/xsd/ebics_response_H005.xsd | 167 ++
util/src/main/resources/xsd/ebics_types_H005.xsd | 1885 ++++++++++++++++++
17 files changed, 6023 insertions(+), 228 deletions(-)
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsClient.kt
b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsClient.kt
index 0d3aa67b..8bd1db6c 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsClient.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsClient.kt
@@ -31,6 +31,7 @@ import org.slf4j.Logger
import org.slf4j.LoggerFactory
import tech.libeufin.nexus.NexusError
import tech.libeufin.util.*
+import tech.libeufin.util.ebics_h005.Ebics3Request
import java.util.*
private val logger: Logger = LoggerFactory.getLogger("tech.libeufin.util")
@@ -107,12 +108,16 @@ class EbicsDownloadBankErrorResult(
suspend fun doEbicsDownloadTransaction(
client: HttpClient,
subscriberDetails: EbicsClientSubscriberDetails,
- orderType: String,
- orderParams: EbicsOrderParams
+ fetchSpec: EbicsFetchSpec
): EbicsDownloadResult {
// Initialization phase
- val initDownloadRequestStr =
createEbicsRequestForDownloadInitialization(subscriberDetails, orderType,
orderParams)
+ val initDownloadRequestStr = createEbicsRequestForDownloadInitialization(
+ subscriberDetails,
+ fetchSpec.orderType,
+ fetchSpec.orderParams,
+ fetchSpec.ebics3Service
+ )
val payloadChunks = LinkedList<String>()
val initResponseStr = client.postToBank(subscriberDetails.ebicsUrl,
initDownloadRequestStr)
val initResponse = parseAndValidateEbicsResponse(subscriberDetails,
initResponseStr)
@@ -133,7 +138,7 @@ suspend fun doEbicsDownloadTransaction(
HttpStatusCode.UnprocessableEntity,
"EBICS-technical error at init phase: " +
"${initResponse.technicalReturnCode}
${initResponse.reportText}," +
- " for order type $orderType and transaction ID:
$transactionID.",
+ " for fetching level ${fetchSpec.originalLevel} and
transaction ID: $transactionID.",
initResponse.technicalReturnCode
)
}
@@ -151,7 +156,7 @@ suspend fun doEbicsDownloadTransaction(
else -> {
logger.error(
"Bank-technical error at init phase:
${initResponse.bankReturnCode}" +
- ", for order type $orderType and transaction ID
$transactionID."
+ ", for fetching level ${fetchSpec.originalLevel} and
transaction ID $transactionID."
)
return EbicsDownloadBankErrorResult(initResponse.bankReturnCode)
}
@@ -162,14 +167,14 @@ suspend fun doEbicsDownloadTransaction(
?: throw NexusError(
HttpStatusCode.BadGateway,
"Initial response did not contain encryption info. " +
- "Order type $orderType, transaction ID $transactionID"
+ "Fetching level ${fetchSpec.originalLevel} , transaction
ID $transactionID"
)
val initOrderDataEncChunk = initResponse.orderDataEncChunk
?: throw NexusError(
HttpStatusCode.BadGateway,
"Initial response for download transaction does not " +
- "contain data transfer. Order type $orderType, " +
+ "contain data transfer. Fetching level
${fetchSpec.originalLevel}, " +
"transaction ID $transactionID."
)
payloadChunks.add(initOrderDataEncChunk)
@@ -178,7 +183,7 @@ suspend fun doEbicsDownloadTransaction(
?: throw NexusError(
HttpStatusCode.FailedDependency,
"Missing segment number in EBICS download init response." +
- " Order type $orderType, transaction ID $transactionID"
+ " Fetching level ${fetchSpec.originalLevel}, transaction
ID $transactionID"
)
// Transfer phase
for (x in 2 .. numSegments) {
@@ -201,7 +206,7 @@ suspend fun doEbicsDownloadTransaction(
HttpStatusCode.FailedDependency,
"EBICS-technical error at transfer phase: " +
"${transferResponse.technicalReturnCode}
${transferResponse.reportText}." +
- " Order type $orderType, transaction ID
$transactionID"
+ " Fetching level ${fetchSpec.originalLevel},
transaction ID $transactionID"
)
}
}
@@ -212,7 +217,7 @@ suspend fun doEbicsDownloadTransaction(
else -> {
logger.error("Bank-technical error at transfer phase: " +
"${transferResponse.bankReturnCode}." +
- " Order type $orderType, transaction ID
$transactionID")
+ " Fetching level ${fetchSpec.originalLevel},
transaction ID $transactionID")
return
EbicsDownloadBankErrorResult(transferResponse.bankReturnCode)
}
}
@@ -220,7 +225,7 @@ suspend fun doEbicsDownloadTransaction(
?: throw NexusError(
HttpStatusCode.BadGateway,
"transfer response for download transaction " +
- "does not contain data transfer. Order type
$orderType, transaction ID $transactionID"
+ "does not contain data transfer. Fetching level
${fetchSpec.originalLevel}, transaction ID $transactionID"
)
payloadChunks.add(transferOrderDataEncChunk)
logger.debug("Download transfer phase of ${transactionID}: bank
acknowledges $x")
@@ -246,7 +251,7 @@ suspend fun doEbicsDownloadTransaction(
HttpStatusCode.InternalServerError,
"Unexpected EBICS return code" +
" at acknowledgement phase:
${ackResponse.technicalReturnCode.name}." +
- " Order type $orderType, transaction ID
$transactionID"
+ " Fetching level ${fetchSpec.originalLevel},
transaction ID $transactionID"
)
}
}
@@ -258,9 +263,10 @@ suspend fun doEbicsDownloadTransaction(
suspend fun doEbicsUploadTransaction(
client: HttpClient,
subscriberDetails: EbicsClientSubscriberDetails,
- orderType: String,
+ orderType: String? = null,
payload: ByteArray,
- orderParams: EbicsOrderParams
+ orderParams: EbicsOrderParams,
+ ebics3OrderService: Ebics3Request.OrderDetails.Service? = null
) {
if (subscriberDetails.bankEncPub == null) {
throw NexusError(HttpStatusCode.BadRequest,
@@ -268,7 +274,13 @@ suspend fun doEbicsUploadTransaction(
)
}
val preparedUploadData = prepareUploadPayload(subscriberDetails, payload)
- val req = createEbicsRequestForUploadInitialization(subscriberDetails,
orderType, orderParams, preparedUploadData)
+ val req = createEbicsRequestForUploadInitialization(
+ subscriberDetails,
+ orderType,
+ orderParams,
+ preparedUploadData,
+ ebics3OrderService = ebics3OrderService
+ )
logger.debug("EBICS upload message to: ${subscriberDetails.ebicsUrl}")
val responseStr = client.postToBank(subscriberDetails.ebicsUrl, req)
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt
b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt
index 138146dc..d1c44e0f 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt
@@ -55,6 +55,7 @@ import tech.libeufin.nexus.server.*
import tech.libeufin.util.*
import tech.libeufin.util.ebics_h004.EbicsTypes
import tech.libeufin.util.ebics_h004.HTDResponseOrderData
+import tech.libeufin.util.ebics_h005.Ebics3Request
import java.io.ByteArrayOutputStream
import java.security.interfaces.RSAPrivateCrtKey
import java.security.interfaces.RSAPublicKey
@@ -67,9 +68,17 @@ import java.util.*
import javax.crypto.EncryptedPrivateKeyInfo
-private data class EbicsFetchSpec(
- val orderType: String,
- val orderParams: EbicsOrderParams
+/**
+ * This type maps the abstract fetch specifications -- as for example
+ * they were given via the Nexus JSON API -- to the specific EBICS type.
+ */
+data class EbicsFetchSpec(
+ val orderType: String? = null, // unused for 3.0
+ val orderParams: EbicsOrderParams,
+ val ebics3Service: Ebics3Request.OrderDetails.Service? = null, // unused
for 2.5
+ // Not always available, for example at raw POST
/download/${ebicsMessageName} calls.
+ // It helps to trace back the original level.
+ val originalLevel: FetchLevel? = null
)
/**
@@ -128,22 +137,62 @@ private fun validateAndStoreCamt(
}
}
-/**
- * Fetch EBICS C5x and store it locally, but do not update bank accounts.
- */
-private suspend fun fetchEbicsC5x(
- historyType: String,
+private fun handleEbicsDownloadResult(
+ bankResponse: EbicsDownloadResult,
+ bankConnectionId: String,
+ fetchLevel: FetchLevel
+) {
+ when (bankResponse) {
+ is EbicsDownloadSuccessResult -> {
+ bankResponse.orderData.unzipWithLambda {
+ // logger.debug("Camt entry (filename (in the Zip archive):
${it.first}): ${it.second}")
+ validateAndStoreCamt(
+ bankConnectionId,
+ it.second,
+ fetchLevel,
+ transactionID = bankResponse.transactionID
+ )
+ }
+ }
+ is EbicsDownloadBankErrorResult -> {
+ throw NexusError(
+ HttpStatusCode.BadGateway,
+ bankResponse.returnCode.errorCode
+ )
+ }
+ is EbicsDownloadEmptyResult -> {
+ // no-op
+ }
+ }
+}
+
+// Fetch EBICS transactions according to the specifications
+// (fetchSpec) it finds in the parameters.
+private suspend fun fetchEbicsTransactions(
+ fetchSpec: EbicsFetchSpec,
client: HttpClient,
bankConnectionId: String,
- orderParams: EbicsOrderParams,
- subscriberDetails: EbicsClientSubscriberDetails
+ subscriberDetails: EbicsClientSubscriberDetails,
) {
- val response = try {
+ /**
+ * In this case Nexus will not be able to associate the future
+ * EBICS response with the fetch level originally requested by
+ * the caller, and therefore refuses to continue the execution.
+ * This condition is however in some cases allowed: for example
+ * along the "POST /download/$ebicsMessageType" call, where the result
+ * is not supposed to be stored in the database and therefore doesn't
+ * need its original level.
+ */
+ if (fetchSpec.originalLevel == null) {
+ throw internalServerError(
+ "Original fetch level missing, won't download from EBICS"
+ )
+ }
+ val response: EbicsDownloadResult = try {
doEbicsDownloadTransaction(
client,
subscriberDetails,
- historyType,
- orderParams
+ fetchSpec
)
} catch (e: EbicsProtocolError) {
/**
@@ -158,43 +207,11 @@ private suspend fun fetchEbicsC5x(
throw e
}
- when (historyType) {
- // default dialect
- "C52" -> {}
- "C53" -> {}
- // 'pf' dialect
- "Z52" -> {}
- "Z53" -> {}
- "Z54" -> {}
- else -> {
- throw NexusError(
- HttpStatusCode.BadRequest,
- "history type '$historyType' not supported"
- )
- }
- }
- when (response) {
- is EbicsDownloadSuccessResult -> {
- response.orderData.unzipWithLambda {
- // logger.debug("Camt entry (filename (in the Zip archive):
${it.first}): ${it.second}")
- validateAndStoreCamt(
- bankConnectionId,
- it.second,
- getFetchLevelFromEbicsOrder(historyType),
- transactionID = response.transactionID
- )
- }
- }
- is EbicsDownloadBankErrorResult -> {
- throw NexusError(
- HttpStatusCode.BadGateway,
- response.returnCode.errorCode
- )
- }
- is EbicsDownloadEmptyResult -> {
- // no-op
- }
- }
+ handleEbicsDownloadResult(
+ response,
+ bankConnectionId,
+ fetchSpec.originalLevel
+ )
}
/**
@@ -333,7 +350,12 @@ fun Route.ebicsBankConnectionRoutes(client: HttpClient) {
getEbicsSubscriberDetails(conn.connectionId)
}
val response = doEbicsDownloadTransaction(
- client, subscriberDetails, "HTD", EbicsStandardOrderParams()
+ client,
+ subscriberDetails,
+ EbicsFetchSpec(
+ orderType = "HTD",
+ orderParams = EbicsStandardOrderParams()
+ )
)
when (response) {
is EbicsDownloadEmptyResult -> {
@@ -394,8 +416,12 @@ fun Route.ebicsBankConnectionRoutes(client: HttpClient) {
val response = doEbicsDownloadTransaction(
client,
subscriberDetails,
- orderType,
- orderParams
+ EbicsFetchSpec(
+ orderType = orderType,
+ orderParams = orderParams,
+ ebics3Service = null,
+ originalLevel = null
+ )
)
when (response) {
is EbicsDownloadEmptyResult -> {
@@ -465,30 +491,64 @@ fun formatHex(ba: ByteArray): String {
return out
}
-private fun getSubmissionTypeAfterDialect(dialect: String? = null): String {
+// A null return value indicates that the connection uses EBICS 3.0
+private fun getSubmissionTypeAfterDialect(dialect: String? = null): String? {
return when (dialect) {
- "pf" -> "XE2"
+ "pf" -> null // "XE2"
else -> "CCT"
}
}
-private fun getReportTypeAfterDialect(dialect: String? = null): String {
+
+private fun getStatementSpecAfterDialect(dialect: String? = null, p:
EbicsOrderParams): EbicsFetchSpec {
return when (dialect) {
- "pf" -> "Z52"
- else -> "C52"
+ "pf" -> EbicsFetchSpec(
+ orderType = "Z53",
+ orderParams = p,
+ ebics3Service = null,
+ originalLevel = FetchLevel.STATEMENT
+ )
+ else -> EbicsFetchSpec(
+ orderType = "C53",
+ orderParams = p,
+ ebics3Service = null,
+ originalLevel = FetchLevel.STATEMENT
+ )
}
}
-private fun getStatementTypeAfterDialect(dialect: String? = null): String {
+
+private fun getNotificationSpecAfterDialect(dialect: String? = null, p:
EbicsOrderParams): EbicsFetchSpec {
return when (dialect) {
- "pf" -> "Z53"
- else -> "C53"
+ "pf" -> EbicsFetchSpec(
+ orderType = null, // triggers 3.0
+ orderParams = p,
+ ebics3Service = Ebics3Request.OrderDetails.Service().apply {
+ serviceName = "REP"
+ messageName = "camt.054"
+ scope = "CH"
+ },
+ originalLevel = FetchLevel.NOTIFICATION
+ )
+ else -> EbicsFetchSpec(
+ orderType = "C54",
+ orderParams = p,
+ ebics3Service = null,
+ originalLevel = FetchLevel.NOTIFICATION
+ )
}
}
-
-private fun getNotificationTypeAfterDialect(dialect: String? = null): String {
+private fun getReportSpecAfterDialect(dialect: String? = null, p:
EbicsOrderParams): EbicsFetchSpec {
return when (dialect) {
- "pf" -> "Z54"
- else -> throw NotImplementedError(
- "Notifications not implemented in the 'default' EBICS dialect"
+ "pf" -> EbicsFetchSpec(
+ orderType = "Z52",
+ orderParams = p,
+ ebics3Service = null,
+ originalLevel = FetchLevel.REPORT
+ )
+ else -> EbicsFetchSpec(
+ orderType = "C52",
+ orderParams = p,
+ ebics3Service = null,
+ originalLevel = FetchLevel.REPORT
)
}
}
@@ -522,7 +582,8 @@ class EbicsBankConnectionProtocol: BankConnectionProtocol {
is FetchSpecLatestJson -> {
EbicsFetchSpec(
orderType = "Z01", // PoFi specific.
- orderParams = EbicsStandardOrderParams()
+ orderParams = EbicsStandardOrderParams(),
+ originalLevel = fetchSpec.level
)
}
else -> throw NotImplementedError("Fetch spec
'${fetchSpec::class}' not supported for payment receipts.")
@@ -532,8 +593,10 @@ class EbicsBankConnectionProtocol: BankConnectionProtocol {
doEbicsDownloadTransaction(
client,
subscriberDetails,
- ebicsOrderInfo.orderType,
- ebicsOrderInfo.orderParams
+ EbicsFetchSpec(
+ orderType = ebicsOrderInfo.orderType,
+ orderParams = ebicsOrderInfo.orderParams
+ )
)
} catch (e: EbicsProtocolError) {
if (e.ebicsTechnicalCode ==
EbicsReturnCode.EBICS_NO_DOWNLOAD_DATA_AVAILABLE) {
@@ -579,17 +642,17 @@ class EbicsBankConnectionProtocol: BankConnectionProtocol
{
fun addForLevel(l: FetchLevel, p: EbicsOrderParams) {
when (l) {
FetchLevel.ALL -> {
-
specs.add(EbicsFetchSpec(getReportTypeAfterDialect(subscriberDetails.dialect),
p))
-
specs.add(EbicsFetchSpec(getStatementTypeAfterDialect(subscriberDetails.dialect),
p))
+
specs.add(getReportSpecAfterDialect(subscriberDetails.dialect, p))
+
specs.add(getStatementSpecAfterDialect(subscriberDetails.dialect, p))
}
FetchLevel.REPORT -> {
-
specs.add(EbicsFetchSpec(getReportTypeAfterDialect(subscriberDetails.dialect),
p))
+
specs.add(getReportSpecAfterDialect(subscriberDetails.dialect, p))
}
FetchLevel.STATEMENT -> {
-
specs.add(EbicsFetchSpec(getStatementTypeAfterDialect(subscriberDetails.dialect),
p))
+
specs.add(getStatementSpecAfterDialect(subscriberDetails.dialect, p))
}
FetchLevel.NOTIFICATION -> {
-
specs.add(EbicsFetchSpec(getNotificationTypeAfterDialect(subscriberDetails.dialect),
p))
+
specs.add(getNotificationSpecAfterDialect(subscriberDetails.dialect, p))
}
else -> {
logger.error("fetch level wrong in addForLevel() helper:
${fetchSpec.level}.")
@@ -646,32 +709,17 @@ class EbicsBankConnectionProtocol: BankConnectionProtocol
{
)
when (fetchSpec.level) {
FetchLevel.ALL -> {
- specs.add(EbicsFetchSpec(
- orderType = getReportTypeAfterDialect(dialect =
subscriberDetails.dialect),
- orderParams = pRep
- ))
- specs.add(EbicsFetchSpec(
- orderType = getStatementTypeAfterDialect(dialect =
subscriberDetails.dialect),
- orderParams = pStmt
- ))
+
specs.add(getReportSpecAfterDialect(subscriberDetails.dialect, pRep))
+
specs.add(getStatementSpecAfterDialect(subscriberDetails.dialect, pRep))
}
FetchLevel.REPORT -> {
- specs.add(EbicsFetchSpec(
- orderType = getReportTypeAfterDialect(dialect =
subscriberDetails.dialect),
- orderParams = pRep
- ))
+
specs.add(getReportSpecAfterDialect(subscriberDetails.dialect, pRep))
}
FetchLevel.STATEMENT -> {
- specs.add(EbicsFetchSpec(
- orderType = getStatementTypeAfterDialect(dialect =
subscriberDetails.dialect),
- orderParams = pStmt
- ))
+
specs.add(getStatementSpecAfterDialect(subscriberDetails.dialect, pStmt))
}
FetchLevel.NOTIFICATION -> {
- specs.add(EbicsFetchSpec(
- orderType =
getNotificationTypeAfterDialect(dialect = subscriberDetails.dialect),
- orderParams = pNtfn
- ))
+
specs.add(getNotificationSpecAfterDialect(subscriberDetails.dialect, pNtfn))
}
else -> throw badRequest("Fetch level ${fetchSpec.level} "
+
"not supported in the 'since last' EBICS time
range.")
@@ -682,11 +730,10 @@ class EbicsBankConnectionProtocol: BankConnectionProtocol
{
val errors = mutableListOf<Exception>()
for (spec in specs) {
try {
- fetchEbicsC5x(
- spec.orderType,
+ fetchEbicsTransactions(
+ spec,
client,
bankConnectionId,
- spec.orderParams,
subscriberDetails
)
} catch (e: Exception) {
@@ -741,7 +788,14 @@ class EbicsBankConnectionProtocol: BankConnectionProtocol {
dbData.subscriberDetails,
getSubmissionTypeAfterDialect(dbData.subscriberDetails.dialect),
dbData.painXml.toByteArray(Charsets.UTF_8),
- EbicsStandardOrderParams()
+ EbicsStandardOrderParams(),
+ ebics3OrderService = if (dbData.subscriberDetails.dialect == "pf")
{
+ Ebics3Request.OrderDetails.Service().apply {
+ serviceName = "MCT"
+ scope = "CH"
+ messageName = "pain.001"
+ }
+ } else null
)
transaction {
val payment = getPaymentInitiation(paymentInitiationId)
@@ -1025,7 +1079,12 @@ class EbicsBankConnectionProtocol:
BankConnectionProtocol {
override suspend fun fetchAccounts(client: HttpClient, connId: String) {
val subscriberDetails = transaction {
getEbicsSubscriberDetails(connId) }
val response = doEbicsDownloadTransaction(
- client, subscriberDetails, "HTD", EbicsStandardOrderParams()
+ client,
+ subscriberDetails,
+ EbicsFetchSpec(
+ orderType = "HTD",
+ orderParams = EbicsStandardOrderParams()
+ )
)
when (response) {
is EbicsDownloadEmptyResult -> {
diff --git a/nexus/src/test/kotlin/EbicsTest.kt
b/nexus/src/test/kotlin/EbicsTest.kt
index fc43a149..7fe09f38 100644
--- a/nexus/src/test/kotlin/EbicsTest.kt
+++ b/nexus/src/test/kotlin/EbicsTest.kt
@@ -26,6 +26,7 @@ import tech.libeufin.util.*
import tech.libeufin.util.ebics_h004.EbicsRequest
import tech.libeufin.util.ebics_h004.EbicsResponse
import tech.libeufin.util.ebics_h004.EbicsTypes
+import tech.libeufin.util.ebics_h005.Ebics3Request
/**
* These test cases run EBICS CCT and C52, mixing ordinary operations
@@ -317,4 +318,40 @@ class DownloadAndSubmit {
}
}
}
+}
+
+class EbicsTest {
+
+ /**
+ * Tests the validity of EBICS 3.0 messages.
+ */
+ @Test
+ fun genEbics3() {
+ withTestDatabase {
+ prepNexusDb()
+ val foo = transaction { getEbicsSubscriberDetails("foo") }
+ val downloadDoc = createEbicsRequestForDownloadInitialization(
+ foo,
+ orderType = null, // triggers 3.0
+ EbicsStandardOrderParams(),
+ Ebics3Request.OrderDetails.Service().apply {
+ messageName = "camt.054"
+ scope = "CH"
+ serviceName = "REP"
+ }
+ )
+ assert(XMLUtil.validateFromString(downloadDoc))
+ val uploadDoc = createEbicsRequestForDownloadInitialization(
+ foo,
+ orderType = null, // triggers 3.0
+ EbicsStandardOrderParams(),
+ Ebics3Request.OrderDetails.Service().apply {
+ messageName = "pain.001"
+ scope = "EU"
+ serviceName = "MCT"
+ }
+ )
+ assert(XMLUtil.validateFromString(uploadDoc))
+ }
+ }
}
\ No newline at end of file
diff --git a/nexus/src/test/kotlin/PostFinance.kt
b/nexus/src/test/kotlin/PostFinance.kt
index b839f451..fd798dc1 100644
--- a/nexus/src/test/kotlin/PostFinance.kt
+++ b/nexus/src/test/kotlin/PostFinance.kt
@@ -5,7 +5,6 @@ import org.jetbrains.exposed.sql.transactions.transaction
import tech.libeufin.nexus.bankaccount.addPaymentInitiation
import tech.libeufin.nexus.bankaccount.fetchBankAccountTransactions
import tech.libeufin.nexus.bankaccount.getBankAccount
-import tech.libeufin.nexus.ebics.EbicsBankConnectionProtocol
import tech.libeufin.nexus.ebics.doEbicsUploadTransaction
import tech.libeufin.nexus.ebics.getEbicsSubscriberDetails
import tech.libeufin.nexus.getConnectionPlugin
diff --git a/util/src/main/kotlin/Ebics.kt b/util/src/main/kotlin/Ebics.kt
index da814d5d..ae5e5cda 100644
--- a/util/src/main/kotlin/Ebics.kt
+++ b/util/src/main/kotlin/Ebics.kt
@@ -28,6 +28,8 @@ import io.ktor.http.HttpStatusCode
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import tech.libeufin.util.ebics_h004.*
+import tech.libeufin.util.ebics_h005.Ebics3Request
+import tech.libeufin.util.ebics_h005.Ebics3Types
import tech.libeufin.util.ebics_hev.HEVRequest
import tech.libeufin.util.ebics_hev.HEVResponse
import tech.libeufin.util.ebics_s001.UserSignatureData
@@ -133,6 +135,14 @@ private fun makeOrderParams(orderParams:
EbicsOrderParams): EbicsRequest.OrderPa
}
}
+fun makeEbics3DateRange(ebicsDateRange: EbicsDateRange?):
Ebics3Request.DateRange? {
+ return if (ebicsDateRange != null)
+ return Ebics3Request.DateRange().apply {
+ this.start = getXmlDate(ebicsDateRange.start)
+ this.end = getXmlDate(ebicsDateRange.end)
+ }
+ else null
+}
private fun signOrder(
orderBlob: ByteArray,
@@ -231,25 +241,49 @@ fun prepareUploadPayload(subscriberDetails:
EbicsClientSubscriberDetails, payloa
*/
fun createEbicsRequestForUploadInitialization(
subscriberDetails: EbicsClientSubscriberDetails,
- orderType: String,
+ orderType: String? = null,
orderParams: EbicsOrderParams,
- preparedUploadData: PreparedUploadData
+ preparedUploadData: PreparedUploadData,
+ ebics3OrderService: Ebics3Request.OrderDetails.Service? = null
): String {
+ // Check if the call is consistent: (only) ONE instruction is expected.
+ if (orderType == null && ebics3OrderService == null)
+ throw internalServerError("Need exactly one upload instruction but
zero was found.")
+ if (orderType != null && ebics3OrderService != null)
+ throw internalServerError("Need exactly one upload instruction but two
were found")
val nonce = getNonce(128)
- val req = EbicsRequest.createForUploadInitializationPhase(
- preparedUploadData.transactionKey,
- preparedUploadData.userSignatureDataEncrypted,
- subscriberDetails.hostId,
- nonce,
- subscriberDetails.partnerId,
- subscriberDetails.userId,
-
DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar()),
- subscriberDetails.bankAuthPub!!,
- subscriberDetails.bankEncPub!!,
- BigInteger.ONE,
- orderType,
- makeOrderParams(orderParams)
- )
+ val doc = if (orderType != null) {
+ val req = EbicsRequest.createForUploadInitializationPhase(
+ preparedUploadData.transactionKey,
+ preparedUploadData.userSignatureDataEncrypted,
+ subscriberDetails.hostId,
+ nonce,
+ subscriberDetails.partnerId,
+ subscriberDetails.userId,
+
DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar()),
+ subscriberDetails.bankAuthPub!!,
+ subscriberDetails.bankEncPub!!,
+ BigInteger.ONE,
+ orderType,
+ makeOrderParams(orderParams)
+ )
+ XMLUtil.convertJaxbToDocument(req)
+ } else {
+ val req = Ebics3Request.createForUploadInitializationPhase(
+ preparedUploadData.transactionKey,
+ preparedUploadData.userSignatureDataEncrypted,
+ subscriberDetails.hostId,
+ nonce,
+ subscriberDetails.partnerId,
+ subscriberDetails.userId,
+
DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar()),
+ subscriberDetails.bankAuthPub!!,
+ subscriberDetails.bankEncPub!!,
+ BigInteger.ONE,
+ ebics3OrderService!!
+ )
+ XMLUtil.convertJaxbToDocument(req)
+ }
/**
* FIXME: this log should be made by the caller.
* That way, all the EBICS transaction steps would be logged in only one
function,
@@ -259,45 +293,73 @@ fun createEbicsRequestForUploadInitialization(
*/
logger.debug("Created EBICS $orderType document for upload
initialization," +
" nonce: ${nonce.toHexString()}")
- val doc = XMLUtil.convertJaxbToDocument(req)
- XMLUtil.signEbicsDocument(doc, subscriberDetails.customerAuthPriv)
+ XMLUtil.signEbicsDocument(
+ doc,
+ subscriberDetails.customerAuthPriv,
+ withEbics3 = ebics3OrderService != null
+ )
return XMLUtil.convertDomToString(doc)
}
fun createEbicsRequestForDownloadInitialization(
subscriberDetails: EbicsClientSubscriberDetails,
- orderType: String,
- orderParams: EbicsOrderParams
+ orderType: String? = null,
+ orderParams: EbicsOrderParams,
+ ebics3OrderService: Ebics3Request.OrderDetails.Service? = null
): String {
+ // Check if the call is consistent: (only) ONE instruction is expected.
+ if (orderType == null && ebics3OrderService == null)
+ throw internalServerError("Need exactly one download instruction but
zero was found.")
+ if (orderType != null && ebics3OrderService != null)
+ throw internalServerError("Need exactly one download instruction but
two were found")
val nonce = getNonce(128)
- val req = EbicsRequest.createForDownloadInitializationPhase(
- subscriberDetails.userId,
- subscriberDetails.partnerId,
- subscriberDetails.hostId,
- nonce,
-
DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar()),
- subscriberDetails.bankEncPub ?: throw EbicsProtocolError(
- HttpStatusCode.BadRequest,
- "Invalid subscriber state 'bankEncPub' missing, please send HPB
first"
- ),
- subscriberDetails.bankAuthPub ?: throw EbicsProtocolError(
- HttpStatusCode.BadRequest,
- "Invalid subscriber state 'bankAuthPub' missing, please send HPB
first"
- ),
- orderType,
- makeOrderParams(orderParams)
- )
- /**
- * FIXME: this log should be made by the caller.
- * That way, all the EBICS transaction steps would be logged in only one
function,
- * as opposed to have them spread through the helpers here. This function
- * returning a string blocks now, since the caller should parse and
stringify
- * again the message, only to get its nonce.
- */
+
+ val doc = if (orderType != null) {
+ val req = EbicsRequest.createForDownloadInitializationPhase(
+ subscriberDetails.userId,
+ subscriberDetails.partnerId,
+ subscriberDetails.hostId,
+ nonce,
+
DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar()),
+ subscriberDetails.bankEncPub ?: throw EbicsProtocolError(
+ HttpStatusCode.BadRequest,
+ "Invalid subscriber state 'bankEncPub' missing, please send
HPB first"
+ ),
+ subscriberDetails.bankAuthPub ?: throw EbicsProtocolError(
+ HttpStatusCode.BadRequest,
+ "Invalid subscriber state 'bankAuthPub' missing, please send
HPB first"
+ ),
+ orderType,
+ makeOrderParams(orderParams)
+ )
+ XMLUtil.convertJaxbToDocument(req)
+ } else {
+ val req = Ebics3Request.createForDownloadInitializationPhase(
+ subscriberDetails.userId,
+ subscriberDetails.partnerId,
+ subscriberDetails.hostId,
+ nonce,
+
DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar()),
+ subscriberDetails.bankEncPub ?: throw EbicsProtocolError(
+ HttpStatusCode.BadRequest,
+ "Invalid subscriber state 'bankEncPub' missing, please send
HPB first"
+ ),
+ subscriberDetails.bankAuthPub ?: throw EbicsProtocolError(
+ HttpStatusCode.BadRequest,
+ "Invalid subscriber state 'bankAuthPub' missing, please send
HPB first"
+ ),
+ ebics3OrderService!!
+ )
+ XMLUtil.convertJaxbToDocument(req)
+ }
+
logger.debug("Created EBICS $orderType document for download
initialization," +
" nonce: ${nonce.toHexString()}")
- val doc = XMLUtil.convertJaxbToDocument(req)
- XMLUtil.signEbicsDocument(doc, subscriberDetails.customerAuthPriv)
+ XMLUtil.signEbicsDocument(
+ doc,
+ subscriberDetails.customerAuthPriv,
+ withEbics3 = ebics3OrderService != null
+ )
return XMLUtil.convertDomToString(doc)
}
diff --git a/util/src/main/kotlin/XMLUtil.kt b/util/src/main/kotlin/XMLUtil.kt
index 59772430..6d923ae6 100644
--- a/util/src/main/kotlin/XMLUtil.kt
+++ b/util/src/main/kotlin/XMLUtil.kt
@@ -227,6 +227,7 @@ class XMLUtil private constructor() {
}
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",
@@ -404,12 +405,16 @@ class XMLUtil private constructor() {
/**
* Sign an EBICS document with the authentication and identity
signature.
*/
- fun signEbicsDocument(doc: Document, signingPriv: PrivateKey): Unit {
+ fun signEbicsDocument(
+ doc: Document,
+ signingPriv: PrivateKey,
+ withEbics3: Boolean = false
+ ): Unit {
val xpath = XPathFactory.newInstance().newXPath()
xpath.namespaceContext = object : NamespaceContext {
override fun getNamespaceURI(p0: String?): String {
return when (p0) {
- "ebics" -> "urn:org:ebics:H004"
+ "ebics" -> if (withEbics3) "urn:org:ebics:H005" else
"urn:org:ebics:H004"
else -> throw IllegalArgumentException()
}
}
@@ -452,12 +457,16 @@ class XMLUtil private constructor() {
authSigNode.removeChild(innerSig)
}
- fun verifyEbicsDocument(doc: Document, signingPub: PublicKey): Boolean
{
+ 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" -> "urn:org:ebics:H004"
+ "ebics" -> if (withEbics3) "urn:org:ebics:H005" else
"urn:org:ebics:H004"
else -> throw IllegalArgumentException()
}
}
diff --git a/util/src/main/kotlin/ebics_h004/EbicsRequest.kt
b/util/src/main/kotlin/ebics_h004/EbicsRequest.kt
index 7041f5f2..2b7dc72e 100644
--- a/util/src/main/kotlin/ebics_h004/EbicsRequest.kt
+++ b/util/src/main/kotlin/ebics_h004/EbicsRequest.kt
@@ -5,7 +5,6 @@ import tech.libeufin.util.CryptoUtil
import java.math.BigInteger
import java.security.interfaces.RSAPublicKey
import java.util.*
-import javax.swing.text.Segment
import javax.xml.bind.annotation.*
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
import javax.xml.bind.annotation.adapters.HexBinaryAdapter
@@ -315,7 +314,6 @@ class EbicsRequest {
}
}
}
-
}
fun createForDownloadInitializationPhase(
diff --git a/util/src/main/kotlin/ebics_h004/EbicsRequest.kt
b/util/src/main/kotlin/ebics_h005/Ebics3Request.kt
similarity index 74%
copy from util/src/main/kotlin/ebics_h004/EbicsRequest.kt
copy to util/src/main/kotlin/ebics_h005/Ebics3Request.kt
index 7041f5f2..b9bcf2ab 100644
--- a/util/src/main/kotlin/ebics_h004/EbicsRequest.kt
+++ b/util/src/main/kotlin/ebics_h005/Ebics3Request.kt
@@ -1,11 +1,13 @@
-package tech.libeufin.util.ebics_h004
+package tech.libeufin.util.ebics_h005
import org.apache.xml.security.binding.xmldsig.SignatureType
import tech.libeufin.util.CryptoUtil
+import tech.libeufin.util.EbicsStandardOrderParams
+import tech.libeufin.util.EbicsOrderParams
+import tech.libeufin.util.makeEbics3DateRange
import java.math.BigInteger
import java.security.interfaces.RSAPublicKey
import java.util.*
-import javax.swing.text.Segment
import javax.xml.bind.annotation.*
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
import javax.xml.bind.annotation.adapters.HexBinaryAdapter
@@ -15,7 +17,7 @@ import javax.xml.datatype.XMLGregorianCalendar
@XmlAccessorType(XmlAccessType.NONE)
@XmlType(name = "", propOrder = ["header", "authSignature", "body"])
@XmlRootElement(name = "ebicsRequest")
-class EbicsRequest {
+class Ebics3Request {
@get:XmlAttribute(name = "Version", required = true)
@get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
lateinit var version: String
@@ -99,7 +101,7 @@ class EbicsRequest {
* Present only in the initialization phase.
*/
@get:XmlElement(name = "Product")
- var product: EbicsTypes.Product? = null
+ var product: Ebics3Types.Product? = null
/**
* Present only in the initialization phase.
@@ -139,52 +141,81 @@ class EbicsRequest {
class MutableHeader {
@get:XmlElement(name = "TransactionPhase", required = true)
@get:XmlSchemaType(name = "token")
- lateinit var transactionPhase: EbicsTypes.TransactionPhaseType
+ lateinit var transactionPhase: Ebics3Types.TransactionPhaseType
/**
* Number of the currently transmitted segment, if this message
* contains order data.
*/
@get:XmlElement(name = "SegmentNumber")
- var segmentNumber: EbicsTypes.SegmentNumber? = null
+ var segmentNumber: Ebics3Types.SegmentNumber? = null
}
@XmlAccessorType(XmlAccessType.NONE)
@XmlType(
name = "",
- propOrder = ["orderType", "orderID", "orderAttribute", "orderParams"]
+ propOrder = ["adminOrderType", "btdOrderParams", "btuOrderParams",
"orderID", "orderParams"]
)
class OrderDetails {
- @get:XmlElement(name = "OrderType", required = true)
+ @get:XmlElement(name = "AdminOrderType", required = true)
@get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
- lateinit var orderType: String
+ lateinit var adminOrderType: String
+
+ @XmlAccessorType(XmlAccessType.NONE)
+ @XmlType(propOrder = ["serviceName", "scope", "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
+
+ @get:XmlElement(name = "MsgName", required = true)
+ @get:XmlJavaTypeAdapter(CollapsedStringAdapter::class)
+ lateinit var messageName: String
+ }
+
+ @XmlAccessorType(XmlAccessType.NONE)
+ class BTOrderParams {
+ @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: BTOrderParams? = null
+
+ @get:XmlElement(name = "BTDOrderParams", required = true)
+ var btdOrderParams: BTOrderParams? = null
/**
- * Only present if this ebicsRequest is a upload order
+ * 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
+ type = StandardOrderParams::class // OrderParams inheritor
),
XmlElement(
name = "GenericOrderParams",
- type = GenericOrderParams::class
+ type = GenericOrderParams::class // OrderParams inheritor
)
)
+ // Same as the 2.5 version.
var orderParams: OrderParams? = null
}
@@ -225,7 +256,7 @@ class EbicsRequest {
class DataTransfer {
@get:XmlElement(name = "DataEncryptionInfo")
- var dataEncryptionInfo: EbicsTypes.DataEncryptionInfo? = null
+ var dataEncryptionInfo: Ebics3Types.DataEncryptionInfo? = null
@get:XmlElement(name = "SignatureData")
var signatureData: SignatureData? = null
@@ -248,7 +279,7 @@ class EbicsRequest {
}
@XmlAccessorType(XmlAccessType.NONE)
- abstract class OrderParams
+ abstract class OrderParams
@XmlAccessorType(XmlAccessType.NONE)
@XmlType(name = "", propOrder = ["dateRange"])
@@ -260,8 +291,8 @@ class EbicsRequest {
@XmlAccessorType(XmlAccessType.NONE)
@XmlType(name = "", propOrder = ["parameterList"])
class GenericOrderParams : OrderParams() {
- @get:XmlElement(type = EbicsTypes.Parameter::class)
- var parameterList: List<EbicsTypes.Parameter> = LinkedList()
+ @get:XmlElement(type = Ebics3Types.Parameter::class)
+ var parameterList: List<Ebics3Types.Parameter> = LinkedList()
}
@XmlAccessorType(XmlAccessType.NONE)
@@ -280,10 +311,10 @@ class EbicsRequest {
@XmlType(name = "", propOrder = ["authentication", "encryption"])
class BankPubKeyDigests {
@get:XmlElement(name = "Authentication")
- lateinit var authentication: EbicsTypes.PubKeyDigest
+ lateinit var authentication: Ebics3Types.PubKeyDigest
@get:XmlElement(name = "Encryption")
- lateinit var encryption: EbicsTypes.PubKeyDigest
+ lateinit var encryption: Ebics3Types.PubKeyDigest
}
companion object {
@@ -292,10 +323,10 @@ class EbicsRequest {
transactionId: String?,
hostId: String
- ): EbicsRequest {
- return EbicsRequest().apply {
+ ): Ebics3Request {
+ return Ebics3Request().apply {
header = Header().apply {
- version = "H004"
+ version = "H005"
revision = 1
authenticate = true
static = StaticHeaderType().apply {
@@ -303,7 +334,7 @@ class EbicsRequest {
transactionID = transactionId
}
mutable = MutableHeader().apply {
- transactionPhase =
EbicsTypes.TransactionPhaseType.RECEIPT
+ transactionPhase =
Ebics3Types.TransactionPhaseType.RECEIPT
}
}
authSignature = SignatureType()
@@ -315,7 +346,6 @@ class EbicsRequest {
}
}
}
-
}
fun createForDownloadInitializationPhase(
@@ -326,11 +356,11 @@ class EbicsRequest {
date: XMLGregorianCalendar,
bankEncPub: RSAPublicKey,
bankAuthPub: RSAPublicKey,
- myOrderType: String,
- myOrderParams: OrderParams
- ): EbicsRequest {
- return EbicsRequest().apply {
- version = "H004"
+ myOrderService: OrderDetails.Service,
+ myOrderParams: EbicsOrderParams? = null
+ ): Ebics3Request {
+ return Ebics3Request().apply {
+ version = "H005"
revision = 1
authSignature = SignatureType()
body = Body()
@@ -344,17 +374,25 @@ class EbicsRequest {
timestamp = date
partnerID = partnerId
orderDetails = OrderDetails().apply {
- orderType = myOrderType
- orderAttribute = "DZHNN"
- orderParams = myOrderParams
+ this.adminOrderType = "BTD"
+ this.btdOrderParams =
OrderDetails.BTOrderParams().apply {
+ service = myOrderService
+ // Order params only used for date ranges so
far.
+ when (myOrderParams) {
+ is EbicsStandardOrderParams -> {
+ this.dateRange =
makeEbics3DateRange(myOrderParams.dateRange)
+ }
+ else -> {}
+ }
+ }
}
bankPubKeyDigests = BankPubKeyDigests().apply {
- authentication = EbicsTypes.PubKeyDigest().apply {
+ authentication = Ebics3Types.PubKeyDigest().apply {
algorithm =
"http://www.w3.org/2001/04/xmlenc#sha256"
version = "X002"
value =
CryptoUtil.getEbicsPublicKeyHash(bankAuthPub)
}
- encryption = EbicsTypes.PubKeyDigest().apply {
+ encryption = Ebics3Types.PubKeyDigest().apply {
algorithm =
"http://www.w3.org/2001/04/xmlenc#sha256"
version = "E002"
value =
CryptoUtil.getEbicsPublicKeyHash(bankEncPub)
@@ -364,7 +402,7 @@ class EbicsRequest {
}
mutable = MutableHeader().apply {
transactionPhase =
- EbicsTypes.TransactionPhaseType.INITIALISATION
+ Ebics3Types.TransactionPhaseType.INITIALISATION
}
}
}
@@ -381,13 +419,13 @@ class EbicsRequest {
bankAuthPub: RSAPublicKey,
bankEncPub: RSAPublicKey,
segmentsNumber: BigInteger,
- aOrderType: String,
- aOrderParams: OrderParams
- ): EbicsRequest {
+ aOrderService: OrderDetails.Service,
+ // aOrderParams: OrderParamsEbics? = null
+ ): Ebics3Request {
- return EbicsRequest().apply {
+ return Ebics3Request().apply {
header = Header().apply {
- version = "H004"
+ version = "H005"
revision = 1
authenticate = true
static = StaticHeaderType().apply {
@@ -397,17 +435,18 @@ class EbicsRequest {
partnerID = partnerId
userID = userId
orderDetails = OrderDetails().apply {
- orderType = aOrderType
- orderAttribute = "OZHNN"
- orderParams = aOrderParams
+ this.adminOrderType = "BTU"
+ this.btdOrderParams =
OrderDetails.BTOrderParams().apply {
+ service = aOrderService
+ }
}
bankPubKeyDigests = BankPubKeyDigests().apply {
- authentication = EbicsTypes.PubKeyDigest().apply {
+ authentication = Ebics3Types.PubKeyDigest().apply {
algorithm =
"http://www.w3.org/2001/04/xmlenc#sha256"
version = "X002"
value =
CryptoUtil.getEbicsPublicKeyHash(bankAuthPub)
}
- encryption = EbicsTypes.PubKeyDigest().apply {
+ encryption = Ebics3Types.PubKeyDigest().apply {
algorithm =
"http://www.w3.org/2001/04/xmlenc#sha256"
version = "E002"
value =
CryptoUtil.getEbicsPublicKeyHash(bankEncPub)
@@ -418,7 +457,7 @@ class EbicsRequest {
}
mutable = MutableHeader().apply {
transactionPhase =
- EbicsTypes.TransactionPhaseType.INITIALISATION
+ Ebics3Types.TransactionPhaseType.INITIALISATION
}
}
authSignature = SignatureType()
@@ -428,10 +467,10 @@ class EbicsRequest {
authenticate = true
value = encryptedSignatureData
}
- dataEncryptionInfo =
EbicsTypes.DataEncryptionInfo().apply {
+ dataEncryptionInfo =
Ebics3Types.DataEncryptionInfo().apply {
transactionKey = encryptedTransactionKey
authenticate = true
- encryptionPubKeyDigest =
EbicsTypes.PubKeyDigest().apply {
+ encryptionPubKeyDigest =
Ebics3Types.PubKeyDigest().apply {
algorithm =
"http://www.w3.org/2001/04/xmlenc#sha256"
version = "E002"
value =
CryptoUtil.getEbicsPublicKeyHash(bankEncPub)
@@ -447,10 +486,10 @@ class EbicsRequest {
transactionId: String?,
segNumber: BigInteger,
encryptedData: String
- ): EbicsRequest {
- return EbicsRequest().apply {
+ ): Ebics3Request {
+ return Ebics3Request().apply {
header = Header().apply {
- version = "H004"
+ version = "H005"
revision = 1
authenticate = true
static = StaticHeaderType().apply {
@@ -458,8 +497,8 @@ class EbicsRequest {
transactionID = transactionId
}
mutable = MutableHeader().apply {
- transactionPhase =
EbicsTypes.TransactionPhaseType.TRANSFER
- segmentNumber = EbicsTypes.SegmentNumber().apply {
+ transactionPhase =
Ebics3Types.TransactionPhaseType.TRANSFER
+ segmentNumber = Ebics3Types.SegmentNumber().apply {
lastSegment = true
value = segNumber
}
@@ -480,9 +519,9 @@ class EbicsRequest {
transactionID: String?,
segmentNumber: Int,
numSegments: Int
- ): EbicsRequest {
- return EbicsRequest().apply {
- version = "H004"
+ ): Ebics3Request {
+ return Ebics3Request().apply {
+ version = "H005"
revision = 1
authSignature = SignatureType()
body = Body()
@@ -494,8 +533,8 @@ class EbicsRequest {
}
mutable = MutableHeader().apply {
transactionPhase =
- EbicsTypes.TransactionPhaseType.TRANSFER
- this.segmentNumber = EbicsTypes.SegmentNumber().apply {
+ Ebics3Types.TransactionPhaseType.TRANSFER
+ this.segmentNumber = Ebics3Types.SegmentNumber().apply
{
this.value =
BigInteger.valueOf(segmentNumber.toLong())
this.lastSegment = segmentNumber == numSegments
}
diff --git a/util/src/main/kotlin/ebics_h005/Ebics3Types.kt
b/util/src/main/kotlin/ebics_h005/Ebics3Types.kt
new file mode 100644
index 00000000..74c7af0f
--- /dev/null
+++ b/util/src/main/kotlin/ebics_h005/Ebics3Types.kt
@@ -0,0 +1,402 @@
+/*
+ * 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.util.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/util/src/main/kotlin/ebics_h005/package-info.java
b/util/src/main/kotlin/ebics_h005/package-info.java
new file mode 100644
index 00000000..3300f657
--- /dev/null
+++ b/util/src/main/kotlin/ebics_h005/package-info.java
@@ -0,0 +1,12 @@
+/**
+ * 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.util.ebics_h005;
+import javax.xml.bind.annotation.XmlNsForm;
+import javax.xml.bind.annotation.XmlSchema;
\ No newline at end of file
diff --git a/util/src/main/resources/xsd/ebics_H005.xsd
b/util/src/main/resources/xsd/ebics_H005.xsd
new file mode 100644
index 00000000..149bf263
--- /dev/null
+++ b/util/src/main/resources/xsd/ebics_H005.xsd
@@ -0,0 +1,11 @@
+<?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/util/src/main/resources/xsd/ebics_keymgmt_request_H005.xsd
b/util/src/main/resources/xsd/ebics_keymgmt_request_H005.xsd
new file mode 100644
index 00000000..cb93d3c4
--- /dev/null
+++ b/util/src/main/resources/xsd/ebics_keymgmt_request_H005.xsd
@@ -0,0 +1,523 @@
+<?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/util/src/main/resources/xsd/ebics_keymgmt_response_H005.xsd
b/util/src/main/resources/xsd/ebics_keymgmt_response_H005.xsd
new file mode 100644
index 00000000..dfc33909
--- /dev/null
+++ b/util/src/main/resources/xsd/ebics_keymgmt_response_H005.xsd
@@ -0,0 +1,137 @@
+<?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/util/src/main/resources/xsd/ebics_orders_H005.xsd
b/util/src/main/resources/xsd/ebics_orders_H005.xsd
new file mode 100644
index 00000000..30db1213
--- /dev/null
+++ b/util/src/main/resources/xsd/ebics_orders_H005.xsd
@@ -0,0 +1,2094 @@
+<?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/util/src/main/resources/xsd/ebics_request_H005.xsd
b/util/src/main/resources/xsd/ebics_request_H005.xsd
new file mode 100644
index 00000000..dc7ad70a
--- /dev/null
+++ b/util/src/main/resources/xsd/ebics_request_H005.xsd
@@ -0,0 +1,349 @@
+<?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/util/src/main/resources/xsd/ebics_response_H005.xsd
b/util/src/main/resources/xsd/ebics_response_H005.xsd
new file mode 100644
index 00000000..841286b7
--- /dev/null
+++ b/util/src/main/resources/xsd/ebics_response_H005.xsd
@@ -0,0 +1,167 @@
+<?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/util/src/main/resources/xsd/ebics_types_H005.xsd
b/util/src/main/resources/xsd/ebics_types_H005.xsd
new file mode 100644
index 00000000..ea13f06b
--- /dev/null
+++ b/util/src/main/resources/xsd/ebics_types_H005.xsd
@@ -0,0 +1,1885 @@
+<?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>
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libeufin] branch master updated: Introducing EBICS 3.,
gnunet <=