# sendhybrid Service - Interface Documentation

Interface Package Version: 5.19

Interface documentation version history

Version | Änderung | Datum | Anpassung durchgeführt durch
--- | --- | --- | ---
| 5.19 | Introduction of Grace Period feature - to enable postponing and cancelling of deliveries. Introduction of registered Lite service of Austrian Post | 27.01.2026. | Ivana Jovanovic
4.12 | Update BZD deliveries and polling results | 31.6.2024 | Jasna Djakovic
4.12 | Introduction of product handling of Austrian Post: new element byHand for “Eigenhändig” deliveries Consolidation of delivery qualities - New: non_RS, nonRS+, Info.Mail Classic, Info.Mail plus - Removed: RSb+, nonR+ - Marked as Deprecated: nonR, R, R+ Improved returnToSender handling. See DeliveryInput. Now it is possible to hand over a setting if and how a returnsender should be printed on the first page for a window envelope | 09.02.2021 | Peter Danner

For versioning of the SOAP or Restful interfaces, there is a separate chapter 2.1 Versioning

## 1 Preface

## 2 SOAP XDP Web Service Interface

- 2.1 Versioning

- 2.2 General parameters

- 2.3 Conversion

- 2.4 PDF Signature

- 2.5 Delivery

- 2.6 Bulk-Delivery

- 2.7 Pre-Addressing

- 2.8 Callback functions

- 2.9 Qualified signatures

- 2.10 XML Signature

- 2.11 Error descriptions

- 2.12 Delivery categories

- 2.13 Delivery qualities

- 2.14 Delivery qualities and categories

- 2.15 Delivery qualities and delivery receipts

- 2.16 Code snippets

## 3 SOAP XDP Tx WebService (Callback-, Polling interface, …)

- 3.1 exDPCallbackService and exDPPollingService

- 3.2 exDPDeliveryStatusPollingService

  - 3.2.1 Versioning
  - 3.2.2 Parameter information
  - 3.2.3 Test examples via soapUI

- 3.3 exDPFileTransferService

## 4 SOAP Printing Facility Callback Web Service

## 5 SFTP Interface to Server Side Watched Folder

## 6 Email Interface

- 6.1 Email templates and variables

## 7 Info codes

## 8 Annex

## 9 User interface description

## Additional resources

## 1 Preface

This document describes the external interface to the sendhybrid system. In the following typical use cases are described. The complete description results from the interface package which contains WSDL and XML Schema files of the used types.

The sendhybrid service provides a software system to modify and handle electronic documents. The interface is designed to accept multiple documents for further processing. In the next steps different types of transformations and manipulations on the documents are applied. The process itself is extendable and can be individually customized to the customer’s needs and requirements. As a response one or more results or result documents might be returned. The system is modular and is configurable and extendable comprehensively, in order to fulfill versatile requirements in the environment of processing and delivery of electronic documents.

The main functionality is converting, signing and delivery of electronic documents. Due to its modularity, it is possible to install extensions in the system for further manipulations like appending payment form or adding additional text blocks to documents.

The key role plays the PDF and PDF/A format. PDF documents can be signed electronically but also electronic signing of XML documents and verifying of XML signatures is possible (realized through the usage of the MOA-SP/SS component). There are also modules for long-term archiving and logging as well.

The sendhybrid service supports many different input document formats like the Microsoft Office or OpenOffice documents. These documents are converted to the PDF before the concrete processing and manipulation is started. The processed documents and corresponding attachments might be the delivered to recipients via different type of delivery channels e-mail, qualified mail, official delivery (German: behördliche Zustellung), E-BOX (communication system of the authority Section 37 ZustG), E-Brief and standard postal delivery via printing facilities are available. Depending on the client’s decision a delivery process might be transparent and automatically executed (“Fire and Forget” delivery) or manually defined by the client. In the first case, the system decides which channel should be used,
tries to deliver a document and if it fails it tries other channels. If the manually approach is used, the channel selected by the client is used and if it fails, the client is informed about the state (e.g. user is not registered for electronic delivery) and can in this case try with another delivery channel.

An integration represents one of the most important challenges. The sendhybrid service can be easily integrated in any infrastructure meaning that an integration with other systems and services is naturally possible. Many interfaces are offered by the sendhybrid service in order to be addressable for external system. However, it is recommended to use the default web service interface where ever it is possible.

### Web Service (SOAP)

The web service (SOAP) endpoints are implemented with SOAP 1.1. The binary file contents in the web service operations are handled via MTOM (W3C Message Transmission Optimization Mechanism).

The success or error result and the corresponding content can be read from the response. If there are any interface or communication errors SOAP faults will be thrown.

### Plain HTTP(S)

As an alternative to the SOAP web service, a simplified HTTP interface is provided. Just like a standard HTML form upload works (HTTP POST method), using this interface it is possible to upload and process single documents. A detailed description is available on request.

### Watched folder

Another way to start processing documents is based on the file system. Input documents can be provided in a so-called watched folder (also hot folder) which is accessible by the server. This is very helpful for an inter-process communication. Additional meta data (similarly to the web service interface) might be also enclosed as XML or text files. The result documents are typically put into another output folder. A detailed description for this kind of interface is available on request as well.

## 2 SOAP XDP Web Service Interface

For an automated, programmatic usage of the sendhybrid service a comprehensive SOAP web service interface is provided. This external interface is realized as a SOAP 1.1 web service. It’s also WS-I 1.0 compatible and uses MTOM for binary content transport. Thereby a high interoperability with a numerous amount of client implementations is guaranteed.

All functions of the sendhybrid service are based on the handling and processing of electronic documents. There is a generic operation `process` for simple processing. The more powerful operation for the electronic delivery needs extended input data and is therefore realized with its own operation `processDelivery` . In the following all possible operations will be described.

- 2.1 Versioning

- 2.2 General parameters

- 2.3 Conversion

- 2.4 PDF Signature

- 2.5 Delivery

- 2.6 Bulk-Delivery

- 2.7 Pre-Addressing

- 2.8 Callback functions

- 2.9 Qualified signatures

- 2.10 XML Signature

- 2.11 Error descriptions

- 2.12 Delivery categories

- 2.13 Delivery qualities

- 2.14 Delivery qualities and categories

- 2.15 Delivery qualities and delivery receipts

- 2.16 Code snippets

### 2.1 Versioning

To keep compatibility of our webservice while changing it we introduced a versioning mechanism. By specifying the attribute `version` in the `xdpInput` or `xdpDeliveryInput` (see listing Version attribute) the sendhybrid service recognizes which version of the webservice is used.
The versioning is supported from version `2.17` onwards. Unknown versions will not be accepted and raise an error. No version attribute always presumes the latest interface version.

### Version attribute

    <xdpDeliveryInput version="5.19" xmlns="http://www.exthex.com/exdp/types">
        <!-- data -->
    </xdpDeliveryInput>

### Version History

Version | Description of Changes | Comment
--- | --- | ---
0 | `DeliveryInput.deliveryQuality` old values “NORMAL”, “PORTAL” and “ANY” are mapped to “NON_R” in request and vice versa in response. Furthermore the following tags are removed from request: * deliveryNotificationViaMail * deliveryNotificationAddress * deliveryNotificationEMailAddress * deliveryNotificationType * receiptReturnAddress * receiptReturnChannel * callbackChannel * callbackChannelAddress `DeliveryInput.registered` is removed in responses. |
2.17 | The following tags are removed from request: * userSecret * externalUserIde * externalApplication The deprecated element `expectReceipt` is added in response according to `DeliveryQuality`. The element `receipts` is added to XdpDeliveryResult. |
3.0 | The following elements deliveryData.requiredUserSecClass deliveryData.sender.physicalPerson.detalLine deliveryData.sender.physicalPerson.detalLine2 deliveryData.sender.legalPerson.physicalPerson(contact person of a legal person) deliveryData.receiver.physicalPerson.detailLine deliveryData.receiver.physicalPerson.detailLine2 deliveryData.receiver.legalPerson.physicalPerson (contact person of a legal person) are added to XdpDeliveryResult. |
3.1 | The element deliveryData.receiver.identification is added to xdpBulkDeliveryResult. |
3.2 | The element `receipts` is added to request. The element deliveryData.receiver.queryData added to xdpBulkDeliveryResult. |
3.3 | documentHolder.additionalData, deliveryData.receiver.queryData are added to xdpBulkDeliveryResult. |
4.3 | `payer in` documentHolder.electronicDocumentMetaData.documentGeneration.generationDataPaymentSlipA4Landscape.payer or (documentHolder.electronicDocumentMetaData.documentGeneration.generationDataPaymentSlipTypeA4Portrait.payer) and documentHolder.postalDocumentMetaData.documentGeneration.generationDataPaymentSlipA4Landscape.payer or (documentHolder.postalDocumentMetaData.documentGeneration.generationDataPaymentSlipTypeA4Portrait.payer) `are added to XdpResult, XdpDeliveryResult or XdpBulkDeliveryResult.` |
4.4 | `profile`, `operation`, `tenantId,` `userId` are added to `XdpResult`, `XdpDeliveryResult` or `XdpBulkDeliveryResult.` |
4.12 | `byHand`(for “Eigenhändig”) added to `XdpDeliveryResult` or `XdpBulkDeliveryResult.` | Consolidation of delivery qualities - New: non_RS, nonRS+, Info.Mail Classic, Info.Mail Plus - Removed: RSb+ - Marked as Deprecated: nonR, nonR+, R, R+ Improved returnToSender handling. See DeliveryInput. Now it is possible to hand over a setting if and how a returnsender should be printed on the first page for a window envelope
5.19 | `deliveryExecutionTime` (for Grace period) added to `xdpDeliveryTypes.xsd` (applied for `xdpBulkDeliveryInput`, `xdpBulkDeliveryResult`, `xdpDeliveryResult`, `xdpAsyncResult`). `documentOption` inside `xdpTypes.xsd` (applied for `xdpInput` and `xdpResult`) is extended with new value `STAPLE_MODE`. `registeredLite` (for Einschreiben-Einfach) added to `xdpDeliveryTypes.xsd` (applied for `xdpBulkDeliveryInput`, `xdpBulkDeliveryResult`, `xdpDeliveryResult`, `xdpAsyncResult`) and new extended xdpPrinttypes is created `xdpPrinttypes_3.2.4.xsd`. | New 4.12 interceptor is created on XDP not to return `deliveryExecutionTime` and `registeredLite` inside result (`xdpBulkDeliveryResult` and `xdpDeliveryResult`) for customers not using newest version.

### 2.2 General parameters

This section contains tables with input and output parameters that are common for many operations.

Document input parameters

Parameter | Description | Mandatory
--- | --- | ---
document.fileName | Name of the input file. Important for the recognition of the file format | Yes
document.content | Content of the input file. Format depending on the technology (MTOM/Base64) | No
document.mimeType | MIME Type can be used for the identification of the file format | No
document.compression | Defines if the result document should be compressed (possible values “gzip”) | No
document.fileRefURI | A URI can be specified at this point, which the server can resolve (e.g.: the file is stored locally on the server) | No
document.hash | MD5 hash code of the input document. Used to verify the document content after reception (If provided, the fileRefURI is resolved before checking.) | No

Document result parameters

Parameter | Description | Mandatory
--- | --- | ---
documentResult.success | Success or failure of this document | Yes
documentResult.infoMessage (1..n) | XdpMessage: Message code and descriptive success or error messages for this document | No
documentResult.document | Displays the output file in the same structure as the input file | Yes
documentResult.document.fileName | Name of the output file. | Yes
documentResult.document.content | Contents of the output file. Format depending on the technology (MTOM/Base64 für WebService) | Only if successfull
documentResult.document.mimeType | MIME Type of output file that identifies the format | No
documentResult.document.compression | Optionally, the returning file can be compressed. (Configuration on the server required). Available gzip. Useful z.B. if TIFF output | No

### Credential input parameters

Parameter | Description | Mandatory
--- | --- | ---
credential.userId | User identification matching the server configuration | Yes
credential.tenantId | Tenant identification matching the server configuration | Yes
credential.* | The other credential elements are currently being used for information only (logging) or for special configurations | No
credential.clientIpAddress | The IP address of the client | No
credential.clientPcName | The hostname of the client | No
credential.clientType | Only valid value here is “WEBSERVICE” | No
credential.email | The e-mail address of an administrator of the sending system | No
credential.userDetail | The username just for display issues. | No
credential.userId | The username (either from configuration or database) | No

### Config input parameters

Parameter | Description | Mandatory
--- | --- | ---
config.deliveryConfig | Name of the delivery configuration for the delivery process. | No
config.outputFormat | Describes the output format of the conversion. pdf is the default value. Other possible values are dependend on the configured conversion modules. e.g. pdf_a, tiff, jpg, rtf | No
config.processDefName | The process definition name. | No
config.profileName | Name of configuration profile. | No
config.signatureProfile | Name of the signature profile (PDF-AS configuration). | No
config.signatureType | One of: | No
| * PDF_AS_TEXT: PDF-AS textual signature extracts text from pdf and signs the text only. Can be reproduced from the hardcopy. |
| * PDF_AS_BIN: PDF-AS Binary signature signs the binary pdf content. Cannot be reproduced from the hardcopy. |
| * XML_DSIG: Plain xml based dsig signature |
| * ADOBE_SIGN: Adobe pdf signature. Not certified, allows multi signatures. |
| * ADOBE_CERTIFIED: Adobe pdf signature, certified with no changes allowed (so no multi signatures will be valid). |
config.signedNamePattern | Name pattern for signed file. %file% %ext% placeholders are available. | No
config.deliverySenderName | Default sender name for the delivery if not provided otherwise. | No
config.deliverySenderEmail | Default sender email address for delivery if not provided otherwise. | No
config.bzdDeliverySenderIsOrg | Set to true if the sender is an Organisation, false if a Company. | No
config.bzdDeliverySenderAddress | Sender postal address for bzd delivery. Form: “CountryCode | PostalCode
config.bzdDeliveryStartNotificationTimeout | StartNotificationTimeout in hours. Must not be used by governmental organisations (but may be used by private companies). | No
config.bzdDeliveryTimeout | BZD DeliveryTimeout in days, after this period the message is defined as undelivered. | No
config.fileRefUserName | Sets the username of the file reference. E.g. used for authentication to a FTP server. | No
config.fileRefPassword | Sets the password of the file reference. E.g. used for authentication to a FTP server. | No
config.fileRefReturnBytes | if “true” the file content will also be stored in the documents content property | No
config.deliveryNotificationCallbackWebserviceAddress | The address of the webservice which should be used for delivery notification callback | No
config.deliveryNotificationCallbackEMailAddress | A valid mail address which is used by the BZD/TX portal to send the delivery notification | No
config.deliveryNotificationCallbackMobileNumber | Determines the mobile number on which the customer wants to receive his or her notification callback | No
config.deliveryNotificationCallbackChannel | Determines the notification callback channel through which the customer wants to receive his or her callback notification. Possible values: zuse2app, XDPCallbackWebservice, MailChannel, SMSChannel, LoggingChannel | No
config.deliveryNotificationCallbackType | Determines the notification type in which format the customer wants to receive the callback notification. The type pdf can only be used if the user wants to receive the notification via mail and the BZD channel. Default value: xml. Possible values: xml, pdf, xml+pdf. | No
config.sendPasswordLetterToRegisteredPerson | Allow sending password letter to all persons that are already registered. | No
config.costCenter | Defines the costCenter (freetext) - will then be used also in the print job. | No

## Receiver input parameters

Parameter | Description | Mandatory
--- | --- | ---
receiver.identification | A list of key-value pairs which unambiguously identifies a receiver in a defined system. See list below. | No
receiver.email | The e-mail address of the receiver | No (*)
receiver.userToken | Only used in case of password protected qualified mail | No
receiver.postalAdress.street | The receivers street. | No
receiver.postalAdress.doorNr | The door number. | No
receiver.postalAdress.postalCode | The postal code | No
receiver.postalAdress.city | Name of the city | No
receiver.postalAdress.countryCode | ISO 3166 Alpha 2 country code | No
receiver.genericId | The receivers ID of the external sending system which can be used to identify the receiver in the sendhybrid postbox. | No
receiver.bundlingId | An ID which can be used to bundle deliveries to the same receiver into one envelope in the print delivery channel. | No
receiver.phoneNumber | The telephone / mobile number of the receiver. Used during registration in the sendhybrid postbox. | No
receiver.ervCode | Identification number for the Electronic Legal Communication (German: “elektronischen Rechtsverkehr”) | No
receiver.accessPassword | Pre-defined password from the sending system which must be given by the receiver in order to access the postbox. If given it will override any existing password. Must not be null. If not given at all then nothing will be changed due to security reasons. So it is not possible to clear a password from outside the postbox. | No

* E-mail address is mandatory for delivery channels where this information is needed, e.g. the `emailChannel`.

### Identification

The following list defines the possible values which can be used as the `identification.type`:

- `urn:publicid:gv.at:cdid+gvzbpk` - for `bzdOfficialChannel` (governmental delivery, with a encrypted bPK, area ”ZU”) and `bzdPrivateChannel` (private commercial delivery via BZD, encrypted bPK, area ”ZU”). Remark: this is the value which is also returned from a zKopf query.
- `urn:privateid:at:cdid+ebox` - the identifier of the sendhybrid E-BOX (`bertChannel`)
- `urn:publicid:gv.at:baseid+XFN` - for company identification, also used for `bzdOf-ficialChannel` and `bzdPrivateChannel`
- `urn:publicid:gv.at:baseid+XERSB` - for ”Ergänzungsregister”, also used for `bzdOf-ficialChannel` and `bzdPrivateChannel`
- `urn:publicid:gv.at:cdid+bpk` - if the bPK is known
- `urn:publicid:gv.at:cdid+vbpk` - if the encrypted bPK is known
- `urn:publicid:gv.at:cdid+bpk+XX` - if the bPK and the area (XX) is known
- `urn:publicid:gv.at:cdid+vbpk+XX` - if the encrypted bPK and the area (XX) is known

### Physical person input parameters

Parameter | Description | Mandatory
--- | --- | ---
physicalPerson.familyName | The receiver’s family name. | No
physicalPerson.givenName | The receiver’s given name. | No
physicalPerson.dateOfBirth | The date of birth - need to find the person in case of official delivery service (German: BZD). | No
physicalPerson.prefixTitle | Prefixed title, e.g. Dr. | No
physicalPerson.postfixTitle | Postfixed title, e.g. MSc. | No
physicalPerson.bpk | Special identifier in case of official delivery service (German: bereichspezifisches Personen Kennzeichen) | No
physicalPerson.bpkArea | The area for the BPK. | No
physicalPerson.zbpk | The calculated special identifier in case of official delivery service (see also bpk, same as the not calculated bpk and ZU for bpkArea). | No
physicalPerson.salutation | The receiver’s salutaion. | No
physicalPerson.detailLine | Detail line to provide more information on the receiver (e.g. “und Mitbesitzer”). | No
physicalPerson.detailLine2 | Second detail line to provide more information if necessary. | No

### Legal person input parameters

Parameter | Description | Mandatory
--- | --- | ---
legalPerson.name | The name of the legal person. | Yes
legalPerson.registerNr | Identification according to registerType, e.g. commercial register number. | No
legalPerson.registerType | One of: | No
| ERsB - Ergänzungsregister |
| Firma - Firmenbuch |
| Verein - Vereinsregister |
| Steuerregistriernummer |
| Gemeindenummer |
legalPerson.zbpk | The calculated special identifier in case of official delivery service. | No
legalPerson.detailLine | Detail information in combination to name. | No
legalPerson.physicalPerson | A physical person that acts as the contact person for the legal person. | No

### 2.3 Conversion

An electronic document in an acceptable file format (configurable) is passed through the interface and converted into a PDF or PDF/A document. Further, output formats are configurable as well (TIFF, JPG but also convertible Office output formats). See details in the next subsection.

### Input parameters

The following input parameters are relevant for the conversion process:

Parameter | Description | Mandatory
--- | --- | ---
operation | ‘’convert’’ or other conversion operations | Yes
document (1..n) | Describes an input file. See Document input parameters for further details | Yes
credential | User data of the caller. See Credential input parameters for further details | Yes
config | Configuration settings for execution. Basically, these are configured on the server side depending on operation’s and profile. If necessary and useful they can be overridden by the client. See Config input parameters for further details | No
config.outputFormat | Describes the output format of the conversion. pdf is the default value. Other possible values are dependend on the configured conversion modules (see section after next). e.g. pdf_a, tiff, jpg, rtf | No

### Output parameters

The following output parameters are relevant for the conversion process:

Parameter | Description | Mandatory
--- | --- | ---
success | Flag for the process success. Failure at this level represents a fundamental error (e.g. no access granted) and, therefore, all the documents are not successful. A success at this level does not mean that all documents have been processed successfully. For the results of each document should be examined. | Yes
finished | Flag whether the process has been executed. This is always provided for standard processes and only for complex process definitions with manual release steps or the like. | Yes
infoMessage | XdpMessage: Summary report for the entire content | No
documentResult (1..n) | For each input document, a document result is returned. See Document result parameters. | Yes (on success)
documentResult.document.fileName | Name of the output file. Most changed for the input due to the conversion (document.doc -> document.pdf) | Yes (on success)

### Example convert input

    <typ:xdpInput>
      <typ:operation>convert</typ:operation>
      <typ:document>
        <typ:fileName>document.doc</typ:fileName>
        <typ:content>cid:72828502857</typ:content>
      </typ:document>
      <typ:credential>
        <typ:userId>testuser</typ:userId>
        <typ:tenantId>test</typ:tenantId>
      </typ:credential>
      <typ:config>
        <typ:outputFormat>pdf_a</typ:outputFormat>
      </typ:config>
    </typ:xdpInput>

### Example convert output

    <xdpResult xmlns="http://www.exthex.com/exdp/types">
      <documentResult>
        <success>true</success>
        <infoMessage>
          <id>XDP_3070</id>
          <message>Conversion successful to pdf_a</message>
        </infoMessage>
        <document>
          <fileName>document.pdfa.pdf</fileName>
          <content>
            <xop:Include href="cid:6f268b06-d28f-4806-9fc1-f2d08c7e83bc-2@www.exthex.com" xmlns:xop="http://www.w3.org/2004/08/xop/include" />
          </content>
          <mimeType>application/pdf</mimeType>
        </document>
      </documentResult>
      <success>true</success>
      <finished>true</finished>
      <infoMessage>
        <id>XDP_9070</id>
        <message>processing successful</ns2:message>
      </infoMessage>
    </xdpResult>

## Conversion modules and formats

The conversion module is a component that is responsible for the conversion of electronic documents to the, for the processing, accepting format. As input formats in particular the common office formats (Word, Excel, PowerPoint, OO Writer, Calc OO, OO Impress) are supported. As an output format is primarily the PDF and PDF/A-1b supported. Default converters support additional formats and can therefore be extended. It is also possible to support further document formats.

There are (currently) four basic converters with different characteristics responsible for different document formats.

OpenOffice Converter

Used Software | Open Office 3.x Installation
Supported Systems | Windows (evaluated Vista, Windows 7, Server 2003R2, 2008, 2008R2, Linux (evaluated Suse+ Suse Enterprise Linux 9-11, Ubuntu 10.x), MacOS, Solaris
Communication | UNO - Universal Network Objects
Output-Formats (tested) | PDF (1.4), PDF/A-1a
Output-Formats (possible, extract) | HTML, MS-Office, RTF, CSV, StarOffice (all convertible by OpenOffice 3.x formats)
Input-Formate (fully-fledged) | Open Office (ODT, ODP, ODS), StarOffice
Input-Formate (limited) | MS Office (DOC/X, PPT/X, XLS/X) (all formats that can be opened by OpenOffice 3.x)

This converter is implemented under bean name ‘oooServiceWrapper’.

Microsoft Office Converter

Used Software | MS Office Installation (Office 2007, Office 2010 or Office 2013) + PDF Export AddIn
Supported Systems | Recommended MS Windows (evaluated for Server 2003R2, 2008, 2008R2, Windows 7, Vista), basically any platform which is compatible with the MS Office 2007, 2010 or 2013, also Linux derivatives with Wine and CrossOver
Communication | COM
Output-Formate (tested) | PDF (1.5), PDF/A-1b, XPS
Output-Formats (possible, extract) | HTML, RTF, CSV, Open Office (generally all formats, which can be saved with Office 2007 or Office 2010/2013)
Input-Formats (fully-fledged) | MS Office (DOC/X, PPT/X, XLS/X), MS Works, XPS
Input-Formats (limited) | Open Office (ODT, ODP, ODS), RTF, (generally all formats, which can be opened with Office 2007 or Office 2010/2013)

This converter is implemented under bean name ‘msPooledOfficeService’. If we don’t want to use it in our ‘conersionService’ conversion list, we must also redefine it as ‘’, otherwise some MS Office components will be started nevertheless.

PDF Creator Converter

Used Software | PDF Creator Installation, Software for each format to be read
Supported Systems | Preferably Windows
Communication | COM, Printer Queue
Output-Formats (tested) | PDF (1.2-1.5), PDF/A-1b
Output-Formats (possible, extract) | Various image formats: TIFF, JPEG, BMP, PNG, PS
Input-Formats (fully-fledged) | MS Office, Open Office, PDF, image formats (JPEG, PNG, …)
Input-Formats (possible) | Each printable format with existing software

This converter is implemented under bean name ‘pdfCreatorWrapper’.

Aspose Converter

Used Software | Aspose Total for Java (https://products.aspose.com/total/java)
Supported Systems | Any that supports Java
Communication | COM
Output-Formats (tested) | PDF (1.7), PDF/A-1b, XPS
Output-Formats (possible, extract) | Almost all document and imaging format
Input-Formats (fully-fledged) | Almost all document and imaging format
Input-Formats (possible) | Each printable format with existing software

This converter is implemented under bean name ‘asposeService’. For successful usage of Aspose converter we must also possess valid Aspose license. This license should reside in `config` (local or global) folder. See Aspose Converter for more information.

Own converter

Additionally there is an own converter for CDA Level 1 (healthcare) available. This converter converts documents into the e-health environment CDA standard.

Used Software | Individual module
Supported Systems | Windows, Linux, MacOS, Solaris
Communication | With multiple additional metadata
Output-Formats (testet) | CDA Level 1
Output-Formats (possible, extract) | CDA Level 1-3
Input-Formats (fully-fledged) | MS Office, Open Office, PDF, image formats (JPEG, PNG, …), structured data
Input-Formats (possible) | Any printable format with existing software

Converter configuration

We can define which converters should be used in the XDP server.

Typical definition of conversionService bean inside the `convert.action.beans.xml` file is:

xmlconvert.action.beans.xml…

    <bean name="conversionService" class="at.exthex.xdp.conversion.ConversionService">
        <property name="converters">
            <list>
                <ref bean="msPooledOfficeService" />
                <ref bean="pdfCreatorWrapper" />
                <ref bean="asposeService" />
            </list>
        </property>
    </bean>

…

With the help of file `server.beans.override.xml` which can be located in `config` directory we can override that bean definition with the list of converters that we want to use. (e.g. same bean definition but with ommiting of `msPooledOfficeService` converter in favour of using just `asposeService`, for instance)

#### Aspose Converter

Aspose Converter is product which allows conversion between multiple formats. You can find more information about it on https://products.aspose.com/total/java.

Implemented modules allow us conversion between following input formats.

Module Aspose.Words:

- doc
- docx
- rtf
- dot
- dotx
- dotm
- docm
- odt
- ott
- txt

Module Aspose.Cells:

- xls
- xlt
- xlsx
- xlsb
- xltx
- xltm
- xlsm
- ods
- csv
- tsv
- sxc
- fods

Module Aspose.Slides:

- ppt
- pptx
- pps
- pot
- ppsx
- pptm
- ppsm
- potx
- potm
- odp

Module Aspose.Imaging:

- jpg
- jpeg
- jpe
- bmp
- tiff
- tif
- gif
- png
- emf
- wmf
- svg
- webp
- dicom
- djv
- djvu
- dng
- odg
- eps
- cmx
- cdr
- dib
- otg
- fodg

Module Aspose.Pdf:

- pdf
- xps
- epub
- tex
- ps
- cgm
- mht
- pcl
- md
- fo
- fob

Each of those input formats can be converted to any of the following 6 output formats:

- PDF
- PDF_A
- XPS
- TIFF
- JPEG
- PNG

A lot of settings for this converter are defined in bean `aspose.converter.beans.xml`.

It’s content by default looks like this:

### aspose.converter.beans.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

        <bean name="asposeLicense" class="at.exthex.xdp.aspose.AsposeLicense">
            <property name="licenseFileName" value="Aspose.Total.Java.lic"/>
        </bean>

        <bean name="asposeService" class="at.exthex.xdp.aspose.AsposeService">
            <property name="asposeModules">
                <list>
                    <ref bean="wordsConverter"/>
                    <ref bean="cellsConverter"/>
                    <ref bean="slidesConverter"/>
                    <ref bean="imagingConverter"/>
                    <ref bean="pdfConverter"/>
                </list>
            </property>
        </bean>

        <bean name="wordsConverter" class="at.exthex.xdp.aspose.WordsConverter">
            <constructor-arg value="#{asposeLicense.licenseFile}"/>
            <property name="inputFormatList">
                <list>
                    <value>doc</value>
                    <value>docx</value>
                    <value>docm</value>
                    <value>dot</value>
                    <value>dotx</value>
                    <value>dotm</value>
                    <value>rtf</value>
                    <value>odt</value>
                    <value>ott</value>
                    <value>txt</value>
                </list>
            </property>
        </bean>

        <bean name="cellsConverter" class="at.exthex.xdp.aspose.CellsConverter">
            <constructor-arg value="#{asposeLicense.licenseFile}"/>
            <property name="inputFormatList">
                <list>
                    <value>xls</value>
                    <value>xlsx</value>
                    <value>xlsb</value>
                    <value>xlsm</value>
                    <value>xlt</value>
                    <value>xltx</value>
                    <value>xltm</value>
                    <value>csv</value>
                    <value>ods</value>
                    <value>tsv</value>
                    <value>sxc</value>
                    <value>fods</value>
                </list>
            </property>
        </bean>

        <bean name="slidesConverter" class="at.exthex.xdp.aspose.SlidesConverter">
            <constructor-arg value="#{asposeLicense.licenseFile}"/>
            <property name="inputFormatList">
                <list>
                    <value>ppt</value>
                    <value>pptx</value>
                    <value>pps</value>
                    <value>ppsx</value>
                    <value>pptm</value>
                    <value>ppsm</value>
                    <value>pot</value>
                    <value>potx</value>
                    <value>potm</value>
                    <value>odp</value>
                </list>
            </property>
        </bean>

        <bean name="imagingConverter" class="at.exthex.xdp.aspose.ImagingConverter">
            <constructor-arg value="#{asposeLicense.licenseFile}"/>
            <property name="inputFormatList">
                <list>
                    <value>jpg</value>
                    <value>jpeg</value>
                    <value>jpe</value>
                    <value>bmp</value>
                    <value>tif</value>
                    <value>tiff</value>
                    <value>gif</value>
                    <value>png</value>
                    <value>emf</value>
                    <value>wmf</value>
                    <value>svg</value>
                    <value>webp</value>
                    <value>dicom</value>
                    <value>djv</value>
                    <value>djvu</value>
                    <value>dng</value>
                    <value>odg</value>
                    <value>eps</value>
                    <value>cmx</value>
                    <value>cdr</value>
                    <value>dib</value>
                    <value>otg</value>
                    <value>fodg</value>
                </list>
            </property>
        </bean>

        <bean name="pdfConverter" class="at.exthex.xdp.aspose.PdfConverter">
            <constructor-arg value="#{asposeLicense.licenseFile}"/>
            <property name="inputFormatList">
                <list>
                    <value>pdf</value>
                    <value>xps</value>
                    <value>epub</value>
                    <value>tex</value>
                    <value>ps</value>
                    <value>cgm</value>
                    <value>mht</value>
                    <value>pcl</value>
                    <value>md</value>
                    <value>fo</value>
                    <value>fob</value>
                </list>
            </property>
        </bean>

    </beans>

If you want to override any of the beans, you can do so in file `server.beans.override.xml` located in XDP configuration directory.

Property `asposeModules` in bean `asposeService` defines which Aspose modules will actually be used. For example. In case that we are going to use some other converter for imaging we can then ommit `imagingConverter` module in this list.

Property `inputFormatList` of every Aspose module, defines which input formats should given module convert.

### 2.4 PDF signature

PDF-AS or Adobe signature can be applied on electronic documents. If the input document (assumed the document format is acceptable for the system and there is a convertor for a such document type) is not a PDF, it will be converted to a PDF first (see also ).

There is semantic distinction between a personal signature, i.e. a certificate is personally assigned to a user, her name is visible in the signature block and an official or corporate signature, i.e. there is a common certificate on behalf of an organization. Technically, the only difference is in selecting the proper certificate (according to the server configuration).

Qualified signatures can only be applied in conjunction with the desktop client, due to the need for a corresponding user interface, as a user interaction is required (citizen card or cell phone signature).

Interface

The interface for the PDF signature is similar to the conversion interface (see ). Some additional configuration parameters in the command are available for applying the signature, which are given in the following table. Allowed output formats are PDF and PDF/A-1b.

Input parameters

Following input parameters are relevant for signing.

Parameter | Description | Manadatory
--- | --- | ---
operation | sign for personal signature, orgSign for organisation signature or compsign for company signature. Additional signature operations can be defined. | Yes
… | See 2.2 General parameters | No
config.profileName | Indicates a configuration profile which is stored on the server (signature block, certificate, etc.) | No
config.signedNamePattern | Pattern for generating the output file name | No
config.signatureType | Text or binary PDF-AS signature (PDF_AS_BIN, PDF_AS_TEXT) | No
| Adobe signature or certification (ADOBE_SIGN, ADOBE_CERTIFIEDs) | No
credential.* | See Credential input parameters |
config.* | See Config input parameters |

Output parameters

Parameter | Description | Mandatory
--- | --- | ---
success | Flag for the process success. Failure at this level represents a fundamental error (e.g. no access granted) and, therefore, all the documents are not successful. A success at this level does not mean that all documents have been processed successfully. For the results of each document should be examined. | Yes
finished | Flag whether the process has been executed. This is always provided for standard processes and only for complex process definitions with manual release steps or the like. | Yes
infoMessage | XdpMessage: Summary report for the entire content | No
documentResult (1..n) | For each input document, a document result is returned. See Document result parameters. | Yes (on success)
documentResult.document.fileName | Name of the output file. Most changed for the input due to the conversion (document.doc -> document.pdf) | Yes (on success)

## Two Mechanism to override default signature profile

To overwrite the default signature profile with another one there exists two mechanism.

### SignatureProfile in Config-tag

signatureProfile in “xdpInput/config” tag

    <typ:xdpInput>
        <typ:operation>orgSign</typ:operation>
        <typ:document>
            <typ:fileName>Document.pdf</typ:fileName>
            <typ:content>cid:123456789</typ:content>
        </typ:document>
        <typ:credential>
            <typ:userId>mmustermann</typ:userId>
            <typ:tenantId>dev</typ:tenantId>
        </typ:credential>
        <typ:config>
            <typ:profileName>orgSign</typ:profileName>
            <typ:signatureProfile>AMTSSIGNATURBLOCK_DE_SMALL_VERTICAL</typ:signatureProfile>
        </typ:config>
    </typ:xdpInput>

In the example above the pre-configured “`signatureProfile`” is overwritten with the value “`AMTSSIGNATURBLOCK_DE_SMALL_VERTICAL`”. Therefore all settings which are configured with this signature profile will be taken instead of the default one which are defined for the profile “`orgSign`”.

### SignatureProfile in DocumentMetaData

signatureProfile in “xdpInput/config” tag

    <typ:xdpInput>
        <typ:operation>orgSign</typ:operation>
        <typ:document>
            <typ:fileName>Document.pdf</typ:fileName>
            <typ:content>cid:123456789</typ:content>
            <typ:electronicDocumentMetaData>
                <typ:signProfile>AMTSSIGNATURBLOCK_DE</typ:signProfile>
            </typ:electronicDocumentMetaData>
            <typ:postalDocumentMetaData>
                <typ:signProfile>AMTSSIGNATURBLOCK_DE_SMALL_VERTICAL</typ:signProfile>
            </typ:postalDocumentMetaData>
        </typ:document>
        <typ:credential>
            <typ:userId>mmustermann</typ:userId>
            <typ:tenantId>dev</typ:tenantId>
        </typ:credential>
        <typ:config>
            <typ:profileName>orgSign</typ:profileName>
            <typ:signatureProfile>AMTSSIGNATURBLOCK_DE_SMALL_VERTICAL</typ:signatureProfile>
        </typ:config>
    </typ:xdpInput>

In the example above one can see two different `signProfiles` (= `signatureProfiles`) can be defined for each way a delivery can take - electronic or postal. So if the delivery will be delivered electronically then the signature profile “`AMTSSIGNATURBLOCK_DE`” will be taken, whereas in the postal way the “`AMTSSIGNATURBLOCK_DE_SMALL_VERTICAL`” will be taken.

If its not a delivery (like in the example above) and both are given, then the electronic one takes precedence.

## Examples

Example sign input

    <typ:xdpInput>
      <typ:operation>orgSign</typ:operation>
      <typ:document>
        <typ:fileName>Document0100419.pdf</typ:fileName>
        <typ:content>cid:72828502857</typ:content>
      </typ:document>
      <typ:credential>
        <typ:userId>testuser</typ:userId>
        <typ:tenantId>tenant1</typ:tenantId>
      </typ:credential>
    </typ:xdpInput>

Example sign output

    <xdpResult xmlns="http://www.exthex.com/exdp/types">
      <documentResult>
        <success>true</success>
        <infoMessage>
          <id>XDP_3070</id>
          <message>Signed successful</message>
        </infoMessage>
        <infoMessage>
          <id>XDP_4070</id>
          <message>PDF-AS Signature successful with keyid test-_-testuser</message>
        </infoMessage>
        <document>
          <fileName>Document0100419_sig.pdf</fileName>
          <content>
            <xop:Include href="cid:6f268b06-d28f-4806-9fc1-f2d08c7e83bc-6@www.exthex.com" xmlns:xop="http://www.w3.org/2004/08/xop/include" />
          </content>
          <mimeType>application/pdf</mimeType>
        </document>
      </documentResult>
      <success>true</success>
      <finished>true</finished>
      <infoMessage>
        <id>XDP_9070</id>
        <message>processing successful</ns2:message>
      </infoMessage>
    </xdpResult>

Example sign input with profile configuration

    <typ:xdpInput>
        <typ:operation>sign</typ:operation>
        <typ:document>
            <typ:fileName>Test.pdf</typ:fileName>
            <typ:content>cid:237761187779</typ:content>
            <typ:mimeType>application/pdf</typ:mimeType>
        </typ:document>
        <typ:credential>
            <typ:userId>p15056</typ:userId>
            <typ:tenantId>MD</typ:tenantId>
        </typ:credential>
        <typ:config>
            <typ:profileName>sign_ggz</typ:profileName>
        </typ:config>
        <typ:jobName>Signing Test sendhybrid for Juergen Wagner-Schnepf</typ:jobName>
    </typ:xdpInput>

Example raw sign response

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: multipart/related; type=“application/xop+xml”; boundary=“uuid:9d29746f-8605-4d6b-a6a5-4866764d9226”; start=“root.message@cxf.apache.org”; start-info=“text/xml”
Transfer-Encoding: chunked
Date: Mon, 12 Feb 2018 14:36:30 GMT

–uuid:9d29746f-8605-4d6b-a6a5-4866764d9226
Content-Type: application/xop+xml; charset=UTF-8; type=“text/xml”
Content-Transfer-Encoding: binary
Content-ID: root.message@cxf.apache.org

true Test.pdfa_sig.pdf application/pdf de324fab98ed88f04ab71ed8e66b5afd47f0c6f468f82e44fe83cd4b216ba532 true true XDP_9070 Verarbeitung erfolgreich.
–uuid:9d29746f-8605-4d6b-a6a5-4866764d9226
Content-Type: application/pdf
Content-Transfer-Encoding: binary
Content-ID: 40319749-fbad-4c74-adb4-13741295a47a-1784@www.exthex.com
====== Binary Content of the PDF ======

Example sign error response

    <xdpResult xmlns="http://www.exthex.com/exdp/types" xmlns:ns2="http://www.exthex.com/exDPDeliveryService">
        <success>false</success>
        <finished>true</finished>
        <infoMessage>
            <id>XDP_2012</id>
            <message>Das angegebene Profil sign_ggz ist für den Benutzer nicht konfiguriert! (user/operation): doesNotExist / sign</message>
        </infoMessage>
    </xdpResult>

### 2.5 Delivery

Electronic delivery component is responsible to deliver one or more documents (which are optionally converted or signed in the same process) to a recipient through different delivery paths.

The following delivery paths are available:

- Governmental delivery service (German: Behördlicher Zustelldienst (TNVZ + Zustelldienste))
- E-Mail delivery (i.e. standard e-mail to the recipient)
- Qualified mail
- Delivery into the E-BOX (communication system of the government §37 ZustG.)
- Delivery into E-Brief (official special E-BOX of the Austrian Post AG)
- Encrypted/signed e-mail
- Physical delivery via print interface
- Physical delivery manual (printing and shipping manually)

The recipient of the delivery must be sufficiently determined depending on the delivery path. The delivery path can be selected indirectly via the desired delivery quality (there is an automatic selection at the server, e.g. to choose the best way) or determined directly by means of parameters.

## Synchronous single delivery

The interface (input and output) extends the capabilities of signature and conversion without restricting these: As part of the delivery the documents can be converted, layered (letter paper and/or payment form) and signed depending on configuration. Therefore, the focus here is set on the extensions of the delivery interface.

The web service method `processDelivery` can be used for a synchronous single delivery. The synchronous version will only work for the following delivery qualities with the following delivery channels.

### Delivery quality to channel matrix for official deliveries

| RSa | RSa+ | nonRSa | nonRSa+ | RSb
--- | --- | --- | --- | --- | ---
printDeliveryChannel | x | x | x | x | x
selfPrintDeliveryChannel* | x | x |  |  | x
bertChannel |  |  | x |  |
eBriefChannel |  |  | x |  |
emailChannel |  |  | x |  |
encryptedEmailChannel |  |  | x |  |
qualifiedMailChannel |  |  | x |  |
sendhybridPostboxChannel |  |  | x |  |
bzdOfficialChannel | x | x | x | x | x
erbChannel |  |  | x |  |
postalEmailChannel |  |  | x |  |

### Delivery quality to channel matrix for private deliveries

| nonRS (nonR - deprecated) | nonRS+ | RS | RS+ | (R deprecated) | (R+ deprecated)
--- | --- | --- | --- | --- | --- | ---
printDeliveryChannel | x | x | x | x | x | x
selfPrintDeliveryChannel* |  |  |  |  |  |
bertChannel | x |  | x |  | x |
eBriefChannel | x |  | x |  | x |
emailChannel | x |  | x |  | x |
encryptedEmailChannel | x |  | x |  | x |
qualifiedMailChannel | x |  | x |  | x |
sendhybridPostboxChannel | x |  | x |  | x |
bzdOfficialChannel | – | – | – | – | – | –
erbChannel | x |  |  |  |  |
postalEmailChannel | x | x | x |  | x | x

* The `selfPrintDeliveryChannel` can only be used in the asynchronous version over the sendhybrid standard process.

For the full support of all qualities and its channels the asynchronous version over the sendhybrid standard process must be used.

### Input parameters

The following input parameters are relevant for delivery:

Parameter | Description | Mandatory
--- | --- | ---
operation | `autodelivery` for automatic channel selection during delivery, `manualdelivery` when the channel is permanently set | Yes
… | See 2.2 General parameters | No
foreignId | Client-side unique identifier of the delivery process. Will be returned with the (asynchronous) result and delivery receipt via the callback or polling service, and can help the client in the assignment of operations. | No
jobName | Some arbitrary string which can be used by the sender to identify a job in the TX portal. It is also possible to filter for this jobName in TX portal | No
credential.* | See Credential input parameters |
config.* | See Config input parameters. For the delivery additional configuration settings exists, which should be centrally maintained on server side, and only given in exceptional cases by the client. |
deliveryInput | Contains all necessary input data for the delivery | Yes
deliveryInput.receiver | Describes the recipient of delivery. Physical and legal persons are possible, depending on the delivery path. The data (personal data and possibly address data) required must be appropriate for the selected quality and the chosen delivery path. For example, for the e-mail delivery only an e-mail address is required, for the governmental delivery at least first name, last name and date of birth or address is required. | Yes
deliveryInput.sender | Describes the sender of a delivery. Can also be pre-defined on server side within the profile. | No
deliveryInput.returnSender | Describes the return sender and its address of a delivery. Only used in case of RSa(+) and RSb with hybrid letter option and Info.Mail qualities, or if configured via returnToSender. | No
deliveryInput.postalDeliveryMetaData.returnSender | Since version 4.12. - it is preferable to use this then above described field |
deliveryInput.postalDeliveryMetaData.returnToSender | This is used for printing the return sender address and setting. if the delivery quality is Info.Mail Classic or Info.Mail Plus, then this feature also will be charged if “yes”, or “Retouren an Postfach 555” or “preprint” - here it is used for marking undeliverable items. no … default; no logic will be applied yes … use returnSender to generate the return to sender line; In case if Info.Mail extra cost is charged preprint … everything is preprinted by the sender; In case if Info.Mail extra cost is charged matrix … individual agreement. Matrix data will be specified later; no Infomail extra cost Retouren an Postfach 555 … print that at the paper on first page (by sendhybrid) at returnToSenderCoordinates with returnToSenderFont, Infomail extra cost Nicht retournieren … print that at the paper on first page (by sendhybrid) at returnToSenderCoordinates with returnToSenderFont, no Infomail extra cost returnToSenderCoordinates must be defaulted in a meaningfull manner in the profiles by the Operations employee of sendhybrid. Since version 4.12. | No
deliveryInput.postalDeliveryMetaData.returnToSenderFont | Describes the font of the return to sender line, if needed to change the default. For future use. Since version 4.12. | No
deliveryInput.postalDeliveryMetaData.returnToSenderCoordinates | Describes the coordinates of the line in pdf measurements Since version 4.12. | No
deliveryInput.postalDeliveryMetaData.returnToSenderMatrix | For future use Since version 4.12. | No
deliveryInput.postalDeliveryMetaData.printJobSplitCriteria | Combines/splits deliveries of same value in one printjob, if configured. This is done least priviledged after splitting by tenant, postalPriority, country, etc. This is necessary to combine Info.Mails for the production (if one Info.Mail should go one printjob) Since version 4.12. |
deliveryInput.deliveryCategory | The category of the delivery (often called “document class”) (see ) | No
deliveryInput.deliveryQuality | The quality of the delivery (see ). Used for the automatic, server-side selection of delivery paths. Default value will be “nonRS”. | No
deliveryInput.registered | If the delivery should be registered at the postal service. Boolean, default false For RSa, RSa+, RSb, If the receiver belongs to a foreign country then the delivery must be registered; if this is the case and registered is not set to “true” then it will be automatically set by the system. | No
deliveryInput.registeredLite | If the delivery should be registeredLite at the postal service. Boolean, default false. Registered Lite is allowed only for quality nonRS. If the receiver belongs to a foreign country, the postalPriority must be set to PRIO. | No
deliveryInput.barCode | If you fill out the field in the request, the delivery system will use it and not create one(usage only if senders already created a barcode number). Since version 4.12. | No
deliveryInput.byHand | This a boolean element and correlates to the Post Product “Eigenhändig”. In case of RSa(+) and RSb it is included and will automatically be set. Since version 4.12. | No
deliveryInput.deliveryChannel | The delivery path can be configured manually. This is not recommended because generally the selection takes place on the server side based on the desired delivery quality and the central configuration. | No
deliveryInput.deliverySubject | Subject line for the delivery, if supported by the channel. The subject line is limited to 255 characters. | No
deliveryInput.deliveryMailBody | Mail body of the delivery, if supported by the channel. | No
deliveryInput.notificationMailBody | A sender can define an own text for the notification e-mail, if the delivery is put into one of sendhybrids E-BOXes. It can be any kind of a valid HTML snippet. In order that the sending E-BOX can add a link to this body, the sender must take care that somewhere a variable `${link`} is within the text. If this variable is missing, then the delivery will not be processed and an error will be returned. Since version 4.7. | No
deliveryInput.muteHours | Defines the time span during no notifications to the receiver are sent. | No
deliveryInput.requiredUserSecClass | The “Security Class” a postbox user has to provide in order to receive this delivery. If the “requiredUserSecClass” from the sender is higher then the one the user can supply then the document cannot be delivered into the users postbox. E. g. If a user only have Username/Password (SecClass1) and the sender requires a Handy-Signatur (SecClass3), then the document cannot be delivered into the users postbox. | No
deliveryInput.dueDate | A `dateTime` in the future which defines how long a delivery is valid. After that due date, if the receiver did not read the delivery, a negative receipt is sent from the E-BOX. The given due date must be more then five minutes from the time the delivery is processed in the future. Else the validation will fail and the delivery will not be processed. In case of LetterLink deliveries (special E-BOX which only sends mails with a link to the delivery document) after the due date is reached, the link is not valid anymore and the document cannot be downloaded. It is recommended to use the `dueTimespan` for very short due dates, e.g. if the delivery is only valid several minutes or hours. This parameter is only intended to be used if the delivery is valid several days, weeks or even months. Either `dueDate` or `dueTimespan` (see below) can be defined - not both. Since version 4.7. | No
deliveryInput.dueTimespan | With this parameter one can define the timespan from the time the delivery is processed until a delivery is not valid anymore. The same specification and restrictions like for `dueDate` also apply here. Either `dueTimespan` or `dueDate` (see above) can be defined - not both. Since version 4.7. | No

The following attributes can be set into the `xdpDeliveryInput` :

Attribute | Description | Mandatory
--- | --- | ---
version | To recognize which version of the web service is used | Yes
deliveryType | Possible values are “Delivery” (default) and “Message” | No

#### Mark document as attachment

The following example “Input with a document annotated as an attchment” shows a full combination of possibilities how a document can be defined as an attachment. An additional data with the name `attachment` with the child `<stringData>attachment</stringData>` must be sent. Additionally one can define over which delivery path(s) - electronic and / or postal - the attachment is sent. In the code example this attachment will be sent over both paths which is also the default value when this configuration is omitted.

#### Applying payment information to document

The following table describes the fields used to apply SEPA compliant payment information onto a `document`. A short code listing, how to apply them correctly, is shown in the following code listing “Input with payment details”.

Parameter | Description | Mandatory
--- | --- | ---
| #paymentType |
amount | The amount to be payed. Only dot can be used as decimal separators | true
currency | Default is EUR | false
customerData | Payment reference | true
dueDate | Due date of the payment | false
iban | IBAN of the payment receiver | true
bic | BIC of the payment receiver. Only for foreign payments | false
accountOwner | If this field is not set then the values from the Receiver are used | false
financialInstitution | Title of the payslip, often used to present the name of the bank | false
receiverId | The creditor ID. Also used as identifier for electronic payments | false
| #generationDataPaymentSlipA4Portrait |
#right side |  |
rightSide_ReceiverLine1 | The payments receiver. First line | false
rightSide_ReceiverLine2 | The payments receiver. Second line | false
rightSide_checkDigit | Checkdigit of the reference line (German: Zahlungsreferenz) - see paymentType.customerData for reference line on the right side of the payment form | false
rightSide_ReasonLine1 | First line of the reason on the right side of the payment form | false
rightSide_ReasonLine2 | Second line of the reason on the right side of the payment form | false
rightSide_ReasonLine3 | Third line of the reason on the right side of the payment form | false
rightSide_ReasonLine4 | Fourth line of the reason on the right side of the payment form | false
#left side |  |
leftSide_ReceiverLine1 | One line of the receiver on the left side of the payment form | false
leftSide_ReasonLine1 | First line of the reason on the left side of the payment form | false
leftSide_ReasonLine2 | Second line of the reason on the left side of the payment form | false
leftSide_ReasonLine3 | Third line of the reason on the left side of the payment form | false
leftSide_ReasonLine4 | Fourth line of the reason on the left side of the payment form | false
leftSide_ReasonLine5 | Fifth line of the reason on the left side of the payment form | false
leftSide_ReasonLine6 | Sixth line of the reason on the left side of the payment form | false
leftSide_ReasonLine7 | Seventh line of the reason on the left side of the payment form | false
IBAN_Sender | IBAN of the sender | false
payer | Person who is paying the bill. If not provided, payer will be the receiver. familyName, givenName and genericId field of payer must be set in request or receiver is taken | false

The following image is an example how a payment form document could look like which can be generated by the sendhybrid service:

#### Hybrid Return Letter

The hybrid return letter applies in cases of non-electronic deliveries with RSa, RSa+ or RSb delivery qualities. It can be used only by governmental authorities. For this purpose the field `hybridLetterMetaData` has been added to `deliveryInput`. In case of a hybrid return letter an address page is created and can be retrieved via the polling web service or will be returned via the callback web service.

Parameter | Description | Mandatory
--- | --- | ---
hybridLetterMetaData | Contains all necessary input data in case of a delivery with RSa, RSa+ or RSb delivery quality | Yes
deliveryInput.hybridLetterMetaData.businessNumber1 | Business number 1 (German: Geschäftszahl) | Yes
deliveryInput.hybridLetterMetaData.businessNumber2 | Business number 2, in case a second business number is needed. | No
deliveryInput.hybridLetterMetaData.authorityKey | Authority key (German: Behördenkennung), up to 6 characters | No
deliveryInput.hybridLetterMetaData.signatureNumber | The signature number (German: Vorausverfügung-ID) for the delivery. If no signature number is given then the ID_00 will automatically be used. In einer Folgetabelle werden alle ID’s beschrieben . | No
deliveryInput.hybridLetterMetaData.optionalSignatureNumberValue | Sollte die Vorausverfügung_ID 99 gewählt werden, so muss dieses Feld befüllt werden . Bei allen anderen ID’s ist dieses Feld leer zu lassen . | Yes (with ID_99)

#### Advance Disposal

Some special handlings for hybrid letteres can be set using the advance disposal (Vorausverfügung)

The table below contains the specific delivery requirements. Mandation and representatives on electronic pickup must be considererd independently.

deliveryInput.hybridLetterMetaData.signatureNumber 01, 27 to 32 and delivery quality RSB lead to an error.

More details about the `signatureNumber` can be found here: `https://www.post.at/g/c/behoerdenbrief-rsa-rsb-geschaeftlich`. See under download section “Technische Schnittstellenbeschreibung”.

Table of possible signature numbers (Vorausverfügungs_IDs)

Vorausverfügung_ID deliveryInput.hybridLetterMetaData.signatureNumber |  | possibility |  | hybridService delivery quality |  | electronic delivery |  |  | electronic pickup in E-Zustellung Meinpostkorb/USP | sendhybrid internal (new upcoming changes 2021)
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Title | ID | RSa | RSb | RSa | RSb | strict ID Mapping | try electronic | delivery quality |  |
Keine Verfügung | 00 | x | x | RSA | RSB | yes | x | → RSA |  |
Nicht an Postbevollmächtigte | 01 | x |  | RSA_PLUS | n.a. | yes | x | source | ID 01 is only possible with RSA quality | we check the ID, if quality is not RSA_PLUS we raise an error. If sent with fat client, we set the according quality
Nicht nachsenden | 02 | x | x | RSA | RSB | yes | x | → RSA | ID on electronic delivery is out of effect. E-Zustellung is independend from Nachsendeauftrag |
Nicht an Ehegatten/eingetragenen Partner zustellen | 03 | x | x | RSA,RSA_PLUS | RSB | yes | x | → RSA_PLUS | Delivery is made to the requested person only. Representation through mandates can be set globally. To prevent mandates RSA_PLUS is necessary | we set RSA_PLUS if we send electronically
Nicht an Elternteil zustellen | 04 | x | x | RSA, RSA_PLUS | RSB | yes | x | → RSA_PLUS | we set RSA_PLUS if we send electronically |
Nicht an den Prokuristen | 05 | x | x | RSA | RSB | yes | x | → RSA | Delivery is made to the requested corporate body only. Representation through mandates can be set globally. To prevent mandates use RSA_PLUS. Only globally setable in USP |
Zustellung in den körperlichen Nahebereich | 06 | x | x | RSA | RSB | no | x | → RSA | ID 06 is not effective in electronic delivery. Delivery is made to the requested person only. Representation through mandates can be set globally. To prevent mandates use RSA_PLUS. |
Zustellung trotz allfälliger Beeinträchtigung und bestehender Erwachsenenvertretung | 07 | x | x | RSA | RSB | no | x | → RSA | Only persons with an age of over 14 years can be registered. “Beeinträchtigung” is not covered |
Bevollmächtigte und Kanzleiangestellte sind von der Zustellung ausgeschlossen (§13 Abs.2 u. 4) | 08 | x | x | RSA | RSB | no | x | → RSA | Delivery is made to the requested corporate body only. Representation through mandates can be set globally. To prevent mandates use RSA_PLUS. Electronically currently not explicitly implementable: messages to companies can be picked up by the designated postal representative. Only globally setable in USP |
Trotz Postsperre dem Schuldner zustellen | 09 | x | x | RSA | RSB |  | x | → RSA +flag | We set the flag for BZD in this case (see spec of official edelivery) msg:IgnorePostRedirectionOrder | we check code for hybridservice. For direct edelivery it should work
Hinterlegung ohne Zustellversuch | 10 | x | x | RSA | RSB | no | no electronic delivery | do not allow electronic delivery | ID 10 is not effective in electronic delivery. The delivery is made if the person/corporate body is registered at MPK/USP. Maybe the person does not want to be disturbed at his home-place. In electronic path he will not be disturbed. | could be done if sendhybrid prevents electronic delivery in this case. Currently we try to send electronically.
Trotz Minderjährigkeit zustellen | 11 | x | x | RSA | RSB | yes | x | → RSA | Only persons with an age of over 14 years can be registered |
Trotz behaupteter Ortsabwesenheit zustellen | 12 | x | x | RSA | RSB | no | x | → RSA | A person can set off times. The ID 12 is not taken into consideration in electronic delivery. If the person is off, the delivery will not be delivered |
Combinations |  |  |  |  |  |  |  |  |  |
Nicht an Postbevollmächtigte (nicht nachsenden) | 20 | x |  | RSA_PLUS | n.a. | yes | x | source |  | we check the ID, if quality is not RSA_PLUS we raise an error. If sent with fat client, we set the according quality
Nicht an Ehegatten/eingetragenen Partner zustellen (nicht nachsenden) | 21 | x | x | RSA, RSA_PLUS | RSB | yes | x | → RSA_PLUS |  | we set RSA_PLUS if we send electronically
Nicht an Elternteil zustellen (nicht nachsenden) | 22 | x | x | RSA, RSA_PLUS | RSB | yes | x | → RSA_PLUS |  | we set RSA_PLUS if we send electronically
Nicht an den Prokuristen (nicht nachsenden) | 23 | x | x | RSA | RSB | yes | x | → RSA |  |
Zustellung in den körperlichen Nahebereich (nicht nachsenden) | 24 | x | x | RSA | RSB | no | x | → RSA |  |
Zustellung trotz allfälliger Beeinträchtigung und bestehender Erwachsenenvertretung (nicht nachsenden) | 25 | x | x | RSA | RSB | no | x | → RSA |  |
Trotz Postsperre dem Schuldner zustellen (nicht nachsenden) | 26 | x | x | RSA | RSB |  | x | → RSA + flag | We set the flag for BZD in this case (see spec of official edelivery) msg:IgnorePostRedirectionOrder | we check code for hybridservice. For direct edelivery it should work
Nicht an Postbevollmächtigte (nicht an Ehegatten/eingetragenen Partner zustellen) | 27 | x |  | RSA_PLUS | n.a. | yes | x | source |  | we check the ID, if quality is not RSA_PLUS we raise an error. If sent with fat client, we set the according quality
Nicht an Postbevollmächtigte (nicht an Elternteil zustellen) | 28 | x |  | RSA_PLUS | n.a. | yes | x | source |  | we check the ID, if quality is not RSA_PLUS we raise an error. If sent with fat client, we set the according quality
Nicht an Postbevollmächtigte (nicht an den Prokuristen) | 29 | x |  | RSA_PLUS | n.a. | yes | x | source |  | we check the ID, if quality is not RSA_PLUS we raise an error. If sent with fat client, we set the according quality
Nicht an Postbevollmächtigte (Zustellung in den körperlichen Nahebereich) | 30 | x |  | RSA_PLUS | n.a. | no | x | source |  | we check the ID, if quality is not RSA_PLUS we raise an error. If sent with fat client, we set the according quality
Nicht an Postbevollmächtigte (Zustellung trotz allfälliger Beeinträchtigung und bestehender Erwachsenenvertretung) | 31 | x |  | RSA_PLUS | n.a. | no | x | source |  | we check the ID, if quality is not RSA_PLUS we raise an error. If sent with fat client, we set the according quality
Nicht an Postbevollmächtigte (trotz Postsperre dem Gemeinschuldner zustellen) | 32 | x |  | RSA_PLUS | n.a. |  | x | source + flag | We set the flag for BZD in this case (see spec of official edelivery) (msg:IgnorePostRedirectionOrder) | we check code for hybridservice. For direct edelivery it should work
Nicht kategorisierte Vorausverfügung (z.B. Zustellung lt. § XY) oder neue, noch nicht kategorisierte Vorausverfügung | 99 | x | x | RSA | RSB | no | x | → RSA |  |

Public ocurance:

Around 3% of hybrid letters have a Vorausverfügung_ID. They are distributed as follows

Vorausverfügung_ID | Titel | Part
--- | --- | ---
01 | Nicht an Postbevollmächtigte | 6,81%
02 | Nicht nachsenden | 0,01%
03 | Nicht an Ehegatten/eingetragenen Partner zustellen | 13,80%
04 | Nicht an Elternteil zustellen | 2,73%
05 | Nicht an den Prokuristen | 0,00%
06 | Zustellung in den körperlichen Nahebereich | 4,27%
08 | Bevollmächtigte und Kanzleiangestellte sind von der Zustellung ausgeschlossen (§13 Abs.2 u. 4) | 63,61%
09 | Trotz Postsperre dem Schuldner zustellen | 4,04%
10 | Hinterlegung ohne Zustellversuch | 0,01%
11 | Trotz Minderjährigkeit zustellen | 0,00%
12 | Trotz behaupteter Ortsabwesenheit zustellen | 4,66%
20 | Nicht an Postbevollmächtigte/Nicht nachsenden | 0,00%
26 | Trotz Postsperre dem Schuldner zustellen/Nicht nachsenden | 0,04%
99 | freie Vorausverfügung | 0,03%

#### DocumentMetadata

For each document there is the possibility to specify the so called documentMetaData element which can hold additional information used by our system. It’s possible to define seperate metadata for postal and electronic documents.

Parameter | Description | Mandatory
--- | --- | ---
note | Additional information e.g.: InsuranceCard/CustomerCard/PaymentSlip | No
sign | Flag for signature of the document. If signing is configured in the profile the default is true. But must be turned on for attachments. | No
signProfile | Signature profile for signature of the document | No
invalidate | Invalidation of the document with ‘No Original’. Default = false | No
documentGeneration | Information to create additional documents | No

#### DocumentGeneration

The document generation element can be used to layer documents by the sendhybrid service.

Parameter | Description | Mandatory
--- | --- | ---
layerDocumentReference | filename of underlay document, or reference to underlay document in supplementation document store | No
layerPosString | Determines the page and position to be under-/overlayed. | No
layer | Specifies the layer. Original is on layer 0. Negative = underlay. Positive = Overlay | No
content | Content if no document is referenced | No

##### layerPosString

Defines where on which position and page the layer is layered.

- x/y - Defines the x and y position from the top left corner. Use negative y values to move the layer down.
- w - The scaling factor of the layer. Default = 1.
- p - The page the layer is layered. Wildcards are:
  - ALL - All pages.
  - LAST - Last page.
  - FIRST - First page. This is default.
  - NEWPAGE - Layers onto a new page.

##### layer

If the element is missing, the order of occurence determines the plane order. Positive values determine overlay, negative numbers mean underlay. Plane 0 is the document origin. The first backplane in the z-order is the -1 plane, and so on.

#### DeliveryOptions

There are additional delivery options which can be set by the submitting system.

Parameter | Description | Mandatory
--- | --- | ---
ENVELOPE | Selected envelope: C5/6, C4, C5, SpecialEnvelopeX | No
ADDRESS_PAGE | Append address page ahead: false (standard), true | No
ADDRESS_PAGE_TEXT | Additional text for address page | No
COLOR_MODE | Color mode of the print - black and white or color. Possible values: BW, RGB, CMYK |
PLEX_MODE | Print mode to set if the printed paper is printed single sided (SIM) or on both sides (DUP). Possible values: SIM, DU |
POSTAL_PRIORITY | Defines different rates for postal deliveries. Possible values are: * `ECO` * `PRIO` * `ECO-BUSINESS` * `INFOMAIL_CLASSIC` * `INFOMAIL_PLUS` | No
PACKAGING_ID | Id for deliveries for different receivers but with the same address. Will be used in the print delivery channel. The printing facility can use this value for packaging. | No

For further information take a look at the following example: Input where an address page should be appended.

#### E-BOX / E-Brief Delivery

The code example “Standard E-BOX / E-Brief delivery input” shows a typical delivery input request to deliver documents into E-BOX or E-Brief. It defines two documents. One which is the main document of the delivery and a second one which is some attachment to the main document. The main document will also be signed (see `<sign>true</sign>`). Also in this case a `genericId` is defined to uniquely identify the account into which the documents will be delivered
The E-Brief is one special implementation of the sendhybrid E-BOX.
The “NameAddressTag delivery into E-Brief” shows the special E-Brief handling for identifying the receivers postbox account. No `identification` nor `genericId` is given and the system will try to find the correct postbox with the aid of the receivers name and postal address. In case of a `PhysicalPerson` the `givenName` and `familyName` are taken into concern together with the postal address. In case of a `LegalPerson` the name and also the `contactPerson` are required.

#### ElectronicDeliveryMetaData

Parameter | Description | Mandatory
--- | --- | ---
note | Additional information e.g. WELCOME_LETTER | No
inboxAddendum1 |  | No
inboxAddendum2 |  | No
groups |  | No
options |  | No
updateReceiverData |  | No

#### Group

Parameter | Description | Mandatory
--- | --- | ---
id | Group id | No
groupName | Name of the group | No
receiveMessageAllowed |  | No
description | Group’s description | No
groupSupporters | Supporters/Managers of this group | Yes
groupParentIds | Ids of a parent groups | No

#### GroupSupporter

Parameter | Mandatory
--- | ---
id | Yes
givenName | No
familyName | No
email | No
phoneNumber | No

#### Option

Parameter | Description | Mandatory
--- | --- | ---
key | Informations e.g. PAGE_FORMAT, COLOR_MODE, PAPER_GRAMMAGE, PAPER_COATING, PAPER_COLOR, DOUBLE_SIDED | Yes
value |  | No
channels |  | No

### Response parameters

The following response parameters are relevant for delivery - element `xdpDeliveryResult`:

Parameter | Description | Mandatory
--- | --- | ---
success | Flag for the process success. Failure at this level represents a fundamental error (e.g. no access granted) and, therefore, all the documents are not successful. A success at this level does not mean that all documents have been processed successfully. For the results of each document should be examined. | Yes
finished | Flag whether the process has been executed. If this flag is true in case of the asynchronous standard process, this means only that the delivery request has been taken over by the system and will then be processed by the system asynchronously. | Yes
infoMessage | XdpMessage: Summary report for the entire content | No
documentResult (1..n) | For each input document, a document result is returned. See Document result parameters. | Yes (on success)
document.success | Indicates the successful processing of this document. This flag can only be taken into concern in case of synchronous processes. In case of asynchronous process this flag will be true but does not tell the sender if the document could be processed successfully. | Yes
deliveryData | Contains all delivery dependent result data | Yes (only on success)
deliveryData.receiver | The receiver of the delivery coming from the input. If needed for the delivery, the data coming from the input are expanded, e.g. zbPK in case of an official delivery. | Yes
deliveryData.returnSender | Describes the return sender and its address of a delivery. Only used in case of RSa(+) and RSb with hybrid letter option and Info.Mail qualities, or if configured via returnToSender. | No
deliveryData.deliveryQuality | The used delivery quality. | No
deliveryData.registered | Check Input parameters, description is the same. | No
deliveryData.registeredLite | Check Input parameters, description is the same. | No
deliveryData.barCode | Check Input parameters, description is the same. | No
deliveryData.deliveryChannel | The actually used delivery channel. | Yes
deliveryData.selectedDeliveryChannelDisplayName | The exact name of the channel which the delivery has been sent (since 3.2) | No
deliveryData.deliverySubject | Subject line for the delivery, if supported by the channel. The subject line is limited to 255 characters. | No
deliveryData.postalDeliveryMetaData | PostalDeliveryMetaData part will be provided in response too with all same fields which are described for input requests. (Since 4.12) | No
deliveryData.deliveryId | Unique identifier of this delivery process. Can be used to assign received delivery receipts to the correct delivery at a later point in time. | Yes
deliveryData.success | Indicates the success of the delivery (independently from the overall success or the success on document basis). Will be false in case of the asynchronous standard process as the delivery has not yet been handed over to one of the delivery channels. Either the callback or polling mechanism must be used to get further status information about the delivery. So this flag can only be taken into concern in case of synchronous processes. | Yes
deliveryData.infoMessage | XdpMessage: Summary report about the success of the delivery, e.g. which official delivery service has been used. | Yes
deliveryData.transmitDate | Point in time where the electronic delivery took place (e.g. to an official delivery server or the sendhybrid postbox). Independently from the acceptance of the delivery by the receiver. | No
deliveryData.foreignId | Assigned foreign-ID coming from the input (if available). Can be used to assign the delivery process to the process of the client in case of asynchronous callbacks or polling requests. | No
deliveryData.deliveryExecutionTime | Defines the date and time when the delivery will be executed (sent). This field is introduced as part of the Grace Period feature and represents the scheduled execution time of the delivery. The value can be provided explicitly in the request or calculated by the system based on the configured grace period settings. | No
deliveryData.receiver.nameAddressTag | Normalized string containing name and address of the receiver. Can be used for further addressing requests. (since 3.3) | No
tenantId | Alias or tenant id the delivery has been submitted with | Yes
operation | Type of operation the delivery has been submitted with | Yes
userId | User ID of the sender the delivery belongs to | Yes
profile | Name of configuration profile | Yes

### Examples

Standard delivery input

    <xdpDeliveryInput>
        <operation>manualdeliver</operation>
        <document>
            <fileName>document.pdf</fileName>
            <content>cid:460330709963</content>
        </document>
        <foreignId>myFId</foreignId>
        <credential>
            <userId>testuser</userId>
            <tenantId>test</tenantId>
        </credential>
        <config>
            <profileName>manualdeliver</profileName>
        </config>
        <deliveryInput>
            <receiver>
                <email>max.mustermann@test.com</email>
                <physicalPerson>
                    <familyName>Max</familyName>
                    <givenName>Mustermann</givenName>
                    <dateOfBirth>1961-06-16</dateOfBirth>
                </physicalPerson>
                <postalAddress>
                    <street>Mandellstraße</street>
                    <doorNr>5</doorNr>
                    <postalCode>8010</postalCode>
                    <city>Graz</city>
                </postalAddress>
            </receiver>
            <deliveryQuality>NON_R</deliveryQuality>
            <deliveryChannel>bertChannel</deliveryChannel>
            <requiredUserSecClass>SecClass0</requiredUserSecClass>
        </deliveryInput>
    </xdpDeliveryInput>

Standard E-Box / E-Brief delivery input

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
        <soap:Body>
            <!-- In the case of a sent message instead of a delivery, please set the corresponding attribute -->
            <xdpDeliveryInput xmlns="http://www.exthex.com/exdp/types" xmlns:ns2="http://www.exthex.com/exDPDeliveryService" version="2.17">
                <!-- unfavorable name for our standard asynchronous delivery process -->
                <operation>bulk</operation>
                <!-- Main document of the delivery -->
                <document>
                    <!-- The original filename -->
                    <fileName>5006282034_20160218-211512-302.pdf</fileName>
                    <!-- MTOM or BASE64 encoded -->
                    <content>cid:1336311863368</content>
                    <mimeType>application/pdf</mimeType>
                    <!-- The name which will be displayed in the portal (e-BRIEF) -->
                    <displayName>Your new policy 2016-02-18</displayName>
                    <!-- The name of the file when it is downloaded by the user from the portal -->
                    <displayFileName>New_Policy_2016-02-18.pdf</displayFileName>
                    <documentMetaData>
                        <sign>true</sign>
                    </documentMetaData>
                </document>
                <!-- Some attachment to the delivery -->
                <document>
                    <!-- The original filename -->
                    <fileName>5007070229_20160218.idoc.csv</fileName>
                    <!-- MTOM or BASE64 encoded -->
                    <content>cid:133687364783256</content>
                    <mimeType>text/csv</mimeType>
                    <!-- The name which will be displayed in the portal (e-BRIEF) -->
                    <displayName>Policy Metadata</displayName>
                    <!-- The name of the file when it is downloaded by the user from the portal -->
                    <displayFileName>5007070229_20160218.csv</displayFileName>
                    <!-- Marks this document as an attachment. -->
                    <additionalData name="attachment">
                        <stringData>attachment</stringData>
                    </additionalData>
                </document>
                <!-- Some arbitrary string used by the sending system to identify its delivery during polling and callback. -->
                <!-- Could be the internal ID used within the sending system or another ID which is then mapped to some internal ID. -->
                <foreignId>1234567890</foreignId>
                <credential>
                    <!-- authentication -->
                    <userId>webservice-user</userId>
                    <tenantId>thecompany</tenantId>
                </credential>
                <config>
                    <!-- every constant configuration is configured in a profile -->
                    <!-- an arbitrary amount of profiles can be created therefore -->
                    <profileName>standardeBRIEFDelivery</profileName>
                    <!-- Next two configurations defines how the sendhybrid service sends back callbacks to the sending system. -->
                    <deliveryNotificationCallbackWebserviceAddress>https://callback.the-company.com/callback/ws/exDPCallbackService</deliveryNotificationCallbackWebserviceAddress>
                    <deliveryNotificationCallbackChannel>XDPCallbackWebservice</deliveryNotificationCallbackChannel>
                    <!-- If relevant this information can be taken -->
                    <costCenter>TheCompany-CostCenter-1234</costCenter>
                </config>
                <!-- Some arbitrary string used by the sending system to identify its delivery. Will be displayed in the sendhybrid transaction portal. -->
                <jobName>e-BRIEF delivery 20160218</jobName>
                <deliveryInput>
                    <!-- Identifying attributes of the receiver -->
                    <receiver>
                        <email>the.receiver@the-company.com</email>
                        <!-- The unique ID of the receiver from the sending system, to distinguish the different postboxes.
                            This is the Identfication of the postbox. If the genericId is not found, a new postbox will be created, and the users password can be set. -->
                        <genericId>101012121313+the.receiver@her-domain.at</genericId>
                        <!-- Optional: access password for direct acces to deliveries. Availability depends on the postbox (e-BRIEF) configuration. -->
                        <accessPassword>aR52bygYL%WVJ!3*</accessPassword>
                        <physicalPerson>
                            <familyName>Mustermann</familyName>
                            <givenName>Max</givenName>
                        </physicalPerson>
                        <postalAddress>
                            <street>Musterstraße</street>
                            <doorNr>2</doorNr>
                            <postalCode>9000</postalCode>
                            <city>MusterStadt</city>
                            <countryCode>AT</countryCode>
                        </postalAddress>
                    </receiver>
                    <sender>
                        <legalPerson>
                            <name>The Company</name>
                        </legalPerson>
                        <postalAddress>
                            <street>Absendestraße</street>
                            <doorNr>99</doorNr>
                            <postalCode>1234</postalCode>
                            <city>Absendestadt</city>
                            <countryCode>AT</countryCode>
                        </postalAddress>
                    </sender>
                    <returnSender>
                        <email>return.to.me@the-company.com</email>
                        <legalPerson>
                            <name>The Company</name>
                            <detailLine>attn. Mr. Return</detailLine>
                        </legalPerson>
                        <postalAddress>
                            <street>Rücksendestraße</street>
                            <doorNr>991</doorNr>
                            <postalCode>3214</postalCode>
                            <city>RücksendeStadt</city>
                            <countryCode>AT</countryCode>
                        </postalAddress>
                    </returnSender>
                    <!-- A standard delivery with receipt -->
                    <deliveryQuality>RS</deliveryQuality>
                    <!-- The delivery subject which is displayed in the portal (e-BRIEF) - could also be used as the subject for the notification e-mail -->
                    <deliverySubject>Policy 20160218</deliverySubject>
                    <!-- Currently an arbitrary string, not BASE64 encoded -->
                    <deliveryMailBody>Dear customer! A new policy is available. Please click here ${link}!</deliveryMailBody>
                    <!-- A positive integer defines the hours the portal (e-BRIEF) will wait until a notification for all new deliveries, which arrived
                    until this point of time, will be sent.
                    A negative integer indicates that no notification should be sent at all.
                    Zero indicates that notification will be sent immediately (default).
                    The value of this parameter does not influence the portals reminder functionality. -->
                    <muteHours>8</muteHours>
                    <deliveryCategory>Invoice</deliveryCategory>
                    <metaData>
                        <!-- Show remark in column of e-BRIEF -->
                        <inBoxAddendum1>remark</inBoxAddendum1>
                    </metaData>
                </deliveryInput>
            </xdpDeliveryInput>
        </soap:Body>
    </soap:Envelope>

NameAddressTag delivery into E-Brief

    <typ:xdpDeliveryInput version="2.17">
        <typ:operation>manualdeliver</typ:operation>
        <typ:document>
            <typ:fileName>Testfile.pdf</typ:fileName>
            <typ:displayName>Testfile.pdf</typ:displayName>
            <typ:displayFileName>Testfile.pdf</typ:displayFileName>
            <typ:content>cid:256301670586</typ:content>
        </typ:document>
        <typ:foreignId>some_foreign:id</typ:foreignId>
        <typ:credential>
            <typ:userId>mmustermann</typ:userId>
            <typ:tenantId>theTenantId</typ:tenantId>
        </typ:credential>
        <typ:config>
            <typ:profileName>manualdeliver</typ:profileName>
        </typ:config>
        <typ:deliveryInput>
            <typ:receiver>
                <typ:physicalPerson>
                    <typ:familyName>Mustermann</typ:familyName>
                    <typ:givenName>Max</typ:givenName>
                </typ:physicalPerson>
                <typ:postalAddress>
                    <typ:street>Musterstraße</typ:street>
                    <typ:doorNr>1</typ:doorNr>
                    <typ:postalCode>9999</typ:postalCode>
                    <typ:city>Musterstadt</typ:city>
                </typ:postalAddress>
            </typ:receiver>
            <typ:deliveryQuality>NON_R</typ:deliveryQuality>
            <!-- The channel we want to deliver to -->
            <typ:deliveryChannel>bertChannel</typ:deliveryChannel>
            <!-- The security class the receiver must have to access this delivery. -->
            <typ:requiredUserSecClass>SecClass0</typ:requiredUserSecClass>
        </typ:deliveryInput>
    </typ:xdpDeliveryInput>

Input with payment details

    <xdpDeliveryInput>

        <t:document>
            <t:fileName>TheDocument.pdf</t:fileName>
            <t:content>cid:460330709963</t:content>
            <t:postalDocumentMetaData>
                <t:payment>
                    <t:amount>133,54</t:amount>
                    <!-- Both decimal separators allowed -->
                    <!-- <t:amount>133.54</t:amount> -->´

                    <!-- Currency is opional. Default is EUR -->
                    <t:currency>EUR</t:currency>
                    <!-- payment reference -->
                    <t:customerData>090000296429</t:customerData>
                    <!-- Format: dd.MM.yyyy -->
                    <t:dueDate>21.02.2016</t:dueDate>
                    <!-- IBAN without blanks -->
                    <t:iban>AT121234567891011123</t:iban>
                    <t:bic>RZSTAT2G457</t:bic>

                    <!-- If this field is not set then the values from the Receiver are used -->
                    <t:accountOwner>Max Mustermann</t:accountOwner>
                    <!-- Title of the payslip, often used to present the name of the bank -->
                    <t:financialInstitution>Bank sendhybrid</t:financialInstitution>
                    <!-- Creditor ID -->
                    <t:receiverId>AT75UUU00000048187</t:receiverId>
                </t:payment>
                <t:generationDataPaymentSlipA4Portrait>
                    <t:rightSide_ReceiverLine1>Gemeinde Musterstadt</t:rightSide_ReceiverLine1>
                    <t:rightSide_ReceiverLine2>9999 Musterstadt</t:rightSide_ReceiverLine2>
                    <!-- Check digit for the payment reference, see paymentType.customerData -->
                    <t:rightSide_checkDigit>3210</t:rightSide_checkDigit>
                    <t:rightSide_ReasonLine1>Bitte geben Sie bei Online Zahlungen </t:rightSide_ReasonLine1>
                    <!-- rightSide_ReasonLine2 intentionally not used -->
                    <!-- <t:rightSide_ReasonLine2></t:rightSide_ReasonLine2> -->
                    <t:rightSide_ReasonLine3>folgende Zahlunsgreferenz an: 090000296429</t:rightSide_ReasonLine3>
                    <!-- rightSide_ReasonLine4 intentionally not used -->
                    <!-- <t:rightSide_ReasonLine4></t:rightSide_ReasonLine4> -->
                    <t:leftSide_ReceiverLine1>Gemeinde Musterstadt</t:leftSide_ReceiverLine1>
                    <t:leftSide_ReasonLine1>090000296429</t:leftSide_ReasonLine1>
                    <!--
                    <t:leftSide_ReasonLine2></t:leftSide_ReasonLine2>
                    <t:leftSide_ReasonLine3></t:leftSide_ReasonLine3>
                    <t:leftSide_ReasonLine4></t:leftSide_ReasonLine4>
                    <t:leftSide_ReasonLine5></t:leftSide_ReasonLine5>
                    <t:leftSide_ReasonLine6></t:leftSide_ReasonLine6>
                    <t:leftSide_ReasonLine7></t:leftSide_ReasonLine7>
                    -->
                    <t:IBAN_Sender>AT987654321012345678</t:IBAN_Sender>
                    <!-- Optional -->
                    <typ:payer>
                        <typ:physicalPerson>
                            <!-- Mandatory -->
                            <typ:familyName>Tester (Payer)</typ:familyName>
                            <!-- Mandatory -->
                            <typ:givenName>Tom</typ:givenName>
                        </typ:physicalPerson>
                        <!-- Mandatory -->
                        <typ:genericId>123456</typ:genericId>
                    </typ:payer>
                </t:generationDataPaymentSlipA4Portrait>
            </t:postalDocumentMetaData>
        </t:document>
        <!-- more code goes here -->
    </xdpDeliveryInput>

Input with a document annotated as an attchment

    <xdpDeliveryInput>

      <document>
        <fileName>document.pdf</fileName>
        <content>cid:460330709963</content>
        <postalDocumentMetaData/>
        <electronicDocumentMetaData>
          <sign>false</sign>
        </electronicDocumentMetaData>
        <additionalData name="attachment">
          <stringData>attachment</stringData>
        </additionalData>
        <additionalData name="tags">
          <stringData>postal,electronic</stringData>
        </additionalData>
      </document>

      <!-- more code goes here -->

    </xdpDeliveryInput>

Input with a document that should be printed in color

    <xdpDeliveryInput>

      <document>
        <fileName>document.pdf</fileName>
        <content>cid:460330709963</content>
        <documentOptions>
          <entry>
            <key>COLOR_MODE</key>
            <value>CMYK</value>
          </entry>
        </documentOptions>
      </document>
    </xdpDeliveryInput>

Input where an address page should be appended

    <deliveryInput>
        <deliveryOptions>
            <entry>
                <key>ADDRESS_PAGE</key>
                <value>true</value>
            </entry>
            <entry>
                <key>ADDRESS_PAGE_TEXT</key>
                <value>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</value>
            </entry>
        </deliveryOptions>
    </deliveryInput>

Result

    <xdpDeliveryResult xmlns="http://www.exthex.com/exdp/types">
      <deliveryData>
        <receiver>
          <email>autotestuser@test.exthex.com</email>
          <physicalPerson>
            <familyName>Ferbas</familyName>
            <givenName>David</givenName>
            <dateOfBirth>1961-06-16</dateOfBirth>
          </physicalPerson>
          <postalAddress>
            <street>Mandellstraße</street>
            <doorNr>5</doorNr>
            <postalCode>8010</postalCode>
            <city>Graz</city>
          </postalAddress>
        </receiver>
        <deliveryQuality>NORMAL</deliveryQuality>
        <deliveryChannel>emailChannel</deliveryChannel>
        <deliveryId>68</deliveryId>
        <success>true</success>
        <infoMessage>
          <id>XDP_570</id>
          <message>E-Mail delivery successful to autotestuser@test.exthex.com</message>
        </infoMessage>
        <expectReceipt>true</expectReceipt>
        <transmitDate>2010-09-16T14:22:30.872+02:00</transmitDate>
        <foreignId>myFId</foreignId>
      </deliveryData>
      <documentResult>
        <success>true</success>
        <infoMessage>
          <id>XDP_470</id>
          <message>PDF-AS Signature successful with keyid test-_-demoamt</message>
        </infoMessage>
        <document>
          <fileName>document_sig.pdf</fileName>
          <content>
            <xop:Include href="cid:9f6c9733-a3c6-4f54-80b3-13b0beba2a07-4@www.exthex.com" xmlns:xop="http://www.w3.org/2004/08/xop/include" />
          </content>
          <mimeType>application/pdf</mimeType>
        </document>
      </documentResult>
      <success>true</success>
      <finished>true</finished>
      <infoMessage>
        <id>XDP_970</id>
        <message>Processing successful</message>
      </infoMessage>
    </xdpDeliveryResult>

#### 2.5.1 BZD Delivery

#### Terms

acronym | German meaning | English translation and meaning
--- | --- | ---
BZD | Behördlicher Zustelldienst | governmental delivery service
ZKOPF | “Zustell Kopf” | “delivery head”, an Austrian governmental service to identify citizens. (old Impl.) Deprecated. Use TNVZ instaed.
TNVZ | ‘Teilnehmerverzeichnis’ | Directory of participants registered for electronic delivery.
SZR | “Stammzahlenregister” | “register of residents”, a register, managed by the Austrian government, containing data of a person’s identity and addresses
ZbPK | Bereichsspezifisches Personenkennzeichen für den Bereich Zustellung | area specific personal identifier for the sector delivery
gvZbPK | behördlich verschlüsseltes ZbPK | governmental encrypted
ERV | Elektronische Rechtsverkehr | an electronic communication system between courts, lawyers, the government, banks and insurance companies

# TNVZ call

The first step for the delivery is the TNVZ query, here the gvZbPK is retrieved, it is the final personal identifier needed.

The TNVZ query is requested to check, if it’s possible to send a document to a recipient, which can be either a physical or a legal person, electronically.

# Delivery to BZD and polling

If a receiver was found in one or more BZD systems one ID is randomly selected, then the delivery is sent to BZD.

The BZD will process the delivery and 2 possible callbacks will be available in case of RSa, RSb which can then be polled (Interface zuse2app in xdpTxService).

## Polling Results

| Delivered to BZD | Delivery read by user | Receiver did not pick up delivery errorCode: 601 | `Receiver notification failed` `errorCode:(602)` | `Receiver notification failed and` `receiver did not pick up delivery` `errorCode:(603)`
--- | --- | --- | --- | --- | ---
error state | no | no | no | yes | yes
final state | no | yes | yes | no | yes

# Additional information

More about eDelivery software module (BZD channel) in:

More about callback and polling in 3 SOAP xdpTx WebService (Callback-, Polling interface, …).

A more detailed description of BZD in under 1. A governmental delivery service.

##### 2.5.1.1 ActionUrl File

There is the possibility to send the links in addition to the documents. These links must be marked as attachment and sent as xml files in a special format.

Document must be marked as attachment so that the document is not converted into the pdf.

#### Document marked as attachment

    <document>
        <fileName>Attachment-URLActions.xml</fileName>
        <content>cid:237761187778</content>
        <mimeType>application/xml</mimeType>
        <additionalData name="attachment">
            <stringData>attachment</stringData>
        </additionalData>
    </document>

According to the specification, the content itself should have this form:

ActionUrl.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Specifying urlaction namespaces is mandatory -->
    <url:Actions xmlns:url="http://reference.e-government.gv.at/namespace/zustellung/urlaction/20180116#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://reference.e-government.gv.at/namespace/zustellung/urlaction/20180116# ../../schema/urlaction/urlaction.xsd">
        <url:Action xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="url:UrlMessageActionType" Id="urlactions">
            <!-- URI scheme: is restricted to "https" -->
            <url:UriSchema>https</url:UriSchema>
            <!--  {DOMAIN_NAME} -->
            <url:DomainName>{DNS-Name des Hosts, IP-Adressen  sind nicht zulässig}</url:DomainName>
            <!--  {PATH_QUERY_FRAGMENT} not obligatory -->
            <url:PathQueryFragment>{Restliche Teile der URL (=relative URI) bestehend aus Verzeichnispfad, Abfrageparametern und/oder         Fragmentangabe (Anker)}</url:PathQueryFragment>
            <!-- Text: not obligatory -->
            <url:Text>{Beschriftung des Links}</url:Text>
            <!-- Tooltip: not obligatory -->
            <url:Tooltip>{Tooltiptext zum Link, welcher z.B. als Sprechblasentipp (Balloon Tip) angezeigt wird}</url:Tooltip>
        </url:Action>
    </url:Actions>

#### Example of a actioUrl.xml

    <url:Actions xmlns:url="http://reference.e-government.gv.at/namespace/zustellung/urlaction/20180116#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://reference.e-government.gv.at/namespace/zustellung/urlaction/20180116# ../../schema/urlaction/urlaction.xsd">
        <url:Action xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="url:UrlMessageActionType" Id="urlactions">
            <url:UriSchema>https</url:UriSchema>
            <url:DomainName>sso.sozialversicherung.at</url:DomainName>
            <url:PathQueryFragment>ibsys-sso/pvp/sso?entityID=https%3A%2F%2Fsecure.oesterreich.gv.at%2Fauth%2Fidp%2Fshibboleth&amp;target=https%3A%2F%2Fwww.meine-uv.at%2Fuvportal%2Fviews%2Fpublic%2Fversicherte%2Fmeinefaelle.xhtml</url:PathQueryFragment>
            <url:Text>Antworten</url:Text>
            <url:Tooltip>Elektronisch über das MeineUV-Portal antworten</url:Tooltip>
        </url:Action>
    </url:Actions>

Note:

It is important that the xml file is xml compliant. you have to pay particular attention that all characters in the url are written xml conform.

There are certain characters which are not valid in XML - you need to “escape” these in the xml document. These characters and their “escapted” versions are:
> `&gt;`
< `&lt;`
& `&amp;`
’ `&apos;`
” `&quot;`

#### Request example

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://www.exthex.com/exdp/types">
       <soapenv:Header/>
       <soapenv:Body>
           <xdpDeliveryInput xmlns="http://www.exthex.com/exdp/types">
                <operation>bulk</operation>
                <document>
                    <fileName>Attachment-URLActions.xml</fileName>
                    <content>cid:237761187778</content>
                    <mimeType>application/xml</mimeType>
                    <additionalData name="attachment">
                        <stringData>attachment</stringData>
                    </additionalData>
                </document>
                <document>
                    <fileName>pdf-sample.pdf</fileName>
                    <content>cid:237761187778</content>
                    <mimeType>application/pdf</mimeType>
                </document>
                <foreignId>${=java.util.UUID.randomUUID()}</foreignId>
                <credential>
                    <userId>mmustermann</userId>
                    <tenantId>dev</tenantId>
                </credential>
                <config>
                     <!--
                     NON_RSA
                    <profileName>PMZusePrintZustellung</profileName>
                    RSA
                    <profileName>HybridRueckscheinBeh</profileName>
                    -->
                    <profileName>bzdProfile</profileName>
                </config>
                <deliveryInput>
                    <receiver>
                        <physicalPerson>
                            <familyName>Mustermann</familyName>
                            <givenName>Max</givenName>

                        </physicalPerson>
                        <postalAddress>
                            <street>Teststreet</street>
                            <doorNr>15</doorNr>
                            <postalCode>1010</postalCode>
                            <city>Wien</city>
                            <countryCode>AT</countryCode>
                        </postalAddress>
                    </receiver>
                    <sender>
                        <legalPerson>
                            <name>Gemeinde Pusterwald</name>
                            <registerNr>9110004985539</registerNr>
                            <registerType>ERsB</registerType>
                        </legalPerson>
                        <postalAddress>
                            <street>Pusterwald</street>
                            <doorNr>51</doorNr>
                            <postalCode>8764</postalCode>
                            <city>Pusterwald</city>
                            <countryCode>AT</countryCode>
                        </postalAddress>
                    </sender>
                    <deliveryQuality>NON_RSA</deliveryQuality>
                    <hybridLetterMetaData>
                        <businessNumber1>9841 010140-001</businessNumber1>
                        <businessNumber2>8018605888</businessNumber2>
                    </hybridLetterMetaData>
                    <deliverySubject>Information Allgemein</deliverySubject>
                    <deliveryMailBody>Ihre elektronische Zustellung befindet sich im Anhang.</deliveryMailBody>
                </deliveryInput>
            </xdpDeliveryInput>
       </soapenv:Body>
    </soapenv:Envelope>

##### Spezifikations Änderungen 2022

Spezifikationsänderungen im eDelivery Modul (Zustelldienst) ist im Nov. 2021 Produktiv gestellt. Die Versender hatten dann noch ein Jahr Zeit um diese Änderungen auch bei ihren Applikationen zu implementieren

Folgende xsd-s wurden verändert:

zusetnvz_p2.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Mit XMLSpy v2016 (http://www.altova.com) von Arne Tauber (TU Graz) bearbeitet -->
    <!--    ###

            Die Versionsnummer des Schemas wird immer dann hochgezogen, wenn das Schema
            selbst verändert wurde aber auch dann, wenn zumindest eines der importierten
            ZUSE-Schemata angepasst wurde.

            ###-->
    <xs:schema xmlns:tnvz="http://reference.e-government.gv.at/namespace/zustellung/tnvz/phase2/20181206#" xmlns:p="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msg="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/tnvz/phase2/20181206#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.1.0-002">
        <!--### Imports ###-->
        <!--### ZUSE-Personendaten: namespace="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" version="2.1.0-003" ###-->
        <xs:import namespace="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" schemaLocation="../zusemsg/zuse_mypersondata_en_p2.xsd"/>
        <!--### ZUSE-Nachricht: namespace="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" version="2.1.0-003" ###-->
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" schemaLocation="../zusemsg/zuse_p2.xsd"/>
        <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="../zusemsg/W3C-XMLDSig.xsd"/>
        <xs:import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="../zusemsg/xenc-schema.xsd"/>
        <!--******** Definition der  Request- und Response-Elemente  ********-->
        <!--****************** Abfrage der Webserviceversion *******************-->
        <xs:element name="GetVersionRequest" type="msg:SimpleRequestType"/>
        <xs:element name="GetVersionResponse">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Version">
                        <xs:simpleType>
                            <xs:restriction base="msg:VersionNumberType">
                                <xs:enumeration value="2.1.0-002"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="GetInfoRequest" type="msg:SimpleRequestType"/>
        <xs:element name="GetInfoResponse">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Property" minOccurs="0" maxOccurs="unbounded">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="Value" type="xs:token"/>
                            </xs:sequence>
                            <xs:attribute name="Name" type="xs:token" use="required"/>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <!--*************** Abfrage des Teilnehmerverzeichnisses **************-->
        <xs:element name="QueryPersonRequest">
            <xs:annotation>
                <xs:documentation>Suchabfrage</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="QueryEntryList">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="QueryEntry" type="tnvz:PersonQueryType" maxOccurs="unbounded">
                                    <xs:annotation>
                                        <xs:documentation>Abfrageeintrag: Pro Request kann nach ein oder mehreren Personen gesucht werden</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
                <xs:attribute name="Version" type="msg:VersionNumberType" use="optional">
                    <xs:annotation>
                        <xs:documentation>Ist seitVersion 2-1.0-001 Pflicht. MUSS während der Übergangsfrist optional bleiben, damit das XML Schema für Versender abwärtskompatibel bleibt</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:complexType>
        </xs:element>
        <xs:element name="QueryPersonResponse">
            <xs:complexType>
                <xs:choice>
                    <xs:sequence>
                        <xs:element ref="tnvz:StandardMimeTypeList"/>
                        <xs:element name="QueryResultList">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="QueryResult" type="tnvz:PersonResultType" maxOccurs="unbounded"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:element ref="tnvz:Error"/>
                </xs:choice>
            </xs:complexType>
        </xs:element>
        <!--*** Abfrage der Adressierbarkeit eines Teilnehmers durch ein Zustellsystem ***-->
        <xs:element name="QueryAddressabilityRequest">
            <xs:annotation>
                <xs:documentation>Erreichbarkeitsabfrage</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="QueryEntryList">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="QueryEntry" type="tnvz:AddressabilityQueryType" maxOccurs="unbounded"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
                <xs:attribute name="Version" type="msg:VersionNumberType" use="required"/>
            </xs:complexType>
        </xs:element>
        <xs:element name="QueryAddressabilityResponse">
            <xs:complexType>
                <xs:choice>
                    <xs:sequence>
                        <xs:element ref="tnvz:StandardMimeTypeList"/>
                        <xs:element name="QueryResultList">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="QueryResult" type="tnvz:AddressabilityResultType" maxOccurs="unbounded"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:element ref="tnvz:Error"/>
                </xs:choice>
            </xs:complexType>
        </xs:element>
        <!--********************************* Query Person  ************************************ -->
        <xs:element name="PersonQuery" type="tnvz:PersonQueryType">
            <xs:annotation>
                <xs:documentation>Abfrageeintrag: Pro Request können 1 oder mehrere Personen abgefragt werden</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="PersonQueryType">
            <xs:sequence>
                <xs:element ref="tnvz:Sender"/>
                <xs:element ref="tnvz:Receiver"/>
                <xs:element name="MetaData">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="msg:Origin">
                                <xs:annotation>
                                    <xs:documentation>Kommunikationssystem der Behörde oder Zustelldienst über den die Nachricht übermittelt werden soll.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:choice>
                                <xs:element ref="msg:DeliveryQuality"/>
                                <xs:element ref="msg:PrivateMessageQuality"/>
                            </xs:choice>
                            <xs:element ref="msg:PreAdviceNote" minOccurs="0"/>
                            <xs:element ref="msg:IgnorePostRedirectionOrder" minOccurs="0"/>
                            <xs:element ref="msg:MetadataList" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="EntryID" type="msg:token256" use="required"/>
        </xs:complexType>
        <xs:element name="PersonResult" type="tnvz:PersonResultType"/>
        <xs:complexType name="PersonResultType">
            <xs:annotation>
                <xs:documentation>attribute: EntryID</xs:documentation>
            </xs:annotation>
            <xs:choice>
                <xs:element name="Success" type="tnvz:PersonResultSuccessType"/>
                <xs:element name="Error">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="msg:ErrorInfo"/>
                            <xs:element ref="msg:PreAdviceNoteSent" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:choice>
            <xs:attribute name="EntryID" type="msg:token256" use="required"/>
        </xs:complexType>
        <xs:complexType name="PersonResultSuccessType">
            <xs:sequence>
                <xs:element ref="p:Identification"/>
                <xs:element name="AllStandardMimeTypes" type="msg:IndicatorType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Existenz zeigt an, dass an diesen Empfänger Dokumente mit MIME-Typen gemäß der allgemein gültigen Liste der Standard-MIME-Typen gesendet werden kann. </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ERVForwardingEnabled" type="msg:IndicatorType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Existenz zeigt an, dass der Empfänger die Weiterleitung in den ERV aktiviert hat</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="tnvz:MimeTypeList" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <!--*************************** Query Addressability **************************-->
        <xs:element name="AddressabilityQuery" type="tnvz:AddressabilityQueryType">
            <xs:annotation>
                <xs:documentation>attribute: ID</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="AddressabilityQueryType">
            <xs:sequence>
                <xs:element ref="tnvz:Sender"/>
                <xs:element ref="tnvz:Receiver"/>
                <xs:element name="MetaData">
                    <xs:annotation>
                        <xs:documentation>Metadaten der Erreichbarkeitsabfrage</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="msg:Origin">
                                <xs:annotation>
                                    <xs:documentation>Zustellsystem über das die Nachricht übermittelt wird.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element ref="msg:ZSDeliveryID"/>
                            <xs:choice>
                                <xs:element ref="msg:DeliveryQuality"/>
                                <xs:element ref="msg:PrivateMessageQuality"/>
                            </xs:choice>
                            <xs:element ref="msg:PreAdviceNote" minOccurs="0"/>
                            <xs:element ref="msg:IgnorePostRedirectionOrder" minOccurs="0"/>
                            <xs:element ref="msg:MetadataList" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="EntryID" type="msg:token256" use="required"/>
        </xs:complexType>
        <xs:element name="AddressabilityResult" type="tnvz:AddressabilityResultType"/>
        <xs:complexType name="AddressabilityResultType">
            <xs:annotation>
                <xs:documentation>attribute: EntryID</xs:documentation>
            </xs:annotation>
            <xs:choice>
                <xs:element name="Success" type="tnvz:AddressabilityResultSuccessType"/>
                <xs:element name="Error">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="msg:ErrorInfo"/>
                            <xs:element ref="msg:PreAdviceNoteSent" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:choice>
            <xs:attribute name="EntryID" type="msg:token256" use="required"/>
        </xs:complexType>
        <xs:complexType name="AddressabilityResultSuccessType">
            <xs:complexContent>
                <xs:extension base="tnvz:PersonResultSuccessType">
                    <xs:sequence>
                        <xs:element ref="tnvz:EncryptedZUSEToken"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <!--****************** Definition der Datenelemente und - typen  ***************-->
        <xs:element name="Sender">
            <xs:annotation>
                <xs:documentation>Informationen zur versendenden Behörde</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="p:Identification"/>
                    <xs:element ref="p:Person"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="Receiver">
            <xs:annotation>
                <xs:documentation>Informationen zum Empfänger</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:choice>
                    <xs:element ref="p:Identification"/>
                    <xs:sequence>
                        <xs:element ref="p:Person"/>
                        <xs:element ref="msg:AustrianAddressesOnly" minOccurs="0"/>
                        <xs:element ref="msg:NotificationAddressList" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Ein oder mehrere Verständigungsadressen mit deren Hilfe der Empfänger eindeutig bestimmt werden soll</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="p:PostalAddress" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Postal or ZMR Address, compare PostAdresse (Dient in diesem Fall rein zur eindeutigen Bestimmung eines Empfängers)</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:choice>
            </xs:complexType>
        </xs:element>
        <xs:element name="StandardMimeTypeList" type="tnvz:MimeTypeListType">
            <xs:annotation>
                <xs:documentation>Liste der üblichen Formaten, die der Teilnehmer jedenfalls akzeptieren muss und nicht abwählen kann. (Ausnahme: der ERV verarbeitet nur für die Langzeitarchivung geeignete PDF Formate)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="MimeTypeListType">
            <xs:sequence>
                <xs:element ref="msg:MimeType" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="MimeTypeList">
            <xs:annotation>
                <xs:documentation>Liste der Dateiformate, die vom Empfänger neben den üblichen Formaten unterstützt werden </xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:MimeType" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="EncryptedZUSEToken">
            <xs:annotation>
                <xs:documentation>Inhalt des verschlüsselten ZUSETokens:
    • Zeitpunkt
    • Versender (bPK/Stammzahl)
    • Empfänger (bPK/Stammzahl)
    • ZSDeliveryID
    • Origin
    • DeliveryQuality oder PrivateMessageQuality</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="xenc:EncryptedData">
                        <xs:annotation>
                            <xs:documentation>Verschlüsseltes Element 'tnvz:ZUSEToken'</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="Error" type="msg:ErrorInfoType">
            <xs:annotation>
                <xs:documentation>Fehlermeldung</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Property">
            <xs:annotation>
                <xs:documentation>Systemeigenschaft des TNVZ wie beispielsweise die maximale Anzahl von GetEntries</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Value" type="xs:token"/>
                </xs:sequence>
                <xs:attribute name="Name" type="xs:token" use="required"/>
            </xs:complexType>
        </xs:element>
    </xs:schema>

zuse_mypersondata_en_p2.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Mit XMLSpy v2016 (http://www.altova.com) von Arne Tauber (TU Graz) bearbeitet -->
    <xs:schema
        xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:p="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#"
        targetNamespace="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified"
        version="2.1.0-003">
        <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="W3C-XMLDSig.xsd"/>
        <xs:annotation>
            <xs:documentation>This version of person deploys only global elements. All types derived from abstract types have been replaced by substitution groups</xs:documentation>
        </xs:annotation>
        <!-- ### structure for person data ### -->
        <xs:element name="Person" type="p:AbstractPersonType" abstract="true"/>
        <!-- ### structure of a person with Identification ### -->
        <xs:element name="PersonAndIdentification" type="p:PersonAndIdentificationType">
            <xs:annotation>
                <xs:documentation>element of person details type</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!-- ### structure of a person with address### -->
        <xs:element name="PersonAndAddress" type="p:PersonAndAddressType">
            <xs:annotation>
                <xs:documentation>element of signed person datastructure type</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!-- ### physical person, corporate body and authority ### -->
        <xs:element name="PhysicalPerson" type="p:PhysicalPersonType" substitutionGroup="p:Person">
            <xs:annotation>
                <xs:documentation>element of physical person type, dreived from Person </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="CorporateBody" type="p:CorporateBodyType" substitutionGroup="p:Person">
            <xs:annotation>
                <xs:documentation>element of corporate body type, derived from Person</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Name" type="p:PersonNameType">
            <xs:annotation>
                <xs:documentation>data related to the person's name</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="FullName" type="xs:token">
            <xs:annotation>
                <xs:documentation>name of corporate body (whole name), compare VollerName</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Organization" type="xs:token">
            <xs:annotation>
                <xs:documentation>part of an organisation, see also X.500 ou (eg departement, section, branch, ...) , compare Organisation</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Target" type="xs:anyURI">
            <xs:annotation>
                <xs:documentation>Beinhaltet die Bereichskennung und entweder das VKZ oder den Service-Identifier  der Zielorganisation für die das vbPK-ZU umzuschlüsseln ist. Das Target ist in der Form "urn:publicid:gv.at:ecdid+«VKZ od. Service-ID»+«Bereich»" zu liefern. (vgl. SZR 3.0 Anwendungsdokumentation)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DateOfBirth" type="xs:date">
            <xs:annotation>
                <xs:documentation>date of birth, compare Geburtsdatum</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!-- ### adress data for various types of communications ### -->
        <xs:element name="Address" type="p:AbstractAddressType" abstract="true"/>
        <xs:element name="PostalAddress" type="p:PostalAddressType" substitutionGroup="p:Address">
            <xs:annotation>
                <xs:documentation>Postal or ZMR Address, compare PostAdresse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="InternetAddress" type="p:InternetAddressType" substitutionGroup="p:Address">
            <xs:annotation>
                <xs:documentation>element of internet address type</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="TelephoneAddress" type="p:TelephoneAddressType" substitutionGroup="p:Address">
            <xs:annotation>
                <xs:documentation>element of TelephoneAddressType, compare TelefonAdresse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!-- ###  Identification elements ###-->
        <xs:element name="Identification" type="p:IdentificationType">
            <xs:annotation>
                <xs:documentation>unique identifier</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="IdentificationType">
            <xs:annotation>
                <xs:documentation>unique identifier</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="Value">
                    <xs:annotation>
                        <xs:documentation>actual value of the identifier.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="Id" type="xs:ID" use="optional"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Type" type="xs:anyURI">
                    <xs:annotation>
                        <xs:documentation>type of value (eg 'ZMR', 'SV-Nummer', 'Martrikelnummer', database identification, ...)</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
        </xs:complexType>
        <!--### Complex types ###-->
        <xs:complexType name="PersonAndIdentificationType">
            <xs:annotation>
                <xs:documentation>person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements).</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="p:Identification"/>
                <xs:element ref="p:Person"/>
            </xs:sequence>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
        </xs:complexType>
        <xs:complexType name="PersonAndAddressType">
            <xs:annotation>
                <xs:documentation>signed person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements).</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="p:Identification"/>
                <xs:element ref="p:Person"/>
                <xs:element ref="p:Address" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
        </xs:complexType>
        <xs:complexType name="AbstractPersonType" abstract="true">
            <xs:annotation>
                <xs:documentation>main structure of person data</xs:documentation>
            </xs:annotation>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
        </xs:complexType>
        <xs:complexType name="PhysicalPersonType">
            <xs:annotation>
                <xs:documentation>physical person</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="p:AbstractPersonType">
                    <xs:sequence>
                        <xs:element ref="p:Name"/>
                        <xs:element ref="p:DateOfBirth" minOccurs="0"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="PersonNameType">
            <xs:sequence>
                <xs:element name="GivenName" type="xs:string"/>
                <xs:element name="FamilyName">
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="primary">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:enumeration value="true"/>
                                            <xs:enumeration value="false"/>
                                            <xs:enumeration value="undefined"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <xs:attribute name="prefix" type="xs:string"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Affix" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Inlcudes all Information that is not exactly a name: academic or aristocratic titles, ... the new position attribute can contain a suffx or prefix value</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="type" use="required">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:enumeration value="academicGrade"/>
                                            <xs:enumeration value="aristocraticPrefix"/>
                                            <xs:enumeration value="aristocraticTitle"/>
                                            <xs:enumeration value="familyNamePrefix"/>
                                            <xs:enumeration value="familyNameSuffix"/>
                                            <xs:enumeration value="formOfAddress"/>
                                            <xs:enumeration value="generation"/>
                                            <xs:enumeration value="qualification"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <xs:attribute name="position" use="optional">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:enumeration value="prefix"/>
                                            <xs:enumeration value="suffix"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="AuthorityType">
            <xs:annotation>
                <xs:documentation>public authority</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="p:AbstractPersonType">
                    <xs:sequence>
                        <xs:element ref="p:FullName"/>
                        <xs:element ref="p:Organization" minOccurs="0"/>
                        <xs:element ref="p:Target" minOccurs="0"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="CorporateBodyType">
            <xs:annotation>
                <xs:documentation>juridical person, organisation</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="p:AbstractPersonType">
                    <xs:sequence>
                        <xs:element ref="p:FullName"/>
                        <xs:element ref="p:Organization" minOccurs="0"/>
                        <xs:element ref="p:Target" minOccurs="0"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="AbstractAddressType">
            <xs:annotation>
                <xs:documentation>main structure of address data </xs:documentation>
            </xs:annotation>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
        </xs:complexType>
        <xs:complexType name="PostalAddressType">
            <xs:complexContent>
                <xs:extension base="p:AbstractAddressType">
                    <xs:sequence>
                        <xs:element name="CountryCode" type="xs:string" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Code for the country, use ISO or internatinal Postalstandard, compare Staatscode</xs:documentation>
                            </xs:annotation>
                            <!-- xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:pattern value="[A-Z]{2}"/>
                                </xs:restriction>
                            </xs:simpleType  -->
                        </xs:element>
                        <xs:element name="PostalCode" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>ZIP, compare Postleitzahl</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Municipality" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>compare Gemeinde</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="MunicipalityNumber" type="xs:string" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>compare Gemeindekennzahl</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="DeliveryAddress">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="StreetName" type="xs:string"/>
                                    <xs:element name="BuildingNumber" type="xs:string"/>
                                    <xs:element name="Unit" type="xs:string" minOccurs="0"/>
                                    <xs:element name="DoorNumber" type="xs:string" minOccurs="0"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="type">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="postOfficeBoxAddress"/>
                                <xs:enumeration value="streetAddress"/>
                                <xs:enumeration value="militaryAddress"/>
                                <xs:enumeration value="undefined"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="InternetAddressType">
            <xs:annotation>
                <xs:documentation>internet based communication</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="p:AbstractAddressType">
                    <xs:sequence>
                        <xs:element name="Address" type="xs:anyURI">
                            <xs:annotation>
                                <xs:documentation>URI: email-Address, Web, FTP, LDAP, ..., compare Adress</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="TelephoneAddressType">
            <xs:annotation>
                <xs:documentation>phone numbers</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="p:AbstractAddressType">
                    <xs:sequence>
                        <xs:element name="Number" type="xs:token">
                            <xs:annotation>
                                <xs:documentation>phonenumber</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="MessengerService" type="xs:token">
                        <xs:annotation>
                            <xs:documentation>SMS, WhatsApp, etc.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <!-- ### strings of defined maximum lenght for use with ZMR address #### -->
        <xs:simpleType name="string3">
            <xs:restriction base="xs:string">
                <xs:maxLength value="3"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string4">
            <xs:restriction base="xs:string">
                <xs:maxLength value="4"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string7">
            <xs:restriction base="xs:string">
                <xs:maxLength value="7"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string20">
            <xs:restriction base="xs:string">
                <xs:maxLength value="20"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string30">
            <xs:restriction base="xs:string">
                <xs:maxLength value="30"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string50">
            <xs:restriction base="xs:string">
                <xs:maxLength value="50"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string100">
            <xs:restriction base="xs:string">
                <xs:maxLength value="100"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="integer5">
            <xs:restriction base="xs:integer">
                <xs:minInclusive value="10000"/>
                <xs:maxInclusive value="99999"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:schema>

zuse_p2.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Mit XMLSpy v2016 (http://www.altova.com) von Arne Tauber (TU Graz) bearbeitet -->
    <!--    ###

            Die Versionsnummer des Schemas wird immer dann hochgezogen, wenn das Schema
            selbst verändert wurde aber auch dann, wenn zumindest eines der importierten
            ZUSE-Schemata angepasst wurde.

            ###-->
    <xs:schema
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:p="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#"
        xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
        xmlns:msg="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#"
        xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"
        targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified"
        version="2.1.0-003">
        <!--### Imports ###-->
        <!--### ZUSE-Personendaten: namespace="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" version="2.1.0-003" ###-->
        <xs:import namespace="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" schemaLocation="zuse_mypersondata_en_p2.xsd"/>
        <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="W3C-XMLDSig.xsd"/>
        <!--### Abfrage der Webserviceversion-->
        <xs:element name="GetVersionRequest" type="msg:SimpleRequestType"/>
        <xs:element name="GetVersionResponse">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Version" type="msg:VersionNumberType" fixed="2.1.0-003"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <!--###  Nachrichten und Nachrichtenstrukturen ###-->
        <!--###  Zustellstückanlieferung ###-->
        <xs:element name="DeliveryRequest" type="msg:DeliveryRequestType">
            <xs:annotation>
                <xs:documentation>Zustellstückanlieferung</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryRequestType">
            <xs:sequence>
                <xs:element ref="msg:Sender"/>
                <xs:element ref="msg:Receiver">
                    <xs:annotation>
                        <xs:documentation>Adressierung des Empfängers</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="msg:MetaData"/>
                <xs:element name="Attachments" type="msg:AttachmentsType">
                    <xs:annotation>
                        <xs:documentation>Anhänge</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="Version" type="msg:VersionNumberType"/>
        </xs:complexType>
        <xs:element name="DeliveryResponse" type="msg:DeliveryRequestStatusType"/>
        <xs:element name="DeliveryRequestStatus" type="msg:DeliveryRequestStatusType">
            <xs:annotation>
                <xs:documentation>Webservice Response of ZSDeliveryRequest, also to used asynchronously </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryRequestStatusType">
            <xs:sequence>
                <xs:choice>
                    <xs:element name="Success">
                        <xs:annotation>
                            <xs:documentation>Zustellstück wurde erfolgreich übernommen</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:complexContent>
                                <xs:extension base="msg:DeliveryAnswerType">
                                    <xs:sequence>
                                        <xs:element ref="msg:DeliveryTimestamp"/>
                                    </xs:sequence>
                                </xs:extension>
                            </xs:complexContent>
                        </xs:complexType>
                    </xs:element>
                    <xs:element name="PartialSuccess">
                        <xs:annotation>
                            <xs:documentation>Zustellstück wurde erfolgreich übernommen, attachment wird später geladen</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:complexContent>
                                <xs:extension base="msg:DeliveryAnswerType"/>
                            </xs:complexContent>
                        </xs:complexType>
                    </xs:element>
                    <xs:element name="Error">
                        <xs:annotation>
                            <xs:documentation>Zustellstück konnte nicht übernommen werden</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:complexContent>
                                <xs:extension base="msg:DeliveryAnswerType">
                                    <xs:sequence>
                                        <xs:element ref="msg:ErrorInfo"/>
                                        <xs:element ref="msg:PreAdviceNoteSent" minOccurs="0"/>
                                    </xs:sequence>
                                </xs:extension>
                            </xs:complexContent>
                        </xs:complexType>
                    </xs:element>
                </xs:choice>
                <xs:element ref="msg:RelayedViaERV" minOccurs="0"/>
                <xs:element ref="dsig:Signature"/>
            </xs:sequence>
            <xs:attribute name="Version" type="msg:VersionNumberType" use="optional">
                <xs:annotation>
                    <xs:documentation>Ist seitVersion 2-1.0-001 Pflicht. MUSS während der Übergangsfrist optional bleiben, damit das XML Schema für Versender abwärtskompatibel bleibt</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="Id" type="xs:ID" use="optional">
                <xs:annotation>
                    <xs:documentation>Eindeutige ID des Elements, um in der Signatur referenziert werden zu können </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
        <xs:element name="DeliveryRequestStatusACK" type="msg:DeliveryRequestStatusACKType">
            <xs:annotation>
                <xs:documentation>Wenn DeliveryRequestStatus bei asynchroner Koomunikation als Request benutzt wird, ist DeliveryRequstStatusACK die Antwort</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryRequestStatusACKType">
            <xs:sequence>
                <xs:element ref="msg:AppDeliveryID"/>
                <xs:element ref="msg:ZSDeliveryID"/>
            </xs:sequence>
            <xs:attribute name="Version" type="msg:VersionNumberType"/>
        </xs:complexType>
        <xs:annotation>
            <xs:documentation>### Bestätigung über Zustellungs (Miß-) Erfolg   ###</xs:documentation>
        </xs:annotation>
        <xs:element name="DeliveryNotification" type="msg:DeliveryNotificationType">
            <xs:annotation>
                <xs:documentation>Benachrichtigung über die erfolgte oder nicht erfolgte Zustellung</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryNotificationType">
            <xs:complexContent>
                <xs:extension base="msg:DeliveryAnswerType">
                    <xs:sequence>
                        <xs:element ref="msg:SenderDetails"/>
                        <xs:element ref="msg:ReceiverDetails"/>
                        <xs:element ref="msg:Timestamp">
                            <xs:annotation>
                                <xs:documentation>Timestamp der Nachrichtenoperation, die vom Anzeigemodul erzeugt wird. (*) Im Falle der Annahme einer Zustellung entspricht der Timestamp dem Annahmezeitpunkt. (*) Im Falle der ERV-Weiterleitung entspricht der Timestamp dem msg:ERVConfirmDeliveryTimestamp</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="msg:User" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Benutzer, der die Nachricht angenommen hat.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="msg:Answer"/>
                        <xs:element ref="dsig:Signature"/>
                        <xs:element name="AdditionalFormat" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:simpleContent>
                                    <xs:extension base="xs:base64Binary">
                                        <xs:attribute name="Type" type="xs:token" use="required">
                                            <xs:annotation>
                                                <xs:documentation>Als MIME-Type ist „application/pdf“ zu verwenden</xs:documentation>
                                            </xs:annotation>
                                        </xs:attribute>
                                    </xs:extension>
                                </xs:simpleContent>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="Version" type="msg:VersionNumberType" use="optional">
                        <xs:annotation>
                            <xs:documentation>Ist seitVersion 2-1.0-001 Pflicht. MUSS während der Übergangsfrist optional bleiben, damit das XML Schema für Versender abwärtskompatibel bleibt</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="Id" type="xs:ID" use="optional">
                        <xs:annotation>
                            <xs:documentation>Eindeutige ID des Elements, um in der Signatur referenziert zu können </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="DeliveryNotificationACK" type="msg:DeliveryNotificationACKType">
            <xs:annotation>
                <xs:documentation>Webservice Response of ZSDeliveryNotification</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryNotificationACKType">
            <xs:sequence>
                <xs:element ref="msg:AppDeliveryID"/>
                <xs:element ref="msg:ZSDeliveryID"/>
            </xs:sequence>
            <xs:attribute name="Version" type="msg:VersionNumberType"/>
        </xs:complexType>
        <xs:complexType name="DeliveryAnswerType">
            <xs:annotation>
                <xs:documentation>Abstrakter Antwort Typ</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="msg:DeliverySystem"/>
                <xs:element ref="msg:ZSDeliveryID">
                    <xs:annotation>
                        <xs:documentation>ID des Zustellstücke innerhalb des Zustellsystems</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="msg:AppDeliveryID"/>
                <xs:element ref="msg:GZ" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="DeliveryConfirmationType">
            <xs:complexContent>
                <xs:extension base="msg:DeliveryAnswerType">
                    <xs:sequence>
                        <xs:element ref="msg:Sender"/>
                        <xs:element ref="msg:Receiver"/>
                        <xs:element name="DeliveryTimestamp" type="xs:dateTime">
                            <xs:annotation>
                                <xs:documentation>Übergabezeitpunkt an den Zustelldienst</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="dsig:Signature"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <!--### globale Elemente und komplexe Typen###-->
        <xs:complexType name="AbstractOperationType" abstract="true"/>
        <xs:complexType name="AbstractSenderPersonType">
            <xs:annotation>
                <xs:documentation>main structure of sender</xs:documentation>
            </xs:annotation>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
        </xs:complexType>
        <xs:element name="Accepted" type="msg:AcceptedType" substitutionGroup="msg:Answer">
            <xs:annotation>
                <xs:documentation>Zeigt an, dass die Nachricht durch den Einstieg ins Anzeigemodul angenommen wurde. </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="AcceptedType">
            <xs:complexContent>
                <xs:extension base="msg:AbstractOperationType">
                    <xs:sequence>
                        <xs:element ref="msg:NotificationsPerformed"/>
                        <xs:element ref="msg:NotificationAddressList" minOccurs="0"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="AdditionalCriteria" type="msg:AdditionalCriteriaType">
            <xs:annotation>
                <xs:documentation>Weitere über den eigentlichen Adressaten hinausgehende Kriterien zur Adressierung (bspw. c/o)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="AdditionalCriteriaType">
            <xs:sequence>
                <xs:element ref="msg:MailBox" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Eindeutige Kennung (Filiale, Standort, Abteilung, etc..) innerhalb der jur. Person </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="msg:Roles" minOccurs="0"/>
                <xs:element ref="msg:CareOf" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Natürlichen Person innerhalb einer Orangisation der "zu Handen" (c/o) zustellen werden soll. Wird eine E-Mail-Adresse angegeben, kann die Person eindeutig identifiziert und notifiziert werden. </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="Answer" type="msg:AbstractOperationType">
            <xs:annotation>
                <xs:documentation> Rückmeldungen zu einer Nachricht</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="AppDeliveryID" type="msg:token256">
            <xs:annotation>
                <xs:documentation>ID des Zustellstücke beim Absender</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Attachment" type="msg:AttachmentType"/>
        <xs:element name="Attachments" type="msg:AttachmentsType">
            <xs:annotation>
                <xs:documentation>List of all attachments</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="AttachmentsType">
            <xs:sequence>
                <xs:element ref="msg:Attachment" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="AttachmentType">
            <xs:sequence>
                <xs:element name="FileName" type="msg:FileNameType">
                    <xs:annotation>
                        <xs:documentation>Dateiname min. 5 Zeichen, max 255 Zeichen</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="msg:MimeType"/>
                <xs:element ref="msg:DocumentClass" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Dokumentenklasse als String bzw. Namespace im Fall von XML-Dokumenten im Anhang, um auf Empfängerseite eine automatische Verarbeitung durch ein Workflowsystem realisieren zu können.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Size" type="xs:nonNegativeInteger">
                    <xs:annotation>
                        <xs:documentation>Größe in Bytes</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="msg:CheckSum"/>
                <xs:choice>
                    <xs:element name="Content" type="xs:base64Binary">
                        <xs:annotation>
                            <xs:documentation>Für Attachments deren Inhalt direkt in die Nachricht eingebettet werden. (Das Größenlimit für die gesamte Nachricht inklusive aller eingebetteten Attachments beträgt 10 MB)</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="URL" type="xs:anyURI">
                        <xs:annotation>
                            <xs:documentation>Docuementlocation in case of Callback attachements</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:choice>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="AustrianAddressesOnly" type="msg:IndicatorType">
            <xs:annotation>
                <xs:documentation>Die Existenz des Elements zeigt an,  dass die gesuchte Person in Österreich gemeldet sein muss</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="AuthLevel" type="msg:token256">
            <xs:annotation>
                <xs:documentation>Höchstes Authentifizierungsniveau mit dem sich der Teilnehmer beim Portal/Kommunikationssystem angemeldet hatte.  Folgende Werte sind zulässig - absteigend sortiert nach der Höhe des Authentifizierungsniveaus: "EID" > "FON" > "LOW"
                </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="CareOf">
            <xs:annotation>
                <xs:documentation>Um einer natürlichen Person innerhalb einer Orangisation "zu Handen" (c/o) zustellen zu können, reicht die vbPK-ZU oder die E-Mail-Adresse aus, um die Person über das Eintreffen der Nachricht notifiziert zu können. </xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:ElectronicAddress" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Elektronische Adresse der "Zu Handen"-Person innerhalb der Organisation</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="Name" type="msg:token256">
                        <xs:annotation>
                            <xs:documentation>Name der Person zu deren Handen adressiert wird. Hierbei handelt es sich um einen Freitext für die Anzeige, der als eindeutiger Identifikator für Verständigungen oder eine automatisierte Weiterleitung ungeeignet ist.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="CheckSum" type="msg:CheckSumType">
            <xs:annotation>
                <xs:documentation>Prüfsumme</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="CheckSumType">
            <xs:annotation>
                <xs:documentation>Prüfsumme</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="AlgorithmID" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>Hash Algorithmus, z.B. SHA-256, SHA-512</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Value" type="xs:base64Binary">
                    <xs:annotation>
                        <xs:documentation>Hashwert</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="ClearingProfilID" type="xs:token">
            <xs:annotation>
                <xs:documentation>Ist zu verwenden, wenn die Abrechnung über ein anderes Profil erfolgen soll, als dem Versender-Profil </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="ConfirmationAddress">
            <xs:annotation>
                <xs:documentation>Webservice oder E-Mail-Adresse, an welches die Zustellbestätigung oder Fehlermeldung weitergeleitet wird (Callback)</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:choice>
                    <xs:element ref="msg:WebserviceURL"/>
                    <xs:element ref="msg:Email"/>
                </xs:choice>
                <xs:attribute name="Type" default="xml">
                    <xs:annotation>
                        <xs:documentation>Typ des Zustellnachweises, z.B. xml+pdf oder nur xml (default)</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:token">
                            <xs:enumeration value="xml"/>
                            <xs:enumeration value="xml+pdf"/>
                            <xs:enumeration value="pdf"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
            </xs:complexType>
        </xs:element>
        <xs:element name="ContactAddresses">
            <xs:annotation>
                <xs:documentation>Hier kann der Versender seine Kontaktadressen für Rückfragen des Empfängers übermitteln. Die Adressen werden vom AMOD in den Verständigungstext eingefügt.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:ElectronicAddress" maxOccurs="3"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="DeliveryError" type="msg:DeliveryErrorType" substitutionGroup="msg:Answer">
            <xs:annotation>
                <xs:documentation>Zeigt eine Ausnahmesituation an:
    • Ablauf der Abholfrist: das Anzeigemodul informiert, den Versender, dass die Abholfrist verstrichen ist, ohne dass der Empfänger die Nachricht angenommen hat. Mit dem Versteichen der Abholfirst kann die nachweisliche Zustellung dennoch als bewirkt gelten (Zustellfiktion), wenn keine Ausnahmetatbestände des ZUSTG vorliegen.
    • Zustellmangel „Verständigung fehlgeschlagen“: der Mangel liegt vor, wenn im Zuge der Übermittlung einer nachweislichen Nachricht die Verständigung des Empfängers per E-Mail fehlschlägt. Über das Vorliegen dieses Zustellmangels muss der Versender in Kenntnis gesetzt werden. Der Mangel kann geheilt werden, wenn der Empfänger innerhalb der Abholfrist dennoch die Nachricht im Anzeigemodul vorfindet. (§ 35 Abs. 5 [ZUSTG])
    • Zustellhindernis „Verständigung fehlgeschlagen“ und Ablauf der Abholfrist: ist die Verständigung fehlgeschlagen und die Abholfrist verstrichen, ohne dass der Empfänger Kenntnis von der Nachricht erhalten hat, dann liegt ein Zustellhindernis vor und die Zustellung gilt als nicht bewirkt.
    </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryErrorType">
            <xs:complexContent>
                <xs:extension base="msg:AbstractOperationType">
                    <xs:sequence>
                        <xs:element ref="msg:NotificationsPerformed" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Im Falle des verstreichens der Zustellfrist MUSS  das Element befüllt sein.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="msg:NotificationAddressList" minOccurs="0"/>
                        <xs:element ref="msg:ErrorInfo"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="DeliveryQuality">
            <xs:annotation>
                <xs:documentation>Zustellqualität gemäß ZustellG:
    • RSa
    • RSa+
    • nonRSa
    • nonRSa+</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="msg:token256">
                    <xs:enumeration value="RSa"/>
                    <xs:enumeration value="RSa+"/>
                    <xs:enumeration value="nonRSa"/>
                    <xs:enumeration value="nonRSa+"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element name="DeliverySystem" type="xs:anyURI">
            <xs:annotation>
                <xs:documentation>URL des für die Nachricht verantwortlichen Zustellstellsystems</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DeliveryTimestamp" type="xs:dateTime">
            <xs:annotation>
                <xs:documentation>Zustellzeitpunkt</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DocumentClass" type="xs:token">
            <xs:annotation>
                <xs:documentation>Enthält den Namespace des XML-Dokuments, um auf Empfängerseite eine automatische Verarbeitung durch ein Workflowsystem realisieren zu können.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="ElectronicAddress" type="p:AbstractAddressType" abstract="true">
            <xs:annotation>
                <xs:documentation> Elektronische Adresse (E-Mail, HTTP, etc)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Email" type="p:InternetAddressType">
            <xs:annotation>
                <xs:documentation>E-Mail Adresse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="ErrorInfo" type="msg:ErrorInfoType">
            <xs:annotation>
                <xs:documentation>Beschreibung eines aufgetretenen Fehlers</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="ErrorInfoType">
            <xs:annotation>
                <xs:documentation>ComplexTpye für die Beschreibung eines aufgetretenen Fehlers</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="Code" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>Fehlercode</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Text" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Fehlerbeschreibung</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="ERVConfirmedDelivery" type="msg:ERVConfirmedDeliveryType" substitutionGroup="msg:Answer">
            <xs:annotation>
                <xs:documentation>Diese Operation zeigt an, dass eine in den ERV weitergeleitete Nachricht erfolgreich im Verfügungsbereich des Empfängers eingelangt ist. </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="ERVConfirmedDeliveryType">
            <xs:complexContent>
                <xs:extension base="msg:AbstractOperationType">
                    <xs:sequence>
                        <xs:element ref="msg:ERVCode"/>
                        <xs:element ref="msg:ERVDeliveryTimestamp"/>
                        <xs:element name="InsolvencyAdministrator" type="msg:IndicatorType" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Existenz zeigt an, dass die Nachricht an den/die Insolvenzverwalter(in) in den in den ERV umgeleitet wurde</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="ERVCode" type="msg:token256">
            <xs:annotation>
                <xs:documentation>Anschriftcode des Elektronischen Rechtsverkehrs der Justiz (ERV): Wenn die Nachricht in den ERV weitergeleitet wird, ist der Anschriftcode - zwecks Nachvollziehbarkeit - bis zum Versender zurückgegeben.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="ERVDeliveryTimestamp" type="xs:dateTime">
            <xs:annotation>
                <xs:documentation>DEPRECATED: Dieser Timestamp ist gleich dem amod:MessageOperation/msg:Timestamp und wird in einer zukünftigen Version der XSD gestrichen. Zeitpunkt zu dem die Zustellung via ERV als bewirkt gilt (Details siehe ZUSEORG)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="GZ" type="xs:token">
            <xs:annotation>
                <xs:documentation>Geschäftszahl</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="IgnorePostRedirectionOrder" type="msg:IndicatorType">
            <xs:annotation>
                <xs:documentation>Wenn dieser Marker existiert, MUSS diese Zustellung auch bei aktiver Postsperre an den tatsächlichen Empfänger zugestellt werden.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="IndicatorType">
            <xs:annotation>
                <xs:documentation>Dieser ComplexType ist ein Hilfskonstrukt damit ein Flag/Kennzeichen/Marker/Idikator Element nicht als XML-Any misbraucht werden kann.</xs:documentation>
            </xs:annotation>
        </xs:complexType>
        <xs:element name="InternetAddress" type="p:InternetAddressType" substitutionGroup="msg:ElectronicAddress">
            <xs:annotation>
                <xs:documentation>element of internet address type</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Language" type="msg:AustrianLanguageType">
            <xs:annotation>
                <xs:documentation>Sprache in welcher der Zustellnachweis  gesendet werden soll</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Logo" type="msg:LogoType">
            <xs:annotation>
                <xs:documentation>Definiert ein Logo</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="LogoType">
            <xs:annotation>
                <xs:documentation>Definiert ein Nachrichtenlogo</xs:documentation>
            </xs:annotation>
            <xs:choice>
                <xs:element name="LogoID" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>Für Logos, die vorab beim Zustelldienst für den Versender im Profil hinterlegt wurden</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:sequence>
                    <xs:element name="ContentValue" type="xs:base64Binary"/>
                    <xs:element name="ContentType" type="msg:token256"/>
                </xs:sequence>
            </xs:choice>
        </xs:complexType>
        <xs:element name="MailBox" type="xs:token">
            <xs:annotation>
                <xs:documentation>Spezielles Postfach des Empfängers, z.B. eine Filiale einer jur. Person</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="MetaData">
            <xs:annotation>
                <xs:documentation>Metadaten der Zustellung</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:AppDeliveryID">
                        <xs:annotation>
                            <xs:documentation>ID des Zustellstücks beim Absender</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="msg:Origin" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Zustellsystem, welches die Nachricht überrmittelt hat. Muss gesetzt werden, wenn die Zustellsystem-Applikationen mehrere Zustellsysteme repräsentiert</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="msg:Subject"/>
                    <xs:element ref="msg:GZ" minOccurs="0"/>
                    <xs:choice>
                        <xs:element ref="msg:DeliveryQuality"/>
                        <xs:element ref="msg:PrivateMessageQuality"/>
                    </xs:choice>
                    <xs:element ref="msg:NotificationLanguages" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Sprachen - vom Versender mitgegeben - in denen die Verständigung gesendet werden soll</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="msg:IgnorePostRedirectionOrder" minOccurs="0"/>
                    <xs:element ref="msg:Reference" minOccurs="0"/>
                    <xs:element ref="msg:Tags" minOccurs="0"/>
                    <xs:element ref="msg:MetadataList" minOccurs="0"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="MetadataEntry" type="msg:MetadataEntryType">
            <xs:annotation>
                <xs:documentation>Single metadata entry</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="MetadataEntryType">
            <xs:sequence>
                <xs:element name="OID" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>Unique object identifier</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Value" type="xs:anySimpleType">
                    <xs:annotation>
                        <xs:documentation>Metadata value. basic type is defined in specification document</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="DisplayInDetailView" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>Display metadata in detailed view. If metadata are displayed by default or prohibited to display (e.g. internal data), this value cannot be overriden</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
        <xs:element name="MetadataList">
            <xs:annotation>
                <xs:documentation>List of metadata entries</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:MetadataEntry" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="MimeType" type="msg:token256">
            <xs:annotation>
                <xs:documentation>Mime-Typ</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="NotificationAddressList" type="msg:NotificationAddressListType">
            <xs:annotation>
                <xs:documentation>Liste der verifizierten Verständigungsadressen des Teilnehmers</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="NotificationAddressListType">
            <xs:sequence>
                <xs:element ref="msg:ElectronicAddress" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="NotificationLanguages">
            <xs:annotation>
                <xs:documentation>Sprachen in denen die Verständigung gesendet werden soll</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:Language" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>Sprache in der die Verständigung gesendet werden soll</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="NotificationsPerformed" type="msg:NotificationsPerformedType">
            <xs:annotation>
                <xs:documentation>Liste der vom AMOD durchgeführten Verständigungen des Empfängers</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="NotificationsPerformedType">
            <xs:sequence>
                <xs:element name="RecipientNotification" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Timestamp" type="xs:dateTime"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="Origin" type="msg:SystemComponentType">
            <xs:annotation>
                <xs:documentation>Herkunftssystem:  Zustellsystem oder  Kommunikationssystem der Behörde, von welchem die Nachricht oder Empfängerrdaten stammen</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="ParticipantID" type="msg:token256">
            <xs:annotation>
                <xs:documentation>ParticipantID = Landeskennung ":" ID
    ID = "VKZ:" VKZ | Org-Id
    VKZ ::= 1#32UACHAR;(Verwaltungskennzeichen gem. [VKZ])
    Org-Id ::= 1#32UACHAR;(Org-Id gem. [VKZ])
    Landeskennung ::= {2} ALPHA; (gem. ISO 3166 - Alpha2)
    (nicht normativ / nach ldap.gv.at) Beispiele: "AT:B:102", "AT:VKZ:GGA-12345", "AT:L9:9876"</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="PreAdviceNote" type="msg:PreAdviceNoteType">
            <xs:annotation>
                <xs:documentation>Aviso (optional)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="PreAdviceNoteSent" type="msg:PreAdviceNoteSentType">
            <xs:annotation>
                <xs:documentation>Existenz des Elements zeigt an, dass ein Aviso erfolgreich an alle Verständigungsadressen des Teilnahmkandidaten versendet wurde</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="PreAdviceNoteSentType">
            <xs:annotation>
                <xs:documentation>(Technisch Notwendig, um implizites XML-Any zu verhindern)</xs:documentation>
            </xs:annotation>
        </xs:complexType>
        <xs:complexType name="PreAdviceNoteType">
            <xs:sequence>
                <xs:element name="NumberOfDays" type="xs:positiveInteger">
                    <xs:annotation>
                        <xs:documentation>Frist von der Behörde bis wann die Registrierung erfolgt sein muss, um dass Behördenschriftstück noch elektronisch zu bekommen. Anderenfalls wird das Schriftstück von der Behörde auf dem normalen Postweg versandt. Diese Info wird im Aviso-E-Mail mitgegeben.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="msg:NotificationAddressList" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="PrivateMessageQuality">
            <xs:annotation>
                <xs:documentation>Qualität der privatrechtlichen Zusendung ist von der Zustellqualität lt. ZustellG zu unterscheiden:
    • Reply (DARF nur vom Anzeigemodul INTERN verwendet werden)
    • Information
    • RegisteredMail
    • RegisteredMail+
    • ConfirmReceipt
    • ConfirmReceipt+</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:token">
                    <xs:enumeration value="Reply"/>
                    <xs:enumeration value="Information"/>
                    <xs:enumeration value="RegisteredMail"/>
                    <xs:enumeration value="RegisteredMail+"/>
                    <xs:enumeration value="ConfirmReceipt"/>
                    <xs:enumeration value="ConfirmReceipt+"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element name="ProfileID" type="xs:token">
            <xs:annotation>
                <xs:documentation>ID mit der der Versender beim Zustellsystem registriert ist. (Das Zustellsystem ist für den Inhalt der Personendaten des Versenders verantwortlich, um sicherzustellen, dass diese nicht missbräuchlich verwendet werden (Vortäuschung einer anderen Identität))</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Receiver">
            <xs:annotation>
                <xs:documentation>Informationen zum Empfänger</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:choice>
                        <xs:element ref="p:Identification"/>
                        <xs:sequence>
                            <xs:element ref="p:Person"/>
                            <xs:element ref="msg:AustrianAddressesOnly" minOccurs="0"/>
                            <xs:element ref="p:Address" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:choice>
                    <xs:element ref="msg:AdditionalCriteria" minOccurs="0"/>
                    <xs:element ref="msg:PreAdviceNote" minOccurs="0"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="ReceiverDetails" type="p:PersonAndIdentificationType">
            <xs:annotation>
                <xs:documentation>Informationen nur für Senderidentifikation</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Reference">
            <xs:annotation>
                <xs:documentation>Referenz auf ein anderes Zustellstück (ZSDeliveryID), auf die sich diese Zustellung bezieht</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:ZSDeliveryID"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="RelayedViaERV">
            <xs:annotation>
                <xs:documentation>Gibt an ob das Zustellstück über den ERV zugestellt wurde</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:ERVCode"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="Roles">
            <xs:annotation>
                <xs:documentation>Rollen, welche neben globalen Vertretungsbefugten Zustellstücke entgegennehmen dürfen</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Role" maxOccurs="unbounded">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="Value" type="msg:token256"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="Sender">
            <xs:annotation>
                <xs:documentation>Informationen zum Sender</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:SenderPerson"/>
                    <xs:element ref="msg:ClearingProfilID" minOccurs="0"/>
                    <xs:element ref="msg:Logo" minOccurs="0"/>
                    <xs:element ref="msg:AdditionalCriteria" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Spezielles Postfach des Versenders z.B. eine Filiale einer jur. Person an welches dieser eine etwaige Antwort retourniert haben möchte</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="msg:ConfirmationAddress" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Webservice oder E-Mail-Adresse, an welche die Übergabebestätigung, der Zustellnachweis oder die Fehlermeldung zurückgemeldet wird (Callback)</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="msg:ContactAddresses" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Hier kann der Versender seine Kontaktadressen für Rückfragen des Empfängers übermitteln. Die Adressen werden vom AMOD in das Verständigungsformular eingefügt.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="SenderCorporateBody" type="msg:SenderCorporateBodyType" substitutionGroup="msg:SenderPerson">
            <xs:annotation>
                <xs:documentation>Versender ist eine Behörde oder ein Unternehmen, das im gesetzlichen Auftrag handeln</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="SenderCorporateBodyType">
            <xs:annotation>
                <xs:documentation>juridical person, organisation</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="msg:AbstractSenderPersonType">
                    <xs:choice>
                        <xs:element ref="msg:SenderProfile"/>
                        <xs:sequence>
                            <xs:element ref="p:Identification"/>
                            <xs:element ref="p:CorporateBody"/>
                        </xs:sequence>
                    </xs:choice>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="SenderPhysicalPerson" type="msg:SenderPhysicalPersonType" substitutionGroup="msg:SenderPerson">
            <xs:annotation>
                <xs:documentation>Versender ist eine natürliche Person (für Antworten). DARF nur vom Anzeigemodul INTERN verwendet werden</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="SenderPhysicalPersonType">
            <xs:annotation>
                <xs:documentation>physical person</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="msg:AbstractSenderPersonType">
                    <xs:choice>
                        <xs:element ref="msg:SenderProfile"/>
                        <xs:sequence>
                            <xs:element ref="p:Identification"/>
                            <xs:element ref="p:PhysicalPerson"/>
                        </xs:sequence>
                    </xs:choice>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="SenderDetails" type="p:PersonAndIdentificationType">
            <xs:annotation>
                <xs:documentation>Informationen nur für Senderidentifikation</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="SenderPerson" type="msg:AbstractSenderPersonType">
            <xs:annotation>
                <xs:documentation>Die Person des Versenders wird über das Clientzertifikat authentifiziert mit dem sich das IT-Service des Versenders mit seinem Zustellsystem verbindet. (Bei Behörden erfolgt die Authentifizierung über PVP-Header)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="SenderProfile">
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:ProfileID"/>
                    <xs:element ref="p:Organization" minOccurs="0"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="ServiceProviderID" type="msg:token256">
            <xs:annotation>
                <xs:documentation>ID des Dienstleisters, der für den Versender die Kommunikation mit dem Zustelldienst bzw. generell dem Zustellsystem durchführt. In diesem Fall ist der Dienstleister der Rechnungsempfänger</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="SimpleRequestType">
            <xs:annotation>
                <xs:documentation>Einfacher "Request" ohne Datenelemente</xs:documentation>
            </xs:annotation>
        </xs:complexType>
        <xs:element name="Subject" type="xs:token">
            <xs:annotation>
                <xs:documentation>Zur Anzeige in der Mailbox, vgl. Subject von herkömml. E-mails</xs:documentation>
            </xs:annotation>
            <!--  R2023 -->
        </xs:element>
        <xs:complexType name="SystemComponentType">
            <xs:annotation>
                <xs:documentation>Systemkomponente der E-Zustellung: Portal oder Zustellsystem. (Ein Zustellsystem ist entweder ein Zustelldienst, ein Kommunikationssystem der Behörde oder ein Zielsystem)</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="msg:ParticipantID">
                    <xs:annotation>
                        <xs:documentation>ParticipantID = Landeskennung ":" ID
    ID = "VKZ:" VKZ | Org-Id
    VKZ ::= 1#32UACHAR; (Verwaltungskennzeichen gem. [VKZ])
    Org-Id ::= 1#32UACHAR; (Org-Id gem. [VKZ])
    Landeskennung ::= {2} ALPHA; (gem. ISO 3166 - Alpha2)
    (nicht normativ / nach ldap.gv.at) Beispiele: "AT:B:102", "AT:VKZ:GGA-12345", "AT:L9:9876"</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="TelephoneAddress" type="p:TelephoneAddressType" substitutionGroup="msg:ElectronicAddress">
            <xs:annotation>
                <xs:documentation>element of TelephoneAddressType, compare TelefonAdresse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Tag" type="msg:token256"/>
        <xs:element name="Tags">
            <xs:annotation>
                <xs:documentation>Schlagworte zu einer Nachricht nach welchen ein Benutzer suchen kann. (Dieser müssen vom Versender einer Nachricht gesetzt werden)</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:Tag" maxOccurs="20"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="TargetIdentification" type="p:IdentificationType">
            <xs:annotation>
                <xs:documentation>Wenn im DeliveryRequest ein Target angegeben wurde, d.h. der Bereich und das VKZ des behördlichen Versenders, dann enthält das TargetIdentification Element das entsprechende, umgeschlüsselt vbPK für den Versender</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Timestamp" type="xs:dateTime">
            <xs:annotation>
                <xs:documentation>Zeitpunkt zu dem das FACHLICHE Ereignis stattgefunden hat. • Im Falle der Annahme einer Zustellung im AMOD, entspricht der Timestamp dem Zustellzeitpunkt und ist gleich der AMOD-Systemuhrzeit. • Im Falle der ERV-Weiterleitung, kann der Timestamp einen vom ERV berechneter Wert enthalten. </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="User">
            <xs:annotation>
                <xs:documentation>Benutzer, der die Nachricht angenommen oder gelöscht hat. Wenn die Nachrichtenoperation vom System des Anzeigemoduls ausgelöst wurde, bleibt das User Element leer</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Role">
                        <xs:annotation>
                            <xs:documentation>Rolle des Benutzers:
    • Receiver: Empfänger persönlich
    • Representative: Vertretungsbevollmächtigter
    • InsolvencyAdministrator: Insolvenzverwalters
    • System: Eine Systemkomponente der eZustellung ist Auslöser der MessageOperation
                        </xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:token">
                                <xs:enumeration value="Receiver"/>
                                <xs:enumeration value="Representative"/>
                                <xs:enumeration value="InsolvencyAdministrator"/>
                                <xs:enumeration value="System"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element ref="p:Identification"/>
                    <xs:element ref="msg:TargetIdentification" minOccurs="0"/>
                    <xs:element ref="p:PhysicalPerson"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="WebserviceURL">
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="p:InternetAddressType">
                        <xs:attribute name="AlternativeEmail" type="xs:anyURI"/>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
        </xs:element>
        <xs:element name="ZSDeliveryID" type="msg:token256">
            <xs:annotation>
                <xs:documentation>ID des Zustellstückes MUSS über alle Zustellsysteme eindeutig sein. Die ZSDeliveryID wird durch eine UUID gemäß RFC-4122 repräsentiert. Der Node-Teil MUSS pro Zustellsystem eindeutig sein und wird vom Anzeigemodul vergeben.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!--### Simple Types-->
        <xs:simpleType name="token256">
            <xs:annotation>
                <xs:documentation>Token auf 256 Zeichen beschränkt.</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:token">
                <xs:minLength value="1"/>
                <xs:maxLength value="256"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="AustrianLanguageType">
            <xs:annotation>
                <xs:documentation>2-stelliger Sprachcode der anerkannten österreichischen Amtssprache</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:token">
                <xs:minLength value="2"/>
                <xs:maxLength value="2"/>
                <xs:enumeration value="DE"/>
                <xs:enumeration value="HR"/>
                <xs:enumeration value="HU"/>
                <xs:enumeration value="SL"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="FileNameType">
            <xs:annotation>
                <xs:documentation>Typ zur Beschränkung von Dateinamen auf minimal 5 Zeichen und maximal 255 Zeichen</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:token">
                <xs:maxLength value="255"/>
                <xs:minLength value="5"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="VersionNumberType">
            <xs:annotation>
                <xs:documentation>Der Typ definiert einen regulären Ausdruck für Versionsnummer - z.B. „2.1.0-001“. Die ersten drei Nummern repräsentieren die Versionsnummer des zugrundeliegenden ZUSEMSG-Spezifikationsdokuments. Die vierte Nummer ist die fortlaufende Release-Nummer, die bei der Veröffentlichung einer neuen Version des XML-Schemas inkrementiert wird.</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:token">
                <xs:pattern value="([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,3}|[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}-[0-9]{3})"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:schema>

Tabelle mit zu implementierenden Änderungen:

Alt (old) | Neu (new) | Änderungen (Changes) | Bemerkungen (Notes)
--- | --- | --- | ---
zuse2tnvz_p2_alt.wsdl | zuse2tnvz_p2.wsdl | Keine (no) |
zusetnvz_p2_alt.xsd (version="2.2.008") | zusetnvz_p2.xsd (version="2.1.0-002") | Ja (yes) | Erv flag, aufpassen: in der XSD ist die Angabe der `schemaLocation` anders
msg |  |  |
zuse2app_p2_alt.wsdl | app2zuse_p2.wsdl (beinhaltet Zeile: `<soap12:address location="/zuse"/>`) | Ja (yes) | !!! Benennung falsch: zuse2app statt app2zuse
zuse_p2_alt.xsd (version="2.2.007") | zuse_p2.xsd (version="2.1.0-003") | Ja (yes) | msg:ContactAddresses msg:NotificationAddressListInsolvencyAdministrator (ERVConfirmedDeliveryType)
zuse_mypersondata_en_p2_alt.xsd (version="2.2.006") | zuse_mypersondata_en_p2.xsd (version="2.1.0-003") | Ja (yes) | Minimale Änderungen
xenc-schema_alt.xsd | xenc-schema.xsd | Keine (no) |
W3C-XMLDSig_alt.xsd | W3C-XMLDSig.xsd | Keine (no) |
zuse2app_p2_tx_portal_alt.wsdl | zuse2app_p2.wsdl | Keine (no) |
zuse_p2_tx_portal_alt.xsd (version="2.2.007") | zuse_p2.xsd (version="2.1.0-003") | Ja (yes) | (*) Im Falle der ERV-Weiterleitung entspricht der Timestamp dem `msg:ERVConfirmDeliveryTimestamp` `<xs:element ref="msg:NotificationAddressList" minOccurs="0"/> <xs:element name="InsolvencyAdministrator" type="msg:IndicatorType" minOccurs="0"> <xs:element ref="msg:ContactAddresses" minOccurs="0"/>`
zuse_mypersondata_en_p2_tx_portal_alt.xsd (version="2.2.006") | zuse_mypersondata_en_p2.xsd (version="2.1.0-003") | Ja (yes) | minimal
W3C-XMLDSig_tx_portal_alt.xsd | W3C-XMLDSig.xsd | Keine (no) |

### 2.6 Bulk-Delivery

The bulk-delivery (mass delivery) offers the possibility to send multiple deliveries in one request.

The processing can be either done via a synchronous or a asynchronous web service method.

- Synchronous
  As the processing of large quantities of deliveries can take longer than the timeout of the web service call the amount of elements per bulk delivery is limited. The limit is configured on the server side. The corresponding web service method to be used is `bulkDelivery.`
  The `xdpBulkDeliveryResult` contains all the results from the request.

- Asynchronous
  As the processing of the deliveries could last very long this process will only be handled asynchronously - the corresponding web service method to be used is `bulkDeliveryAsync`.
  The `xdpBulkDeliveryResult` tells the sending system only that the sendhybrid service just successfully received the request and started processing. The response will also contain a `jobId` which is a unique identifier of the sendhybrid system which will identify this request in the system. The immediate result here is just returns the job`Id` and `foreignId` to the sender. If the response is retrieved this means that the sendhybrid system took over the request and starts processing as soon as possible. From this point in time the sender can start polling for the result of this processing.

The sender can provide a unique `foreignId` within the `xdpBulkDeliveryInput` for the overall request which will then be returned again in the `xdpBulkDeliveryResult`. Furthermore the can also provide a `foreignId` within the `bulkDeliveryElement` for each single delivery. If no foreignId is provided a unique `foreignId` is generated and contained in the `xdpBulkDeliveryResult`.

The input data (documents and delivery options) can be defined in two levels. In the first place common documents and options can be defined. These are applied to all receivers in the list. Thereby it is possible to send the same document(s) to a list of receivers. Secondly these data can be given for each delivery. Hence each delivery can be individualized. A hybrid form is also supported: there could be some common documents and individual additions. On conflict the individual settings will overwrite the common once.

The documents can be sent within the request (like in ”normal” deliveries) but also can be referenced with the `Document.fileRefURI`. The provided URL can be one of the ”http” or ”ftp” protocols. So the files can be first transmitted to the senders or sendhybrids FTP server and then the webservice is called.

If the sender wants to control the delivery channel by himself, e.g. if she wants to directly send the delivery to the print channel without checking the electronic channels, then the `deliveryElement.deliveryChannel` must be set to `printDeliveryChannelV03`.

Attribute | Description | Mandatory
--- | --- | ---
version | To recognize which version of the web service is used | No

Parameter | Description | Mandatory
--- | --- | ---
foreignId | Optional client side identification of the bulk delivery. If given will be returned in polling | No
xdpBulkDeliveryResultReturnTarget | see Handling of the bulk processing result | Yes
jobName | An arbitrary string which can be used for quering this job in the TX portal | No
operation | bulk | Yes
credential.* | See Credential input parameters | Yes
config.* | See Config input parameters. For the delivery additional configuration settings exists, which should be centrally maintained on server side, and only given in exceptional cases by the client. | No
commonDocuments (0..n) | Common documents which are used for each delivery to the defined receivers | No
commonDeliveryQuality | Common delivery quality for all deliveries. Can be overwritten by each single delivery | No
commonSubject | Delivery subject to be used. Not supported by all channels | No
commonMailBody | Delivery body to be used. Not supported by all channels | No
commonNotificationMailBody | A sender can define an own text for the notification e-mail, if the delivery is put into one of sendhybrids E-BOXes. It can be any kind of a valid HTML snippet. In order that the sending E-BOX can add a link to this body, the sender must take care that somewhere a variable `${link`} is within the text. If this variable is missing, then the delivery will not be processed and an error will be returned. Since version 4.7. | No
commonDeliveryOptions | See section Delivery Options | No
commonDeliveryCategory | Common delivery category for all deliveries. Can be overwritten by each single delivery (see 2.12 Delivery categories) | No
commonSender | Describes the sender of a delivery. Can also be pre-defined on server side within the profile. | No
commonMuteHours | Common muteHours for all deliveries. Can be overwritten by each single delivery. It defines the time span during no notifications to the receiver are sent. | No
commonRequiredUserSecClass | Common requiredUserSecClass for all deliveries. Can be overwritten by each single delivery | No
commonDueDate | A `dateTime` in the future which defines how long a delivery is valid. After that due date, if the receiver did not read the delivery, a negative receipt is sent from the E-BOX. The given due date must be more then five minutes from the time the delivery is processed in the future. Else the validation will fail and the delivery will not be processed. In case of LetterLink deliveries (special E-BOX which only sends mails with a link to the delivery document) after the due date is reached, the link is not valid anymore and the document cannot be downloaded. It is recommended to use the `dueTimespan` for very short due dates, e.g. if the delivery is only valid several minutes or hours. This parameter is only intended to be used if the delivery is valid several days, weeks or even months. Either `dueDate` or `dueTimespan` (see below) can be defined - not both. Since version 4.7. | No
commonDueTimespan | With this parameter one can define the timespan from the time the delivery is processed until a delivery is not valid anymore. The same specification and restrictions like for `dueDate` also apply here. Either `dueTimespan` or `dueDate` (see above) can be defined - not both. Since version 4.7. | No
addressExtractorConfig | The address extractor configuration to be used for unstructured receivers for special handling. If not provided a default configuration is used. | No
deliveryElement (1..n) | Describes each delivery within the bulk delivery. Equivalent to the ‘’deliveryInput’’ | Yes

#### Synchronous bulk delivery request example

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://www.exthex.com/exdp/types">
        <soapenv:Header/>
        <soapenv:Body>
            <t:xdpBulkDeliveryInput version="4.2">
                <!-- the foreignId for the overall bulk process, will be returned in synchronous response and in the polling response -->
                <t:foreignId>a2fca4de-44b2-4c6f-bfe6-e506fdf1c603</t:foreignId>
                <!-- Either (s)ftp URL or path within a pre-configured target -->
                <t:xdpBulkDeliveryResultReturnTarget>/theCompany</t:xdpBulkDeliveryResultReturnTarget>
                <t:jobName>Bulk Delivery from The Company</t:jobName>
                <t:operation>bulk</t:operation>
                <t:credential>
                    <t:userId>mmustermann</t:userId>
                    <t:tenantId>theCompany</t:tenantId>
                </t:credential>
                <t:config>
                    <!-- server side configuration name which should be selected -->
                    <t:profileName>bulkDeliverySync</t:profileName>
                </t:config>
                <t:commonDocuments>
                    <t:fileName>a-common-file-for-all-deliveries.pdf</t:fileName>
                    <t:displayName>A common file for all deliveries</t:displayName>
                    <t:displayFileName>A_common_file_for_all_deliveries.pdf</t:displayFileName>
                    <!-- optional: for performance reason use "fileRefURI" -->
                    <t:content>MA==</t:content>
                    <t:mimeType>application/pdf</t:mimeType>
                    <t:fileRefURI>/a-common-file-for-all-deliveries.pdf</t:fileRefURI>
                    <!-- possibility to provide additional information concerning the document -->
                    <!-- <t:additionalData name="" /> -->
                </t:commonDocuments>
                <t:commonDeliveryQuality>NON_R</t:commonDeliveryQuality>
                <t:commonSubject>A new delivery</t:commonSubject>
                <t:commonSender>
                    <t:legalPerson>
                        <t:name>The company</t:name>
                    </t:legalPerson>
                    <t:postalAddress>
                        <t:street>Musterstraße</t:street>
                        <t:doorNr>1</t:doorNr>
                        <t:postalCode>9999</t:postalCode>
                        <t:city>Mustercity</t:city>
                        <t:countryCode>AT</t:countryCode>
                    </t:postalAddress>
                </t:commonSender>
                <t:deliveryElement>
                    <t:receiver>
                        <t:identification>
                            <t:type>urn:publicid:gv.at:cdid+gvzbpk</t:type>
                            <t:value>wzd5FY2ls01HnjpoDJfmdsieSjA=</t:value>
                        </t:identification>
                        <t:email>max.mustermann@thecompany.com</t:email>
                        <t:postalAddress>
                            <t:street>Musterstraße</t:street>
                            <t:doorNr>10/3/5</t:doorNr>
                            <t:postalCode>9999</t:postalCode>
                            <t:city>Mustercity</t:city>
                            <t:countryCode>AT</t:countryCode>
                        </t:postalAddress>
                        <t:genericId>0815</t:genericId>
                    </t:receiver>
                    <t:receiverUnstructured>
                        <t:receiverLine1>An Sg. Hrn.</t:receiverLine1>
                        <t:receiverLine2>Max Musterman</t:receiverLine2>
                        <t:receiverLine3>Musterstraße 10/3/5</t:receiverLine3>
                        <t:receiverLine4>9999 Mustercity</t:receiverLine4>
                        <t:receiverLine5>Österreich</t:receiverLine5>
                    </t:receiverUnstructured>
                    <t:document>
                        <t:fileName>another_file.pdf</t:fileName>
                        <t:displayName>Another File for you</t:displayName>
                        <t:displayFileName>Another_file_for_you.pdf</t:displayFileName>
                        <t:mimeType>application/pdf</t:mimeType>
                        <t:fileRefURI>/another_file.pdf</t:fileRefURI>
                    </t:document>
                    <t:foreignId>0f708f04-0c77-47c0-8867-aa8dd80b7942</t:foreignId>
                </t:deliveryElement>
            </t:xdpBulkDeliveryInput>
        </soapenv:Body>
    </soapenv:Envelope>

#### Asynchronous bulk delivery request example

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:exd="http://www.exthex.com/exDPDeliveryService" xmlns:t="http://www.exthex.com/exdp/types">
    <soapenv:Header/>
        <soapenv:Body>
            <exd:xdpBulkDeliveryAsyncInput version="4.4">
                <!-- the foreignId for the overall bulk process, will be returned in synchronous response and in the polling response -->
                <t:foreignId>a2fca4de-44b2-4c6f-bfe6-e506fdf1c603</t:foreignId>
                <!-- Either (s)ftp URL or path within a pre-configured target -->
                <t:xdpBulkDeliveryResultReturnTarget>/theCompany</t:xdpBulkDeliveryResultReturnTarget>
                <t:jobName>Bulk Delivery from The Company</t:jobName>
                <t:operation>bulk</t:operation>
                <t:credential>
                    <t:userId>mmustermann</t:userId>
                    <t:tenantId>theCompany</t:tenantId>
                </t:credential>
                <t:config>
                    <!-- server side configuration name which should be selected -->
                    <t:profileName>bulkDeliverySync</t:profileName>
                </t:config>
                <t:commonDocuments>
                    <t:fileName>a-common-file-for-all-deliveries.pdf</t:fileName>
                    <t:displayName>A common file for all deliveries</t:displayName>
                    <t:displayFileName>A_common_file_for_all_deliveries.pdf</t:displayFileName>
                    <!-- optional: for performance reason use "fileRefURI" -->
                    <t:content>MA==</t:content>
                    <t:mimeType>application/pdf</t:mimeType>
                    <t:fileRefURI>/a-common-file-for-all-deliveries.pdf</t:fileRefURI>
                    <!-- possibility to provide additional information concerning the document -->
                    <!-- <t:additionalData name="" /> -->
                </t:commonDocuments>
                <t:commonDeliveryQuality>NON_R</t:commonDeliveryQuality>
                <t:commonSubject>A new delivery</t:commonSubject>
                <t:commonSender>
                    <t:legalPerson>
                        <t:name>The company</t:name>
                    </t:legalPerson>
                    <t:postalAddress>
                        <t:street>Musterstraße</t:street>
                        <t:doorNr>1</t:doorNr>
                        <t:postalCode>9999</t:postalCode>
                        <t:city>Mustercity</t:city>
                        <t:countryCode>AT</t:countryCode>
                    </t:postalAddress>
                </t:commonSender>
                <t:deliveryElement>
                    <t:receiver>
                        <t:identification>
                            <t:type>urn:publicid:gv.at:cdid+gvzbpk</t:type>
                            <t:value>wzd5FY2ls01HnjpoDJfmdsieSjA=</t:value>
                        </t:identification>
                        <t:email>max.mustermann@thecompany.com</t:email>
                        <t:postalAddress>
                            <t:street>Musterstraße</t:street>
                            <t:doorNr>10/3/5</t:doorNr>
                            <t:postalCode>9999</t:postalCode>
                            <t:city>Mustercity</t:city>
                            <t:countryCode>AT</t:countryCode>
                        </t:postalAddress>
                        <t:genericId>0815</t:genericId>
                    </t:receiver>
                    <t:receiverUnstructured>
                        <t:receiverLine1>An Sg. Hrn.</t:receiverLine1>
                        <t:receiverLine2>Max Musterman</t:receiverLine2>
                        <t:receiverLine3>Musterstraße 10/3/5</t:receiverLine3>
                        <t:receiverLine4>9999 Mustercity</t:receiverLine4>
                        <t:receiverLine5>Österreich</t:receiverLine5>
                    </t:receiverUnstructured>
                    <t:document>
                        <t:fileName>another_file.pdf</t:fileName>
                        <t:displayName>Another File for you</t:displayName>
                        <t:displayFileName>Another_file_for_you.pdf</t:displayFileName>
                        <t:mimeType>application/pdf</t:mimeType>
                        <t:fileRefURI>/another_file.pdf</t:fileRefURI>
                    </t:document>
                    <t:foreignId>0f708f04-0c77-47c0-8867-aa8dd80b7942</t:foreignId>
                </t:deliveryElement>
            </exd:xdpBulkDeliveryAsyncInput>
        </soapenv:Body>
    </soapenv:Envelope>

## Handling of the bulk processing result

The sender must define in the request parameter `xdpBulkDeliveryResultReturnTarget` how the bulk processing result should be handled by the system. There are currently three possibilities.

- if not given then it is assumed that the result will be polled by the sender. See Bulk-Polling (below) and 3.4 exDPDeliveryResultPollingService for further details.
- ”(s)ftp://” - if one of the ”ftp” protocols is defined then the result is uploaded to the given address, whereby the credentials can be configured in the server-side profile or also transmitted within the string
- without protocol - if none of the above protocols is defined in the input request, then the string only determines a path within a pre-defined location, for example ”/theCompany” together with the configured location on server-side ”ftp://transfer.sendhybrid.com” will be ”ftp://transfer.sendhybrid.com/theCompany”
  The root element of the result for all of the three options is `xdpBulkDeliveryResult`.

## Bulk-Polling

The sending system has the possibility to poll for the delivery results. In the polling request the `foreignId` , which has been defined within the `xdpBulkDeliveryInput`, together with the `tenandId` and `userId` must be provided.
Here again the result object will be `xdpBulkDeliveryResult`.

## Bulk-Delivery via ZIP file

A very special case of a bulk delivery can be done with the above described bulk-delivery but within a ZIP file and in combination with the sendhybrids watched folder functionality.
In this case the sender can provide the whole delivery information within a ZIP file. This compressed folder will contain an XML file with the same scheme as described (2.6 Bulk Delivery) and additionally all the binary files as well.
The difference is that the documents are referenced locally by their filenames. The `xdpBulkDeliveryResult` will again be placed in the location which is defined in the `xdpBulkDeliveryResultReturnTarget` with the same filename as the input XML file and the postfix `_bulkDeliveryResponse.xml`.

### 2.7 Pre-Addressing

There exists a special bulk delivery handling called ”pre-addressing” where a sender just transmits the receivers metadata and the sendhybrid system will check if those receivers can be found in one of the configured electronic channels.

The difference to a ”regular” `xdpBulkDeliveryInput` structure is that the operation must be set to ”`preaddressing`” and the `bulkDeliveryElement.document elements` should be omitted (because they are not used in this process).

Synchronous and asynchronous request handling is the same as in . Also the attributes and the parameters are the same as for regular bulk deliveries.

Single query

A single pre-addressing query can be achieved by adding only one `bulkDeliveryElement` to the `xdpBulkDeliveryInput`.

## Address extractor

Within the pre-addressing the receivers metadata can be structured as well as unstructured. A build-in mechanism of the service, the so called address extractor, tries to create structured data out of the handed over unstructured receiver lines. For example the following lines
`Max Mustermann MSc Musterstraße 2 9000 Musterstadt Austria`
will create this model structure

#### Structured Receiver object after address extraction

    <receiver>
        <physicalPerson>
            <familyName>Mustermann</familyName>
            <givenName>Max</givenName>
        </physicalPerson>
        <postalAddress>
            <street>Musterstraße</street>
            <doorNr>2</doorNr>
            <postalCode>9000</postalCode>
            <city>MusterStadt</city>
            <countryCode>AT</countryCode>
        </postalAddress>
    </receiver>

### Example Requests

#### xdpBulkDeliveryInput PhysicalPerson synchronous

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://www.exthex.com/exdp/types">
       <soapenv:Header/>
          <soapenv:Body>
          <typ:xdpBulkDeliveryInput version="4.4">
             <typ:operation>preaddressing</typ:operation>
             <typ:credential>
                <typ:userId>mustermann</typ:userId>
                <typ:tenantId>integration</typ:tenantId>
             </typ:credential>
             <typ:config>
                <typ:profileName>preAddressingRequest</typ:profileName>
             </typ:config>
             <typ:deliveryElement>
                <typ:receiver>
                 <typ:physicalPerson>
                   <typ:familyName>Mustermann</typ:familyName>
                   <typ:givenName>Max</typ:givenName>
                   <typ:dateOfBirth>1990-01-01</typ:dateOfBirth>
                </typ:physicalPerson>
                   <typ:postalAddress>
                      <typ:street>Musterstraße</typ:street>
                      <typ:doorNr>1</typ:doorNr>
                      <typ:postalCode>9999</typ:postalCode>
                      <typ:city>Musterstadt</typ:city>
                      <typ:countryCode>AT</typ:countryCode>
                   </typ:postalAddress>
                </typ:receiver>
             </typ:deliveryElement>
          </typ:xdpBulkDeliveryInput>
       </soapenv:Body>
    </soapenv:Envelope>

#### xdpBulkDeliveryInput LegalPerson

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://www.exthex.com/exdp/types">
       <soapenv:Header/>
          <soapenv:Body>
          <typ:xdpBulkDeliveryInput version="4.4">
             <typ:operation>preaddressing</typ:operation>
             <typ:credential>
                <typ:userId>mustermann</typ:userId>
                <typ:tenantId>integration</typ:tenantId>
             </typ:credential>
             <typ:config>
                <typ:profileName>preAddressingRequest</typ:profileName>
             </typ:config>
             <typ:deliveryElement>
                <typ:receiver>
                 <typ:physicalPerson>
                   <typ:familyName>Mustermann</typ:familyName>
                   <typ:givenName>Max</typ:givenName>
                   <typ:dateOfBirth>1990-01-01</typ:dateOfBirth>
                </typ:physicalPerson>
                   <typ:postalAddress>
                      <typ:street>Musterstraße</typ:street>
                      <typ:doorNr>1</typ:doorNr>
                      <typ:postalCode>9999</typ:postalCode>
                      <typ:city>Musterstadt</typ:city>
                      <typ:countryCode>AT</typ:countryCode>
                   </typ:postalAddress>
                </typ:receiver>
             </typ:deliveryElement>
          </typ:xdpBulkDeliveryInput>
       </soapenv:Body>
    </soapenv:Envelope>

#### xdpBulkDeliveryInput receiverUnstructured

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://www.exthex.com/exdp/types">
       <soapenv:Header/>
          <soapenv:Body>
          <typ:xdpBulkDeliveryInput version="4.4">
             <typ:operation>preaddressing</typ:operation>
             <typ:credential>
                <typ:userId>mustermann</typ:userId>
                <typ:tenantId>integration</typ:tenantId>
             </typ:credential>
             <typ:config>
                <typ:profileName>preAddressingRequest</typ:profileName>
             </typ:config>
             <typ:deliveryElement>
               <typ:receiverUnstructured>
                <typ:receiverLine1>Herr</typ:receiverLine1>
                <typ:receiverLine2>Max Mustermann</typ:receiverLine2>
                <typ:receiverLine3>Musterstraße 1</typ:receiverLine3>
                <typ:receiverLine4>9999 Musterstadt</typ:receiverLine4>
                <typ:receiverLine5>AT</typ:receiverLine5>
                <typ:receiverLine6></typ:receiverLine6>
                <typ:receiverLine7></typ:receiverLine7>
                <typ:receiverLine8></typ:receiverLine8>
                <typ:receiverLine9></typ:receiverLine9>
               </typ:receiverUnstructured>
             </typ:deliveryElement>
          </typ:xdpBulkDeliveryInput>
       </soapenv:Body>
    </soapenv:Envelope>

### 2.8 Callback functions

The asynchronous interaction with other (callee) applications is realized via callback interfaces. A practical example is to notify a sender about reading the delivery by a recipient. These callback mechanisms could be configured for the `process` interface methods.

There are four channels available pro callback. A channel can be defined using the `deliveryNotificationCallbackChannel` field:

- exDP web service (recommended)
  This option is used to call a callback mechanism at the sender-side which implements an exDP web service interface. Additionally, it is required to provide a field `deliveryNotificationCallbackWebserviceAddress` that defines a callback web service endpoint.
- E-mail
  The “MailChannel“ is used to notify the sender via e-mail about the delivery status. Also, here is required to provide an additional field `deliveryNotificationCallbackEmailAddress` containing sender’s e-mail address.
- SMS
  Using the ”SMSChannel“ it is possible to send the notification via SMS to the sender. Here is required to provide sender’s mobile number using the `deliveryNotificationCallbackMobileNumber` field.
- Zuse2App web service
  The `deliveryNotificationCallbackChannel` field can be used to select a ”zuse2App“ channel. This channel is used to notify the sender via Zuse2App web service interface that must be implemented by the sender. Here is also required to provide the web service endpoint. In this case a notification over committals from the Governmental delivery service (German: Behördlicher Zustelldienst) is only possible.

### 2.9 Qualified signatures

Qualified signatures can be used only with the sendhybrid desktop client or via web interface. A web service interface is because of the missing possibility to interact with the user not usable.

### 2.10 XML Signature

There is an option to handle the Security-Layer-compliant `CreateXMLSignatureRequest` and `CreateCMSSignatureRequest` requests (to sign it via MOA-SS). It must be explicitly configured to be able to use it.

This feature is used to create and verify digital signatures in XML documents according to XML Signature specification (XML-DSIG) which is also implemented by the MOA-SS (see also the Security-Layer specification (http://www.buergerkarte.at/konzept/securitylayer/spezifikation/aktuell/)). Currently, XML documents containing a `CreateXMLSignatureRequest` or `CreateCMSSignatureRequest` are supported. This component could be activated and configured via profiles and templates individually.

## Interface

An XML signature could be created using an interface operation with the following parameters:

#### Input

Parameter | Description | Required
--- | --- | ---
operation | signXml | yes
filename | Input file | yes
userId | User id | yes
profileName | Name of the configuration profile | no (optional)
content | Content of the input file | yes

#### Output

Parameter | Description | Required
--- | --- | ---
infoCode.success | Successful(bool) | yes
infoCode.message | Error description | no (optional)
infoCode.code | ReturnCode | yes
filename | Recommended filename of the output | yes (if successful)

### 2.11 Error descriptions

The error and success codes are returned in response as a part of the xdpMessage element. It contains an error and its description in the language configured on the server. The possible error codes are listed in the following table:

Code | Description
--- | ---
XDP_1xxx | Client input error (e.g. missing or invalid parameter)
XDP_2xxx | Configuration or security (e.g. permissions) error
XDP_3xxx | Conversion module (error and informations)
XDP_4xxx | Signature module (error and informations)
XDP_5xxx | Delivery (error and informations)
XDP_9xxx | Other system messages or interface error

Further division is also possible:

Code | Description
--- | ---
xx01-xx39 | Input or processing error
xx40-xx69 | Infrastructure and communication error
Xx70-xx99 | Success notification

The English and German error descriptions are also provided as an attachment to this document.

### 2.12 Delivery categories

Key | Description
--- | ---
Insurances / Versicherungen |
ALL | General / Allgemein
INK | Collection / Inkasso
KFZ | Motor insurance / KFZ-Versicherung
KRA | Health insurance / Krankenversicherung
LEB | Life insurance / Lebensversicherung
PRV | Factroage / Provision
SCH | Claim / Schaden
SUN | Property and Accident Insurance / Sach- und Unfallversicherung
REI | Travel insurance / Reiseversicherung
Authorities and municipalities / Behörden und Kommunen |
charges | Stipulation of Charges / Abgabenvorschreibung

### 2.13 Delivery qualities

Delivery qualities for the governmental deliveries:

- `RSA` - RSa delivery by the recipient herself (with the delivery receipt)
- `RSA_PLUS` - RSa delivery by the recipient herself (with the delivery receipt); a pick-up by third party (even with mandate from the recipient) is not possible.
- `NON_RSA` - Simple delivery without delivery receipt
- `NON_RSA_PLUS` - Simple delivery without delivery receipt (not for postal mandatory).
- `RSB` - RSb delivery with the delivery receipt.
  RSb is only for the paper-based delivery relevant. This kind of quality in context of e-delivery must be handled just like the RSa/RSa+. In case of dual delivery is indeed distinction as before required.

Delivery qualities for the private deliveries:

- `NON_RS` - Standard letter
- `NON_RS_PLUS` - Standard letter (only by the recipient herself)
- `R` - Registered letter- deprecated but still available
- `R_PLUS` - Registered letter (only by the recipient herself) -deprecated but still available
- `RS` - Registered letter with return letter
- `RS_PLUS` - Registered letter with return letter (only by the recipient herself)
  since version 4.12 there are two new delivery qualities,
  currently used only from the side of TagesPost:
- INFOMAIL_CLASSIC - Info.Mail Classic
- INFOMAIL_PLUS - Info.Mail Plus

### 2.14 Delivery qualities and categories

#### List of delivery categories (Aufstellung Sendungskategorien)

Version 1.23

VIG KEY UDO/HOST | VIG KEY ECMS/DP | KEY-sendhybrid
--- | --- | ---
DE | EN | IT | SK | Comment | SK | Comment / Details | Code | Label (SK)
Versicherungen | Insurance |  | Poistky |  | Poistky | XX, BP |  |
Allgemein | General |  | Všeobecne |  | Všeobecne | CD | INK | Inkaso
KFZ-Versicherung | Motor Insurance |  | PZP-poistenie |  | KFZ | MV | KFZ | KFZ
Krankenversicherung | Health Insurance |  | Zdravotné poistenie |  | KV | ZH | KRA | Zdravotné
Lebensversicherung | Life Insurance |  | Životné poistenie |  | LV | LL | LEB | Životné
Provision | Factorage |  | Provízia |  | CS | PRV | PRO | Provízia
Schaden | Claim |  | Škody |  | CM | SCH | SKO | Škody
Sach- und Unfallvers. | Property and Accident Ins. |  | Postenie majetku a úrazové poistenie |  | NKS | LP | SUN | Majetok/Úraz
Reiseversicherung | Travel Insurance |  | Cestovné poistenie |  | REI |  | REI | Cestovné
WKO Rulebook |  |  | Hospodárska komora Slovensko-kniha pravidiel |  |  |  | WKO | WKO
Systeminformation | System information |  | Informácia systému | Technical/Billing notices | Technické pripomienky |  | SYS | Systém
Rechnungslegung | Billing |  | Účtovníctvo | Bill reminder | Faktúra, upomienka |  | BIL | Faktúra
Auftragswesen | Procurement |  | Sprostredkovanie | Offer, order, delivery note | Ponuka, objednávka |  | PRO | Obstarávanie
Ausschreibung | Tender |  | Tender | Tender documents | Podklady ku tenderu |  | TEN | Tender
Vertragswesen | Legal |  | Právo | Contracts | Zmluvy |  | LEG | Zmluvy
Bankwesen | Banking |  | Bankovníctvo | Payment slips, statements | Vkladný lístok, výpis |  | BAN | Bankovníctvo
Versicherungswesen | Insurance |  | Poisťovníctvo | Polizzen | Poistky |  | INS | Poistky
Gesundheit | Medical |  | Zdravie | Doctor’s letters, findings | Listy od lekára, nález |  | MED | Zdravie
News | News |  | Novinky | Newspapers, newsletters | Časopisy, letáky |  | NEW | Novinky
Sozialversicherung | SV |  | Sociálne poistenie | Contribution requirements | Stanovenie príspevku |  | SV | Sociálne
Information | Information |  | Informácia | General information | Všeobecné informácie |  | INF | Informácia
Werbung | Advertisement |  | Reklama | Mailings | Zasielanie reklamy |  | ADV | Reklama
Privat | Private |  | Privat | Private messages | Osobné pripomienky |  | PRI | Súkromné
Privatwirtschaftsverwaltung | Government |  | Správa súkromného hospodárstva | Private sector mailings | Osobné hospodárske správy |  | GOV | Verejný sektor
Trustnetz | Trustnetz |  | Sieť koncernov | Lawyers / notaries documents | Všetky dokumenty (advokáti) |  | TRU | Trustnetz
Abgabenvorschreibung | Stipulation of Charges |  | Stanovenie poplatkov | Charges | Úrady a komúny |  | CHA | Poplatky

#### List of delivery qualities (Aufstellung Sendungsqualitäten)

#### hybridService

exDP key/config | OfficialChannel Qualities | PrivateChannel Qualities | exDP finalState on delivery | exDP text
--- | --- | --- | --- | ---
RSA | RSA |  | false | RSa
RSA_PLUS | RSA_PLUS |  | false | RSa+
NON_RSA | NON_RSA |  | true | nonRSa
NON_RSA_PLUS | NON_RSA_PLUS |  | true | nonRSa+
RSB | RSB |  | false | RSb
RSB_PLUS | RSB_PLUS |  | false | RSb+
NON_R |  | NON_R | true | nonR
NON_R_PLUS |  | NON_R_PLUS | true | nonR+
R |  | R | true | R
R_PLUS |  | R_PLUS | true | R+
RS |  | RS | false | RS
RS_PLUS |  | RS_PLUS | false | RS+

#### E-Zustellung

exDP key/config | governement delivery possible | TNVZ / MPK (AMOD) |  | Delivery quality | Comment
--- | --- | --- | --- | --- | ---
|  | msg:DeliveryQuality | msg:PrivateMessageQuality |  |
RSA | possible | RSa |  | Delivery to your own hands with delivery receipt | Delivery to your own hands with delivery receipt
RSA_PLUS | possible | RSa+ |  |  | Delivery to your own hands with delivery receipt -not to postal representatives
NON_RSA | possible | nonRSa |  | delivery without delivery receipt | delivery without delivery receipt
NON_RSA_PLUS | possible | nonRSa+ |  | delivery without delivery receipt - not to postal representatives | delivery without delivery receipt - not to postal representatives (pick up by representational party is NOT possible)
RSB | possible | RSa |  |  | elctronically, RSb is treated the same as Rsa, and is therefore sent to TNVZ and ZUSE. ZUSE may display RSx in a customization
RSB_PLUS | possible | RSa+ |  |  | electronically, RSb + is treated the same way as Rsa +, and therefore sent to TNVZ and ZUSE. ZUSE may display RSx + in a customization
NON_R | possible |  | Information | Information | Normal letter (information broadcast / direct mail)
NON_R_PLUS | deprectaed quality |  |  |  |
R | possible |  | RegisteredMail | delivery without delivery receipt | delivery without delivery receipt
R_PLUS | possible |  | RegisteredMail+ | delivery without delivery receipt - not to postal representatives | delivery without delivery receipt - not to postal representatives (pick up by representational party is NOT possible)
RS | possible |  | ConfirmReceipt | Delivery to your own hands with delivery receipt | Delivery to your own hands with delivery receipt
RS_PLUS | possible |  | ConfirmReceipt+ | Delivery to your own hands with delivery receipt - not to postal representatives | delivery without delivery receipt - not to postal representatives (pick up by representational party is NOT possible)

### 2.15 Delivery qualities and delivery receipts

| Type | Description | Example | What data is required? | Delivery Receipts
--- | --- | --- | --- | --- | ---
Representatives & official delivery (government) | nonRSa | simple delivery without receipt only by official (government) e-delivery | Official delivery where no digitally signed delivery receipt is sent to the sender |  |
| nonRSa+ | simple delivery without receipt pick up by representational party is NOT possible only by official (government) e-delivery | Official delivery where no digitally signed delivery receipt is sent to the sender + pick up by representational party with power of attorney** is NOT possible |  |
| RSb | RSb Delivery with delivery receipt is treated electronically the same as Rsa (see zusemsg spec) | An RSb letter (return letter in white) is an official document that can also be sent to a representational recipient (“Delivery also to a representational recipient*”). Lawsuits, notices, judgments, passport (Klagen, Bescheide, Urteile, Reisepass) | Electronically: same as RSa Print (physically): a) Machine-readable return receipt. b) Hybrid receipt(Hybridrückschein) 22-digit code is sent by the sender of the Avisodata (XML). Requirements: Technical requirements (interface), SLA, Test delivery, postal delivery list at a and b |
| RSb+ | Rsb Delivery with receipt NOT to representational receiver is treated electronically the same as Rsa + . See spec. | RSb+ Letter (delivery receipt white) is an official (government) document. Lawsuits, notices, judgments, passport (Klagen, Bescheide, Urteile, Reisepass) +pick up by representational receiver with power of attorney | Electronically: same as RSa Print (physically): a) Machine-readable return receipt. b) Hybrid receipt(Hybridrückschein) 22-digit code is sent by the sender of the Avisodata (XML). Requirements: Technical requirements (interface), SLA, Test delivery, postal delivery list at a and b |
| RSa | RSa delivery to your own hands with delivery receipt | RSa Letter (delivery receipt blue) hriftstück, das nur der Empfängerin/dem Empfänger selbst zu eigenen Handen zugestellt werden darf (“eigenhändige Zustellung”). (Verwaltungsstraffsachen, Aktivierung Bürgerkarte) | Electronically: Example PDF return receipt (RSa), see Zustellungs-Spezifikation 1.4.1 zusemsg_1_4_1 S. 46 Print (physically): a) Machine-readable return receipt. b) Hybrid receipt(Hybridrückschein) 22-digit code is sent by the sender of the Avisodata (XML). Requirements: Technical requirements (interface), SLA, Test delivery, postal delivery list at a and b |
| RSa+ | RSa delivery to your own hands with delivery receipt. not to representational recipient (pick up by representational recipient is NOT possible) | RSa-Letter (delivery receipt blue) is an official (government) document, that may only be delivered to the recipient at their own hands (“handwritten delivery”). (Verwaltungsstraffsachen, Aktivierung Bürgerkarte) + pick up by representational party with power of attorney** is NOT possible | Electronically: Example PDF return receipt (RSa) see Zustellungs-Spezifikation 1.4.1 zusemsg_1_4_1 S. 47 Print (physically): a) Machine-readable return receipt. b) Hybrid receipt(Hybridrückschein). 22-digit code is sent by the sender of the Avisodata (XML). Requirements: Technical requirements (interface), SLA, Test delivery, postal delivery list at a and b |
Private delivery | nonR | ordinary letter | Normal delivery without additional service | Electronically: delivery without delivery receipt. Print: Standard print |
| nonR+ | Ordinary letter by hand NOT to representational receiver | Normal delivery + Handover only to recipients and not to authorized representatives | Electronically: delivery without delivery receipt. Pick up by representational party is NOT possible Print: Note “Not to authorized representative” required on the address page, only possible in connection with registered mail |
| R | Registered mail | Acceptance of delivery is documented Delivery only against confirmation of acceptance. | Electronically: delivery without delivery receipt. Print: Registration number: the path of the registered document can be traced, labels are available in post offices, mailing list (EDP list) |
| R+ | Registered mail by hand not to authorized representatives | Acceptance of delivery is documented. + Handover exclusively to recipients and also not to authorized representatives for post. For legal persons, pick-up is only permitted by the natural person directly representing the legal person (e.g. authorized signatory according to the commercial register, etc.). (z. Bsp. Prokuristen lt. Firmenbuch, etc.) | Electronically: delivery without delivery receipt.No registration at the delivery service by means of postal authority. Print: Note “Eigenhändig. Nicht an Postbevollmächtigte” required on the address page, only possible in connection with registered mail, mailing list (EDP list) |
| RS | Registered mail with delivery receipt | Acceptance of delivery is documented. Delivery only against confirmation of acceptance. A return receipt completed by the sender accompanies the registered letter to its destination and is signed there by the recipient. The sender will then be informed immediately about acceptance of delivered document. | Electronically: delivery with delivery receipt under official specification (government). See: ZUSEMSG Print: Delivery must have the note “return receipt” on the address side, only possible in connection with registered mail |
| RS+ | Registered mail with delivery receipt by hand not to authorized representatives | Acceptance of delivery is documented. Delivery only against confirmation of acceptance. A return receipt completed by the sender accompanies the registered letter to its destination and is signed there by the recipient. The sender will then be informed immediately about acceptance of delivered document. + Handover exclusively to recipients and also not to authorized representatives for post. For legal persons, pick-up is only permitted by the natural person directly representing the legal person (e.g. authorized signatory according to the commercial register, etc.). (z. Bsp. Prokuristen lt. Firmenbuch, etc.) | Electronically: delivery with delivery receipt under official specification (government). See: ZUSEMSG. No registration at the delivery service by means of postal authority Print: Note “Rückschein” required on the address page, only possible in connection with registered mail and note “Eigenhändig. Nicht an Postbevollmächtigte”, mailing list (EDP list) |
* Substitute recipient: is every adult who lives in the same apartment as the recipient. Employees and employers of the recipient who are ready to accept the consignment can also be substitute recipients. If the recipient is absent and cannot therefore know about the delivery in time because the letter was sent to a replacement recipient, the replacement delivery is ineffective. |  |  |  |  |
** You can issue a power of attorney for up to 5 people you trust. These people can receive all letters addressed to you. This does not apply to shipments marked “Not to authorized representatives”, which may only be given to the recipient personally. Required documents: An official photo ID of the person authorized to sign, postal power of attorney can be issued online / branch |  |  |  |  |

### 2.16 Code Snippets

Here you can find code snippets which will help you to create SOAP Calls

# .NET

Next you can find a code snippet, to create a connection to the SOAP Service using .NET Core.

Unfortunately, the binding.MessageEncoding is no longer available in .NET Core.

Formerly you were able to use

Former .NET code

    var binding = new BasicHttpsBinding ();
    binding.Security.Mode = BasicHttpsSecurityMode.Transport;
    binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
    binding.TextEncoding = Encoding.UTF8;
    // the following line does not work in .NET Core
    // binding.MessageEncoding = WSMessageEncoding.Mtom; <= Unfortunately this no longer works with .NET Core

With a small workaround you bring that to work:

Current .NET code

    …
                var encoding = new MtomMessageEncoderBindingElement(new TextMessageEncodingBindingElement())
                {
                    MessageVersion = MessageVersion.Soap11
                };
                var transport = new HttpsTransportBindingElement
                {
                    RequireClientCertificate = true
                };
                var customBinding = new CustomBinding(encoding, transport);

                _client = new exDPDeliveryServiceClient(customBinding, new EndpointAddress(\_configuration["sendhybridWSUrl"]));
                _client.ClientCredentials.ClientCertificate.Certificate = \_certificate;
         _client.processDeliveryAsync(xdpDeliveryInput)
    …

Prerequisite is to have installed a NuGet package, which contains the Class `MtomMessageEncoderBindingElement`.

You can find the NuGet package here: https://www.nuget.org/packages/WcfCoreMtomEncoder (related source code: https://github.com/lennykean/WcfCoreMtomEncoder)

There is a version V2, but it can not be used easily because the variable `_client` corresponds to the SOAP client (`exDPDeliveryServiceClient`), which is created on basis of the .NET tool svcutil.exe and our .WSDL and .XSD files.

`_certificate` corresponds to a X.509 client certificate which you need to use (you will get one from sendhybrid), and which will be loaded as instance of the type `X509Certificate2`.

After that `xdpDeliveryInput` can be filled with specific values and you can call for example the function `_client.processDeliveryAsync(xdpDeliveryInput)`.

## 3 SOAP xdpTx WebService (Callback-, Polling interface, …)

In order to be able to track the progress of the sending, status from 3rd-party systems (sendhybrid E-BOX, Governmental delivery service, Postmanager) are also persisted locally in the system. The current state of the sending could be requested via Transaction portal at any time.
The following modes are possible:

Push | Pull
--- | ---
Zuse2App Notification (web service) | Zuse2App Status (web service)
exDPCallbackService (web service) | exDPPollingService (web service)
E-Mail |
SMS |

The Zuse2App web services implement the interfaces according to the Austrian Governmental delivery service specification. The proprietary exDP web services are realized using the default types defined in dual delivery specification.
Accessibility of the web service interface depending on the system type:

Sender | Zuse2App Status | Zuse2App Notification | exDPCallback-Service | exDPPolling-Service
--- | --- | --- | --- | ---
Governmental delivery service | x | x | x | x
Postbox |  |  | x | x
Post A.G. |  |  | x | x

Due to the high security requirements on delivery notification from the delivery service, it is not possible to forward delivery notifications received from systems with the less complex notification standards to the Zuse2App web service. Vice versa is, however, possible, that the specification of the dual delivery can contain the messages of the delivery service.
Depending on the selection of the callback type (see Callback functions), it is possible that the sender receives a delivery notification by calling a custom service at the sender-side by a client. In the following table is shown how the configuration of `config.deliveryNotificationCallbackType` has impact on different callback channels (`config.deliveryNotificationCallbackChannel`).

Channel | XML | PDF | XML+PDF
--- | --- | --- | ---
zuse2app webservice | available | available (only via Governmental delivery service) | available (only via Governmental delivery service)
XDP Callback webservice | available | available (only via Governmental delivery service) | available (only via Governmental delivery service)
SMS Channel | not relevant | not relevant | not relevant
Mail Channel |  | PDF mit Zustellnachweis (Rückschein) und nur, bei HRS mit Zustellqualität RSa oder RSb | Warnning if XMl is not possible. PDF with a delivery receipt (return letter) and only for hybrid return letter with the Rsa and RSb delivery quality

### 3.1 exDPCallbackService and exDPPollingService

Input and output messages

Webservice | Incoming message | Outgoing message
--- | --- | ---
exDPCallbackService | DualNotificationRequest | DualnotificationResponse
exDPPollingService | StatusRequest, PollingOptions | DualNotificationRequest

* The `DualNotificationRequest` object defined in dual delivery specification is used as the response. The object type has the ”’Request”’ in its name although it is actually a response object. WSDL files:

- - /ws/exDPPollingService?wsdl

The classes and types from dual delivery specification are used (see http://www.egiz.gv.at/de/projekte/67-Duale-Zustellung).

The following XML Schemas are used:

- DualeZustellung_Notification.xsd
- DualeZustellung.xsd
- zuse.xsd
- W3C-XMLDSig.xsd
- zuse_mypersondata_en.xsd
- cs-sstc-schema-assertion-01.xsd
- ebinterface-4.0.xsd
- ebinterface-4.0-ext.xsd
- ebinterface-4.0-sv.xsd
- general-additonal-parameter.xsd
- dual_mypersondata_en.xsd

In case of polling, it is possible to control, whether binary contents can be attached to a response using the parameters `PollingOptions.RequestAddressPageDocument` and `PollingOptions.RequestReceiptDocument`. In case of the hybrid return letter (German: hybrider Rückschein) (see section 3.5 Hybrid Return Letter) two binary documents are sent to the sender: the cover sheet for the hybrid return letter (`RequestAddressPageDocument`) and the scanned PDF/A-compliant advice of delivery signed by the recipient before `RequestReceiptDocument` as well.

## Example DualNotificationRequest

    <ns2:DualNotificationRequest version="1.0" xmlns:ns2="http://reference.e-government.gv.at/namespace/zustellung/dual\_notification/20130121#" xmlns="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" xmlns:ns4="http://reference.e-government.gv.at/namespace/persondata/20020228#" xmlns:ns3="http://reference.e-government.gv.at/namespace/zustellung/msg" xmlns:ns9="http://www.ebinterface.at/schema/4p0/extensions/sv" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns6="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:ns10="http://www.ebinterface.at/schema/4p0/extensions/ext" xmlns:ns7="http://reference.e-government.gv.at/namespace/persondata/20130121#" xmlns:ns11="uri:general.additional.params/20130121#" xmlns:ns8="http://www.ebinterface.at/schema/4p0/">
      <AppDeliveryID>123456f</AppDeliveryID>
      <DualDeliveryID>4</DualDeliveryID>
    <ns2:ManipulatedPayloads>
      <ManipulatedPayload>
        <PayloadAttributes>
          <FileName>BA11G60101140000000198.pdf</FileName>
          <MIMEType>application/pdf</MIMEType>
        </PayloadAttributes>
        <BinaryDocument>
          <Content><!--Content--></Content>
        </BinaryDocument>
      </ManipulatedPayload>
    </ns2:ManipulatedPayloads>
    <Status>
      <Code>1920</Code>
        <Text>1920;delivered;delivered</Text>
      <Timestamp>2014-09-23T15:11:06.211+02:00</Timestamp>
    </Status>
    </ns2:DualNotificationRequest>

### xmlDualNotificationRequest - sendhybrid Postbox Channel

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ns5:DualNotificationRequest version="1.0" xmlns:ns2="http://reference.e-government.gv.at/namespace/persondata/20020228#" xmlns="http://reference.e-government.gv.at/namespace/zustellung/msg" xmlns:ns4="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:ns3="http://www.w3.org/2000/09/xmldsig#" xmlns:ns9="http://www.ebinterface.at/schema/4p0/extensions/ext" xmlns:ns5="http://reference.e-government.gv.at/namespace/zustellung/dual\_notification/20130121#" xmlns:ns6="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" xmlns:ns10="uri:general.additional.params/20130121#" xmlns:ns7="http://www.ebinterface.at/schema/4p0/" xmlns:ns11="http://reference.e-government.gv.at/namespace/persondata/20130121#" xmlns:ns8="http://www.ebinterface.at/schema/4p0/extensions/sv">
    <!-- The sender's "foreignId" -->
    <ns6:AppDeliveryID>Stmk-foreignId</ns6:AppDeliveryID>
    <!-- The ID of the sendhybrid service -->
    <ns6:DualDeliveryID>241</ns6:DualDeliveryID>
    <ns5:Result>
    <ns5:NotificationChannel>
    <ns5:NotificationChannelSet xsi:type="ns5:OtherNotificationType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ns5:NotificationInformation namespace="http://www.exthex.com/deliveryChannel">
    <!-- Information into which channel the delivery was put. In this case the "sendhybridPostboxChannel" which means "E-Brief" -->
    <ns13:deliverChannelName xmlns:ns13="http://www.exthex.com/deliveryChannel">sendhybridPostboxChannel</ns13:deliverChannelName>
    </ns5:NotificationInformation>
    </ns5:NotificationChannelSet>
    </ns5:NotificationChannel>
    </ns5:Result>
    <ns6:Status>
    <!-- This status code indicates a successful delivery. -->
    <ns6:Code>ID\_3000</ns6:Code>
    <ns6:Text>Received delivery notification for delivery with id Stmk-foreignId</ns6:Text>
    <ns6:Timestamp>2017-12-20T09:38:48.139+01:00</ns6:Timestamp>
    </ns6:Status>
    </ns5:DualNotificationRequest>

## Status Codes

Code | Description | Error State | Final State | exDPCallbackService | exDPPollingService (deprecated)
--- | --- | --- | --- | --- | ---
ID_2000 | Aviso callback with success | false | false | x | x
ID_2001 | Aviso callback with error | true | true | x | x
ID_3000 | A callback with a delivery receipt | false | true | x | x
ID_3001 | No delivery data found | true | true |  | x
ID_3002 | No receipt found for delivery data | false | false |  | x
ID_3003 | No receipt expected for delivery data (no RS quality) | false | true |  | x
ID_3004 | A callback with a non final state | false | false | x | x
ID_9000 | General error occured! | true | true | x | x

## XML Schemas

### DualeZustellung_Notification.xsd

### DualeZustellung.xsd

### zuse.xsd

### W3C-XMLDSig.xsd

### cs-sstc-schema-assertion-01.xsd

### general-additonal-parameter.xsd

### ebinterface-4.0.xsd

### ebinterface-4.0-ext.xsd

### ebinterface-4.0-sv.xsd

### dual_mypersondata_en.xsd

### 3.2 exDPDeliveryStatusPollingService

Path: /ws/exDPDeliveryStatusPollingService?wsdl

Since version 2.17 a new webservice can be implemented for polling, which can track the delivery status throughout the whole process. This new service deprecates the former exDPPollingService.

Important

It is highly recommended to implement the sendhybrid callback and polling service for a maximum of possible information about a delivery. For example after you polled for the status and a final state has been received, a possible correction can still be sent via callback.

There are 3 different types of statuses you can get back:

- Process status - the state of the delivery in the process
- Aviso status - if delivery is a hybrid letter delivery (Hybrider Rückschein)
- Receipts - if delivery is of receipt quality

#### 3.2.1 Versioning

## Version History

Version | Description of Changes
--- | ---
1.0 | Attributes added in subsequent versions do not exist in this version and the versions before it.
1.1 | The following element in GlobalDeliveryInfo BarCode added to response.
1.2 | The following element in GlobalDeliveryInfo PaymentState added to response.
1.3 | The following elements in the deliveryStatus.additionalData.hybridLetterData PDFDigital Uhrzeit Abholfiliale (deliveryStore) Hinterlegungsort (deliveryPlace) Uebernahmeverhaeltnis (assumptionProportion) IdentitaetGeprueft (identityCheck) Freitext (description) GrundUnfaehigkeit (incapacityDescription) and in the ****deliveryStatus.additionalData.hybridLetterData.NachsendeDaten (DeliveryReceiptForwardingData)**** PostalCode Municipality StreetName BuildingNumber DoorNumber Anrede (salutation) Titel (title) Vorname (firstname) Nachname (lastname) added to the response.
3.2 | The following elements in GlobalDeliveryInfo: consolidatedInDeliveryId consolidatedInForeignId and the elements in deliveryStatus: selectedDeliveryChannelDisplayName DeliveryServer added to response.
4.4 | The following elements in GlobalDeliveryInfo `jobInfoMessages` `deliveryDataInfoMessages` and in DeliveryStatus.DeliveryFile `infoMessages` added to response. (note: Only if the profile parameter “returnInfoMessages” is set to “true”, all these infoMessages have to be added, otherwise all tags are omitted. Default value for this parameter, if it is missing, is “false”.)
5.19 | `deliveryExecutionTime` (for Grace period) and `deliveryQuality` are added to `DeliveryStatusType` inside `exDPDeliveryStatusPollingServiceTypes.xsd`. New 4.12 interceptor is created on Tx-Services not to return `deliveryExecutionTime` and `deliveryQuality` for customers not using newest version.

#### 3.2.2 Parameter information

#### 3.2.1 DeliveryStatusRequest

You can poll for a specific delivery with the `foreignId` you specified and optional the `deliveryId` which was returned in the delivery call. There is also the attribute `version` that can be used to call the certain version of the service.

In case of bulk devliveries `deliveryId` is required, since `foreignId` applies for all deliveryData.

Parameter | Description | Mandatory
--- | --- | ---
tenantId | The tenant id the delivery has been submitted with | Yes
userId | The user id the delivery has been submitted with | Yes
foreignId | Foreign id the sender submitted the delivery with | Yes
deliveryId | Delivery id returned when submitted via the sendhybrid service | No
lastStatusOnly | Returns only the last status received | Yes

#### 3.2.2 DeliveryStatusResponse

A list of delivery status and the global delivery info element.

Parameter | Description | Mandatory
--- | --- | ---
globalDeliveryInfo | Basic delivery info like tenant id, user id, last status details… | Yes
deliveryStatus | A list of statuses for this delivery | No

#### 3.2.3 GlobalDeliveryInfo

A list of delivery status and the global delivery info element.

Parameter | Description | Mandatory
--- | --- | ---
tenantId | The tenant id the delivery has been submitted with | Yes
userId | The user id the delivery has been submitted with | Yes
foreignId | Foreign id the sender submitted the delivery with | Yes
deliveryId | Delivery id returned when submitted via the sendhybrid service | No
profile | Profile used for this delivery | No
lastStatusDate | Send date when delivery was handed over to channel or receipt date | Yes
statusCode | Delivery code which represents the state the delivery is in | Yes
finalState | Marks a delivery status as final. There are no more statuses expected | No
errorState | Marks error states | No
paymentState | Marks a payment status: true if the payment has been realized; otherwise false | No
barCode | The barcode generated for the hybrid letter delivery. Since version ‘1.1’. | No
consolidatedInDeliveryId | The deliveryId into which this delivery has been consolidated (i.e. put into same envelope) New since version 3.2 | No
consolidatedInForeignId | The foreignId into which this delivery has been consolidated (i.e. put into same envelope) New since version 3.2 | No
jobInfoMessages | Info messages list taken from job | No
deliveryDataInfoMessages | Info messages list taken from delivery data | No

#### 3.2.4 DeliveryStatus

Holding all important values of a status as well as possible additional data.

Parameter | Description | Mandatory
--- | --- | ---
date | Send date when delivery was handed over to channel or receipt date | No
statusCode | Delivery code which represents the state the delivery is in | Yes
statusDescription | A short textual description about the delivery state | No
finalState | Marks a delivery status as final. There are no more statuses expected | Yes
errorState | Marks error states | Yes
selectedDeliveryChannel | The delivery channel which has been selected | No
selectedDeliveryChannelDisplayName | The name of the channel through which the delivery has been sent | No
deliveryServer | The delivery server which has been selected | No
additionalData | Holds additional aviso/delivery/hybridletter information | No
files | A list of DeliveryFiles | No

#### 3.2.4.1 DeliveryFile

The delivery file describes a file in the sendhybrid service. The file can be retrieved via the exDPFile-TransferService by using the hash.

Parameter | Description | Mandatory
--- | --- | ---
documentId | The ID identifying the document | Yes
type | Type of document retrieved (e.g.: INPUT_DOCUMENT, OUTPUT_DOCUMENT, DELIVERY_DOCUMENT, ADDRESS_PAGE) | Yes
filename | The filename of the file | Yes
mimeType | MimeType identifies file format | Yes
order | Order of files from INPUT over DELIVERY to OUTPUT documents | Yes
fileHashCode | Reference to retrieve the file | Yes
infoMessages | Info messages list taken from document | No

DeliveryFile-Type - The type of document which can be sent back. The Input/Output/Document/- Payment and Address type can be returned when the process state of the delivery is returned. On a delivery status which represents a receipt the receipt document can be attached as delivery file.

Parameter | Description
--- | ---
ADDRESS_PAGE | Address page document
RECEIPT_DOCUMENT | Delivery document
PAYMENT_SLIP | Payment slip document
OUTPUT_DOCUMENT | the jobs output document (differs from DELIVERY_DOCUMENT), eg. the summary report
INPUT_DOCUMENT | Marks input document
DELIVERY_DOCUMENT | marks delivery document from context, which means the processed input document, eg. a signed document which has been delivered
ATTACHMENT_DOCUMENT | marks as attachment document (since 3.0.1)

#### 3.2.4.2 AdditionalData

The additional data element holds more information depending on which type of status is sent by the system.

Parameter | Description | Mandatory
--- | --- | ---
avisoData | Information about the aviso data | No
deliveryInfo | Additional information about the delivery process | No
hybridLetterData | Hybrid letter specific information | No

DeliveryInfo

Parameter | Description | Mandatory
--- | --- | ---
zbpk | The zbpk of the receiver | No

AvisoData

Parameter | Description | Mandatory
--- | --- | ---
barCode | The barcode generated for the hybrid letter delivery | Yes
avisoStatusText | Optional text about the status from the Austrian Post A.G. (e.g.: receiver address invalid: no city) | No
deliveryAvisoStatus | Status of aviso data | Yes

DeliveryAvisoStatus

Value | Description
--- | ---
NO_DATA | There is no aviso data
WAITING_FOR_SENDING | Xml not yet sent. Wait for queue to send data.
WAITING_FOR_CHECK | Polling for ok/error of Post A.G. (in result xml on ftp)
SUCCESS | Aviso Data is checked and positive so it is ready for a positive callback and for print
OK | Result is ok (callback is sent)
ERROR | Result is error (callback is sent)

#### 3.2.4.3 HybridLetterData

Important

Please note that in the hybrid letter process a status correction is always possible (even after a final state). It is recommended to poll at least one month after a final delivery status.

(DeliveryReceipt-table)

Parameter | Description | Mandatory
--- | --- | ---
postalStatusCode | Postal status code of the delivery submitted by Post A.G. | No
postalStatusText | Textual representation of the code | No
postalStatusTextDetail | Free text with additional information about the status | No
finalState | Marks a final status (true/false) | Yes
date | The day the status was set | No
deliveryArea | Specifies the department type and identifier of the Post A.G. | No
startOfDepositation | Start of the pickup due date (is set if the state is “hinterlegt” or “ausgefolgt”) | No
statusCorrection | Boolean value indicating if the status was changed | No
comment | If the status was changed, this free text describes which values have been changed | No
PDFDigital | Digital = 1, Scanpoint = 0 | No
Uhrzeit | The time the status was set | No
Abholfiliale (deliveryStore) | The delivery store where the delivery can be picked up | No
Hinterlegungsort (deliveryPlace) | The delivery place where the delivery can be picked up | No
Uebernahmeverhaeltnis (assumptionProportion) | The relationship of the person who took the delivery | No
IdentitaetGeprueft (identityCheck) | Was the identity checked | No
Freitext (description) | Custom text | No
GrundUnfaehigkeit (incapacityDescription) | The reason why the person could not sign | No
NachsendeDaten (DeliveryReceiptForwardingData) | Holds additional recipient information for forwarding | No

#### 3.2.4.4 NachsendeDaten (DeliveryReceiptForwardingData)

Parameter | Description | Mandatory
--- | --- | ---
PostalCode | Postal code | Yes
Municipality | Municipality | Yes
StreetName | Street name | Yes
BuildingNumber | Building number | No
DoorNumber | Door number | No
Rechtstitel | Legal title - only optional with status “gerichtlicher Nachsender” | No
Anrede | Salutation | Yes
Titel | Title | No
Vorname | First name | No
Nachname | Surname - company name also passed with this field | Yes

#### 3.2.3 Test examples via soapUI

The following is needed to poll for a delivery:

- tenantId
- userId
- foreignId

The following are example-screenshots from a local test environment:

#### 3.2.2.1. Version 1.0

#### 3.2.2.2. Version 1.1 (BarCode added)

#### 3.2.2.3. Version 1.2 (PaymentState added)

#### 3.2.2.4. Version 1.3 (HybridLetterData added)

#### 3.2.2.5. Version 3.1 (`ConsolidatedInDeliveryId` and `ConsolidatedInForeignId added)`

#### 3.2.2.6. Version 3.2 (`SelectedDeliveryChannelDisplayName` added)

#### 3.2.2.7. Version 4.4 (InfoMessages for Job, DeliveryData and Files added)

#### 3.2.2.8. Version 5.19 (deliveryExecutionTime and deliveryQuality added to deliveryStatus)

### 3.3 exDPFileTransferService

Path:/ws/exDPFileTransferService?wsdl

The exDPFileTransferService can be used to fetch documents by their hash code which can be re- trievied via the polling service (see fileHashCode).

FileDownloadRequest

Parameter | Description | Mandatory
--- | --- | ---
tenantId | Tenant id of the tenant the file belongs to | Yes
userId | User id of the sender the file belongs to | Yes
foreignId | Foreign id of the delivery | Yes
documentId | Document id | Yes
fileHashCode | Hash code of the searching file | Yes

FileDownloadResponse

Parameter | Description | Mandatory
--- | --- | ---
documentId | Document id | Yes
fileHashCode | File hash code | No
filename | Filename | No
mimeType | Mime type of the file | No
contentLength | Length of the file content | No
content | Base64 encoded content of the file | Yes
status | Response status | Yes

### 3.4 exDPDeliveryResultPollingService

## Web Service Address

The web service can be called with the following address:

http://<host>/<txPortal>/ws/exDPDeliveryResultPollingService

#### 3.4.1 Versioning

## Bulk-Polling

Since version 3.2 new webservice can be implemented for polling, which can poll for multiple deliveries in one request.

## Version History

Version | Description of change
--- | ---
None Version (Initial version) 1.0 | `success,` `finished` are set to true per default in BulkDeliveryResult.
4.4 | `profile` `tenantId` `userId` `operation` have been added to `XdpBulkDeliveryResult.`

#### 3.4.2 Parameter information

#### BulkDeliveryResultRequest

The sender can poll for a specific delivery result with the `foreignId` , which has been defined within the `xdpBulkDeliveryInput`, together with the `tenandId` and `userId.` There is also the attribute `version` that can be used to call the certain version of the service.

Parameter | Description | Mandatory
--- | --- | ---
tenantId | The tenant id the delivery has been submitted with | Yes
userId | The user id the delivery has been submitted with | Yes
foreignId | foreign id the sender submitted the delivery with | Yes
jobId | jobId id returned when submitted via the sendhybrid service | No

#### Example Request

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:exd="http://www.exthex.com/exDPDeliveryResultPollingServiceTypes.xsd">
       <soapenv:Header/>
       <soapenv:Body>
          <exd:bulkDeliveryResultRequest version="4.4">
              <exd:tenantId>integration</exd:tenantId>
              <exd:userId>mmustermann</exd:userId>
                <exd:foreignId>d4fc4cdf-a033-4c11-bd86-530f88f29d3d</exd:foreignId>
                <!--Optional:-->
              <exd:jobId>651</exd:jobId>
          </exd:bulkDeliveryResultRequest>
       </soapenv:Body>
    </soapenv:Envelope>

#### BulkDeliveryResultResponse

The delivery result polling service returns a `xdpBulkDeliveryResult.`
Example Response

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
       <soap:Body>
          <xdpBulkDeliveryResult xmlns:ns2="http://www.exthex.com/exdp/types" xmlns="http://www.exthex.com/exDPDeliveryResultPollingServiceTypes.xsd">
             <ns2:jobId>2151</ns2:jobId>
             <ns2:foreignId>d4fc4cdf-a033-4c11-bd86-530f88f29d3d</ns2:foreignId>
             <ns2:overallSuccess>true</ns2:overallSuccess>
             <ns2:overallFinished>true</ns2:overallFinished>
             <ns2:result>
                <ns2:deliveryData>
                   <ns2:receiver>
                      <ns2:identification>
                         <ns2:type>urn:privateid:at:cdid+ebox</ns2:type>
                         <ns2:value>MWYxNDBhYjQtMmFjYy00YWFiLTlhMzYtZmFjZGI4N2RmYWU0</ns2:value>
                      </ns2:identification>
                   </ns2:receiver>
                   <ns2:deliveryQuality>NON_R</ns2:deliveryQuality>
                   <ns2:registered>false</ns2:registered>
                   <ns2:deliveryChannel>bertChannel</ns2:deliveryChannel>
                   <ns2:deliverySubject>Zustellung</ns2:deliverySubject>
                   <ns2:deliveryMailBody>Ihre elektronische Zustellung befindet sich im Anhang.&lt;br>ZustellID=2961&lt;br>Geschäftszahl=&lt;br>&lt;br>mit freundlichen Grüßen&lt;br>Ihr sendhybrid Zustelldienst</ns2:deliveryMailBody>
                   <ns2:requiredUserSecClass>SecClass0</ns2:requiredUserSecClass>
                   <ns2:deliveryId>2961</ns2:deliveryId>
                   <ns2:success>true</ns2:success>
                   <ns2:infoMessages>
                      <ns2:infoMessage>
                         <ns2:id>1981</ns2:id>
                         <ns2:message>Das Dokument wurde durch nachfolgende Kanäle erfolgreich zugestellt: exDP Postfach</ns2:message>
                      </ns2:infoMessage>
                   </ns2:infoMessages>
                   <ns2:transmitDate>2017-09-06T11:17:07.573+02:00</ns2:transmitDate>
                </ns2:deliveryData>
                <ns2:success>true</ns2:success> <!-- tag has been removed in version 4.4 -->
                <ns2:finished>true</ns2:finished> <!-- tag has been removed in version 4.4 -->
                <ns2:profile>default</ns2:profile>
                <ns2:operation>bulk</ns2:operation>
                <ns2:tenantId>integration</ns2:tenantId>
                <ns2:userId>mmustermann</ns2:userId>
             </ns2:result>
          </xdpBulkDeliveryResult>
       </soap:Body>
    </soap:Envelope>

### 3.5 Hybrid Return Letter

The sendhybrid service makes it possible to deliver documents by defining additionally the delivery quality ( “RSa” or “RSb”) of the sending as well as the usage of the hybrid return letter. The following figure offers an overview about individual systems, their components and also how the hybrid return letter is involved in the whole process. The sendhybrid E-BOX is actually described as a recipient system, however, currently it cannot handle “RSa” or “RSb” deliveries.

A delivery (with the certain delivery quality and also a profile needed for the further processing) is via exDP web service interface received. In the next step a delivery channel is selected:

1. A governmental delivery service
   This channel is used if a delivery should be electronically via Governmental delivery service delivered to a recipient. The delivery service forwards a delivery to the electronic postbox of the recipient. A read confirmation is additionally sent to the transaction portal via Zuse2App web service. A transaction portal process the received data, persist it in a database and forwards it to the `DeliveryReceptionService` (it selects in the next step `ReceiptReturnChannel` provided in a profile and send the read confirmation to the configured channel). For example it might be a Zuse2App or XDP callback web service. An alternative to those two options is the polling web service in transaction portal. A polling service checks for read confirmations (interval is also configurable) and it receives the available read confirmations as a part of the response.
2. Print channel
   If a delivery cannot be delivered electronically, it is sent to the print channel. In the first step, an RS cover sheet (standard-compliant) is created. Further are the Aviso data is collected and persisted. Next, a cron job (“Send/update AvisoData”) is started, the Aviso data is then stored as an XML in file system (the output format is also defined) and it is finally uploaded to the FTP of the post
   service. This XML file is validated at the post-side and as an output, a validation result is stored on the FTP (an id is also provided in order to be able to identify a delivery) which is downloaded and processed by the same cron job (“Send/update AvisoData”). If the validation of the Aviso data was succeeded, the status of the delivery is updated to “OK”; otherwise it is set to “ERROR”.

Aviso Status Polling: The AvisoStatusPolling service processes in regular time-intervals deliveries with the status ERROR“. The status of the deliveries is updated to „DELIVERY_ERROR“ and an error callback at the sender-side is called. The callback request contains also an Aviso status and also error description (a semi-colon is used as a delimiter).
Print queue/Print delivery: Deliveries with the Aviso status “OK” are put into the print queue (also time-based) in order to print exclusively deliveries containing corresponding Aviso data. The print data is finally uploaded on the FTP server and printed at a print shop. The prints are then delivered to the post service (Post A.G). In the next step, the print should be delivered to the recipient. A delivery status (e. g. “delivered”) in an defined form is then uploaded to the FTP server of the post office (e.g. Post A.G).
Delivery Receipt Polling: The DeliveryReceiptPolling service is also running as a cron job and is used to get status files of deliveries from the FTP server of the post service. If a status file is found, the certain delivery is read from the database and if the delivery status is positive (document is successfully delivered), a delivery receipt is searched on the FTP server and the status code, status report, corresponding status text from the delivery status files on the FTP (separated with the semi-colon) and also the delivery receipt (as an attachment) is sent to the sender via callback mechanism. If the delivery status is negative (a document could not be delivered), the status code, status report and the status test from the delivery status file (FTP) separated by the semi-colon is via callback mechanism passed to the sender.
If the delivery status is neutral (delivery is for example deposited), the sender is also informed about it via callback mechanism. In any case, the delivery status file as well as the delivery receipt is deleted on the FTP. An exception is if the status is positive and the corresponding delivery receipt is not found. In this case, the status files is not deleted and it is handled in the next iteration again.

### 3.6 zuse2App_p2 (Phase 2) interface

This interface is part of the xdpTxService interface. Is used for communication with the eDelivery software molule (BZD channel), which is used for the delivery of official governmental documents. Includes callback operations in the event of a status change (e.g. ERV forwarding deliveries (justice channel)) or for the delivery of delivery receipts in the case of the RSa.

Interface includes following 3 operations:

#### 3.6.1 Operstion Notification

Notification of the successful or non-successful RSa delivery by means of delivery receipt.

#### 3.6.1.1 Versioning

Currently no versions

#### 3.6.1.2 Input Parameter

Input: DeliveryNotification

Parameter | Decription | Mandatory
--- | --- | ---
DeliveryNotification.DeliverySystem | URL of the delivery system | yes
DeliveryNotification.ZSDeliveryID | Unique id | yes
DeliveryNotification.AppDeliveryID | Unique document id by sender | yes
DeliveryNotification.GZ | Business number (Geschäftszahl) | no
DeliveryNotification.SenderDetails.Identification.Value | Unique identifier of sender. Actual value of the identifier. | yes
DeliveryNotification.SenderDetails.Identification.Type | Type of identifier value (eg ‘ZMR’, ‘SV-Nummer’, ‘Martrikelnummer’, database identification, …) | yes
DeliveryNotification.SenderDetails.CorporateBody.FullName | Name of corporate body of sender (whole name) | no
DeliveryNotification.ReceiverDetails..Identification.Value | Unique identifier of receiver. Actual value of the identifier. | yes
DeliveryNotification.ReceiverDetails.Identification.Type | Type of identifier value (eg ‘ZMR’, ‘SV-Nummer’, ‘Martrikelnummer’, database identification, …) | yes
DeliveryNotification.ReceiverDetails.PhysicalPerson.Name.GivenName | Given name of receiver as physical person | yes
DeliveryNotification.ReceiverDetails.PhysicalPerson.Name.FamilyName | Family name of receiver as physical person | yes
DeliveryNotification.ReceiverDetails.PhysicalPerson.DateOfBirth | Birthdate of receiver as physical person | no
DeliveryNotification.User.Role | User who accepted the message. Role of the user: • Receiver: Receiver personally • Representative: authorized representative • InsolvencyAdministrator: insolvency administrator • System: A system component of e-delivery is the trigger for the message operation | yes
DeliveryNotification.User.Identification.Value | Unique identifier of user. Actual value of the identifier. | yes
DeliveryNotification.User.Identification.Type | Type of identifier value of user(eg ‘ZMR’, ‘SV-Nummer’, ‘Martrikelnummer’, database identification, …) | yes
DeliveryNotification.User.TargetIdentification.Value | Encoded value of a target item from ‘DeliveryRequest’. | no
DeliveryNotification.User.TargetIdentification.Type | Type of valueof a target item from ‘DeliveryRequest’. | no
DeliveryNotification.User.PhysicalPerson.Name.GivenName | Given name of user as a physical person | yes
DeliveryNotification.User.PhysicalPerson.Name.FamilyName | Family name of user as a physical person | yes
DeliveryNotification.User.PhysicalPerson.DateOfBirth | Date of birth of user as a physical person | no
DeliveryNotification.Timestamp | Date of acceptance of delivery | yes
DeliveryNotification.Accepted.NotificationsPerformed | Timing of the recipient’s email notification (max 2 email notification) |
DeliveryNotification.Accepted.NotificationsPerformed.RecipientNotification.Timestamp | Timestamp of recipient’s email notification | yes (no by DeliveryError)
DeliveryNotification.DeliveryError.NotificationsPerformed | Timing of the recipient’s email notification (max 2 email notification) |
DeliveryNotification.DeliveryError.NotificationsPerformed.RecipientNotification.Timestamp | Timestamp of recipient’s email notification | no (yes by DeliveryError)
DeliveryNotification.DeliveryError.ErrorInfo.Code | Error code | no
DeliveryNotification.DeliveryError.ErrorInfo.Text | Textual description of the error. | no
DeliveryNotification.ERVConfirmedDelivery.ERVCode | Address code of the electronic system of justice (ERV) | no (yes by ERV forwarding)
DeliveryNotification.ERVConfirmedDelivery.ERVDeliveryTimestamp | Date of acceptance of the electronic document from ERV. This date is calculated according to the GOG and specifies the next working day following arrival at the transfer office and does not contain any time. | no (yes by ERV forwarding)
DeliveryNotification.Signature | Signature | yes
DeliveryNotification.AdditionalFormat | Use “application/pdf” as MIME-Type | no

#### 3.6.1.3 Output

Output: DeliveryNotificationACK

Confirmation of preservation of a delivery receipt.

Parameter | Decription | Mandatory
--- | --- | ---
DeliveryNotificationACK.ZSDeliveryID | Unique id of electronic document | yes
DeliveryNotificationACK.AppDeliveryID | Unique document id by sender | yes

#### 3.6.2 Operation Status

This Method is used in ERV forwarding (justice channel) or asynchronous backward communication in the case of communication problems with the display module (MeinPostkorb GUI) or callback attachments.

The object ‘DeliveryRequestStatus’ corresponds exactly the object ‘DeliveryResponse’ of the interface ‘app2Zuse’. However, only the sub-elements ‘msg: Success’ and ‘msg: Error’ may be used in asynchronous backward communication

#### 3.6.2.1 Versioning

Currently no versions

#### 3.6.2.2 Input

Input-Object: DeliveryRequestStatus

There are 2 possible variations of ‘DeliveryRequestStatus’:

DeliveryRequestStatus.Success | Delivery is successful.
DeliveryRequestStatus.Error | Delivery is unsuccessful.

Parameter | Description | Mandatory
--- | --- | ---
DeliveryRequestStatus.Success.ZSDeliveryID | Unique id | yes
DeliveryRequestStatus.Success.AppDeliveryID | Unique document id by sender | yes
DeliveryRequestStatus.Success.GZ | Business number (Geschäftszahl) | no
DeliveryRequestStatus.Success.DeliverySystem | URL of the delivery system | yes
DeliveryRequestStatus.Success.DeliveryTimestamp | Delivery time | no (yes by DeliveryRequestStatus.Success)
DeliveryRequestStatus.Error.ZSDeliveryID | Unique id | yes
DeliveryRequestStatus.Error.AppDeliveryID | Unique document id by sender | yes
DeliveryRequestStatus.Error.GZ | Business number (Geschäftszahl) | no
DeliveryRequestStatus.Error.DeliverySystem | URL of the delivery system | yes
DeliveryRequestStatus.Error.ErrorInfo.Code | Error code | no (yes by DeliveryRequestStatus.error)
DeliveryRequestStatus.Error.ErrorInfo.Text | Error code | no (yes by DeliveryRequestStatus.error)
DeliveryRequestStatus.RelayedViaERV |  |
DeliveryRequestStatus.RelayedViaERV.ERVCode | ERVCode | no (only by ERV forwarding)
DeliveryRequestStatus.Signature | Signature | yes

#### 3.6.2.3 Output

Confirms receipt of the notification.

Output-Object: DeliveryRequestStatusACK

Parameter | Decription | Mandatory
--- | --- | ---
DeliveryRequestStatus.ZSDeliveryID | Unique id of electronic document | yes
DeliveryRequestStatus.AppDeliveryID | Unique document id by sender | yes

#### 3.6.3 Operation GetVersion

Input: GetVersionRequest

Output: GetVersionResponse.Version

#### 3.6.4

The following WSDL and XML files is used:

zusetnvz:

### zuse2tnvz_p2.wsdl

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:tnvz="http://reference.e-government.gv.at/namespace/zustellung/tnvz/phase2/20181206#" xmlns:service="http://reference.e-government.gv.at/namespace/zustellung/tnvz-service/phase2/20181206#" xmlns:p="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" xmlns:msg="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/tnvz-service/phase2/20181206#">
        <wsdl:types>
            <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" elementFormDefault="qualified" attributeFormDefault="unqualified" vc:minVersion="1.1" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
                <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/tnvz/phase2/20181206#" schemaLocation="zusetnvz_p2.xsd"/>
            </xs:schema>
        </wsdl:types>
        <wsdl:message name="GetVersionRequest">
            <wsdl:part name="GetVersionRequest" element="tnvz:GetVersionRequest">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="GetVersionResponse">
            <wsdl:part name="GetVersionResponse" element="tnvz:GetVersionResponse">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="GetInfoRequest">
            <wsdl:part name="GetInfoRequest" element="tnvz:GetInfoRequest">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="GetInfoResponse">
            <wsdl:part name="GetInfoResponse" element="tnvz:GetInfoResponse">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="QueryPersonRequest">
            <wsdl:part name="QueryPersonRequest" element="tnvz:QueryPersonRequest">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="QueryPersonResponse">
            <wsdl:part name="QueryPersonResponse" element="tnvz:QueryPersonResponse">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="QueryAddressabilityRequest">
            <wsdl:part name="QueryAddressabilityRequest" element="tnvz:QueryAddressabilityRequest">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="QueryAddressabilityResponse">
            <wsdl:part name="QueryAddressabilityResponse" element="tnvz:QueryAddressabilityResponse">
            </wsdl:part>
        </wsdl:message>
        <wsdl:portType name="TNVZServicePort">
            <wsdl:operation name="GetVersion">
                <wsdl:input name="GetVersionRequest" message="service:GetVersionRequest"/>
                <wsdl:output name="GetVersionResponse" message="service:GetVersionResponse"/>
            </wsdl:operation>
            <wsdl:operation name="GetInfo">
                <wsdl:input name="GetInfoRequest" message="service:GetInfoRequest"/>
                <wsdl:output name="GetInfoResponse" message="service:GetInfoResponse"/>
            </wsdl:operation>
            <wsdl:operation name="QueryPerson">
                <wsdl:input name="QueryPersonRequest" message="service:QueryPersonRequest"/>
                <wsdl:output name="QueryPersonResponse" message="service:QueryPersonResponse"/>
            </wsdl:operation>
            <wsdl:operation name="QueryAddressability">
                <wsdl:input name="QueryAddressabilityRequest" message="service:QueryAddressabilityRequest"/>
                <wsdl:output name="QueryAddressabilityResponse" message="service:QueryAddressabilityResponse"/>
            </wsdl:operation>
        </wsdl:portType>
        <wsdl:binding name="TNVZServicePortSoap12" type="service:TNVZServicePort">
            <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
            <wsdl:operation name="GetVersion">
                <soap12:operation soapAction="GetVersion" soapActionRequired="false" style="document"/>
                <wsdl:input name="GetVersionRequest">
                    <soap12:body use="literal"/>
                </wsdl:input>
                <wsdl:output name="GetVersionResponse">
                    <soap12:body use="literal"/>
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="GetInfo">
                <soap12:operation soapAction="GetInfo" soapActionRequired="false" style="document"/>
                <wsdl:input name="GetInfoRequest">
                    <soap12:body use="literal"/>
                </wsdl:input>
                <wsdl:output name="GetInfoResponse">
                    <soap12:body use="literal"/>
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="QueryPerson">
                <soap12:operation soapAction="QueryPerson" soapActionRequired="false" style="document"/>
                <wsdl:input name="QueryPersonRequest">
                    <soap12:body use="literal"/>
                </wsdl:input>
                <wsdl:output name="QueryPersonResponse">
                    <soap12:body use="literal"/>
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="QueryAddressability">
                <soap12:operation soapAction="QueryAddressability" soapActionRequired="false" style="document"/>
                <wsdl:input name="QueryAddressabilityRequest">
                    <soap12:body use="literal"/>
                </wsdl:input>
                <wsdl:output name="QueryAddressabilityResponse">
                    <soap12:body use="literal"/>
                </wsdl:output>
            </wsdl:operation>
            <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        </wsdl:binding>
        <wsdl:service name="TNVZServicePortService">
            <wsdl:port name="TNVZServicePortSoap12" binding="service:TNVZServicePortSoap12">
                <soap12:address location="/tnvzservice"/>
            </wsdl:port>
        </wsdl:service>
    </wsdl:definitions>

### zusetnvz_p2.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Mit XMLSpy v2016 (http://www.altova.com) von Arne Tauber (TU Graz) bearbeitet -->
    <!--    ###

            Die Versionsnummer des Schemas wird immer dann hochgezogen, wenn das Schema
            selbst verändert wurde aber auch dann, wenn zumindest eines der importierten
            ZUSE-Schemata angepasst wurde.

            ###-->
    <xs:schema xmlns:tnvz="http://reference.e-government.gv.at/namespace/zustellung/tnvz/phase2/20181206#" xmlns:p="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msg="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/tnvz/phase2/20181206#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.1.0-002">
        <!--### Imports ###-->
        <!--### ZUSE-Personendaten: namespace="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" version="2.1.0-003" ###-->
        <xs:import namespace="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" schemaLocation="../zusemsg/zuse_mypersondata_en_p2.xsd"/>
        <!--### ZUSE-Nachricht: namespace="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" version="2.1.0-003" ###-->
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" schemaLocation="../zusemsg/zuse_p2.xsd"/>
        <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="../zusemsg/W3C-XMLDSig.xsd"/>
        <xs:import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="../zusemsg/xenc-schema.xsd"/>
        <!--******** Definition der  Request- und Response-Elemente  ********-->
        <!--****************** Abfrage der Webserviceversion *******************-->
        <xs:element name="GetVersionRequest" type="msg:SimpleRequestType"/>
        <xs:element name="GetVersionResponse">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Version">
                        <xs:simpleType>
                            <xs:restriction base="msg:VersionNumberType">
                                <xs:enumeration value="2.1.0-002"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="GetInfoRequest" type="msg:SimpleRequestType"/>
        <xs:element name="GetInfoResponse">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Property" minOccurs="0" maxOccurs="unbounded">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="Value" type="xs:token"/>
                            </xs:sequence>
                            <xs:attribute name="Name" type="xs:token" use="required"/>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <!--*************** Abfrage des Teilnehmerverzeichnisses **************-->
        <xs:element name="QueryPersonRequest">
            <xs:annotation>
                <xs:documentation>Suchabfrage</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="QueryEntryList">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="QueryEntry" type="tnvz:PersonQueryType" maxOccurs="unbounded">
                                    <xs:annotation>
                                        <xs:documentation>Abfrageeintrag: Pro Request kann nach ein oder mehreren Personen gesucht werden</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
                <xs:attribute name="Version" type="msg:VersionNumberType" use="optional">
                    <xs:annotation>
                        <xs:documentation>Ist seitVersion 2-1.0-001 Pflicht. MUSS während der Übergangsfrist optional bleiben, damit das XML Schema für Versender abwärtskompatibel bleibt</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:complexType>
        </xs:element>
        <xs:element name="QueryPersonResponse">
            <xs:complexType>
                <xs:choice>
                    <xs:sequence>
                        <xs:element ref="tnvz:StandardMimeTypeList"/>
                        <xs:element name="QueryResultList">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="QueryResult" type="tnvz:PersonResultType" maxOccurs="unbounded"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:element ref="tnvz:Error"/>
                </xs:choice>
            </xs:complexType>
        </xs:element>
        <!--*** Abfrage der Adressierbarkeit eines Teilnehmers durch ein Zustellsystem ***-->
        <xs:element name="QueryAddressabilityRequest">
            <xs:annotation>
                <xs:documentation>Erreichbarkeitsabfrage</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="QueryEntryList">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="QueryEntry" type="tnvz:AddressabilityQueryType" maxOccurs="unbounded"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
                <xs:attribute name="Version" type="msg:VersionNumberType" use="required"/>
            </xs:complexType>
        </xs:element>
        <xs:element name="QueryAddressabilityResponse">
            <xs:complexType>
                <xs:choice>
                    <xs:sequence>
                        <xs:element ref="tnvz:StandardMimeTypeList"/>
                        <xs:element name="QueryResultList">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="QueryResult" type="tnvz:AddressabilityResultType" maxOccurs="unbounded"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:element ref="tnvz:Error"/>
                </xs:choice>
            </xs:complexType>
        </xs:element>
        <!--********************************* Query Person  ************************************ -->
        <xs:element name="PersonQuery" type="tnvz:PersonQueryType">
            <xs:annotation>
                <xs:documentation>Abfrageeintrag: Pro Request können 1 oder mehrere Personen abgefragt werden</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="PersonQueryType">
            <xs:sequence>
                <xs:element ref="tnvz:Sender"/>
                <xs:element ref="tnvz:Receiver"/>
                <xs:element name="MetaData">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="msg:Origin">
                                <xs:annotation>
                                    <xs:documentation>Kommunikationssystem der Behörde oder Zustelldienst über den die Nachricht übermittelt werden soll.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:choice>
                                <xs:element ref="msg:DeliveryQuality"/>
                                <xs:element ref="msg:PrivateMessageQuality"/>
                            </xs:choice>
                            <xs:element ref="msg:PreAdviceNote" minOccurs="0"/>
                            <xs:element ref="msg:IgnorePostRedirectionOrder" minOccurs="0"/>
                            <xs:element ref="msg:MetadataList" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="EntryID" type="msg:token256" use="required"/>
        </xs:complexType>
        <xs:element name="PersonResult" type="tnvz:PersonResultType"/>
        <xs:complexType name="PersonResultType">
            <xs:annotation>
                <xs:documentation>attribute: EntryID</xs:documentation>
            </xs:annotation>
            <xs:choice>
                <xs:element name="Success" type="tnvz:PersonResultSuccessType"/>
                <xs:element name="Error">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="msg:ErrorInfo"/>
                            <xs:element ref="msg:PreAdviceNoteSent" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:choice>
            <xs:attribute name="EntryID" type="msg:token256" use="required"/>
        </xs:complexType>
        <xs:complexType name="PersonResultSuccessType">
            <xs:sequence>
                <xs:element ref="p:Identification"/>
                <xs:element name="AllStandardMimeTypes" type="msg:IndicatorType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Existenz zeigt an, dass an diesen Empfänger Dokumente mit MIME-Typen gemäß der allgemein gültigen Liste der Standard-MIME-Typen gesendet werden kann. </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ERVForwardingEnabled" type="msg:IndicatorType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Existenz zeigt an, dass der Empfänger die Weiterleitung in den ERV aktiviert hat</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="tnvz:MimeTypeList" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <!--*************************** Query Addressability **************************-->
        <xs:element name="AddressabilityQuery" type="tnvz:AddressabilityQueryType">
            <xs:annotation>
                <xs:documentation>attribute: ID</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="AddressabilityQueryType">
            <xs:sequence>
                <xs:element ref="tnvz:Sender"/>
                <xs:element ref="tnvz:Receiver"/>
                <xs:element name="MetaData">
                    <xs:annotation>
                        <xs:documentation>Metadaten der Erreichbarkeitsabfrage</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="msg:Origin">
                                <xs:annotation>
                                    <xs:documentation>Zustellsystem über das die Nachricht übermittelt wird.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element ref="msg:ZSDeliveryID"/>
                            <xs:choice>
                                <xs:element ref="msg:DeliveryQuality"/>
                                <xs:element ref="msg:PrivateMessageQuality"/>
                            </xs:choice>
                            <xs:element ref="msg:PreAdviceNote" minOccurs="0"/>
                            <xs:element ref="msg:IgnorePostRedirectionOrder" minOccurs="0"/>
                            <xs:element ref="msg:MetadataList" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="EntryID" type="msg:token256" use="required"/>
        </xs:complexType>
        <xs:element name="AddressabilityResult" type="tnvz:AddressabilityResultType"/>
        <xs:complexType name="AddressabilityResultType">
            <xs:annotation>
                <xs:documentation>attribute: EntryID</xs:documentation>
            </xs:annotation>
            <xs:choice>
                <xs:element name="Success" type="tnvz:AddressabilityResultSuccessType"/>
                <xs:element name="Error">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="msg:ErrorInfo"/>
                            <xs:element ref="msg:PreAdviceNoteSent" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:choice>
            <xs:attribute name="EntryID" type="msg:token256" use="required"/>
        </xs:complexType>
        <xs:complexType name="AddressabilityResultSuccessType">
            <xs:complexContent>
                <xs:extension base="tnvz:PersonResultSuccessType">
                    <xs:sequence>
                        <xs:element ref="tnvz:EncryptedZUSEToken"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <!--****************** Definition der Datenelemente und - typen  ***************-->
        <xs:element name="Sender">
            <xs:annotation>
                <xs:documentation>Informationen zur versendenden Behörde</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="p:Identification"/>
                    <xs:element ref="p:Person"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="Receiver">
            <xs:annotation>
                <xs:documentation>Informationen zum Empfänger</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:choice>
                    <xs:element ref="p:Identification"/>
                    <xs:sequence>
                        <xs:element ref="p:Person"/>
                        <xs:element ref="msg:AustrianAddressesOnly" minOccurs="0"/>
                        <xs:element ref="msg:NotificationAddressList" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Ein oder mehrere Verständigungsadressen mit deren Hilfe der Empfänger eindeutig bestimmt werden soll</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="p:PostalAddress" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Postal or ZMR Address, compare PostAdresse (Dient in diesem Fall rein zur eindeutigen Bestimmung eines Empfängers)</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:choice>
            </xs:complexType>
        </xs:element>
        <xs:element name="StandardMimeTypeList" type="tnvz:MimeTypeListType">
            <xs:annotation>
                <xs:documentation>Liste der üblichen Formaten, die der Teilnehmer jedenfalls akzeptieren muss und nicht abwählen kann. (Ausnahme: der ERV verarbeitet nur für die Langzeitarchivung geeignete PDF Formate)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="MimeTypeListType">
            <xs:sequence>
                <xs:element ref="msg:MimeType" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="MimeTypeList">
            <xs:annotation>
                <xs:documentation>Liste der Dateiformate, die vom Empfänger neben den üblichen Formaten unterstützt werden </xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:MimeType" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="EncryptedZUSEToken">
            <xs:annotation>
                <xs:documentation>Inhalt des verschlüsselten ZUSETokens:
    • Zeitpunkt
    • Versender (bPK/Stammzahl)
    • Empfänger (bPK/Stammzahl)
    • ZSDeliveryID
    • Origin
    • DeliveryQuality oder PrivateMessageQuality</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="xenc:EncryptedData">
                        <xs:annotation>
                            <xs:documentation>Verschlüsseltes Element 'tnvz:ZUSEToken'</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="Error" type="msg:ErrorInfoType">
            <xs:annotation>
                <xs:documentation>Fehlermeldung</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Property">
            <xs:annotation>
                <xs:documentation>Systemeigenschaft des TNVZ wie beispielsweise die maximale Anzahl von GetEntries</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Value" type="xs:token"/>
                </xs:sequence>
                <xs:attribute name="Name" type="xs:token" use="required"/>
            </xs:complexType>
        </xs:element>
    </xs:schema>

### zusenqd_p2.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Mit XMLSpy v2016 (http://www.altova.com) von Arne Tauber (TU Graz) bearbeitet -->
    <xs:schema xmlns:nqd="http://reference.e-government.gv.at/namespace/zustellung/tnvz/nonqualifieddata/phase2/20181206#" xmlns:p="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msg="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/tnvz/nonqualifieddata/phase2/20181206#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.1.0-002">
        <!--### ZUSE-Personendaten: namespace="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" version="2.1.0-003" ###-->
        <xs:import namespace="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" schemaLocation="../zusemsg/zuse_mypersondata_en_p2.xsd"/>
        <!--### ZUSE-Nachricht: namespace="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" version="2.1.0-003" ###-->
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" schemaLocation="../zusemsg/zuse_p2.xsd"/>
        <!--********* Definition der  Request- und Response-Elemente  ***********-->
        <!--*** Abfrage der Webserviceversion ***-->
        <xs:element name="GetVersionRequest" type="msg:SimpleRequestType"/>
        <xs:element name="GetVersionResponse">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Version">
                        <xs:simpleType>
                            <xs:restriction base="xs:token">
                                <xs:enumeration value="2.1.0-002"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <!--************************************ Import ************************************-->
        <xs:element name="ImportNonQualifiedDataRequest">
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:Origin">
                        <xs:annotation>
                            <xs:documentation>Kommunikationssystem der Behörd welches die nicht-qualifizierten Empfängerdaten übermittelt hat</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="ImportEntryList">
                        <xs:annotation>
                            <xs:documentation>Liste der Einträge zum Hinzufügen oder Ändern von nicht-qualifizierten Empfängerdaten des KSB</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element ref="nqd:ImportEntry" maxOccurs="unbounded"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="ImportNonQualifiedDataResponse">
            <xs:complexType>
                <xs:choice>
                    <xs:element name="ImportResultList">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="ImportResult" type="nqd:ResultType" maxOccurs="unbounded"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                    <xs:element ref="nqd:Error"/>
                </xs:choice>
            </xs:complexType>
        </xs:element>
        <xs:element name="ImportEntry" type="nqd:ImportEntryType"/>
        <xs:complexType name="ImportEntryType">
            <xs:complexContent>
                <xs:extension base="nqd:EntryType">
                    <xs:sequence>
                        <xs:element ref="p:Person"/>
                        <xs:element ref="msg:NotificationAddressList"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <!--************************************ Delete ************************************-->
        <xs:element name="DeleteNonQualifiedDataRequest">
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:Origin">
                        <xs:annotation>
                            <xs:documentation>Zustellsystem, welches die Löschung durchführt</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="DeleteEntryList">
                        <xs:annotation>
                            <xs:documentation>Liste der von einer (Daten-)Löschung betroffenen Teilnehmer</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="DeleteEntry" type="nqd:EntryType" maxOccurs="unbounded">
                                    <xs:annotation>
                                        <xs:documentation>Eintrag mit Identifikator, des von einer (Daten-)Löschung betroffenen Teilnehmers</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="DeleteNonQualifiedDataResponse">
            <xs:complexType>
                <xs:choice>
                    <xs:element name="DeleteResultList">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="DeleteResult" type="nqd:ResultType" maxOccurs="unbounded"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                    <xs:element ref="nqd:Error"/>
                </xs:choice>
            </xs:complexType>
        </xs:element>
        <!--************************************* Entry *************************************-->
        <xs:element name="Entry" type="nqd:EntryType"/>
        <xs:complexType name="EntryType">
            <xs:sequence>
                <xs:element ref="p:Identification"/>
            </xs:sequence>
            <xs:attribute name="EntryID" type="msg:token256" use="required"/>
        </xs:complexType>
        <!--************************************ Result ************************************-->
        <xs:element name="Result" type="nqd:ResultType"/>
        <xs:complexType name="ResultType">
            <xs:choice>
                <xs:element name="Success" type="msg:IndicatorType"/>
                <xs:element ref="nqd:Error"/>
            </xs:choice>
            <xs:attribute name="EntryID" type="msg:token256" use="required"/>
        </xs:complexType>
        <!--********* Definition der sonstigen Datenelemente und - typen  *********-->
        <xs:element name="Error" type="msg:ErrorInfoType"/>
    </xs:schema>

zusemsg:

### app2zuse_p2.wsdl

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:msg="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:service="http://reference.e-government.gv.at/namespace/zustellung/app2zuse/phase2/20181206#" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/app2zuse/phase2/20181206#">
        <wsdl:types>
            <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" elementFormDefault="qualified" attributeFormDefault="unqualified" vc:minVersion="1.1" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
                <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" schemaLocation="zuse_p2.xsd"/>
            </xs:schema>
        </wsdl:types>
        <wsdl:message name="DeliveryRequest">
            <wsdl:part name="DeliveryRequest" element="msg:DeliveryRequest">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="DeliveryResponse">
            <wsdl:part name="DeliveryResponse" element="msg:DeliveryResponse">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="GetVersionRequest">
            <wsdl:part name="GetVersionRequest" element="msg:GetVersionRequest">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="GetVersionResponse">
            <wsdl:part name="GetVersionResponse" element="msg:GetVersionResponse">
            </wsdl:part>
        </wsdl:message>
        <wsdl:portType name="App2ZusePort">
            <wsdl:operation name="Delivery">
                <wsdl:input name="DeliveryRequest" message="service:DeliveryRequest"/>
                <wsdl:output name="DeliveryResponse" message="service:DeliveryResponse"/>
            </wsdl:operation>
            <wsdl:operation name="GetVersion">
                <wsdl:input name="GetVersionRequest" message="service:GetVersionRequest"/>
                <wsdl:output name="GetVersionResponse" message="service:GetVersionResponse"/>
            </wsdl:operation>
        </wsdl:portType>
        <wsdl:binding name="App2ZusePortSoap12" type="service:App2ZusePort">
            <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
            <wsdl:operation name="Delivery">
                <soap12:operation soapAction="Delivery" soapActionRequired="false"/>
                <wsdl:input name="DeliveryRequest">
                    <soap12:body use="literal"/>
                </wsdl:input>
                <wsdl:output name="DeliveryResponse">
                    <soap12:body use="literal"/>
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="GetVersion">
                <soap12:operation soapAction="GetVersion" soapActionRequired="false"/>
                <wsdl:input name="GetVersionRequest">
                    <soap12:body use="literal"/>
                </wsdl:input>
                <wsdl:output name="GetVersionResponse">
                    <soap12:body use="literal"/>
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>
        <wsdl:service name="App2ZusePortService">
            <wsdl:port name="App2ZusePortSoap12" binding="service:App2ZusePortSoap12">
                <soap12:address location="/zuse"/>
            </wsdl:port>
        </wsdl:service>
    </wsdl:definitions>

### zuse2app_p2.wsdl

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:msg="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:service="http://reference.e-government.gv.at/namespace/zustellung/app2zuse/phase2/20181206#" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/app2zuse/phase2/20181206#">
        <wsdl:types>
            <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" elementFormDefault="qualified" attributeFormDefault="unqualified" vc:minVersion="1.1" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
                <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" schemaLocation="zuse_p2.xsd"/>
            </xs:schema>
        </wsdl:types>
        <wsdl:message name="DeliveryNotification">
            <wsdl:part name="DeliveryNotification" element="msg:DeliveryNotification">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="DeliveryNotificationACK">
            <wsdl:part name="DeliveryNotificationACK" element="msg:DeliveryNotificationACK">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="DeliveryRequestStatus">
            <wsdl:part name="DeliveryRequestStatus" element="msg:DeliveryRequestStatus">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="DeliveryRequestStatusACK">
            <wsdl:part name="DeliveryRequestStatusACK" element="msg:DeliveryRequestStatusACK">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="GetVersionRequest">
            <wsdl:part name="GetVersionRequest" element="msg:GetVersionRequest">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="GetVersionResponse">
            <wsdl:part name="GetVersionResponse" element="msg:GetVersionResponse">
            </wsdl:part>
        </wsdl:message>
        <wsdl:portType name="Zuse2AppPort">
            <wsdl:operation name="Notification">
                <wsdl:input name="DeliveryNotification" message="service:DeliveryNotification"/>
                <wsdl:output name="DeliveryNotificationACK" message="service:DeliveryNotificationACK"/>
            </wsdl:operation>
            <wsdl:operation name="Status">
                <wsdl:input name="DeliveryRequestStatus" message="service:DeliveryRequestStatus"/>
                <wsdl:output name="DeliveryRequestStatusACK" message="service:DeliveryRequestStatusACK"/>
            </wsdl:operation>
            <wsdl:operation name="GetVersion">
                <wsdl:input name="GetVersionRequest" message="service:GetVersionRequest"/>
                <wsdl:output name="GetVersionResponse" message="service:GetVersionResponse"/>
            </wsdl:operation>
        </wsdl:portType>
        <wsdl:binding name="Zuse2AppPortSoap12" type="service:Zuse2AppPort">
            <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
            <wsdl:operation name="Notification">
                <soap12:operation soapAction="Notification" soapActionRequired="false"/>
                <wsdl:input name="DeliveryNotification">
                    <soap12:body use="literal"/>
                </wsdl:input>
                <wsdl:output name="DeliveryNotificationACK">
                    <soap12:body use="literal"/>
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="Status">
                <soap12:operation soapAction="Status" soapActionRequired="false"/>
                <wsdl:input name="DeliveryRequestStatus">
                    <soap12:body use="literal"/>
                </wsdl:input>
                <wsdl:output name="DeliveryRequestStatusACK">
                    <soap12:body use="literal"/>
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="GetVersion">
                <soap12:operation soapAction="GetVersion" soapActionRequired="false"/>
                <wsdl:input name="GetVersionRequest">
                    <soap12:body use="literal"/>
                </wsdl:input>
                <wsdl:output name="GetVersionResponse">
                    <soap12:body use="literal"/>
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>
        <wsdl:service name="Zuse2AppPortService">
            <wsdl:port name="Zuse2AppPortSoap12" binding="service:Zuse2AppPortSoap12">
                <soap12:address location="/zuse"/>
            </wsdl:port>
        </wsdl:service>
    </wsdl:definitions>

### W3C-XMLDsig.xsd

### xenc-schema.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.w3.org/2001/04/xmlenc#" elementFormDefault="qualified" version="1.0">
        <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="W3C-XMLDSig.xsd"/>
        <complexType name="EncryptedType" abstract="true">
            <sequence>
                <element name="EncryptionMethod" type="xenc:EncryptionMethodType" minOccurs="0"/>
                <element ref="ds:KeyInfo" minOccurs="0"/>
                <element ref="xenc:CipherData"/>
                <element ref="xenc:EncryptionProperties" minOccurs="0"/>
            </sequence>
            <attribute name="Id" type="ID" use="optional"/>
            <attribute name="Type" type="anyURI" use="optional"/>
            <attribute name="MimeType" type="string" use="optional"/>
            <attribute name="Encoding" type="anyURI" use="optional"/>
        </complexType>
        <complexType name="EncryptionMethodType" mixed="true">
            <sequence>
                <element name="KeySize" type="xenc:KeySizeType" minOccurs="0"/>
                <element name="OAEPparams" type="base64Binary" minOccurs="0"/>
                <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
            <attribute name="Algorithm" type="anyURI" use="required"/>
        </complexType>
        <simpleType name="KeySizeType">
            <restriction base="integer"/>
        </simpleType>
        <element name="CipherData" type="xenc:CipherDataType"/>
        <complexType name="CipherDataType">
            <choice>
                <element name="CipherValue" type="base64Binary"/>
                <element ref="xenc:CipherReference"/>
            </choice>
        </complexType>
        <element name="CipherReference" type="xenc:CipherReferenceType"/>
        <complexType name="CipherReferenceType">
            <choice>
                <element name="Transforms" type="xenc:TransformsType" minOccurs="0"/>
            </choice>
            <attribute name="URI" type="anyURI" use="required"/>
        </complexType>
        <complexType name="TransformsType">
            <sequence>
                <element ref="ds:Transform" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <element name="EncryptedData" type="xenc:EncryptedDataType"/>
        <complexType name="EncryptedDataType">
            <complexContent>
                <extension base="xenc:EncryptedType"/>
            </complexContent>
        </complexType>
        <!-- Children of ds:KeyInfo -->
        <element name="EncryptedKey" type="xenc:EncryptedKeyType"/>
        <complexType name="EncryptedKeyType">
            <complexContent>
                <extension base="xenc:EncryptedType">
                    <sequence>
                        <element ref="xenc:ReferenceList" minOccurs="0"/>
                        <element name="CarriedKeyName" type="string" minOccurs="0"/>
                    </sequence>
                    <attribute name="Recipient" type="string" use="optional"/>
                </extension>
            </complexContent>
        </complexType>
        <element name="AgreementMethod" type="xenc:AgreementMethodType"/>
        <complexType name="AgreementMethodType" mixed="true">
            <sequence>
                <element name="KA-Nonce" type="base64Binary" minOccurs="0"/>
                <!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->
                <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
                <element name="OriginatorKeyInfo" type="ds:KeyInfoType" minOccurs="0"/>
                <element name="RecipientKeyInfo" type="ds:KeyInfoType" minOccurs="0"/>
            </sequence>
            <attribute name="Algorithm" type="anyURI" use="required"/>
        </complexType>
        <!-- End Children of ds:KeyInfo -->
        <element name="ReferenceList">
            <complexType>
                <choice maxOccurs="unbounded">
                    <element name="DataReference" type="xenc:ReferenceType"/>
                    <element name="KeyReference" type="xenc:ReferenceType"/>
                </choice>
            </complexType>
        </element>
        <complexType name="ReferenceType">
            <sequence>
                <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
            <attribute name="URI" type="anyURI" use="required"/>
        </complexType>
        <element name="EncryptionProperties" type="xenc:EncryptionPropertiesType"/>
        <complexType name="EncryptionPropertiesType">
            <sequence>
                <element ref="xenc:EncryptionProperty" maxOccurs="unbounded"/>
            </sequence>
            <attribute name="Id" type="ID" use="optional"/>
        </complexType>
        <element name="EncryptionProperty" type="xenc:EncryptionPropertyType"/>
        <complexType name="EncryptionPropertyType" mixed="true">
            <choice maxOccurs="unbounded">
                <any namespace="##other" processContents="lax"/>
            </choice>
            <attribute name="Target" type="anyURI" use="optional"/>
            <attribute name="Id" type="ID" use="optional"/>
            <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
        </complexType>
    </schema>

### XAdES-etsi-v122.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!--Generated by Turbo XML. Conforms to w3c http://www.w3.org/2001/XMLSchema-->
    <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xaes="http://uri.etsi.org/01903/v1.2.2#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://uri.etsi.org/01903/v1.2.2#" elementFormDefault="qualified">
        <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="W3C-XMLDSig.xsd"/>
        <!-- Start auxiliary types definitions: AnyType, ObjectIdentifierType,
    EncapsulatedPKIDataType and TimestampType-->
        <!-- Start AnyType -->
        <element name="Any" type="xaes:AnyType"/>
        <complexType name="AnyType" mixed="true">
            <sequence minOccurs="0" maxOccurs="unbounded">
                <any namespace="##any" processContents="lax"/>
            </sequence>
            <anyAttribute namespace="##any" processContents="strict"/>
        </complexType>
        <!-- End AnyType -->
        <!-- Start ObjectIdentifierType-->
        <element name="ObjectIdentifier" type="xaes:ObjectIdentifierType"/>
        <complexType name="ObjectIdentifierType">
            <sequence>
                <element name="Identifier" type="xaes:IdentifierType"/>
                <element name="Description" type="string" minOccurs="0"/>
                <element name="DocumentationReferences" type="xaes:DocumentationReferencesType" minOccurs="0"/>
            </sequence>
        </complexType>
        <complexType name="IdentifierType">
            <simpleContent>
                <extension base="anyURI">
                    <attribute name="Qualifier" type="xaes:QualifierType"/>
                </extension>
            </simpleContent>
        </complexType>
        <simpleType name="QualifierType">
            <restriction base="string">
                <enumeration value="OIDAsURI"/>
                <enumeration value="OIDAsURN"/>
            </restriction>
        </simpleType>
        <complexType name="DocumentationReferencesType">
            <sequence maxOccurs="unbounded">
                <element name="DocumentationReference" type="anyURI"/>
            </sequence>
        </complexType>
        <!-- End ObjectIdentifierType-->
        <!-- Start EncapsulatedPKIDataType-->
        <element name="EncapsulatedPKIData" type="xaes:EncapsulatedPKIDataType"/>
        <complexType name="EncapsulatedPKIDataType">
            <simpleContent>
                <extension base="base64Binary">
                    <attribute name="Id" type="ID"/>
                </extension>
            </simpleContent>
        </complexType>
        <!-- End EncapsulatedPKIDataType -->
        <!-- Start TimeStampType -->
        <element name="TimeStamp" type="xaes:TimeStampType"/>
        <complexType name="TimeStampType">
            <sequence>
                <element name="Include" type="xaes:IncludeType" maxOccurs="unbounded"/>
                <element ref="ds:CanonicalizationMethod" minOccurs="0"/>
                <choice>
                    <element name="EncapsulatedTimeStamp" type="xaes:EncapsulatedPKIDataType"/>
                    <element name="XMLTimeStamp" type="xaes:AnyType"/>
                </choice>
            </sequence>
            <attribute name="Id" type="ID"/>
        </complexType>
        <complexType name="IncludeType">
            <attribute name="URI" type="anyURI" use="required"/>
            <attribute name="referencedData" type="boolean"/>
        </complexType>
        <!-- End TimeStampType -->
        <!-- End auxiliary types definitions-->
        <!-- Start container types -->
        <!-- Start QualifyingProperties -->
        <element name="QualifyingProperties" type="xaes:QualifyingPropertiesType"/>
        <complexType name="QualifyingPropertiesType">
            <sequence>
                <element name="SignedProperties" type="xaes:SignedPropertiesType" minOccurs="0"/>
                <element name="UnsignedProperties" type="xaes:UnsignedPropertiesType" minOccurs="0"/>
            </sequence>
            <attribute name="Target" type="anyURI" use="required"/>
            <attribute name="Id" type="ID"/>
        </complexType>
        <!-- End QualifyingProperties -->
        <!-- Start SignedProperties-->
        <element name="SignedProperties" type="xaes:SignedPropertiesType"/>
        <complexType name="SignedPropertiesType">
            <sequence>
                <element name="SignedSignatureProperties" type="xaes:SignedSignaturePropertiesType"/>
                <element name="SignedDataObjectProperties" type="xaes:SignedDataObjectPropertiesType" minOccurs="0"/>
            </sequence>
            <attribute name="Id" type="ID"/>
        </complexType>
        <!-- End SignedProperties-->
        <!-- Start UnsignedProperties-->
        <element name="UnsignedProperties" type="xaes:UnsignedPropertiesType"/>
        <complexType name="UnsignedPropertiesType">
            <sequence>
                <element name="UnsignedSignatureProperties" type="xaes:UnsignedSignaturePropertiesType" minOccurs="0"/>
                <element name="UnsignedDataObjectProperties" type="xaes:UnsignedDataObjectPropertiesType" minOccurs="0"/>
            </sequence>
            <attribute name="Id" type="ID"/>
        </complexType>
        <!-- End UnsignedProperties-->
        <!-- Start SignedSignatureProperties-->
        <element name="SignedSignatureProperties" type="xaes:SignedSignaturePropertiesType"/>
        <complexType name="SignedSignaturePropertiesType">
            <sequence>
                <element name="SigningTime" type="dateTime" minOccurs="0"/>
                <element name="SigningCertificate" type="xaes:CertIDListType" minOccurs="0"/>
                <element name="SignaturePolicyIdentifier" type="xaes:SignaturePolicyIdentifierType" minOccurs="0"/>
                <element name="SignatureProductionPlace" type="xaes:SignatureProductionPlaceType" minOccurs="0"/>
                <element name="SignerRole" type="xaes:SignerRoleType" minOccurs="0"/>
            </sequence>
        </complexType>
        <!-- End SignedSignatureProperties-->
        <!-- Start SignedDataObjectProperties-->
        <element name="SignedDataObjectProperties" type="xaes:SignedDataObjectPropertiesType"/>
        <complexType name="SignedDataObjectPropertiesType">
            <sequence>
                <element name="DataObjectFormat" type="xaes:DataObjectFormatType" minOccurs="0" maxOccurs="unbounded"/>
                <element name="CommitmentTypeIndication" type="xaes:CommitmentTypeIndicationType" minOccurs="0" maxOccurs="unbounded"/>
                <element name="AllDataObjectsTimeStamp" type="xaes:TimeStampType" minOccurs="0" maxOccurs="unbounded"/>
                <element name="IndividualDataObjectsTimeStamp" type="xaes:TimeStampType" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <!-- End SignedDataObjectProperties-->
        <!-- Start UnsignedSignatureProperties-->
        <element name="UnsignedSignatureProperties" type="xaes:UnsignedSignaturePropertiesType"/>
        <complexType name="UnsignedSignaturePropertiesType">
            <sequence>
                <element name="CounterSignature" type="xaes:CounterSignatureType" minOccurs="0" maxOccurs="unbounded"/>
                <element name="SignatureTimeStamp" type="xaes:TimeStampType" minOccurs="0" maxOccurs="unbounded"/>
                <element name="CompleteCertificateRefs" type="xaes:CompleteCertificateRefsType" minOccurs="0"/>
                <element name="CompleteRevocationRefs" type="xaes:CompleteRevocationRefsType" minOccurs="0"/>
                <element name="AttributeCertificateRefs" type="xaes:CompleteCertificateRefsType" minOccurs="0"/>
                <element name="AttributeRevocationRefs" type="xaes:CompleteRevocationRefsType" minOccurs="0"/>
                <choice>
                    <element name="SigAndRefsTimeStamp" type="xaes:TimeStampType" minOccurs="0" maxOccurs="unbounded"/>
                    <element name="RefsOnlyTimeStamp" type="xaes:TimeStampType" minOccurs="0" maxOccurs="unbounded"/>
                </choice>
                <element name="CertificateValues" type="xaes:CertificateValuesType" minOccurs="0"/>
                <element name="RevocationValues" type="xaes:RevocationValuesType" minOccurs="0"/>
                <element name="ArchiveTimeStamp" type="xaes:TimeStampType" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <!-- End UnsignedSignatureProperties-->
        <!-- Start UnsignedDataObjectProperties-->
        <element name="UnsignedDataObjectProperties" type="xaes:UnsignedDataObjectPropertiesType"/>
        <complexType name="UnsignedDataObjectPropertiesType">
            <sequence>
                <element name="UnsignedDataObjectProperty" type="xaes:AnyType" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <!-- End UnsignedDataObjectProperties-->
        <!-- Start QualifyingPropertiesReference-->
        <element name="QualifyingPropertiesReference" type="xaes:QualifyingPropertiesReferenceType"/>
        <complexType name="QualifyingPropertiesReferenceType">
            <sequence>
                <element ref="ds:Transforms" minOccurs="0"/>
            </sequence>
            <attribute name="URI" type="anyURI" use="required"/>
            <attribute name="Id" type="ID"/>
        </complexType>
        <!-- End QualifyingPropertiesReference-->
        <!-- End container types -->
        <!-- Start SigningTime element -->
        <element name="SigningTime" type="dateTime"/>
        <!-- End SigningTime element -->
        <!-- Start SigningCertificate -->
        <element name="SigningCertificate" type="xaes:CertIDListType"/>
        <complexType name="CertIDListType">
            <sequence>
                <element name="Cert" type="xaes:CertIDType" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <complexType name="CertIDType">
            <sequence>
                <element name="CertDigest" type="xaes:DigestAlgAndValueType"/>
                <element name="IssuerSerial" type="ds:X509IssuerSerialType"/>
            </sequence>
            <attribute name="URI" type="anyURI"/>
        </complexType>
        <complexType name="DigestAlgAndValueType">
            <sequence>
                <element ref="ds:DigestMethod"/>
                <element ref="ds:DigestValue"/>
            </sequence>
        </complexType>
        <!-- End SigningCertificate -->
        <!-- Start SignaturePolicyIdentifier -->
        <element name="SignaturePolicyIdentifier" type="xaes:SignaturePolicyIdentifierType"/>
        <complexType name="SignaturePolicyIdentifierType">
            <choice>
                <element name="SignaturePolicyId" type="xaes:SignaturePolicyIdType"/>
                <element name="SignaturePolicyImplied"/>
            </choice>
        </complexType>
        <complexType name="SignaturePolicyIdType">
            <sequence>
                <element name="SigPolicyId" type="xaes:ObjectIdentifierType"/>
                <element ref="ds:Transforms" minOccurs="0"/>
                <element name="SigPolicyHash" type="xaes:DigestAlgAndValueType"/>
                <element name="SigPolicyQualifiers" type="xaes:SigPolicyQualifiersListType" minOccurs="0"/>
            </sequence>
        </complexType>
        <complexType name="SigPolicyQualifiersListType">
            <sequence>
                <element name="SigPolicyQualifier" type="xaes:AnyType" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <element name="SPURI" type="anyURI"/>
        <element name="SPUserNotice" type="xaes:SPUserNoticeType"/>
        <complexType name="SPUserNoticeType">
            <sequence>
                <element name="NoticeRef" type="xaes:NoticeReferenceType" minOccurs="0"/>
                <element name="ExplicitText" type="string" minOccurs="0"/>
            </sequence>
        </complexType>
        <complexType name="NoticeReferenceType">
            <sequence>
                <element name="Organization" type="string"/>
                <element name="NoticeNumbers" type="xaes:IntegerListType"/>
            </sequence>
        </complexType>
        <complexType name="IntegerListType">
            <sequence>
                <element name="int" type="integer" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <!-- End SignaturePolicyIdentifier -->
        <!-- Start CounterSignature -->
        <element name="CounterSignature" type="xaes:CounterSignatureType"/>
        <complexType name="CounterSignatureType">
            <sequence>
                <element ref="ds:Signature"/>
            </sequence>
        </complexType>
        <!-- End CounterSignature -->
        <!-- Start DataObjectFormat -->
        <element name="DataObjectFormat" type="xaes:DataObjectFormatType"/>
        <complexType name="DataObjectFormatType">
            <sequence>
                <element name="Description" type="string" minOccurs="0"/>
                <element name="ObjectIdentifier" type="xaes:ObjectIdentifierType" minOccurs="0"/>
                <element name="MimeType" type="string" minOccurs="0"/>
                <element name="Encoding" type="anyURI" minOccurs="0"/>
            </sequence>
            <attribute name="ObjectReference" type="anyURI" use="required"/>
        </complexType>
        <!-- End DataObjectFormat -->
        <!-- Start CommitmentTypeIndication -->
        <element name="CommitmentTypeIndication" type="xaes:CommitmentTypeIndicationType"/>
        <complexType name="CommitmentTypeIndicationType">
            <sequence>
                <element name="CommitmentTypeId" type="xaes:ObjectIdentifierType"/>
                <choice>
                    <element name="ObjectReference" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
                    <element name="AllSignedDataObjects"/>
                </choice>
                <element name="CommitmentTypeQualifiers" type="xaes:CommitmentTypeQualifiersListType" minOccurs="0"/>
            </sequence>
        </complexType>
        <complexType name="CommitmentTypeQualifiersListType">
            <sequence>
                <element name="CommitmentTypeQualifier" type="xaes:AnyType" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <!-- End CommitmentTypeIndication -->
        <!-- Start SignatureProductionPlace -->
        <element name="SignatureProductionPlace" type="xaes:SignatureProductionPlaceType"/>
        <complexType name="SignatureProductionPlaceType">
            <sequence>
                <element name="City" type="string" minOccurs="0"/>
                <element name="StateOrProvince" type="string" minOccurs="0"/>
                <element name="PostalCode" type="string" minOccurs="0"/>
                <element name="CountryName" type="string" minOccurs="0"/>
            </sequence>
        </complexType>
        <!-- End SignatureProductionPlace -->
        <!-- Start SignerRole -->
        <element name="SignerRole" type="xaes:SignerRoleType"/>
        <complexType name="SignerRoleType">
            <sequence>
                <element name="ClaimedRoles" type="xaes:ClaimedRolesListType" minOccurs="0"/>
                <element name="CertifiedRoles" type="xaes:CertifiedRolesListType" minOccurs="0"/>
            </sequence>
        </complexType>
        <complexType name="ClaimedRolesListType">
            <sequence>
                <element name="ClaimedRole" type="xaes:AnyType" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <complexType name="CertifiedRolesListType">
            <sequence>
                <element name="CertifiedRole" type="xaes:EncapsulatedPKIDataType" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <!-- End SignerRole -->
        <element name="AllDataObjectsTimeStamp" type="xaes:TimeStampType"/>
        <element name="IndividualDataObjectsTimeStamp" type="xaes:TimeStampType"/>
        <element name="SignatureTimeStamp" type="xaes:TimeStampType"/>
        <!-- Start CompleteCertificateRefs -->
        <element name="CompleteCertificateRefs" type="xaes:CompleteCertificateRefsType"/>
        <complexType name="CompleteCertificateRefsType">
            <sequence>
                <element name="CertRefs" type="xaes:CertIDListType"/>
            </sequence>
            <attribute name="Id" type="ID"/>
        </complexType>
        <!-- End CompleteCertificateRefs -->
        <!-- Start CompleteRevocationRefs-->
        <element name="CompleteRevocationRefs" type="xaes:CompleteRevocationRefsType"/>
        <complexType name="CompleteRevocationRefsType">
            <sequence>
                <element name="CRLRefs" type="xaes:CRLRefsType" minOccurs="0"/>
                <element name="OCSPRefs" type="xaes:OCSPRefsType" minOccurs="0"/>
                <element name="OtherRefs" type="xaes:OtherCertStatusRefsType" minOccurs="0"/>
            </sequence>
            <attribute name="Id" type="ID"/>
        </complexType>
        <complexType name="CRLRefsType">
            <sequence>
                <element name="CRLRef" type="xaes:CRLRefType" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <complexType name="CRLRefType">
            <sequence>
                <element name="DigestAlgAndValue" type="xaes:DigestAlgAndValueType"/>
                <element name="CRLIdentifier" type="xaes:CRLIdentifierType" minOccurs="0"/>
            </sequence>
        </complexType>
        <complexType name="CRLIdentifierType">
            <sequence>
                <element name="Issuer" type="string"/>
                <element name="IssueTime" type="dateTime"/>
                <element name="Number" type="integer" minOccurs="0"/>
            </sequence>
            <attribute name="URI" type="anyURI"/>
        </complexType>
        <complexType name="OCSPRefsType">
            <sequence>
                <element name="OCSPRef" type="xaes:OCSPRefType" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <complexType name="OCSPRefType">
            <sequence>
                <element name="OCSPIdentifier" type="xaes:OCSPIdentifierType"/>
                <element name="DigestAlgAndValue" type="xaes:DigestAlgAndValueType" minOccurs="0"/>
            </sequence>
        </complexType>
        <complexType name="OCSPIdentifierType">
            <sequence>
                <element name="ResponderID" type="string"/>
                <element name="ProducedAt" type="dateTime"/>
            </sequence>
            <attribute name="URI" type="anyURI"/>
        </complexType>
        <complexType name="OtherCertStatusRefsType">
            <sequence>
                <element name="OtherRef" type="xaes:AnyType" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <!-- End CompleteRevocationRefs-->
        <element name="SigAndRefsTimeStamp" type="xaes:TimeStampType"/>
        <element name="RefsOnlyTimeStamp" type="xaes:TimeStampType"/>
        <!-- Start CertificateValues -->
        <element name="CertificateValues" type="xaes:CertificateValuesType"/>
        <complexType name="CertificateValuesType">
            <choice minOccurs="0" maxOccurs="unbounded">
                <element name="EncapsulatedX509Certificate" type="xaes:EncapsulatedPKIDataType"/>
                <element name="OtherCertificate" type="xaes:AnyType"/>
            </choice>
            <attribute name="Id" type="ID"/>
        </complexType>
        <!-- End CertificateValues -->
        <!-- Start RevocationValues-->
        <element name="RevocationValues" type="xaes:RevocationValuesType"/>
        <complexType name="RevocationValuesType">
            <sequence>
                <element name="CRLValues" type="xaes:CRLValuesType" minOccurs="0"/>
                <element name="OCSPValues" type="xaes:OCSPValuesType" minOccurs="0"/>
                <element name="OtherValues" type="xaes:OtherCertStatusValuesType" minOccurs="0"/>
            </sequence>
            <attribute name="Id" type="ID"/>
        </complexType>
        <complexType name="CRLValuesType">
            <sequence>
                <element name="EncapsulatedCRLValue" type="xaes:EncapsulatedPKIDataType" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <complexType name="OCSPValuesType">
            <sequence>
                <element name="EncapsulatedOCSPValue" type="xaes:EncapsulatedPKIDataType" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <complexType name="OtherCertStatusValuesType">
            <sequence>
                <element name="OtherValue" type="xaes:AnyType" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <!-- End RevocationValues-->
        <element name="ArchiveTimeStamp" type="xaes:TimeStampType"/>
    </schema>

### zuse_p2.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Mit XMLSpy v2016 (http://www.altova.com) von Arne Tauber (TU Graz) bearbeitet -->
    <!--    ###

            Die Versionsnummer des Schemas wird immer dann hochgezogen, wenn das Schema
            selbst verändert wurde aber auch dann, wenn zumindest eines der importierten
            ZUSE-Schemata angepasst wurde.

            ###-->
    <xs:schema
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:p="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#"
        xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
        xmlns:msg="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#"
        xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"
        targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified"
        version="2.1.0-003">
        <!--### Imports ###-->
        <!--### ZUSE-Personendaten: namespace="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" version="2.1.0-003" ###-->
        <xs:import namespace="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#" schemaLocation="zuse_mypersondata_en_p2.xsd"/>
        <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="W3C-XMLDSig.xsd"/>
        <!--### Abfrage der Webserviceversion-->
        <xs:element name="GetVersionRequest" type="msg:SimpleRequestType"/>
        <xs:element name="GetVersionResponse">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Version" type="msg:VersionNumberType" fixed="2.1.0-003"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <!--###  Nachrichten und Nachrichtenstrukturen ###-->
        <!--###  Zustellstückanlieferung ###-->
        <xs:element name="DeliveryRequest" type="msg:DeliveryRequestType">
            <xs:annotation>
                <xs:documentation>Zustellstückanlieferung</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryRequestType">
            <xs:sequence>
                <xs:element ref="msg:Sender"/>
                <xs:element ref="msg:Receiver">
                    <xs:annotation>
                        <xs:documentation>Adressierung des Empfängers</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="msg:MetaData"/>
                <xs:element name="Attachments" type="msg:AttachmentsType">
                    <xs:annotation>
                        <xs:documentation>Anhänge</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="Version" type="msg:VersionNumberType"/>
        </xs:complexType>
        <xs:element name="DeliveryResponse" type="msg:DeliveryRequestStatusType"/>
        <xs:element name="DeliveryRequestStatus" type="msg:DeliveryRequestStatusType">
            <xs:annotation>
                <xs:documentation>Webservice Response of ZSDeliveryRequest, also to used asynchronously </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryRequestStatusType">
            <xs:sequence>
                <xs:choice>
                    <xs:element name="Success">
                        <xs:annotation>
                            <xs:documentation>Zustellstück wurde erfolgreich übernommen</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:complexContent>
                                <xs:extension base="msg:DeliveryAnswerType">
                                    <xs:sequence>
                                        <xs:element ref="msg:DeliveryTimestamp"/>
                                    </xs:sequence>
                                </xs:extension>
                            </xs:complexContent>
                        </xs:complexType>
                    </xs:element>
                    <xs:element name="PartialSuccess">
                        <xs:annotation>
                            <xs:documentation>Zustellstück wurde erfolgreich übernommen, attachment wird später geladen</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:complexContent>
                                <xs:extension base="msg:DeliveryAnswerType"/>
                            </xs:complexContent>
                        </xs:complexType>
                    </xs:element>
                    <xs:element name="Error">
                        <xs:annotation>
                            <xs:documentation>Zustellstück konnte nicht übernommen werden</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:complexContent>
                                <xs:extension base="msg:DeliveryAnswerType">
                                    <xs:sequence>
                                        <xs:element ref="msg:ErrorInfo"/>
                                        <xs:element ref="msg:PreAdviceNoteSent" minOccurs="0"/>
                                    </xs:sequence>
                                </xs:extension>
                            </xs:complexContent>
                        </xs:complexType>
                    </xs:element>
                </xs:choice>
                <xs:element ref="msg:RelayedViaERV" minOccurs="0"/>
                <xs:element ref="dsig:Signature"/>
            </xs:sequence>
            <xs:attribute name="Version" type="msg:VersionNumberType" use="optional">
                <xs:annotation>
                    <xs:documentation>Ist seitVersion 2-1.0-001 Pflicht. MUSS während der Übergangsfrist optional bleiben, damit das XML Schema für Versender abwärtskompatibel bleibt</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="Id" type="xs:ID" use="optional">
                <xs:annotation>
                    <xs:documentation>Eindeutige ID des Elements, um in der Signatur referenziert werden zu können </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
        <xs:element name="DeliveryRequestStatusACK" type="msg:DeliveryRequestStatusACKType">
            <xs:annotation>
                <xs:documentation>Wenn DeliveryRequestStatus bei asynchroner Koomunikation als Request benutzt wird, ist DeliveryRequstStatusACK die Antwort</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryRequestStatusACKType">
            <xs:sequence>
                <xs:element ref="msg:AppDeliveryID"/>
                <xs:element ref="msg:ZSDeliveryID"/>
            </xs:sequence>
            <xs:attribute name="Version" type="msg:VersionNumberType"/>
        </xs:complexType>
        <xs:annotation>
            <xs:documentation>### Bestätigung über Zustellungs (Miß-) Erfolg   ###</xs:documentation>
        </xs:annotation>
        <xs:element name="DeliveryNotification" type="msg:DeliveryNotificationType">
            <xs:annotation>
                <xs:documentation>Benachrichtigung über die erfolgte oder nicht erfolgte Zustellung</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryNotificationType">
            <xs:complexContent>
                <xs:extension base="msg:DeliveryAnswerType">
                    <xs:sequence>
                        <xs:element ref="msg:SenderDetails"/>
                        <xs:element ref="msg:ReceiverDetails"/>
                        <xs:element ref="msg:Timestamp">
                            <xs:annotation>
                                <xs:documentation>Timestamp der Nachrichtenoperation, die vom Anzeigemodul erzeugt wird. (*) Im Falle der Annahme einer Zustellung entspricht der Timestamp dem Annahmezeitpunkt. (*) Im Falle der ERV-Weiterleitung entspricht der Timestamp dem msg:ERVConfirmDeliveryTimestamp</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="msg:User" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Benutzer, der die Nachricht angenommen hat.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="msg:Answer"/>
                        <xs:element ref="dsig:Signature"/>
                        <xs:element name="AdditionalFormat" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:simpleContent>
                                    <xs:extension base="xs:base64Binary">
                                        <xs:attribute name="Type" type="xs:token" use="required">
                                            <xs:annotation>
                                                <xs:documentation>Als MIME-Type ist „application/pdf“ zu verwenden</xs:documentation>
                                            </xs:annotation>
                                        </xs:attribute>
                                    </xs:extension>
                                </xs:simpleContent>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="Version" type="msg:VersionNumberType" use="optional">
                        <xs:annotation>
                            <xs:documentation>Ist seitVersion 2-1.0-001 Pflicht. MUSS während der Übergangsfrist optional bleiben, damit das XML Schema für Versender abwärtskompatibel bleibt</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="Id" type="xs:ID" use="optional">
                        <xs:annotation>
                            <xs:documentation>Eindeutige ID des Elements, um in der Signatur referenziert zu können </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="DeliveryNotificationACK" type="msg:DeliveryNotificationACKType">
            <xs:annotation>
                <xs:documentation>Webservice Response of ZSDeliveryNotification</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryNotificationACKType">
            <xs:sequence>
                <xs:element ref="msg:AppDeliveryID"/>
                <xs:element ref="msg:ZSDeliveryID"/>
            </xs:sequence>
            <xs:attribute name="Version" type="msg:VersionNumberType"/>
        </xs:complexType>
        <xs:complexType name="DeliveryAnswerType">
            <xs:annotation>
                <xs:documentation>Abstrakter Antwort Typ</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="msg:DeliverySystem"/>
                <xs:element ref="msg:ZSDeliveryID">
                    <xs:annotation>
                        <xs:documentation>ID des Zustellstücke innerhalb des Zustellsystems</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="msg:AppDeliveryID"/>
                <xs:element ref="msg:GZ" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="DeliveryConfirmationType">
            <xs:complexContent>
                <xs:extension base="msg:DeliveryAnswerType">
                    <xs:sequence>
                        <xs:element ref="msg:Sender"/>
                        <xs:element ref="msg:Receiver"/>
                        <xs:element name="DeliveryTimestamp" type="xs:dateTime">
                            <xs:annotation>
                                <xs:documentation>Übergabezeitpunkt an den Zustelldienst</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="dsig:Signature"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <!--### globale Elemente und komplexe Typen###-->
        <xs:complexType name="AbstractOperationType" abstract="true"/>
        <xs:complexType name="AbstractSenderPersonType">
            <xs:annotation>
                <xs:documentation>main structure of sender</xs:documentation>
            </xs:annotation>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
        </xs:complexType>
        <xs:element name="Accepted" type="msg:AcceptedType" substitutionGroup="msg:Answer">
            <xs:annotation>
                <xs:documentation>Zeigt an, dass die Nachricht durch den Einstieg ins Anzeigemodul angenommen wurde. </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="AcceptedType">
            <xs:complexContent>
                <xs:extension base="msg:AbstractOperationType">
                    <xs:sequence>
                        <xs:element ref="msg:NotificationsPerformed"/>
                        <xs:element ref="msg:NotificationAddressList" minOccurs="0"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="AdditionalCriteria" type="msg:AdditionalCriteriaType">
            <xs:annotation>
                <xs:documentation>Weitere über den eigentlichen Adressaten hinausgehende Kriterien zur Adressierung (bspw. c/o)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="AdditionalCriteriaType">
            <xs:sequence>
                <xs:element ref="msg:MailBox" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Eindeutige Kennung (Filiale, Standort, Abteilung, etc..) innerhalb der jur. Person </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="msg:Roles" minOccurs="0"/>
                <xs:element ref="msg:CareOf" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Natürlichen Person innerhalb einer Orangisation der "zu Handen" (c/o) zustellen werden soll. Wird eine E-Mail-Adresse angegeben, kann die Person eindeutig identifiziert und notifiziert werden. </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="Answer" type="msg:AbstractOperationType">
            <xs:annotation>
                <xs:documentation> Rückmeldungen zu einer Nachricht</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="AppDeliveryID" type="msg:token256">
            <xs:annotation>
                <xs:documentation>ID des Zustellstücke beim Absender</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Attachment" type="msg:AttachmentType"/>
        <xs:element name="Attachments" type="msg:AttachmentsType">
            <xs:annotation>
                <xs:documentation>List of all attachments</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="AttachmentsType">
            <xs:sequence>
                <xs:element ref="msg:Attachment" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="AttachmentType">
            <xs:sequence>
                <xs:element name="FileName" type="msg:FileNameType">
                    <xs:annotation>
                        <xs:documentation>Dateiname min. 5 Zeichen, max 255 Zeichen</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="msg:MimeType"/>
                <xs:element ref="msg:DocumentClass" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Dokumentenklasse als String bzw. Namespace im Fall von XML-Dokumenten im Anhang, um auf Empfängerseite eine automatische Verarbeitung durch ein Workflowsystem realisieren zu können.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Size" type="xs:nonNegativeInteger">
                    <xs:annotation>
                        <xs:documentation>Größe in Bytes</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="msg:CheckSum"/>
                <xs:choice>
                    <xs:element name="Content" type="xs:base64Binary">
                        <xs:annotation>
                            <xs:documentation>Für Attachments deren Inhalt direkt in die Nachricht eingebettet werden. (Das Größenlimit für die gesamte Nachricht inklusive aller eingebetteten Attachments beträgt 10 MB)</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="URL" type="xs:anyURI">
                        <xs:annotation>
                            <xs:documentation>Docuementlocation in case of Callback attachements</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:choice>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="AustrianAddressesOnly" type="msg:IndicatorType">
            <xs:annotation>
                <xs:documentation>Die Existenz des Elements zeigt an,  dass die gesuchte Person in Österreich gemeldet sein muss</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="AuthLevel" type="msg:token256">
            <xs:annotation>
                <xs:documentation>Höchstes Authentifizierungsniveau mit dem sich der Teilnehmer beim Portal/Kommunikationssystem angemeldet hatte.  Folgende Werte sind zulässig - absteigend sortiert nach der Höhe des Authentifizierungsniveaus: "EID" > "FON" > "LOW"
                </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="CareOf">
            <xs:annotation>
                <xs:documentation>Um einer natürlichen Person innerhalb einer Orangisation "zu Handen" (c/o) zustellen zu können, reicht die vbPK-ZU oder die E-Mail-Adresse aus, um die Person über das Eintreffen der Nachricht notifiziert zu können. </xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:ElectronicAddress" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Elektronische Adresse der "Zu Handen"-Person innerhalb der Organisation</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="Name" type="msg:token256">
                        <xs:annotation>
                            <xs:documentation>Name der Person zu deren Handen adressiert wird. Hierbei handelt es sich um einen Freitext für die Anzeige, der als eindeutiger Identifikator für Verständigungen oder eine automatisierte Weiterleitung ungeeignet ist.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="CheckSum" type="msg:CheckSumType">
            <xs:annotation>
                <xs:documentation>Prüfsumme</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="CheckSumType">
            <xs:annotation>
                <xs:documentation>Prüfsumme</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="AlgorithmID" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>Hash Algorithmus, z.B. SHA-256, SHA-512</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Value" type="xs:base64Binary">
                    <xs:annotation>
                        <xs:documentation>Hashwert</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="ClearingProfilID" type="xs:token">
            <xs:annotation>
                <xs:documentation>Ist zu verwenden, wenn die Abrechnung über ein anderes Profil erfolgen soll, als dem Versender-Profil </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="ConfirmationAddress">
            <xs:annotation>
                <xs:documentation>Webservice oder E-Mail-Adresse, an welches die Zustellbestätigung oder Fehlermeldung weitergeleitet wird (Callback)</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:choice>
                    <xs:element ref="msg:WebserviceURL"/>
                    <xs:element ref="msg:Email"/>
                </xs:choice>
                <xs:attribute name="Type" default="xml">
                    <xs:annotation>
                        <xs:documentation>Typ des Zustellnachweises, z.B. xml+pdf oder nur xml (default)</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:token">
                            <xs:enumeration value="xml"/>
                            <xs:enumeration value="xml+pdf"/>
                            <xs:enumeration value="pdf"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
            </xs:complexType>
        </xs:element>
        <xs:element name="ContactAddresses">
            <xs:annotation>
                <xs:documentation>Hier kann der Versender seine Kontaktadressen für Rückfragen des Empfängers übermitteln. Die Adressen werden vom AMOD in den Verständigungstext eingefügt.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:ElectronicAddress" maxOccurs="3"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="DeliveryError" type="msg:DeliveryErrorType" substitutionGroup="msg:Answer">
            <xs:annotation>
                <xs:documentation>Zeigt eine Ausnahmesituation an:
    • Ablauf der Abholfrist: das Anzeigemodul informiert, den Versender, dass die Abholfrist verstrichen ist, ohne dass der Empfänger die Nachricht angenommen hat. Mit dem Versteichen der Abholfirst kann die nachweisliche Zustellung dennoch als bewirkt gelten (Zustellfiktion), wenn keine Ausnahmetatbestände des ZUSTG vorliegen.
    • Zustellmangel „Verständigung fehlgeschlagen“: der Mangel liegt vor, wenn im Zuge der Übermittlung einer nachweislichen Nachricht die Verständigung des Empfängers per E-Mail fehlschlägt. Über das Vorliegen dieses Zustellmangels muss der Versender in Kenntnis gesetzt werden. Der Mangel kann geheilt werden, wenn der Empfänger innerhalb der Abholfrist dennoch die Nachricht im Anzeigemodul vorfindet. (§ 35 Abs. 5 [ZUSTG])
    • Zustellhindernis „Verständigung fehlgeschlagen“ und Ablauf der Abholfrist: ist die Verständigung fehlgeschlagen und die Abholfrist verstrichen, ohne dass der Empfänger Kenntnis von der Nachricht erhalten hat, dann liegt ein Zustellhindernis vor und die Zustellung gilt als nicht bewirkt.
    </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryErrorType">
            <xs:complexContent>
                <xs:extension base="msg:AbstractOperationType">
                    <xs:sequence>
                        <xs:element ref="msg:NotificationsPerformed" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Im Falle des verstreichens der Zustellfrist MUSS  das Element befüllt sein.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="msg:NotificationAddressList" minOccurs="0"/>
                        <xs:element ref="msg:ErrorInfo"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="DeliveryQuality">
            <xs:annotation>
                <xs:documentation>Zustellqualität gemäß ZustellG:
    • RSa
    • RSa+
    • nonRSa
    • nonRSa+</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="msg:token256">
                    <xs:enumeration value="RSa"/>
                    <xs:enumeration value="RSa+"/>
                    <xs:enumeration value="nonRSa"/>
                    <xs:enumeration value="nonRSa+"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element name="DeliverySystem" type="xs:anyURI">
            <xs:annotation>
                <xs:documentation>URL des für die Nachricht verantwortlichen Zustellstellsystems</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DeliveryTimestamp" type="xs:dateTime">
            <xs:annotation>
                <xs:documentation>Zustellzeitpunkt</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DocumentClass" type="xs:token">
            <xs:annotation>
                <xs:documentation>Enthält den Namespace des XML-Dokuments, um auf Empfängerseite eine automatische Verarbeitung durch ein Workflowsystem realisieren zu können.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="ElectronicAddress" type="p:AbstractAddressType" abstract="true">
            <xs:annotation>
                <xs:documentation> Elektronische Adresse (E-Mail, HTTP, etc)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Email" type="p:InternetAddressType">
            <xs:annotation>
                <xs:documentation>E-Mail Adresse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="ErrorInfo" type="msg:ErrorInfoType">
            <xs:annotation>
                <xs:documentation>Beschreibung eines aufgetretenen Fehlers</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="ErrorInfoType">
            <xs:annotation>
                <xs:documentation>ComplexTpye für die Beschreibung eines aufgetretenen Fehlers</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="Code" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>Fehlercode</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Text" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Fehlerbeschreibung</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="ERVConfirmedDelivery" type="msg:ERVConfirmedDeliveryType" substitutionGroup="msg:Answer">
            <xs:annotation>
                <xs:documentation>Diese Operation zeigt an, dass eine in den ERV weitergeleitete Nachricht erfolgreich im Verfügungsbereich des Empfängers eingelangt ist. </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="ERVConfirmedDeliveryType">
            <xs:complexContent>
                <xs:extension base="msg:AbstractOperationType">
                    <xs:sequence>
                        <xs:element ref="msg:ERVCode"/>
                        <xs:element ref="msg:ERVDeliveryTimestamp"/>
                        <xs:element name="InsolvencyAdministrator" type="msg:IndicatorType" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Existenz zeigt an, dass die Nachricht an den/die Insolvenzverwalter(in) in den in den ERV umgeleitet wurde</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="ERVCode" type="msg:token256">
            <xs:annotation>
                <xs:documentation>Anschriftcode des Elektronischen Rechtsverkehrs der Justiz (ERV): Wenn die Nachricht in den ERV weitergeleitet wird, ist der Anschriftcode - zwecks Nachvollziehbarkeit - bis zum Versender zurückgegeben.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="ERVDeliveryTimestamp" type="xs:dateTime">
            <xs:annotation>
                <xs:documentation>DEPRECATED: Dieser Timestamp ist gleich dem amod:MessageOperation/msg:Timestamp und wird in einer zukünftigen Version der XSD gestrichen. Zeitpunkt zu dem die Zustellung via ERV als bewirkt gilt (Details siehe ZUSEORG)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="GZ" type="xs:token">
            <xs:annotation>
                <xs:documentation>Geschäftszahl</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="IgnorePostRedirectionOrder" type="msg:IndicatorType">
            <xs:annotation>
                <xs:documentation>Wenn dieser Marker existiert, MUSS diese Zustellung auch bei aktiver Postsperre an den tatsächlichen Empfänger zugestellt werden.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="IndicatorType">
            <xs:annotation>
                <xs:documentation>Dieser ComplexType ist ein Hilfskonstrukt damit ein Flag/Kennzeichen/Marker/Idikator Element nicht als XML-Any misbraucht werden kann.</xs:documentation>
            </xs:annotation>
        </xs:complexType>
        <xs:element name="InternetAddress" type="p:InternetAddressType" substitutionGroup="msg:ElectronicAddress">
            <xs:annotation>
                <xs:documentation>element of internet address type</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Language" type="msg:AustrianLanguageType">
            <xs:annotation>
                <xs:documentation>Sprache in welcher der Zustellnachweis  gesendet werden soll</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Logo" type="msg:LogoType">
            <xs:annotation>
                <xs:documentation>Definiert ein Logo</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="LogoType">
            <xs:annotation>
                <xs:documentation>Definiert ein Nachrichtenlogo</xs:documentation>
            </xs:annotation>
            <xs:choice>
                <xs:element name="LogoID" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>Für Logos, die vorab beim Zustelldienst für den Versender im Profil hinterlegt wurden</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:sequence>
                    <xs:element name="ContentValue" type="xs:base64Binary"/>
                    <xs:element name="ContentType" type="msg:token256"/>
                </xs:sequence>
            </xs:choice>
        </xs:complexType>
        <xs:element name="MailBox" type="xs:token">
            <xs:annotation>
                <xs:documentation>Spezielles Postfach des Empfängers, z.B. eine Filiale einer jur. Person</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="MetaData">
            <xs:annotation>
                <xs:documentation>Metadaten der Zustellung</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:AppDeliveryID">
                        <xs:annotation>
                            <xs:documentation>ID des Zustellstücks beim Absender</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="msg:Origin" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Zustellsystem, welches die Nachricht überrmittelt hat. Muss gesetzt werden, wenn die Zustellsystem-Applikationen mehrere Zustellsysteme repräsentiert</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="msg:Subject"/>
                    <xs:element ref="msg:GZ" minOccurs="0"/>
                    <xs:choice>
                        <xs:element ref="msg:DeliveryQuality"/>
                        <xs:element ref="msg:PrivateMessageQuality"/>
                    </xs:choice>
                    <xs:element ref="msg:NotificationLanguages" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Sprachen - vom Versender mitgegeben - in denen die Verständigung gesendet werden soll</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="msg:IgnorePostRedirectionOrder" minOccurs="0"/>
                    <xs:element ref="msg:Reference" minOccurs="0"/>
                    <xs:element ref="msg:Tags" minOccurs="0"/>
                    <xs:element ref="msg:MetadataList" minOccurs="0"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="MetadataEntry" type="msg:MetadataEntryType">
            <xs:annotation>
                <xs:documentation>Single metadata entry</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="MetadataEntryType">
            <xs:sequence>
                <xs:element name="OID" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>Unique object identifier</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Value" type="xs:anySimpleType">
                    <xs:annotation>
                        <xs:documentation>Metadata value. basic type is defined in specification document</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="DisplayInDetailView" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>Display metadata in detailed view. If metadata are displayed by default or prohibited to display (e.g. internal data), this value cannot be overriden</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
        <xs:element name="MetadataList">
            <xs:annotation>
                <xs:documentation>List of metadata entries</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:MetadataEntry" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="MimeType" type="msg:token256">
            <xs:annotation>
                <xs:documentation>Mime-Typ</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="NotificationAddressList" type="msg:NotificationAddressListType">
            <xs:annotation>
                <xs:documentation>Liste der verifizierten Verständigungsadressen des Teilnehmers</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="NotificationAddressListType">
            <xs:sequence>
                <xs:element ref="msg:ElectronicAddress" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="NotificationLanguages">
            <xs:annotation>
                <xs:documentation>Sprachen in denen die Verständigung gesendet werden soll</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:Language" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>Sprache in der die Verständigung gesendet werden soll</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="NotificationsPerformed" type="msg:NotificationsPerformedType">
            <xs:annotation>
                <xs:documentation>Liste der vom AMOD durchgeführten Verständigungen des Empfängers</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="NotificationsPerformedType">
            <xs:sequence>
                <xs:element name="RecipientNotification" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Timestamp" type="xs:dateTime"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="Origin" type="msg:SystemComponentType">
            <xs:annotation>
                <xs:documentation>Herkunftssystem:  Zustellsystem oder  Kommunikationssystem der Behörde, von welchem die Nachricht oder Empfängerrdaten stammen</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="ParticipantID" type="msg:token256">
            <xs:annotation>
                <xs:documentation>ParticipantID = Landeskennung ":" ID
    ID = "VKZ:" VKZ | Org-Id
    VKZ ::= 1#32UACHAR;(Verwaltungskennzeichen gem. [VKZ])
    Org-Id ::= 1#32UACHAR;(Org-Id gem. [VKZ])
    Landeskennung ::= {2} ALPHA; (gem. ISO 3166 - Alpha2)
    (nicht normativ / nach ldap.gv.at) Beispiele: "AT:B:102", "AT:VKZ:GGA-12345", "AT:L9:9876"</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="PreAdviceNote" type="msg:PreAdviceNoteType">
            <xs:annotation>
                <xs:documentation>Aviso (optional)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="PreAdviceNoteSent" type="msg:PreAdviceNoteSentType">
            <xs:annotation>
                <xs:documentation>Existenz des Elements zeigt an, dass ein Aviso erfolgreich an alle Verständigungsadressen des Teilnahmkandidaten versendet wurde</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="PreAdviceNoteSentType">
            <xs:annotation>
                <xs:documentation>(Technisch Notwendig, um implizites XML-Any zu verhindern)</xs:documentation>
            </xs:annotation>
        </xs:complexType>
        <xs:complexType name="PreAdviceNoteType">
            <xs:sequence>
                <xs:element name="NumberOfDays" type="xs:positiveInteger">
                    <xs:annotation>
                        <xs:documentation>Frist von der Behörde bis wann die Registrierung erfolgt sein muss, um dass Behördenschriftstück noch elektronisch zu bekommen. Anderenfalls wird das Schriftstück von der Behörde auf dem normalen Postweg versandt. Diese Info wird im Aviso-E-Mail mitgegeben.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="msg:NotificationAddressList" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="PrivateMessageQuality">
            <xs:annotation>
                <xs:documentation>Qualität der privatrechtlichen Zusendung ist von der Zustellqualität lt. ZustellG zu unterscheiden:
    • Reply (DARF nur vom Anzeigemodul INTERN verwendet werden)
    • Information
    • RegisteredMail
    • RegisteredMail+
    • ConfirmReceipt
    • ConfirmReceipt+</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:token">
                    <xs:enumeration value="Reply"/>
                    <xs:enumeration value="Information"/>
                    <xs:enumeration value="RegisteredMail"/>
                    <xs:enumeration value="RegisteredMail+"/>
                    <xs:enumeration value="ConfirmReceipt"/>
                    <xs:enumeration value="ConfirmReceipt+"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element name="ProfileID" type="xs:token">
            <xs:annotation>
                <xs:documentation>ID mit der der Versender beim Zustellsystem registriert ist. (Das Zustellsystem ist für den Inhalt der Personendaten des Versenders verantwortlich, um sicherzustellen, dass diese nicht missbräuchlich verwendet werden (Vortäuschung einer anderen Identität))</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Receiver">
            <xs:annotation>
                <xs:documentation>Informationen zum Empfänger</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:choice>
                        <xs:element ref="p:Identification"/>
                        <xs:sequence>
                            <xs:element ref="p:Person"/>
                            <xs:element ref="msg:AustrianAddressesOnly" minOccurs="0"/>
                            <xs:element ref="p:Address" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:choice>
                    <xs:element ref="msg:AdditionalCriteria" minOccurs="0"/>
                    <xs:element ref="msg:PreAdviceNote" minOccurs="0"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="ReceiverDetails" type="p:PersonAndIdentificationType">
            <xs:annotation>
                <xs:documentation>Informationen nur für Senderidentifikation</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Reference">
            <xs:annotation>
                <xs:documentation>Referenz auf ein anderes Zustellstück (ZSDeliveryID), auf die sich diese Zustellung bezieht</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:ZSDeliveryID"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="RelayedViaERV">
            <xs:annotation>
                <xs:documentation>Gibt an ob das Zustellstück über den ERV zugestellt wurde</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:ERVCode"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="Roles">
            <xs:annotation>
                <xs:documentation>Rollen, welche neben globalen Vertretungsbefugten Zustellstücke entgegennehmen dürfen</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Role" maxOccurs="unbounded">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="Value" type="msg:token256"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="Sender">
            <xs:annotation>
                <xs:documentation>Informationen zum Sender</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:SenderPerson"/>
                    <xs:element ref="msg:ClearingProfilID" minOccurs="0"/>
                    <xs:element ref="msg:Logo" minOccurs="0"/>
                    <xs:element ref="msg:AdditionalCriteria" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Spezielles Postfach des Versenders z.B. eine Filiale einer jur. Person an welches dieser eine etwaige Antwort retourniert haben möchte</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="msg:ConfirmationAddress" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Webservice oder E-Mail-Adresse, an welche die Übergabebestätigung, der Zustellnachweis oder die Fehlermeldung zurückgemeldet wird (Callback)</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="msg:ContactAddresses" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Hier kann der Versender seine Kontaktadressen für Rückfragen des Empfängers übermitteln. Die Adressen werden vom AMOD in das Verständigungsformular eingefügt.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="SenderCorporateBody" type="msg:SenderCorporateBodyType" substitutionGroup="msg:SenderPerson">
            <xs:annotation>
                <xs:documentation>Versender ist eine Behörde oder ein Unternehmen, das im gesetzlichen Auftrag handeln</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="SenderCorporateBodyType">
            <xs:annotation>
                <xs:documentation>juridical person, organisation</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="msg:AbstractSenderPersonType">
                    <xs:choice>
                        <xs:element ref="msg:SenderProfile"/>
                        <xs:sequence>
                            <xs:element ref="p:Identification"/>
                            <xs:element ref="p:CorporateBody"/>
                        </xs:sequence>
                    </xs:choice>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="SenderPhysicalPerson" type="msg:SenderPhysicalPersonType" substitutionGroup="msg:SenderPerson">
            <xs:annotation>
                <xs:documentation>Versender ist eine natürliche Person (für Antworten). DARF nur vom Anzeigemodul INTERN verwendet werden</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="SenderPhysicalPersonType">
            <xs:annotation>
                <xs:documentation>physical person</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="msg:AbstractSenderPersonType">
                    <xs:choice>
                        <xs:element ref="msg:SenderProfile"/>
                        <xs:sequence>
                            <xs:element ref="p:Identification"/>
                            <xs:element ref="p:PhysicalPerson"/>
                        </xs:sequence>
                    </xs:choice>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="SenderDetails" type="p:PersonAndIdentificationType">
            <xs:annotation>
                <xs:documentation>Informationen nur für Senderidentifikation</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="SenderPerson" type="msg:AbstractSenderPersonType">
            <xs:annotation>
                <xs:documentation>Die Person des Versenders wird über das Clientzertifikat authentifiziert mit dem sich das IT-Service des Versenders mit seinem Zustellsystem verbindet. (Bei Behörden erfolgt die Authentifizierung über PVP-Header)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="SenderProfile">
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:ProfileID"/>
                    <xs:element ref="p:Organization" minOccurs="0"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="ServiceProviderID" type="msg:token256">
            <xs:annotation>
                <xs:documentation>ID des Dienstleisters, der für den Versender die Kommunikation mit dem Zustelldienst bzw. generell dem Zustellsystem durchführt. In diesem Fall ist der Dienstleister der Rechnungsempfänger</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="SimpleRequestType">
            <xs:annotation>
                <xs:documentation>Einfacher "Request" ohne Datenelemente</xs:documentation>
            </xs:annotation>
        </xs:complexType>
        <xs:element name="Subject" type="xs:token">
            <xs:annotation>
                <xs:documentation>Zur Anzeige in der Mailbox, vgl. Subject von herkömml. E-mails</xs:documentation>
            </xs:annotation>
            <!--  R2023 -->
        </xs:element>
        <xs:complexType name="SystemComponentType">
            <xs:annotation>
                <xs:documentation>Systemkomponente der E-Zustellung: Portal oder Zustellsystem. (Ein Zustellsystem ist entweder ein Zustelldienst, ein Kommunikationssystem der Behörde oder ein Zielsystem)</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="msg:ParticipantID">
                    <xs:annotation>
                        <xs:documentation>ParticipantID = Landeskennung ":" ID
    ID = "VKZ:" VKZ | Org-Id
    VKZ ::= 1#32UACHAR; (Verwaltungskennzeichen gem. [VKZ])
    Org-Id ::= 1#32UACHAR; (Org-Id gem. [VKZ])
    Landeskennung ::= {2} ALPHA; (gem. ISO 3166 - Alpha2)
    (nicht normativ / nach ldap.gv.at) Beispiele: "AT:B:102", "AT:VKZ:GGA-12345", "AT:L9:9876"</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="TelephoneAddress" type="p:TelephoneAddressType" substitutionGroup="msg:ElectronicAddress">
            <xs:annotation>
                <xs:documentation>element of TelephoneAddressType, compare TelefonAdresse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Tag" type="msg:token256"/>
        <xs:element name="Tags">
            <xs:annotation>
                <xs:documentation>Schlagworte zu einer Nachricht nach welchen ein Benutzer suchen kann. (Dieser müssen vom Versender einer Nachricht gesetzt werden)</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="msg:Tag" maxOccurs="20"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="TargetIdentification" type="p:IdentificationType">
            <xs:annotation>
                <xs:documentation>Wenn im DeliveryRequest ein Target angegeben wurde, d.h. der Bereich und das VKZ des behördlichen Versenders, dann enthält das TargetIdentification Element das entsprechende, umgeschlüsselt vbPK für den Versender</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Timestamp" type="xs:dateTime">
            <xs:annotation>
                <xs:documentation>Zeitpunkt zu dem das FACHLICHE Ereignis stattgefunden hat. • Im Falle der Annahme einer Zustellung im AMOD, entspricht der Timestamp dem Zustellzeitpunkt und ist gleich der AMOD-Systemuhrzeit. • Im Falle der ERV-Weiterleitung, kann der Timestamp einen vom ERV berechneter Wert enthalten. </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="User">
            <xs:annotation>
                <xs:documentation>Benutzer, der die Nachricht angenommen oder gelöscht hat. Wenn die Nachrichtenoperation vom System des Anzeigemoduls ausgelöst wurde, bleibt das User Element leer</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Role">
                        <xs:annotation>
                            <xs:documentation>Rolle des Benutzers:
    • Receiver: Empfänger persönlich
    • Representative: Vertretungsbevollmächtigter
    • InsolvencyAdministrator: Insolvenzverwalters
    • System: Eine Systemkomponente der eZustellung ist Auslöser der MessageOperation
                        </xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:token">
                                <xs:enumeration value="Receiver"/>
                                <xs:enumeration value="Representative"/>
                                <xs:enumeration value="InsolvencyAdministrator"/>
                                <xs:enumeration value="System"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element ref="p:Identification"/>
                    <xs:element ref="msg:TargetIdentification" minOccurs="0"/>
                    <xs:element ref="p:PhysicalPerson"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="WebserviceURL">
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="p:InternetAddressType">
                        <xs:attribute name="AlternativeEmail" type="xs:anyURI"/>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
        </xs:element>
        <xs:element name="ZSDeliveryID" type="msg:token256">
            <xs:annotation>
                <xs:documentation>ID des Zustellstückes MUSS über alle Zustellsysteme eindeutig sein. Die ZSDeliveryID wird durch eine UUID gemäß RFC-4122 repräsentiert. Der Node-Teil MUSS pro Zustellsystem eindeutig sein und wird vom Anzeigemodul vergeben.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!--### Simple Types-->
        <xs:simpleType name="token256">
            <xs:annotation>
                <xs:documentation>Token auf 256 Zeichen beschränkt.</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:token">
                <xs:minLength value="1"/>
                <xs:maxLength value="256"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="AustrianLanguageType">
            <xs:annotation>
                <xs:documentation>2-stelliger Sprachcode der anerkannten österreichischen Amtssprache</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:token">
                <xs:minLength value="2"/>
                <xs:maxLength value="2"/>
                <xs:enumeration value="DE"/>
                <xs:enumeration value="HR"/>
                <xs:enumeration value="HU"/>
                <xs:enumeration value="SL"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="FileNameType">
            <xs:annotation>
                <xs:documentation>Typ zur Beschränkung von Dateinamen auf minimal 5 Zeichen und maximal 255 Zeichen</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:token">
                <xs:maxLength value="255"/>
                <xs:minLength value="5"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="VersionNumberType">
            <xs:annotation>
                <xs:documentation>Der Typ definiert einen regulären Ausdruck für Versionsnummer - z.B. „2.1.0-001“. Die ersten drei Nummern repräsentieren die Versionsnummer des zugrundeliegenden ZUSEMSG-Spezifikationsdokuments. Die vierte Nummer ist die fortlaufende Release-Nummer, die bei der Veröffentlichung einer neuen Version des XML-Schemas inkrementiert wird.</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:token">
                <xs:pattern value="([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,3}|[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}-[0-9]{3})"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:schema>

### zuse_mypersondata_en_p2.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Mit XMLSpy v2016 (http://www.altova.com) von Arne Tauber (TU Graz) bearbeitet -->
    <xs:schema
        xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:p="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#"
        targetNamespace="http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified"
        version="2.1.0-003">
        <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="W3C-XMLDSig.xsd"/>
        <xs:annotation>
            <xs:documentation>This version of person deploys only global elements. All types derived from abstract types have been replaced by substitution groups</xs:documentation>
        </xs:annotation>
        <!-- ### structure for person data ### -->
        <xs:element name="Person" type="p:AbstractPersonType" abstract="true"/>
        <!-- ### structure of a person with Identification ### -->
        <xs:element name="PersonAndIdentification" type="p:PersonAndIdentificationType">
            <xs:annotation>
                <xs:documentation>element of person details type</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!-- ### structure of a person with address### -->
        <xs:element name="PersonAndAddress" type="p:PersonAndAddressType">
            <xs:annotation>
                <xs:documentation>element of signed person datastructure type</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!-- ### physical person, corporate body and authority ### -->
        <xs:element name="PhysicalPerson" type="p:PhysicalPersonType" substitutionGroup="p:Person">
            <xs:annotation>
                <xs:documentation>element of physical person type, dreived from Person </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="CorporateBody" type="p:CorporateBodyType" substitutionGroup="p:Person">
            <xs:annotation>
                <xs:documentation>element of corporate body type, derived from Person</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Name" type="p:PersonNameType">
            <xs:annotation>
                <xs:documentation>data related to the person's name</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="FullName" type="xs:token">
            <xs:annotation>
                <xs:documentation>name of corporate body (whole name), compare VollerName</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Organization" type="xs:token">
            <xs:annotation>
                <xs:documentation>part of an organisation, see also X.500 ou (eg departement, section, branch, ...) , compare Organisation</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Target" type="xs:anyURI">
            <xs:annotation>
                <xs:documentation>Beinhaltet die Bereichskennung und entweder das VKZ oder den Service-Identifier  der Zielorganisation für die das vbPK-ZU umzuschlüsseln ist. Das Target ist in der Form "urn:publicid:gv.at:ecdid+«VKZ od. Service-ID»+«Bereich»" zu liefern. (vgl. SZR 3.0 Anwendungsdokumentation)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DateOfBirth" type="xs:date">
            <xs:annotation>
                <xs:documentation>date of birth, compare Geburtsdatum</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!-- ### adress data for various types of communications ### -->
        <xs:element name="Address" type="p:AbstractAddressType" abstract="true"/>
        <xs:element name="PostalAddress" type="p:PostalAddressType" substitutionGroup="p:Address">
            <xs:annotation>
                <xs:documentation>Postal or ZMR Address, compare PostAdresse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="InternetAddress" type="p:InternetAddressType" substitutionGroup="p:Address">
            <xs:annotation>
                <xs:documentation>element of internet address type</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="TelephoneAddress" type="p:TelephoneAddressType" substitutionGroup="p:Address">
            <xs:annotation>
                <xs:documentation>element of TelephoneAddressType, compare TelefonAdresse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!-- ###  Identification elements ###-->
        <xs:element name="Identification" type="p:IdentificationType">
            <xs:annotation>
                <xs:documentation>unique identifier</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="IdentificationType">
            <xs:annotation>
                <xs:documentation>unique identifier</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="Value">
                    <xs:annotation>
                        <xs:documentation>actual value of the identifier.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="Id" type="xs:ID" use="optional"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Type" type="xs:anyURI">
                    <xs:annotation>
                        <xs:documentation>type of value (eg 'ZMR', 'SV-Nummer', 'Martrikelnummer', database identification, ...)</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
        </xs:complexType>
        <!--### Complex types ###-->
        <xs:complexType name="PersonAndIdentificationType">
            <xs:annotation>
                <xs:documentation>person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements).</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="p:Identification"/>
                <xs:element ref="p:Person"/>
            </xs:sequence>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
        </xs:complexType>
        <xs:complexType name="PersonAndAddressType">
            <xs:annotation>
                <xs:documentation>signed person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements).</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="p:Identification"/>
                <xs:element ref="p:Person"/>
                <xs:element ref="p:Address" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
        </xs:complexType>
        <xs:complexType name="AbstractPersonType" abstract="true">
            <xs:annotation>
                <xs:documentation>main structure of person data</xs:documentation>
            </xs:annotation>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
        </xs:complexType>
        <xs:complexType name="PhysicalPersonType">
            <xs:annotation>
                <xs:documentation>physical person</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="p:AbstractPersonType">
                    <xs:sequence>
                        <xs:element ref="p:Name"/>
                        <xs:element ref="p:DateOfBirth" minOccurs="0"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="PersonNameType">
            <xs:sequence>
                <xs:element name="GivenName" type="xs:string"/>
                <xs:element name="FamilyName">
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="primary">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:enumeration value="true"/>
                                            <xs:enumeration value="false"/>
                                            <xs:enumeration value="undefined"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <xs:attribute name="prefix" type="xs:string"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Affix" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Inlcudes all Information that is not exactly a name: academic or aristocratic titles, ... the new position attribute can contain a suffx or prefix value</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="type" use="required">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:enumeration value="academicGrade"/>
                                            <xs:enumeration value="aristocraticPrefix"/>
                                            <xs:enumeration value="aristocraticTitle"/>
                                            <xs:enumeration value="familyNamePrefix"/>
                                            <xs:enumeration value="familyNameSuffix"/>
                                            <xs:enumeration value="formOfAddress"/>
                                            <xs:enumeration value="generation"/>
                                            <xs:enumeration value="qualification"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <xs:attribute name="position" use="optional">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:enumeration value="prefix"/>
                                            <xs:enumeration value="suffix"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="AuthorityType">
            <xs:annotation>
                <xs:documentation>public authority</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="p:AbstractPersonType">
                    <xs:sequence>
                        <xs:element ref="p:FullName"/>
                        <xs:element ref="p:Organization" minOccurs="0"/>
                        <xs:element ref="p:Target" minOccurs="0"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="CorporateBodyType">
            <xs:annotation>
                <xs:documentation>juridical person, organisation</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="p:AbstractPersonType">
                    <xs:sequence>
                        <xs:element ref="p:FullName"/>
                        <xs:element ref="p:Organization" minOccurs="0"/>
                        <xs:element ref="p:Target" minOccurs="0"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="AbstractAddressType">
            <xs:annotation>
                <xs:documentation>main structure of address data </xs:documentation>
            </xs:annotation>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
        </xs:complexType>
        <xs:complexType name="PostalAddressType">
            <xs:complexContent>
                <xs:extension base="p:AbstractAddressType">
                    <xs:sequence>
                        <xs:element name="CountryCode" type="xs:string" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Code for the country, use ISO or internatinal Postalstandard, compare Staatscode</xs:documentation>
                            </xs:annotation>
                            <!-- xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:pattern value="[A-Z]{2}"/>
                                </xs:restriction>
                            </xs:simpleType  -->
                        </xs:element>
                        <xs:element name="PostalCode" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>ZIP, compare Postleitzahl</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Municipality" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>compare Gemeinde</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="MunicipalityNumber" type="xs:string" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>compare Gemeindekennzahl</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="DeliveryAddress">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="StreetName" type="xs:string"/>
                                    <xs:element name="BuildingNumber" type="xs:string"/>
                                    <xs:element name="Unit" type="xs:string" minOccurs="0"/>
                                    <xs:element name="DoorNumber" type="xs:string" minOccurs="0"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="type">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="postOfficeBoxAddress"/>
                                <xs:enumeration value="streetAddress"/>
                                <xs:enumeration value="militaryAddress"/>
                                <xs:enumeration value="undefined"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="InternetAddressType">
            <xs:annotation>
                <xs:documentation>internet based communication</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="p:AbstractAddressType">
                    <xs:sequence>
                        <xs:element name="Address" type="xs:anyURI">
                            <xs:annotation>
                                <xs:documentation>URI: email-Address, Web, FTP, LDAP, ..., compare Adress</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="TelephoneAddressType">
            <xs:annotation>
                <xs:documentation>phone numbers</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="p:AbstractAddressType">
                    <xs:sequence>
                        <xs:element name="Number" type="xs:token">
                            <xs:annotation>
                                <xs:documentation>phonenumber</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="MessengerService" type="xs:token">
                        <xs:annotation>
                            <xs:documentation>SMS, WhatsApp, etc.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <!-- ### strings of defined maximum lenght for use with ZMR address #### -->
        <xs:simpleType name="string3">
            <xs:restriction base="xs:string">
                <xs:maxLength value="3"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string4">
            <xs:restriction base="xs:string">
                <xs:maxLength value="4"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string7">
            <xs:restriction base="xs:string">
                <xs:maxLength value="7"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string20">
            <xs:restriction base="xs:string">
                <xs:maxLength value="20"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string30">
            <xs:restriction base="xs:string">
                <xs:maxLength value="30"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string50">
            <xs:restriction base="xs:string">
                <xs:maxLength value="50"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string100">
            <xs:restriction base="xs:string">
                <xs:maxLength value="100"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="integer5">
            <xs:restriction base="xs:integer">
                <xs:minInclusive value="10000"/>
                <xs:maxInclusive value="99999"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:schema>

### 3.7 Status Codes

## exdpDeliveryStatusPollingService since 5.19

- ID 1xxx delivery state
- ID 2xxx aviso status
- ID 3xxx receipts
  - ID 30xx - hybrid letter (Post A.G.)
  - ID 31xx - E-BOX
  - ID 32xx - Official delivery channel (Behördlicher Zustelldienst)
  - ID 33xx - Qualified Mail
- ID 4xxx delivery files
- ID 5xxx see 4 SOAP Printing Facility Callback Web Service
- ID 9xxx errors

Delivery Status Codes can be found here

### DeliveryStatus Receipt Codes Mapping

As new delivery channels were introduced, new status codes were created.

The list of DeliveryStatus Receipt Codes can be found here

Final State
Delivery statuses are marked as final in following cases:

- A processing error
- A successful delivery without any further callback or receipts (e.g.: NonR)
- An error in the aviso check
- If the delivery went to (E-BOX, Bzd, Email) every receipt received is final
- If it is a hybrid letter delivery the final state is taken from the postal status code
- If the delivery has a DeliveryReceipt with the status message “No receipt available - Zustellnachweis fehlt”
  - errorState=true if there are no other DeliveryReceipt
  - errorState=false if there are already none final DeliveryReceipt entries

Comparison exDPPollingService and exdpDeliveryStatusPollingService
Following status codes are identical between exDPPollingService and exdpDeliveryStatusPollingService.

exdpPollingService | exdpDeliveryStatusPollingService
--- | ---
2002 | 2000
2004 | 2001
3000 | 3000
9030 | 3001
- | 3002
- | 3003
3002 | 3004
4000 | 4000
9000 | 9000

The following state diagram shows how the states can change in our system. The delivery error can normally be reached from everywhere.

## exDPCallbackService and exDPPollingService

The `Code` tag of the `Status` object of `DualNotificationRequest` could have one of the following values:

- `ID_2000` - Successful processing of the Aviso data (only hybrid return letter, further details could be found in code listing “Notification example in case of hybrid return letter”)
- `ID_2001` - Erroneous processing of the Aviso data (only hybrid return letter, further details could be found in code listing “Notification example in case of delivery via Governmental delivery service”)
- `ID_3000` - Successful processing with the hybrid return letter details. The following cases could occur:
  - successful delivery with the advice of delivery. In case of delivery with hybrid return letter, the scanned, from recipient signed advice of delivery as PDF/A - see .
  - delivery receipt including PDF in case of delivery via Governmental delivery service -* see the subsection
  - delivery receipt in case of delivery via E-BOX (without PDF)
  - delivery receipt in case of a qualified mails (a user has downloaded a document successfully)
- `ID_3001` - No sending found with the given information (in case of polling)
- `ID_3002` - No delivery receipt is found im system (in case of polling)
- `ID_3003` - No delivery receipt is intended for this sending (in case of polling)
- `ID_3004` - Delivery with non-final delivery details (in case of hybrid return letter - see below for more details)
- `ID_9000` - Error and its description is provided in the Text tag

The `Text` tag can contain multiple information. In case of hybrid return letter (see ), a status and the corresponding description (especially in case of failure) separated by the semi-colon are provided. The status can have one of the following values:

- `OK` - Status code `ID_2000` - Aviso data is OK, no further information is here provided.
- `ERROR` - Status code `ID_2001` - Aviso data is erroneous, the error descriptions of the post service (e.g. Post A.G.) concatenated using the “||”” separator is provided.
- `<Status codes of the post service` - Status code `ID_3000` or `ID_3004` - see the following table.

If the system receives an advice of delivery or a status information, a text of the post service is used. The possible status codes of the Post AG are listed in the following table. Column Permanent (Polling finalstate) provides information wether it is finale state and no further states are sent.

ID | Status (post-internal) | Polling errorstate | Permanent (Polling finalstate) | Delivered | PDF Available | New since spec 3.9 | Description
--- | --- | --- | --- | --- | --- | --- | ---
1920 | zugestellt | no | true *) | true | true |  | *) only true when also the PDF is available
2400 | retour, fehlerhafter Barcode | no | true | false | false | not available anymore |
2401 | Zustellhindernis | no | true | false | false |  |
2420 | hinterlegt | no | false | true | false |  | Deposited without trying to deliver
2424 | nachgesendet | no | false | false | false | x |
2433 | gerichtlicher Nachsender | no | false | false | false | x |
2434 | weiterer Sendungsstatus nicht verfügbar | no | false | false | false | x |
2435 | ausgefolgt vor Beginn der Abholfrist | no | true *) | true | false | x | Same as 2460 - ausgefolgt. No difference. This means that the receiver catched up delivery from postal station before the fetch delay (“Abholfrist”) started. Both are success and final. *) only true when also the PDF is available
2436 | Noch in interner Abstimmung – Phase 2 | no | false | false | false | x |
2437 | Noch in interner Abstimmung – Phase 2 | no | false | false | false | x |
2438 | Kein Report **) | no | false | false | false | x |
2439 | physische Sendung erhalten | no | false | false | false | x | An intermediate state which means that the deliveries is in a delivery center and processed by a machine - it is the digital confirmation that the delivery is received from the Post AG.
2423 | Kein Report **) | no | false | false | false | x | Perpetration of the discharge point not possible (customer notified)
2422 | Kein Report **) | no | false | false | false | x | Discharge point in outskirt (customer notified)
2458 | Übergabe an Justizanstalt | no | false | false | false | x | Delievered to judiciary institution. Available since . Before this date no report was given.
2457 | Übergabe an militär. Einrichtung | no | false | false | false | x | Delievered to military institution. Available since . Before this date no report was given.
2447 | retour Diff. Aviso-/Sdg.Daten ***) | yes | true | false | false |  |
2459 | nicht behoben | no | true | true | false |  |
2460 | ausgefolgt | no | true *) | true | true |  | *) only true when also the PDF is available
2440 | retour, fehlerhafter Barcode | yes | true | false | false | x |
2446 | retour, fehlerhafter Barcode | yes | true | false | false | x |

* Only true when also the PDF is available
** A temporary status is not reported. Delivery status is first after succeeded delivery (try) reported.
*** In case of error status “retour Diff. Aviso-/Sdg. data” is a delivery with the same barcode possible.

In case of a qualified mail the following string is set into the text tag: “`Delivery downloaded by <remote address> <remote host> <remote user> on <current date>`”. Further, in case of a standard electronic delivery the string will be: “`Received delivery notification for delivery with id <foreignId>`”.
Could a sending with the relevant information be found in system, the delivery channel (`deliveryChannel`) is also as a part of the response sent back. See the subsection for more code examples and the subsection Delivery Channels to get an overview about possible values.

## Examples

### deliveryResult example

    <?xml version="1.0"?>
    <xdpDeliveryResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <deliveryData xmlns="http://www.exthex.com/exdp/types">
    <receiver>
    <legalPerson>
    <name>eMAL</name>
    </legalPerson>
    <postalAddress>
    <street>ActaNova Street</street>
    <doorNr>1</doorNr>
    <postalCode>1010</postalCode>
    <city>Wien</city>
    <countryCode>1</countryCode>
    </postalAddress>
    </receiver>
    <deliveryQuality>NORMAL</deliveryQuality>
    <registered>false</registered>
    <deliveryChannel>postalEmailChannel</deliveryChannel>
    <deliveryId>30008</deliveryId>
    <success>true</success>
    <infoMessages>
    <infoMessage>
    <id>XDP\_5057</id>
    <message>Fehler beim Erstellen der Zustellkopf Anfrage. Fehlende Daten gefunden: STAMMZAHL</message>
    </infoMessage>
    <infoMessage>
    <id>XDP\_5057</id>
    <message>Fehler beim Erstellen der Zustellkopf Anfrage. Fehlende Daten gefunden: ERV</message>
    </infoMessage>
    <infoMessage>
    <id>XDP\_5057</id>
    <message>Fehler beim Erstellen der Zustellkopf Anfrage. Fehlende Daten gefunden: Email address</message>
    </infoMessage>
    <infoMessage>
    <id>XDP\_5034</id>
    <message>Empfänger am Zustellkopf nicht gefunden/registriert. Behördliche Zustellung nicht verfügbar.</message>
    </infoMessage>
    <infoMessage>
    <id>XDP\_5057</id>
    <message>Fehler beim Erstellen der Zustellkopf Anfrage. Fehlende Daten gefunden: STAMMZAHL</message>
    </infoMessage>
    <infoMessage>
    <id>XDP\_5057</id>
    <message>Fehler beim Erstellen der Zustellkopf Anfrage. Fehlende Daten gefunden: ERV</message>
    </infoMessage>
    <infoMessage>
    <id>XDP\_5057</id>
    <message>Fehler beim Erstellen der Zustellkopf Anfrage. Fehlende Daten gefunden: Email address</message>
    </infoMessage>
    <infoMessage>
    <id>XDP\_5034</id>
    <message>Empfänger am Zustellkopf nicht gefunden/registriert. Behördliche Zustellung nicht verfügbar.</message>
    </infoMessage>
    <infoMessage>
    <id>XDP\_5031</id>
    <message>Fehler bei der E-Mail Zustellung. Fehlende oder fehlerhafte E-Mail-Adresse: null</message>
    </infoMessage>
    <infoMessage>
    <id>XDP\_5031</id>
    <message>Fehler bei der E-Mail Zustellung. Fehlende oder fehlerhafte E-Mail-Adresse: null</message>
    </infoMessage>
    <infoMessage>
    <id>XDP\_5031</id>
    <message>Fehler bei der E-Mail Zustellung. Fehlende oder fehlerhafte E-Mail-Adresse: null</message>
    </infoMessage>
    <infoMessage>
    <id>XDP\_5074</id>
    <message>Dokumente erfolgreich zur Zustellung übernommen (via E-Mail peter.danner@exthex.com)</message>
    </infoMessage>
    </infoMessages>
    <expectReceipt>false</expectReceipt>
    <transmitDate>2014-10-23T10:53:25.643+02:00</transmitDate>
    </deliveryData>
    <documentResult xmlns="http://www.exthex.com/exdp/types">
    <success>true</success>
    <document>
    <fileName>Test Document</fileName>
    <content>[CONTENT DATA]</content>
    <mimeType>application/pdf</mimeType>
    <hash>02ba31dab026dd5ed3757691d783d0dd6305d02af8b410ac5169e919308702cd</hash>
    </document>
    </documentResult>
    <success xmlns="http://www.exthex.com/exdp/types">true</success>
    <finished xmlns="http://www.exthex.com/exdp/types">true</finished>
    <infoMessage xmlns="http://www.exthex.com/exdp/types">
    <id>XDP\_9070</id>
    <message>Verarbeitung erfolgreich.</message>
    </infoMessage>
    </xdpDeliveryResult>

### Notification example

    <?xml version="1.0"?>
    <DualNotificationRequestType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0">
    <AppDeliveryID xmlns="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#">30008</AppDeliveryID>
    <Status xmlns="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#">
    <Code>ID\_9000</Code>
    <Text>Error parsing dualDeliveryID[not\_a\_number]. Must be numeric! appDeliveryId: 1234</Text>
    </Status>
    </DualNotificationRequestType>

### Notification example in case of hybrid return letter

    <?xml version="1.0"?>
    <DualNotificationRequestType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0">
    <AppDeliveryID xmlns="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#">30008</AppDeliveryID>
    <DualDeliveryID>961</DualDeliveryID>
    <Status xmlns="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#">
    <Code>ID\_3000</Code>
    <Text/>
    </Status>
    <Result>
    <NotificationChannel>
    <NotificationChannelSet xsi:type="ns2:OtherNotificationType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <NotificationInformation namespace="http://www.exthex.com/deliveryChannel">
    <ns13:deliverChannelName xmlns:ns13="http://www.exthex.com/deliveryChannel">printDeliveryChannel</ns13:deliverChannelName>
    </NotificationInformation>
    </NotificationChannelSet>
    </NotificationChannel>
    </Result>
    <ManipulatedPayloads>
    <ManipulatedPayload>
    <PayloadAttributes>
    <FileName>returnLetter.pdf</FileName>
    <MIMEType>application/pdf</MIMEType>
    </PayloadAttributes>
    <BinaryDocument>
    <content>the binary content</content>
    </BinaryDocument>
    </ManipulatedPayload>
    </ManipulatedPayloads>
    </DualNotificationRequestType>

### Notification example in case of delivery via Governmentaldelivery service

    <?xml version="1.0"?>
    <DualNotificationRequestType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0">
    <AppDeliveryID xmlns="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#">30008</AppDeliveryID>
    <DualDeliveryID>961</DualDeliveryID>
    <Status xmlns="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#">
    <Code>ID\_3000</Code>
    <Text/>
    </Status>
    <Result>
    <NotificationChannel>
    <EDeliveryNotification>
    <BinaryDeliveryNotification>the binary content</BinaryDeliveryNotification>
    </EDeliveryNotification>
    </NotificationChannel>
    </Result>
    </DualNotificationRequestType>

## Delivery Channels

The following list presents possible delivery channels and possible delivery qualities per channel (delivery qualities in brackets are marked as deprecated and will be removed in future interface versions).

- `printDeliveryChannel` - Print and postal sending. Standard letter sending and also hybrid return letter.
  - For governmental senders: `nonRSa`, `nonRSa+`, `Rsa`, `RSa+`, `RSb`
  - For private senders: `nonR`, `nonR+`, `R`, `R+`, `RS`, `RS+`
- `selfPrintDeliveryChannel` - Possible only in case of hybrid return letter, when the document by a sender herself printed and to post service delivered. It is needed for the processes whereby original attachments should be sent to a recipient.
  - `RSa`, `RSa+`, `RSb`
- `emailChannel` - Simple e-mail sending
  - `nonRS,nonRSa``(`,`nonR`, `R)`
- `encryptedEmailChannel` - Encrypted e-mail sending
  - `nonRS,nonRSa``(`,`nonR`, `R)`
- `qualifiedMailChannel` - In case of qualified mail a recipient gets via e-mail notification and a link in order to be able to download a document.
  - `nonRS,nonRSa(`,`nonR`, `R)`
- `sendhybridPostboxChannel` - Delivery to E-BOX
  - `nonRS,nonRSa``(`,`nonR`, `R)`
- `bzdChannel` - Deliver to the Austrian governmental delivery service
  - For governmental senders: `nonRSa`, `nonRSa+`, `Rsa`, `RSa+`, `RSb`
  - For private senders: `nonRS`, `RS`, `RS+(`, `nonR`, `R`, `R+)`
- `erbChannel` - Special delivery of an e-invoice to the government (e-rechnung.gv.at)
  - `nonRS`, `nonRSa(`,`nonR)`
- `bertChannel` - Delivery to an E-Box
  - `nonRS`, `n``onRSa``(`,`nonR`, `R)`
- `eBriefChannel` - Delivery to the special E-Box: E-Brief
  - `nonRS`, `RS`, `n``onRSa``(`,`nonR`, `R)`
- `postalEmailChannel` - E-Box Print: A delivery is delivered into a pre-configured E-Box. The pre-defined recipient (E-Box) receives a notification via e-mail about receiving of a new documents. The recipient has to manually print documents and send it via post service.
  - For governmental senders: `nonRSa`, `nonRSa+`, `Rsa`, `RSa+`, `RSb`
  - For private senders: `nonRS`, `nonRS+`, `RS`, `RS+(,``non``R`, `R`, `R+``)`

#### 3.7.1 BZD deliveries and polling results

## Polling Results

State | status code | error state | final state
--- | --- | --- | ---
Delivered to BZD |  | no | no
Delivery read by user | 3200 | no | yes
Receiver notification failed and receiver did not pick up delivery (603) | 3201 | yes | yes
Receiver did not pick up delivery | 3202 | no | yes
Receiver notification failed (602) | 3203 | no | no
Recipient does not have access to their mailbox (604) | 3204 | yes | yes
Recipient does not have access to the attached documents (605) | 3205 | yes | yes
Returns the current delivery notification status from AMOD | 3026 | false | yes (temp)
Due to a technical issue, the proof of delivery could not be created. The delivery is in the status ‘Pick up time exceeded’ (700) | 3210 | yes | yes
Due to a technical issue, the proof of delivery could not be created. The delivery is in the status ‘Notification failed’ (701) | 3211 | yes | yes
Due to a technical issue, the proof of delivery could not be created. The delivery is in the status ‘Notification failed and pick up time exceeded’ (702) | 3212 | yes | yes
Due to a technical issue, the proof of delivery could not be created. The delivery is in the status ‘Recipient does not have access to their mailbox’ (703) | 3213 | yes | yes
Due to a technical issue, the proof of delivery could not be created. The delivery is in the status ‘Recipient does not have access to the attached documents’ (704) | 3214 | yes | yes
Due to a technical issue, the proof of delivery could not be created. The delivery is in the status ‘Accepted’ (710) | 3215 | yes | yes

### 3.8 exDPStatusService

New REST endpoints on TxPortal to control delivery execution: pauseDelivery, cancelDelivery and startDelivery. No SOAP for now.

* These endpoints are implemented for the purpose of the Grace Period feature. This feature allows postponing, pausing, restarting, or canceling deliveries before their scheduled execution time.

Rest API | Method | Body
--- | --- | ---
pauseDelivery | POST | { “tenantId”:“TENANT_ID”, “userId”:“USER_ID”, “foreignId”:“UUID” }
cancelDelivery | POST | { “tenantId”:“TENANT_ID”, “userId”:“USER_ID”, “foreignId”:“UUID” }
startDelivery | POST | { “tenantId”:“TENANT_ID”, “userId”:“USER_ID”, “foreignId”:“UUID”, “deliveryTime”: “2025-10-26” }

## `pauseDelivery`

- Can pause only deliveries with status Waiting for execution time.
- Response error message in case of any other status for delivery - "Delivery with foreignId ? is not in a state that can be paused."

### Request:

url: https://services.sendhybrid.com/exdpTx02t/rs/exDPStatusService/pauseDelivery
{ “tenantId”:“TENANT_ID”, “userId”:“USER_ID”, “foreignId”:“UUID” }

### Response in polling:

    <soap:Body>
      <deliveryStatusResponse xmlns="http://www.exthex.com/exDPDeliveryStatusPollingServiceTypes.xsd">
        <globalDeliveryInfo>
          <tenantId> TENANT_ID </tenantId>
        <userId> USER_ID </userId>
          <foreignId> UUID </foreignId>
    <deliveryId> DELIVERY_ID</deliveryId>
    <profile>profile</profile>
    <lastStatusDate>2025-10-17T15:35:56.533+02:00</lastStatusDate>
    <statusCode>1007</statusCode>
    <finalState>false</finalState>
    <errorState>false</errorState>
    <barCode>BB00000000250227000689</barCode>
    </globalDeliveryInfo>
    <deliveryStatus>
    <date>2025-10-17T15:35:56.533+02:00</date>
    <statusCode>1007</statusCode>
    <statusDescription>Delivery paused</statusDescription>
    <deliveryExecutionTime>2025-10-22T15:00:00.000+02:00</deliveryExecutionTime>
    <finalState>false</finalState>
    <errorState>false</errorState>
    ...
    </deliveryStatus>
    </deliveryStatusResponse>
    </soap:Body>

## `cancelDelivery`

- Can cancel deliveries with status Waiting for execution time or Paused.
- Response error message in case of any other status for delivery - "Delivery with foreignId ? is not in a state that can be cancelled."

### Request:

url: https://services.sendhybrid.com/exdpTx02t/rs/exDPStatusService/cancelDelivery
{ “tenantId”:“TENANT_ID”, “userId”:“USER_ID”, “foreignId”:“UUID” }

### Response in polling:

    <soap:Body>
    <deliveryStatusResponse xmlns="http://www.exthex.com/exDPDeliveryStatusPollingServiceTypes.xsd">
    <globalDeliveryInfo>
    <tenantId>TENANT_ID </tenantId>
    <userId>USER_ID</userId>
    <foreignId>UUID</foreignId>
    <deliveryId>DELIVERY_ID</deliveryId>
    <profile>profile</profile>
    <lastStatusDate>2025-10-17T15:38:23.463+02:00</lastStatusDate>
    <statusCode>1008</statusCode>
    <finalState>true</finalState>
    <errorState>false</errorState>
    <barCode>BB00000000250227000689</barCode>
    </globalDeliveryInfo>
    <deliveryStatus>
    <date>2025-10-17T15:38:23.463+02:00</date>
    <statusCode>1008</statusCode>
    <statusDescription>Delivery canceled</statusDescription>
    <deliveryExecutionTime>2025-10-22T15:00:00.000+02:00</deliveryExecutionTime>
    <finalState>true</finalState>
    <errorState>false</errorState>
    ...
    </deliveryStatus>
    </deliveryStatusResponse>
    </soap:Body>

## `startDelivery`

- Can restart only paused deliveries.
- Response error message in case of any other status for delivery - "Delivery with foreignId ? is not in a state that can be started."
- New field - `deliveryTime`
- Unlike other fields, the deliveryTime field is optional. If a value for deliveryTime is provided, it will be used to set the deliveryExecutionTime.If the value is not provided, the previously configured value stored in the database will be used. In that case, the existing value in the database must not represent a time in the past, since such a value would indicate that the delivery should have already been executed.

### Request:

url: https://services.sendhybrid.com/exdpTx02t/rs/exDPStatusService/startDelivery
{ “tenantId”:“TENANT_ID”, “userId”:“USER_ID”, “foreignId”:“UUID”, “deliveryTime”: “2025-10-26” }

#### Response in polling:

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
    <deliveryStatusResponse xmlns="http://www.exthex.com/exDPDeliveryStatusPollingServiceTypes.xsd">
    <globalDeliveryInfo>
    <tenantId>TENANT_ID</tenantId>
    <userId>USER_ID</userId>
    <foreignId>UUID</foreignId>
    <deliveryId>DELIVERY_ID</deliveryId>
    <profile>eLetterTagesPostV03</profile>
    <lastStatusDate>2025-10-17T15:29:31.207+02:00</lastStatusDate>
    <statusCode>1006</statusCode> <finalState>false</finalState>
    <errorState>false</errorState>
    </globalDeliveryInfo>
    <deliveryStatus>
    <statusCode>1006</statusCode>
    <statusDescription>Waiting for execution time</statusDescription>
    <deliveryExecutionTime>2025-10-22T15:00:00.000+02:00</deliveryExecutionTime>
    <finalState>false</finalState>
    <errorState>false</errorState>
    ...
    </deliveryStatus>
    </deliveryStatusResponse>
    </soap:Body>
    </soap:Envelope>

* `Note for all endpoints`: - The “?” symbol in the example error messages represents the provided value of the delivery foreignId. - Status codes inside response 1006 and 1007 are final, 1008 is not final. - All requests follow the same validation rules — the tenantId, userId, and foreignId fields are mandatory and must be valid and correspond to the intended delivery.

## 4 SOAP Printing Facility Callback Web Service

## PrintJobStatusRequest

In order to create a printjobStatus you need proper credentials. There is also the version attribute that can be used to call a certain version of the Service. In printResults you’ll enter the desired printJobStatus.

Parameter | Description | Mandatory
--- | --- | ---
printResults | A list of results of printJobStatus items | Yes
requestCredentials | Credentials for user authentication | Yes
version | Attribute that can be used to call a certain version of the service. 3.1 is the current version. | Yes

### RequestCredentials

Mandatory credentials for user authentication.

Parameter | Description | Mandatory
--- | --- | ---
userId | The user id for user authentication | Yes
password | Password for user authentication | Yes
tenantId | The tenant id for user authentication | Yes

### PrintResults

A list of job results and item results (both lists elements are printFactoryResultType type).

Parameter | Description | Mandatory
--- | --- | ---
jobResult | printJobStatus that will be created via printJobId / on job level | No
itemResult | printJobStatus that will be created via deliveryId / on item level | No

#### PrintFactoryResultType

Total result for a print job

Parameter | Description | Mandatory
--- | --- | ---
itemId | Unique id of the affected print job or item | Yes
state | Status codes (described below - 4.1.2.2) | Yes
processingDate | Date and time of event | Yes
printPrice | Printing price in cents | No
deliveryPrice | Shipping price in cents | No
deliverer | Description of the delivery agent (e.g., Post, Hurtig and Flink, UPS) | No
detailCode | Infocode for detail message | No
detailMessage |  | No
reports | A list of status reports | No

#### Status Codes

Printjob Status Codes | Status Code | Description | Error state | Final state | German description
--- | --- | --- | --- | --- | ---
`DATA_TRANSFERED` | 5001 | Print job successfully transferred to printing facility. | false | false | Druckdaten an die Druckerei übermittelt (wird von sendhybrid Service gesetzt)
`DATA_ARRIVED` | 5002 | Print job recognized by printing facility and pre-processing started. | false | false | Druckdaten in Druckerei erkannt und Verarbeitung gestartet (Entschlüsselung und weitere Prüfungen noch nicht durchgeführt. Daher Rückmeldung nur auf Job-Ebene möglich
`DATA_RECEIVED` | 5003 | Print job pre-processing finished and ready for check and printing. | false | false | Druckdaten in Druckerei erfolgreich entschlüsselt und Sendungen wurden angelegt
`DATA_TO_APPROVE` | 5004 | Print job ready for approval. | false | false | Druckdaten wurden aufbereitet und stehen zur Überprüfung/Freigabe bereit
`PRINTED` | 5005 | Print job successfully printed. | false | false | Dokument(e) der Sendung erfolgreich gedruckt
`INSERTED` | 5006 | Print job enveloped. | false | false | Sendung erfolgreich kuvertiert
`REPRINT` | 5007 | Print job newly printed. | false | false | Sendung neuerlich erstellt
`SENT` | 5000 | Print job successfully handed over to deliverer. | false | true | Erfolgreich versendet (dem Zusteller übergeben)
`DATA_ERROR` | 5010 | Unspecified error during print job transfer. | true | false | Unspezifizierter Fehler in der Übernahme der Druckdaten
`PRINT_ERROR` | 5011 | Error during printing. | true | false | Fehler beim Drucken
`DELIVERY_ERROR` | 5012 | Error during delivery or preparation respectively. | true | false | Fehler bei der Zustellung bzw. bei der Vorbereitung
`RETURNED` | 5013 | Reshipment received - erroneous delivery attempt. | true | true | Retoure/Rücksendung erhalten, d.h. fehlerhafter Zustellversuch
`POSTAGE_NOT_ALLOWED` | 5015 | Postage not allowed (no / incorrect address block or address block not in the window) | true | true | Postaufgabe nicht allowed (kein/unkorrekter Adressblock oder Adressblock nicht im Fenster)
`CLOSED` | 5016 | Print job or print item has been finally closed. Main reason: tracking data no longer available. | false | true | Sendung/Druckjob geschlossen. Hauptgrund für diesen Status sind zu lange offene Sendungen/Druckjobs, die geschlossen wurden um den Tracking-Prozess beim Versender zu beenden. Es wird von erfolgreichen Versandstücken ausgegangen ohne die Basisdaten des Druckdienstleisters mehr zur Verfügung zu haben.

These status codes will also be retrieved when polling for deliveries via 3.2 exDPDeliveryStatusPollingService.

## PrintJobStatusResponse

A list of print job statuses and a list of print item statuses.

Parameter | Description | Mandatory
--- | --- | ---
jobResponse | A list of print job statuses (job level) – type: PrintJobStatusTypes | No
itemResponse | A list of print job statuses (item level) – type: PrintJobStatusTypes | No

### PrintJobResponseType

PrintJob or PrintItem status response

Parameter | Description | Mandatory
--- | --- | ---
itemId | Unique id of affected print job or item (so that the confirmation can be assigned to the PrintJob or Delivery) | Yes
responseCode |  | No
responseDetailMessage |  | Yes

#### ResponseCodes

Response code | Response detail message
--- | ---
1000 | Result successfully processed.
9000 | Invalid credentials.
9100 | Invalid printJob id.
9110 | Invalid deliveryItem id.

## Examples of using SOAP Printing Facility Callback Web Service

### Request Template

### empty request template

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://www.exthex.com/exdp/types">
    <soapenv:Header/>
    <soapenv:Body>
      <typ:PrintJobStatusRequest version="3.1">
      <typ:PrintResults>
    <!--You have a CHOICE of the next 2 items at this level-->
    <!--Zero or more repetitions:-->
    <typ:jobResult>
    <typ:itemId>?</typ:itemId>
    <typ:state>?</typ:state>
    <typ:processingDate>?</typ:processingDate>
    <!--Optional:-->
    <typ:printPrice>?</typ:printPrice>
    <!--Optional:-->
    <typ:deliveryPrice>?</typ:deliveryPrice>
    <!--Optional:-->
    <typ:deliverer>?</typ:deliverer>
    <!--Optional:-->
    <typ:detailCode>?</typ:detailCode>
    <!--Optional:-->
    <typ:detailMessage>?</typ:detailMessage>
    <!--Optional:-->
    <typ:reports>
    <!--1 to 10 repetitions:-->
    <typ:report>
    <typ:fileName>?</typ:fileName>
    <typ:documentPayload/>
    <!--Optional:-->
    <typ:description>?</typ:description>
    </typ:report>
    </typ:reports>
    </typ:jobResult>
    <!--Zero or more repetitions:-->
    <typ:itemResult>
    <typ:itemId>?</typ:itemId>
    <typ:state>?</typ:state>
    <typ:processingDate>?</typ:processingDate>
    <!--Optional:-->
    <typ:printPrice>?</typ:printPrice>
    <!--Optional:-->
    <typ:deliveryPrice>?</typ:deliveryPrice>
    <!--Optional:-->
    <typ:deliverer>?</typ:deliverer>
    <!--Optional:-->
    <typ:detailCode>?</typ:detailCode>
    <!--Optional:-->
    <typ:detailMessage>?</typ:detailMessage>
    <!--Optional:-->
    <typ:reports>
    <!--1 to 10 repetitions:-->
    <typ:report>
    <typ:fileName>?</typ:fileName>
    <typ:documentPayload/>
    <!--Optional:-->
    <typ:description>?</typ:description>
    </typ:report>
    </typ:reports>
    </typ:itemResult>
    </typ:PrintResults>
    <typ:RequestCredentials>
    <typ:userId>?</typ:userId>
    <typ:password>?</typ:password>
    <typ:tenantId>?</typ:tenantId>
    </typ:RequestCredentials>
    </typ:PrintJobStatusRequest>
    </soapenv:Body>
    </soapenv:Envelope>

### Examples of successful printJobStatusRequests

List of proper request/ response pairs - with related response status codes

### request example with proper printResult

    <typ:jobResult>
    <typ:itemId>1</typ:itemId>
    <typ:state>PRINTED</typ:state>
    <typ:processingDate>2017-05-26T21:32:52</typ:processingDate>
    <!--Optional:-->
    <typ:printPrice>99</typ:printPrice>
    <!--Optional:-->
    typ:deliveryPrice>29</typ:deliveryPrice>
    <!--Optional:-->
    <typ:deliverer>DemoDeveloperer</typ:deliverer>
    <!--Optional:-->
    <typ:detailCode>111</typ:detailCode>
    <!--Optional:-->
    <typ:detailMessage>DemoDetailMessage</typ:detailMessage>
    <!--Optional:-->
    <typ:reports>
    <!--1 to 10 repetitions:-->
    <typ:report>
    <typ:fileName>DemoFileName</typ:fileName>
    <typ:documentPayload/>
    <!--Optional:-->
    <typ:description>DemoDesc</typ:description>
    </typ:report>
    </typ:reports>
    </typ:jobResult>

### response example with proper printResult

    <StatusResponse>
      <jobResponse>
        <itemId>1</itemId>
        <responseCode>1000</responseCode>
        <responseDetailMessage>Result successfully processed.</responseDetailMessage>
      </jobResponse>
    </StatusResponse>

### request example with proper itemResult

      <typ:itemResult>
        <typ:itemId>521</typ:itemId>
        <typ:state>DATA\_TRANSFERED</typ:state>
        <typ:processingDate>2017-06-03T21:32:52</typ:processingDate>
        <!--Optional:-->
        <typ:printPrice>19</typ:printPrice>
        <!--Optional:-->
        <typ:deliveryPrice>9</typ:deliveryPrice>
        <!--Optional:-->
        <typ:deliverer>DemoDelivererItem</typ:deliverer>
        <!--Optional:-->
        <typ:detailCode>112</typ:detailCode>
        <<!--Optional:-->
        <typ:detailMessage>DemoDetailMessage2</typ:detailMessage>
        <<!--Optional:-->
        <typ:reports>
    <!--1 to 10 repetitions:-->
    <typ:report>
    <typ:fileName>?</typ:fileName>
    <typ:documentPayload/>
    <!--Optional:-->
    <typ:description>?</typ:description>
    </typ:report>
    </typ:reports>
    </typ:itemResult>

### response example with proper itemResult

    <StatusResponse>
      <itemResponse>
        <itemId>521</itemId>
        <responseCode>1000</responseCode>
        <responseDetailMessage>Result successfully processed.</responseDetailMessage>
      </itemResponse>
    </StatusResponse>

### Examples of unsuccessful printJobStatusRequests

List of invalid request/ response pairs - with related response status codes

### request example with invalid credentials

    <typ:PrintJobStatusRequest version="3.1">
      <typ:PrintResults>
      <!--You have a CHOICE of the next 2 items at this level-->
      <!--Zero or more repetitions:-->
      <typ:jobResult>
      <typ:itemId>73</typ:itemId>
      <typ:state>PRINTED</typ:state>
    <typ:processingDate>2017-05-26T21:32:52</typ:processingDate>
    <!--Optional:-->
    <typ:printPrice>99</typ:printPrice>
    <!--Optional:-->
    <typ:deliveryPrice>29</typ:deliveryPrice>
    <!--Optional:-->
    <typ:deliverer>DemoDeveloperer</typ:deliverer>
    <!--Optional:-->
    <typ:detailCode>111</typ:detailCode>
    <!--Optional:-->
    <typ:detailMessage>DemoDetailMessage</typ:detailMessage>
    <!--Optional:-->
    <typ:reports>
    <!--1 to 10 repetitions:-->
    <typ:report>
    <typ:fileName>DemoFileName</typ:fileName>
    <typ:documentPayload/>
    <!--Optional:-->
    <typ:description>DemoDesc</typ:description>
    </typ:report>
    </typ:reports>
    </typ:jobResult>
    <!--Zero or more repetitions:-->
    <typ:itemResult>
    <typ:itemId>521</typ:itemId>
    <typ:state>DATA\_TRANSFERED</typ:state>
    <typ:processingDate>2017-06-03T21:32:52</typ:processingDate>
    <!--Optional:-->
    <typ:printPrice>19</typ:printPrice>
    <!--Optional:-->
    <typ:deliveryPrice>9</typ:deliveryPrice>
    <!--Optional:-->
    <typ:deliverer>DemoDelivererItem</typ:deliverer>
    <!--Optional:-->
    <typ:detailCode>112</typ:detailCode>
    <!--Optional:-->
    <typ:detailMessage>DemoDetailMessage2</typ:detailMessage>
    <!--Optional:-->
    <typ:reports>
    <!--1 to 10 repetitions:-->
    <typ:report>
    <typ:fileName>?</typ:fileName>
    <typ:documentPayload/>
    <!--Optional:-->
    <typ:description>?</typ:description>
    </typ:report>
    </typ:reports>
    </typ:itemResult>
    </typ:PrintResults>
    <typ:RequestCredentials>
    <typ:userId>userId</typ:userId>
    <typ:password>pass</typ:password>
    <typ:tenantId>default</typ:tenantId>
    </typ:RequestCredentials>
    </typ:PrintJobStatusRequest>

Response with invalid credentials

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
    <ns2:PrintJobStatusResponse xmlns:ns2="http://www.exthex.com/exdp/types" xmlns="http://www.exthex.com/printJobStatusTypes.xsd">
    <StatusResponse>
      <jobResponse>
    <itemId>0</itemId>
    <responseCode>9000</responseCode>
    <responseDetailMessage>Invalid credentials.</responseDetailMessage>
    </jobResponse>
    </StatusResponse>
    </ns2:PrintJobStatusResponse>
    </soap:Body>
    </soap:Envelope>xmlrequest example with invalid printResulttrue<typ:jobResult>
    <typ:itemId>101</typ:itemId>
    <typ:state>PRINTED</typ:state>
    <typ:processingDate>2017-05-26T21:32:52</typ:processingDate>
    <!--Optional:-->
    <typ:printPrice>99</typ:printPrice>
    <!--Optional:-->
    <typ:deliveryPrice>29</typ:deliveryPrice>
    <!--Optional:-->
    <typ:deliverer>DemoDeveloperer</typ:deliverer>
    <!--Optional:-->
    <typ:detailCode>111</typ:detailCode>
    <!--Optional:-->
    <typ:detailMessage>DemoDetailMessage</typ:detailMessage>
    <!--Optional:-->
    <typ:reports>
    <!--1 to 10 repetitions:-->
    <typ:report>
    <typ:fileName>DemoFileName</typ:fileName>
    <typ:documentPayload/>
    <!--Optional:-->
    <typ:description>DemoDesc</typ:description>
    </typ:report>
    </typ:reports>
    </typ:jobResult>

Response example with invalid printResult

    <StatusResponse>
    <jobResponse>
    <itemId>101</itemId>
    <responseCode>9100</responseCode>
    <responseDetailMessage>Invalid printJob id.</responseDetailMessage>
    </jobResponse>
    </StatusResponse>xmlrequest example with invalid itemResulttrue<typ:itemResult>
    <typ:itemId>121</typ:itemId>
    <typ:state>DATA\_TRANSFERED</typ:state>
    <typ:processingDate>2017-06-03T21:32:52</typ:processingDate>
    <!--Optional:-->
    <typ:printPrice>19</typ:printPrice>
    <!--Optional:-->
    <typ:deliveryPrice>9</typ:deliveryPrice>
    <!--Optional:-->
    <typ:deliverer>DemoDelivererItem</typ:deliverer>
    <!--Optional:-->
    <typ:detailCode>112</typ:detailCode>
    <!--Optional:-->
    <typ:detailMessage>DemoDetailMessage2</typ:detailMessage>
    <!--Optional:-->
    <typ:reports>
    <!--1 to 10 repetitions:-->
    <typ:report>
    <typ:fileName>?</typ:fileName>
    <typ:documentPayload/>
    <!--Optional:-->
    <typ:description>?</typ:description>
    </typ:report>
    </typ:reports>
    </typ:itemResult>

### response example with invalid itemResult

    <StatusResponse>
      <jobResponse>
        <itemId>121</itemId>
        <responseCode>9110</responseCode>
        <responseDetailMessage>Invalid deliveryItem id.</responseDetailMessage>
      <jobResponse>
    </StatusResponse>

## 5 SFTP Interface to Server Side Watched Folder

## Transfer

In order to be able to process files safely and efficiently, they should, if possible, be zipped with a high compression rate before transfer. This can best be done with the free software 7zip, alternatively .zip is also possible.
To ensure that only files that have been completely transferred are processed, they are checked by sendhybrid using a hash value comparison before processing. Files for which the hash value does not match are not processed and are not deleted by the sendhybrid either.
In the file name, the parameter “hash-md5” contains the target hash value of the file, i.e. the hash value that the file should have after complete transfer.

### Naming convention for the transfer files

- The file name is arbitrary, in the following with parameters between square brackets and the ending .7z.
- The parameters are type / value pairs separated by semicolons.
- The position of the parameters within the brackets is arbitrary.

Example:`sendhybrid_E-Brief_Muster[ID=``56385398;tenantid=0f4b08ab-5a2e-4480-bc58-22c45ae1c123;``returnpath=L2luY29taW5nL3dvcmtmbG93MQ==;hash-md5=``2f9d0f297d99f02a0338c05946bdbaeb``].7z`

Minimal example:bulkDeliveryRequest_20180123_175758[tenantid=0f4b08ab-5a2e-4480-bc58-22c45ae1c123,hash-md5=41224f2555f563989feb4fab34ebb615].7z

#### Breakdown of the possible parameters:

Parameter | Mandatory | Value | Example value | Comment | Processed by
ID |  | any | 56385398 | Can be specified by the sender to identify the transmission file and thus the associated process, so that a clear assignment can always be made. This parameter is also returned by sendhybrid. | sender
tenantid | (x) | any | 0f4b08ab-5a2e-4480-bc58-22c45ae1c123 | ID of the sender at sendhybrid (will be made known to the sender) | sender/sendhybrid
returnpath |  | Base64 coding of the return directory | L2luY29taW5nL3dvcmtmbG93MQ== | Directory to which the result (s) should be returned. If you decode the example, you get the following value: / incoming / workflow1 This parameter can be used instead of the parameter returntarget. However, this assumes that the sftp server is preconfigured in the processing profile. | sendhybrid
returntarget |  | Base64 coding of the return delivery location | ZnRwczovL3VzZXJuYW1lOnBhc3N3b3JkQDE5MS4x MTAuMjkuMTk2L2luY29taW5nL3dvcmtmbG93MQ== | If you decode the example, you get the following value: ftps: // username: password@191.110.29.196/incoming/workflow1 If this parameter is missing, a standard target stored in the processing profile of the sendhybrid is used. It is also possible to define partial paths on both sides, so that a main path is stored in the sender profile of sendhybrid and the file name only contains a relative path | sendhybrid
hash-md5 oder hash-sha-1 | (x) | alphanumeric hash value | 021943118BFC79D582468AA9E7647F4D | checksum of the transmitted file processing will happen, only if checksum matches on time of picking up the file | sender/sendhybrid
aeconf |  | any | v01 | Address extractor configuration. If this parameter is missing, the sendhybrid standard configuration or the standard configuration of the profile (des tenants) is used (only used in the special case of pre-addressing with CSV files. This process is only available internally to sendhybrid) | sendhybrid

Requirements for starting processing:

- Processing only if the hash value in the name of the file matches that of the file
- No processing of files if the hash value is incorrect. The files can thus be transferred until they match.
- If no hash value is specified in the file name and variant 2 is not activated either, the file will not be processed, as processing could otherwise be started in the middle of a transfer. So it is imperative. Hash value checking can only be deactivated by sendhybrid in checked exceptional cases (the possibility of deactivation depends on the technologies used)

Variant 2 (only possible in absolute exceptional cases - no standard processing!):

An .md5 file of the same name is also transferred.
Example:
`sendhybrid_D2D_EBrief_Muster[ID=56385398;returntarget=ZnRwczov==].7z`
`sendhybrid_D2D_EBrief_Muster[ID=56385398;returntarget=ZnRwczov==].7z.md5`

Requirements for starting processing:

- Processing only if there is a .md5 file with the same name (no attention is paid to the specified file name in the .md5 file)
- Processing only if the hash value in the .md5 file matches that of the transfer file
- No processing of files where the hash value file is missing or if the hash value is incorrect. The files can be transferred until they match.

### Encryption

The .7z file should be encrypted symmetrically. A key will be agreed with sendhybrid. The key length must be <= 256 bits (32 characters).

### Directory structure on the sftp server

/in

/xml-pre → for production files for pre-addressing

/bulk → for production files for delivery

/test

/xml-pre → for test-stage files for pre-addressing

/bulk → for test-stage files for delivery

/manual-processes → files for manual work

/out

/xml-pre → for production response files for pre-addressing

/error → for production errornuosinput-files for pre-addressing**

/bulk → for production response files for delivery

/error → for production errornuos input-files for delivery

/test

/xml-pre

/error

/manual-processes

## Content

### Example Preadressing

File name: evalfilename_enc-[ID=xmlpre-eval-package,tenantid=34123e1b-a32c-4c74-bee2-6b9d7611688b,hash-md5=2778221471E9A8CAD87C1E211660233D].7z

Content: file bulkDeliveryRequest.xml
bulkDeliveryRequest.xml

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <t:xdpBulkDeliveryInput xmlns:t="http://www.exthex.com/exdp/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2" xsi:schemaLocation="http://www.exthex.com/exdp/types xdpDeliveryTypes.xsd">
        <t:jobName>name it like you want preaddressing bulk sftp</t:jobName>
        <t:operation>preaddressing</t:operation>
        <t:credential>
            <t:userId>tbd</t:userId>
            <t:tenantId>tbd</t:tenantId>
        </t:credential>
        <t:config>
            <t:profileName>preAddressingRequestTest</t:profileName>
        </t:config>
        <t:deliveryElement>
            <t:receiver>
                <t:physicalPerson>
                    <t:familyName>Mustemann</t:familyName>
                    <t:givenName>Max</t:givenName>
                </t:physicalPerson>
                <t:postalAddress>
                    <t:street>Elisabethallee 1</t:street>
                    <t:postalCode>1130</t:postalCode>
                    <t:city>Wien</t:city>
                </t:postalAddress>
            </t:receiver>
        </t:deliveryElement>
        <t:deliveryElement>
            <t:receiverUnstructured>
                <t:receiverLine1>Herr</t:receiverLine1>
                <t:receiverLine2>DI Max Mustermann</t:receiverLine2>
                <t:receiverLine3>Elisabethallee 1</t:receiverLine3>
                <t:receiverLine4>1130 Wien</t:receiverLine4>
            </t:receiverUnstructured>
        </t:deliveryElement>
    </t:xdpBulkDeliveryInput>

Further documentation: 2.7 Pre-Addressing

### Bulk-Delivery via ZIP file

See chapter 2.6 Bulk-Delivery with SOAP webservice.

A very special case of a bulk delivery can be done with the bulk-delivery but within a ZIP file and in combination with the sendhybrids watched folder functionality.
In this case the sender can provide the whole delivery information within a ZIP file. This compressed folder will contain an XML file with the same scheme as described (2.6 Bulk-Delivery) and additionally all the binary files as well.
The difference to webservice calls is, that the documents are referenced locally by their filenames. The `xdpBulkDeliveryResult` will again be placed in the location which is defined in the `xdpBulkDeliveryResultReturnTarget` with the same filename as the input XML file and the postfix `_bulkDeliveryResponse.xml`.

Filename: evalfilename_enc-[ID=bulk-eval-package,tenantid=34123e1b-a32c-4c74-bee2-6b9d7611688b,hash-md5=2778229871E9A8CAD87C1E211660233D].7z

Content: eine Datei bulkDeliveryRequest.xml

## 6 E-Mail Interface

The e-mail interface represent semantically a part of the complete web service interface set. Details about using fields and functions are not part of this section.
The e-mail input is primarily for the usage of sendhybrid by end-users via e-mail instead of desktop clients. Its usage, as an automated interface, is only in exceptional cases recommended. Instead, it is recommended to use web service interface where ever this possible is.
The concrete configuration (e.g. used e-mail addresses) can be customized for customers individually. Hence, it is possible to integrate sendhybrid into the existing infrastructure at the customer-side (SMTP, POP3 etc).
Used e-mail addresses are only once arranged and then pro operation configured. Operations (e-mail addresses and the assigned users) are server-side configured. Also, details about profiles and signature blocks are here defined.

## E-mail format

Typically is the operation from the e-mail address of a recipient extracted (e.g. sign@sendhybrid.exthex.com or convert@sendhybrid.exthex.com). A user and tenant are extracted from the sender’s address. Files to process are part of the attachment. A response on the requesting input e-mail contains status codes (error/succeeded) as a text and also result documents as an attachment.
In this way the base functions of sendhybrid could be used by users in any e-mail client.

## Extended data fields

Additional functions and settings have to be documented in e-mail using pre-defined syntax (see shown below). It might be done manually by an end-user; however, it is primarily relevant for the (semi)automatically generated e-mails from third-party systems.

### General

General settings can be defined in text of the e-mail (annotated with the tags @sendhybridInfo at the beginning and at the end of the text block): line by line and in form of key/value pairs. The values of these properties should correspond to those of config.* elements of the web service interface.

Parameter | Description | Mandatory
--- | --- | ---
outputFormat | Conversion output format (default: pdf). Other possibilities are depending on installed modules on the server (see the next sections): pdf_a, tiff, jpg, rtf | no (optional)
profileName | A profile name configured on the server (signature block, digital certificate etc.) | no (optional)
signedNamePattern | A pattern for the output filename | no (optional)
signatureType | Textual or binary PDF-AS signature (PDF_AS_BIN, PDF_AS_TEXT), Adobe signature or certification (ADOBE_SIGN, ADOBE_CERTIFIED) | no (optional)

An example of processing settings in an e-mail body:
`Text @sendhybridInfo profilName=signShort outputFormat=pdf_a @sendhybridInfo`

### Delivery

For the delivery itself, additional details are required. Specially, parameters for the desired sending mode and recipients must be provided. These parameters are also as key/value pairs defined, however, annotated this time with @sendhybridDeliveryInput tags. It is further required that string values are between double quotes. Description of the mandatory fields is provided in the web service interface specification (see the section Synchronous single delivery).

Here is an overview about all value possibilities.

// comment @sendhybridDeliveryInput delivery.deliveryQuality=NORMAL // NORMAL, RS, PORTAL delivery.deliverySubject=“my subject” // optional // all options are optional delivery.documentOptions.setOption(ENVELOPE, “C5”) delivery.documentOptions.setOption(PAGE_FORMAT, “A4”) delivery.documentOptions.setOption(COLOR_MODE, “BW”) // BW, COLOR delivery.documentOptions.setOption(DOUBLE_SIDED, false) // false, true delivery.receiver.email=“d.ferbas@bla.com” delivery.receiver.phoneNumber=“0676898464888” delivery.receiver.ervCode=12345 delivery.receiver.physPerson.givenName=“David” delivery.receiver.physPerson.familyName=“Ferbas” delivery.receiver.physPerson.prefixTitle=“DI(FH)” delivery.receiver.physPerson.postfixTitle=“MSc” delivery.receiver.physPerson.xmleOfBirthString=“14.05.1981” // or legal person // delivery.receiver.legalPerson.name=“exthex GmbH” delivery.receiver.postalAddress.street=“Mandellstraße” delivery.receiver.postalAddress.doorNr=“5” delivery.receiver.postalAddress.postalCode=“8010” delivery.receiver.postalAddress.city=“Graz” @sendhybridDeliveryInput

### Email templates and variables

German Documentation

## 7 Info codes

infocode | description
--- | ---
XDP_1001 | Error extracting properties from mail body
XDP_1002 | Failed to retrieve attachments from mail
XDP_1003 | Operation is required
XDP_1004 | ‘credential.UserId’ is required
XDP_1005 | callback processing not successful for bulkId {0}
XDP_1006 | Invalid (null or empty) webservice callbackChannelAddress
XDP_1007 | Error creating exdp callback proxy {0}
XDP_1008 | Callback channel not found {0}
XDP_1009 | Error creating callback channel {0}
XDP_1010 | Error reading file system mapper input {0}
XDP_1011 | Document content (byte[]) is empty. Aborting process.
XDP_1012 | Failure retrieving documents. Either there was a connection problem or the transmitted document is corrupted. Please verify and retry again.
XDP_1013 | Mandatory parameter {0} is missing.
XDP_1014 | Signature number was set to 99 but optional value is missing.
XDP_1015 | Signature number is not 99 but optional value is set.
XDP_1016 | The signature number {0} does not support the delivery quality {1}.
XDP_1017 | The delivery quality {0} is not allowed, only the following qualities are allowed: {1}.
XDP_1018 | Invalid foreignId.
XDP_1019 | A foreign delivery with the quality {0} must be registered.
XDP_1020 | Delivery with delivery quality {0}, must have physical or legal person as a receiver.
XDP_1021 | Delivery quality {0} is not allowed when hybrid letter metadata is set.
XDP_1022 | Delivery quality {0} is not allowed when no hybrid letter metadata is set.
XDP_1023 | The receiver address {0} is invalid. The postal code for AT has to be between 1000 and 9999.
XDP_1024 | The birthday {0} for the {1} {2} is invalid. The birthday has to be after 1900-01-01.
XDP_1025 | Invalid sender for a hybrid letter delivery. Sender must be a legal person.
XDP_1026 | Invalid receiver for a HRS delivery. Receiver must have a given name and last name (physical person) or a name (legal person).
XDP_1027 | The sender address {0} is invalid. The postal code for AT has to be between 1000 and 9999.
XDP_1028 | The provided MD5 hash {0} and the generated MD5 hash for the document [{1}] did not match.
XDP_1029 | Delivery quality {0} is not allowed for operation {1}.
XDP_1030 | HybridLetterMetaData must be given for delivery quality {0}.
XDP_1031 | No deliveries found for given foreignId {0}, jobId {1}, tenantId {2} and userId {3}.
XDP_1032 | Bulk delivery contains too much elements. Delivery: {0}, Allowed: {1}.
XDP_1033 | {0} is longer than the allowed {1} characters.
XDP_1034 | The receiver’s e-mail address is not valid: {0} (Regex: {1}).
XDP_1035 | Given {0} country code {1} is not valid!
XDP_1036 | Postal priority {0} is not valid.
XDP_1037 | Packaging Id was given but with empty value.
XDP_1038 | {0} was given but with wrong value {1}.
XDP_1039 | Delivery due timespan must be bigger than five minutes.
XDP_1040 | Delivery due date is before today and therefore not valid.
XDP_1041 | Delivery with customMailBody failed to validate.
XDP_1042 | Delivery contains more than one document with payment information.
XDP_1043 | Document already exist in database and will be skipped.
XDP_1044 | The birthday {0} for the {1} {2} is invalid. Extraction format must be yyyy-MM-dd or dd.MM.yyyy.
XDP_1045 | The given tenantId does not exist in database.
XDP_1046 | Registered mail is available only for postalPriority PRIO and ECO.
XDP_1047 | By-hand-deliveries are available only for postalPriority PRIO.
XDP_1048 | Registered mail is not available for Info.Mail delivery qualities {0}.
XDP_1049 | By-hand-deliveries are not available for Info.Mail delivery qualities {0}.
XDP_1050 | By-hand-deliveries are not available for delivery quality RSB (RSb).
XDP_1051 | By-hand-deliveries may only be sent by registered mail. Please also set registered mail.
XDP_1052 | Country code {0} is not allowed.
XDP_1070 | Corrected invalid input filename {0} to {1}
XDP_1071 | The signature number {0} does not support the delivery quality {1}. He supports only RSA_PLUS (RSa+) delivery quality.
XDP_1072 | The signature number {0} does not support the delivery quality {1}. He supports only RSA and RSB delivery quality.
XDP_1073 | Registered lite mail is available only for postalPriority PRIO in case of foreign address
XDP_2001 | Cannot deduce default user
XDP_2002 | No valid destination folder found
XDP_2003 | No valid sender defined, can’t send mail
XDP_2004 | No valid recipient defined, can’t send mail
XDP_2005 | Failed to retrieve mail subject
XDP_2006 | Failed to retrieve body text
XDP_2007 | Cannot find configuration {0} for tenant {1}
XDP_2008 | Cannot load configuration for tenant {0}
XDP_2009 | No default config available for user {0}
XDP_2010 | User {0} not found. Default user not valid for operation {1}
XDP_2011 | No profile found (user/operation): {0} / {1}
XDP_2012 | Profile ({0}) was no configured for user {1} / {2}
XDP_2013 | No authorization for user/operation: {0} / {1}
XDP_2014 | Profile not found (tenant/profile): {0} / {1}
XDP_2015 | Invalid rights: No profile configured and default user is anonymous
XDP_2016 | No configuration found in exDP context.
XDP_2017 | No ‘output format found’ in configuration of exDP context.
XDP_2018 | Cannot check output format
XDP_2019 | Output format {0} is not allowed for operation {1}
XDP_2020 | Wrong or invalid tenant {0}. The tenant must be empty or valid. ‘default’ is not allowed.
XDP_2021 | Unknown hash algorithm found ({0})
XDP_2022 | The current action will be canceled caused by an inactive user ({0})
XDP_2023 | Job persistence has to be set to true to activate ({0})
XDP_2024 | Cannot create bean for class {0}.
XDP_2040 | FileProcessRequestHandler not set
XDP_2041 | Cannot find ConfigProvider {0} for tenant {1}
XDP_2042 | Cannot load config. Source is null. Provide a config resource.
XDP_2043 | Invalid map config. File is corrupt/empty {0}
XDP_2044 | Error loading config from {0}
XDP_2045 | Error reading profile configuration {0}
XDP_2046 | Error resolving parent profiles. Check for circular dependencies {0}
XDP_2047 | Cannot load config from resource: {0} … {1}
XDP_2048 | Cannot load config from directory (not existing): {0}
XDP_2049 | Cannot find WSDL for exDPCallbackService at {0}
XDP_2050 | HandleDeliveryReceiptJob is null. Set a bean to handleDeliveryReceipt
XDP_2051 | No process definition configured. Cannot execute operation.
XDP_2052 | No execution step found {0}.
XDP_2053 | No process step (bean) available with name: {0}
XDP_2054 | This function cannot be accessed in demo version.
XDP_2055 | Your execution limit of the operation {0} is exceeded.
XDP_2056 | License warning: license will be invalid in {0} days. Reason: {1}.
XDP_2057 | Your license is invalid, because of the following license state: {0}. Please contact your administrator.
XDP_2060 | Unable to read process definition.
XDP_2061 | ProcessStep {0} has an invalid type. It should be from Type {1}.
XDP_2062 | No ExecutionStep loaded {0}. Cannot validate process definition.
XDP_2063 | Invalid amount of steps {0} ({1}) in process {2} found. There must be exactly one step with the same name.
XDP_2064 | No ProcessStep {0} found (process {1}).
XDP_2065 | No next ProcessStep configured in step {0}.
XDP_2066 | No transitions in {0} found.
XDP_2067 | Missing configuration {0} in {1}.
XDP_2068 | Invalid amount of process steps found in {0}. In process path {1} / overall steps {2}.
XDP_2069 | Infinite loop found at element {0}.
XDP_2070 | Cannot retrieve process definition: {0}.
XDP_2071 | Dear customer, {0} If you want to use more, please write an e-mail to: sales@sendhybrid.com
XDP_2072 | Your {0} free trials of {1} have all been executed.
XDP_2073 | You have executed {0} of {1} free trials of {2}.
XDP_2074 | QRCode parameters does not exist in configuration.
XDP_2075 | Wrong qrCode parameters format.
XDP_2076 | Invalid format of the content block position (expecting: x=,y=,w=,h=).
XDP_2100 | Invalid configuration for action {0}.
XDP_3001 | An error occurred while converting file with PDFCreator.
XDP_3002 | No or unknown output format configured
XDP_3003 | Document is empty. Cannot convert this document.
XDP_3004 | Document filename is empty. Cannot convert this document.
XDP_3005 | Document content (byte[]) is empty. Cannot convert this document.
XDP_3006 | Cannot convert document. The Document is either not supported or an unexpected error occurred during conversion.
XDP_3041 | Cannot start conversion, because no PDFCreator extension was found.
XDP_3042 | No configuration for conversion format {0} found.
XDP_3043 | An error occurred while converting file: {0}
XDP_3044 | No conversion needed. Input and output format are equal.
XDP_3045 | Conversion will be initiated. Different input and output format found.
XDP_3046 | Signed PDF found: Going to convert pdf - the signature will be broken.
XDP_3047 | Signed PDF found: Going to skip conversion, so that the signature will be preserved.
XDP_3048 | Signed PDF found: Aborting proccess for this document.
XDP_3049 | Signed PDF found: No configuration how to handle this available. Going to abort process
XDP_3050 | Found pdf version that needed to be converted for {0}: {1}
XDP_3051 | PDF/A file found, conversion will be skipped.
XDP_3052 | Cannot open document: invalid password.
XDP_3053 | Cannot convert document. Server is busy. Please retry later.
XDP_3054 | Cannot convert document. No password for password-protected file provided.
XDP_3070 | Conversion successful to {0}
XDP_4001 | Document must contain a CreateXMLSignatureRequest”. ”
XDP_4002 | An error occurred while signing a document.
XDP_4003 | Document must contain a VerifyXMLSignatureRequest”. ”
XDP_4004 | An error occurred while verifying a document.
XDP_4005 | Cannot get content from reference file.
XDP_4006 | Certificate cannot be encoded.
XDP_4007 | Could not prepare document for qualified signing.
XDP_4009 | Sign error. Check user configuration. MOA certificate keygroup {0} not available.
XDP_4010 | Document signing aborted by user.
XDP_4011 | Verification failed, because document is not signed.
XDP_4012 | Document is empty. Cannot verify this document.
XDP_4013 | Document filename is empty. Cannot verify this document.u0009
XDP_4014 | Document content (byte[]) is empty. Cannot verify this document.
XDP_4015 | There isn’t a hash value for verifying this document.
XDP_4041 | Unexpected reply type from MOA server. Could not parse response.
XDP_4042 | PDF-AS threw an error. PDF-AS error code is {0}. PDF-AS error message is {1}.
XDP_4043 | Error creating pdf-as instance. PDF-AS error code is {0}. PDF-AS error message is {1}.
XDP_4044 | Adobe pdf signature error {0}.
XDP_4045 | Error loading certificate/key store {0}.
XDP_4046 | Error while calculating hash value for the document
XDP_4070 | PDF-AS Signature successful with keyid {0}.
XDP_4071 | PDF-AS Qualified Signature successful applied.
XDP_4072 | Verification successfully performed.
XDP_4073 | Adobe Signature successful with keyid {0}.
XDP_4074 | Document has not been modified since this signature was applied.
XDP_4075 | Document has been altered or corrupted since it was signed.
XDP_4076 | There have been changes made to this document that invalidate the signature.
XDP_4077 | Error in certificate verification: {0}
XDP_4078 | The complete certificate path is valid. Every certificate is valid at the signing time.
XDP_4079 | No signature manifest is necessary for this signature.
XDP_4080 | There have been changes to the document after this signature. But the signed revision has not been altered.
XDP_4090 | Successfully calculated hash value for document.
XDP_4091 | Successfully verified hash value for document.
XDP_4092 | Hash value is for the document invalid.
XDP_4093 | Invalid hash file {0}.
XDP_4094 | Dear customer, {0} If you want to upgrade please write an e-mail to: sales@sendhybrid.com
XDP_5001 | Missing delivery data, cannot execute delivery action.
XDP_5002 | Error creating mail delivery message.
XDP_5003 | Cannot send return receipt to invalid/missing mail address: {0}
XDP_5004 | Error assembling message for delivery receipt.
XDP_5005 | Callback processing not successful (returned false) for delivery id {0}
XDP_5006 | Illegal DeliveryNotification doc: {0}
XDP_5007 | Error unmarshalling document: {0}
XDP_5008 | Error unmarshalling DeliveryNotification: {0}
XDP_5009 | DeliveryData with id {0} not found. Invalid delivery receipt
XDP_5010 | DeliveryReceipt for delivery id {0} already available. Cannot process duplicate/multiple receipts.
XDP_5011 | Invalid ReceiptReturnChannel configured {0}. Receipt is not sent but stored internally.
XDP_5012 | Delivery failed for selected channel: {0}
XDP_5013 | Requested quality {0} not supported by any configured channel.
XDP_5014 | No matching delivery channel found: {0}
XDP_5015 | Could not parse SZR/PVP token
XDP_5016 | Error while querying zKopf
XDP_5017 | Error while parsing zKopf answer
XDP_5018 | Missing birth date. Cannot query for zbPK.
XDP_5019 | Could not query for a zbPK
XDP_5020 | Error while trying to deliver
XDP_5021 | Invalid response from Zuse server
XDP_5022 | Could not unmarshal response from Zuse server.
XDP_5023 | Could not add attachment: {0}. MIME type unknown
XDP_5024 | DeliveryQuality not usable for BZD delivery: {0}
XDP_5025 | Error while creating MIME message.
XDP_5026 | Error marshalling delivery request.
XDP_5027 | Could not convert MIME message to text.
XDP_5028 | Error creating SOAP message.
XDP_5029 | Error loading certificate.
XDP_5030 | Error while encrypting MIME message.
XDP_5031 | Error in email delivery. Invalid/missing mail address: {0}
XDP_5032 | Error in postal delivery. Invalid/missing receiver or postal address: {0}
XDP_5033 | Invalid/missing encryption certificate for encrypted email delivery.
XDP_5034 | Receiver not found/registered at ZKopf (delivery not available).
XDP_5035 | Receiver not uniquely identified at zkopf.
XDP_5036 | No valid Zuse server found. MIME type {0} not supported.
XDP_5037 | Delivery quality {0} not supported for this channel {1}.
XDP_5038 | Invalid telephone number {0} for {1}
XDP_5039 | Document/delivery options {0} not supported in this channel {1}
XDP_5040 | Error sending delivery mail.
XDP_5041 | Missing mandatory config property: {0}
XDP_5042 | Cannot start the derby database.
XDP_5043 | Cannot start the derby database. derby.system.home is invalid: {0}
XDP_5044 | Shutdown of derby database failed.
XDP_5045 | Invalid delivery channel for this configuration: {0}
XDP_5046 | Delivery config is missing/empty in exDP config.
XDP_5047 | Error loading delivery config with name {0}
XDP_5048 | SZR keystore file/resource not found {0}
XDP_5049 | BZD keystore file/resource not found {0}
XDP_5050 | Truststore file/resource not found {0}
XDP_5051 | Error initializing CertStoreHolder.
XDP_5052 | Not delivered. Document preparation not successful.
XDP_5053 | BZD delivery error. {0}
XDP_5054 | Failed to deliver document with following channels: {0}
XDP_5055 | Zkopf query error. {0}
XDP_5056 | Error sending SMS message. Check the phone number.
XDP_5057 | Cannot create Zkopf query. Missing data {0}
XDP_5058 | BErt delivery failed {0}
XDP_5059 | BErt Kopf receiver not found: {0}
XDP_5060 | Delivery channel is disabled.
XDP_5062 | e-delivery failed; the document was added to the postal output file.
XDP_5063 | Error while loading channel attachment: {0} for channel: {1}
XDP_5064 | Cannot process test delivery on productive system and vice versa.
XDP_5065 | Address data not provided or not complete.
XDP_5066 | The ZIP {0} is empty.
XDP_5067 | Delivery does not contain printable documents.
XDP_5068 | Non printable document.
XDP_5070 | E-Mail delivery successful to {0}
XDP_5071 | BZD Delivery successful via {0}
XDP_5072 | Encrypted E-Mail delivery successful to {0}
XDP_5073 | Successfully delivered documents through following channels: {0}
XDP_5074 | Document(s) successful accepted for delivery (via {0})
XDP_5075 | Portal/registered mail delivery successful to {0}
XDP_5076 | Document successfully transfered to print shop {0}
XDP_5077 | SMS successfully send
XDP_5078 | Simulating successful delivery of channel {0}
XDP_5079 | Skipping print delivery channel {0} because XdpDocumentPersistenceMode is set to SAVE_WITHOUT_BINARY.
XDP_5080 | Error in ebInterface content: {0}
XDP_5081 | E-Bill content ok. GovernmentDocumentNumber: {0}, invoiceDate: {1}, supplierInvoiceNumber: {2}
XDP_5082 | Following errors occured while sending an E-Bill: {0}
XDP_5083 | E-Bill error: {0}
XDP_5084 | Delivery with delivery id {0} does not await a delivery receipt
XDP_5085 | Cannot process RS delivery with id {0} because country code of receiver is not {1}
XDP_5086 | Following data is missing for a RS delivery: {0}
XDP_5087 | Cannot process RS delivery. No sender set.
XDP_5088 | Could not stamp barcode {0} onto addresspage.
XDP_5089 | Delivery quality {0} is not possible in combination with signature number {1}
XDP_5090 | Missing or invalid data for hybrid letter. For more details look up the delivery status messages
XDP_5091 | Aviso data has errors {0}
XDP_5092 | Self print channel selected for this delivery
XDP_5093 | Info text is too long. Maximum is {0} characters.
XDP_5100 | Error while intercepting ZIP file: {0}
XDP_5101 | Error writing bulk result {0}
XDP_5102 | Successfully finished receiver extraction. {0}
XDP_5103 | Failed receiver extraction: {0}
XDP_5104 | Normalization result: {0} Version: {1}
XDP_5105 | Finished pre-addressing.
XDP_5106 | Error while intercepting ZIP file - Error unpacking 7zip file!
XDP_5107 | Error while intercepting ZIP file - Invalid zip file, wrong file name!
XDP_5108 | Error while intercepting ZIP file - Invalid zip file, wrong mime type!
XDP_5109 | Error while intercepting ZIP file - Context contains no documents!
XDP_5110 | Error delivering bulk result
XDP_5111 | Error while unzipping file {0}.
XDP_5112 | Archive {0} must be password protected.
XDP_5113 | No valid return target set in bulk delivery.
XDP_5114 | Pre addressing data for identification process not found.
XDP_5115 | No extracted data from PDF for identification process.
XDP_5116 | {0}: {1} from PDF is not matching to {0}: {2} from {3}.
XDP_5117 | Cannot find {0} in extracted data from PDF using key {1} during identification process.
XDP_5118 | No document for for identification process.
XDP_5119 | Identification process was unsuccessful.
XDP_5120 | {0} coordinate is not set in preaddressing process with foreignId:{1} for {2}.
XDP_5121 | Value for {0} {1} is not proper set in preaddresing process with foreignId: {2}.
XDP_5122 | Error while extracting identifications from PDF.
XDP_5123 | Error while querying tnvz!
XDP_5124 | Sender data for bzd query is not complete identifications or full name is missing
XDP_5125 | Document of delivery has unsupported mime type for bzd delivery process.
XDP_5126 | BZD Delivery partial successful via {0}
XDP_5127 | Sender should be a legal person for BZD delivery process.
XDP_5128 | Receiver not found in Tnvz register.
XDP_5129 | DeliveryData with zsDeliveryId {0} not found. Invalid delivery receipt
XDP_5130 | Receiver has no GvZbPK.
XDP_5131 | Unsupported delivery quality {0} deliveryId {1}
XDP_5132 | Delivery quality cannot be null. DeliveryId {0}
XDP_5133 | Signature nummber should not be null by hybrid letter delivery qualities. Delivery quality {0}, DeliveryId {1}
XDP_5134 | The signature nummber: {0} does not allow electronic delivery. DeliveryId: {1}
XDP_5135 | Invalid service version {0}. Available versions are {1}
XDP_5136 | BZD info: {0}
XDP_6001 | Could not parse value [{0}] to numeric.
XDP_6002 | Total page count [{0}] is smaller than set page number [{1}].
XDP_6003 | Could not get page number from pdf.
XDP_6004 | Document generation reference not set.
XDP_6005 | Could not load file [{0}] from refstore.
XDP_6006 | Error layeringu0009
XDP_6007 | Error layering
XDP_6008 | Could not concat layer to document.
XDP_6009 | Page range error. Starting page[{0}] value higher than end value [{1}].u0009
XDP_6010 | Could not fill acro fields with values.
XDP_6011 | Could not add barcode.
XDP_6070 | Successfully stamped.
XDP_9001 | A soap fault occurred: {0}
XDP_9002 | Web service error occurred: {0}
XDP_9003 | An error occurred while compressing data: {0}
XDP_9004 | An error occurred while uncompressing data: {0}
XDP_9005 | VFS threw an error: {0}
XDP_9006 | Scripting template got an error: {0}
XDP_9007 | an error in a process step occurred: {0}
XDP_9008 | Missing mandatory configuration value or parameter {0}.
XDP_9009 | Failed to add meta data - no meta data found.
XDP_9010 | Address page creation failed {0}.
XDP_9011 | Invalid email address found {0}.
XDP_9012 | Error creating payment {0}.
XDP_9013 | Error updating Bert Person: {0}.
XDP_9014 | Error registering Bert Person: {0}.
XDP_9015 | Missing metadata in the documents additional-data: {0}.
XDP_9016 | Malformed configuration value for {0}.
XDP_9017 | Error overlaying documents: {0}.
XDP_9018 | Error processing document: {0}.
XDP_9019 | Document {0} is not printable.
XDP_9020 | Delivery number generation has reached threshold within a year.
XDP_9021 | Error splitting filename (SplitReceiverFileNameAction only).
XDP_9022 | Error processing the input file for D2D.
XDP_9023 | Error while unmarshalling bulkDeliveryRequest.xml file.
XDP_9040 | This method will not be implemented.
XDP_9041 | Unknown error: {0}
XDP_9042 | Configuration error. Contact the administrator. {0}
XDP_9043 | No execution context found.
XDP_9044 | Invalid file format found: {0}.
XDP_9045 | Couldn’t extract data from document: {0}.
XDP_9046 | An unknown error occured. Please contact the administrator.
XDP_9050 | Error during storing of context data: {0}
XDP_9051 | Too many contexts found.
XDP_9070 | Processing successful.
XDP_9071 | exDP: {0} of {1} Documents from successfully processed.
XDP_9072 | Bulk process successful started
XDP_9073 | Error splitting document.
XDP_9074 | Document successful splitted from {0}.
XDP_9075 | Document content (byte[]) is empty. Aborting processing this Document ({0}“).”
XDP_9076 | Data of the mass run successfully accepted. The job is now handled by the server.
XDP_9077 | Cleanup dead ended job.
XDP_9078 | Error starting bulk process: {0}
XDP_9080 | No marked page found to merge additional content.
XDP_9081 | Error loading content to merge.
XDP_9082 | Couldn’t merge documents.
XDP_9083 | Document successful merged to {0}.
XDP_9084 | No page marker found to merge documents.
XDP_9085 | Failed to extract address/receiver from {0}.
XDP_9086 | Address successful extracted.
XDP_9087 | Payment successfully created.
XDP_9088 | Error while processing PdfService-Methods (Replace or Overlay).
XDP_9089 | Error while processing Replace- or Stamper-Action.
XDP_9090 | Error while processing Orientation-Overlay-Action.
XDP_9091 | Error extracting data from document.
XDP_9092 | Error setting job status. Trying to set status from {0} to {1} which is not a valid transition.
XDP_9093 | Document is infected by virus: {0}. Can’t continue with process.
XDP_9094 | Document couldn’t be scanned for virus infection.
XDP_9095 | Document was successfully scanned for viruses.
XDP_9096 | Error adding QR code to Document.
XDP_9097 | Connection Problems with Ftp/SFtp connection {0}.
XDP_9098 | No applicable method for unmarshalling
XDP_9099 | Virus detected, orginal file replaced.
XDP_9100 | Error during splitting pdf document. Max page count of {0} exceeded. Last split document start at page {1} in original document.
XDP_9101 | No service line found at the designated place in the document.
XDP_9200 | Error processing document - Error encoding {0}!
XDP_9201 | Error processing document - Error reading csv file!
XDP_9202 | Error processing document - Empty CSV file!
XDP_9203 | Error processing document - Document holder contains no document!
XDP_9204 | Error processing document - Input document is null!
XDP_9205 | Error processing document - Error writing result file {0}!
XDP_9206 | Error processing document - Input document information lost!
XDP_9207 | Error processing document - No valid hash in {0}.
XDP_9208 | Error processing document - Hash codes did not match.
XDP_9209 | Error processing document - Tenant in metadata doesn’t match configured tenant!
XDP_9210 | Error processing document - Tenant from input file doesn’t match configured tenant!
XDP_9211 | Error processing document - Can’t compare tenants: Job has no credentials or tenant.
XDP_9212 | Error processing document - TenantId is invalid: No additonal tenantid for check found.
XDP_9213 | Nothing could be processed, because all entries had printOnly set to true.
XDP_9214 | Validation failed.

## 8 Annex

- sendhybrid Service

- sendhybrid Service - Schema

- Transaction Portal

- Transaction Portal - DD Schema

# sendhybrid Service

Swagger documentation can be found here: Swagger UI

exDocumentService.wsdl

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?xml-stylesheet type="text/xsl" href="wsdl-viewer.xsl"?>
    <!--########################################################################
    # current version: 1.1 # version history * 1.1
        updates for info codes and profiles - released with xdp version 1.3.0 * 1.0 initial bmi version
    ############################################################################ -->
    <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.exthex.com/exDocumentService/"
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="exDocumentService"
        targetNamespace="http://www.exthex.com/exDocumentService/">
        <wsdl:types>
            <xsd:schema targetNamespace="http://www.exthex.com/exDocumentService/">
                <xsd:complexType name="ConfigPropertyType">
                    <xsd:sequence>
                        <xsd:element name="key" type="xsd:string" />
                        <xsd:element name="value" type="xsd:string" />
                    </xsd:sequence>
                </xsd:complexType>

                <xsd:complexType name="InfoCodeType">
                    <xsd:annotation>
                        <xsd:documentation>A infocode represents the return value. Can be success or error (indicated by the success
                            element), is defined by a code and an optional describing message.</xsd:documentation>
                    </xsd:annotation>
                    <xsd:sequence>
                        <xsd:element name="code" type="xsd:string" />
                        <xsd:element name="success" type="xsd:boolean" />
                        <xsd:element name="message" type="xsd:string" minOccurs="0" />
                    </xsd:sequence>
                </xsd:complexType>

                <xsd:element name="convertInputDocument" type="tns:InputDocumentType" />
                <xsd:element name="signInputDocument" type="tns:InputDocumentType" />
                <xsd:element name="generateHashCodeInputDocument" type="tns:InputDocumentType" />

                <xsd:complexType name="InputDocumentType">
                    <xsd:annotation>
                        <xsd:documentation>Input document for sign or convert with MTOM content</xsd:documentation>
                    </xsd:annotation>
                    <xsd:sequence>
                        <xsd:element name="filename" type="xsd:string" minOccurs="1" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>Filename of the input document, including extension and base name, NOT the full path.
                                    Necessary to determine type of the document.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="outputFormat" type="xsd:string" minOccurs="0">
                            <xsd:annotation>
                                <xsd:documentation>optional output format (e.g. pdf, pdf_a), defaults to pdf</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element xmlns:ns1="http://www.w3.org/2005/05/xmlmime" minOccurs="1" name="content"
                            ns1:expectedContentTypes="application/octet-stream" type="xsd:base64Binary">
                            <xsd:annotation>
                                <xsd:documentation>binary document content as MTOM attachment</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="userId" type="xsd:string" minOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>userId. used for different certificates etc.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="profileName" type="xsd:string" minOccurs="0">
                            <xsd:annotation>
                                <xsd:documentation>configuration profile name, has to match a server side profile. Used for different signature
                                    layouts</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="configProperty" type="tns:ConfigPropertyType" minOccurs="0" maxOccurs="unbounded">
                            <xsd:annotation>
                                <xsd:documentation>optional config/processing properties</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>

                <xsd:element name="verifyHashCodeInputDocument" type="tns:HashCodeInputDocumentType" />

                <xsd:complexType name="HashCodeInputDocumentType">
                    <xsd:annotation>
                        <xsd:documentation>Input document for verifying a hash code document with MTOM content</xsd:documentation>
                    </xsd:annotation>
                    <xsd:sequence>
                        <xsd:element name="filename" type="xsd:string" minOccurs="1" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>Filename of the input document, including extension and base name, NOT the full path.
                                    Necessary to determine type of the document.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="outputFormat" type="xsd:string" minOccurs="0">
                            <xsd:annotation>
                                <xsd:documentation>optional output format (e.g. pdf, pdf_a), defaults to pdf</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element xmlns:ns1="http://www.w3.org/2005/05/xmlmime" minOccurs="1" name="content"
                            ns1:expectedContentTypes="application/octet-stream" type="xsd:base64Binary">
                            <xsd:annotation>
                                <xsd:documentation>binary document content as MTOM attachment</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="userId" type="xsd:string" minOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>userId. used for different certificates etc.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="profileName" type="xsd:string" minOccurs="0">
                            <xsd:annotation>
                                <xsd:documentation>configuration profile name, has to match a server side profile. Used for different signature
                                    layouts</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="configProperty" type="tns:ConfigPropertyType" minOccurs="0" maxOccurs="unbounded">
                            <xsd:annotation>
                                <xsd:documentation>optional config/processing properties</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="hashCode" type="xsd:string" minOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>hash code of the document</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="hashCodeAlgorithm" type="xsd:string" minOccurs="0">
                            <xsd:annotation>
                                <xsd:documentation>optional algorithm with what the hash code was build</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>

                <xsd:element name="outputDocument">
                    <xsd:complexType>
                        <xsd:annotation>
                            <xsd:documentation>Result document of sign/convert with MTOM content</xsd:documentation>
                        </xsd:annotation>
                        <xsd:sequence>
                            <xsd:element name="infoCode" type="tns:InfoCodeType">
                                <xsd:annotation>
                                    <xsd:documentation>Shows if operation was successful</xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element name="filename" type="xsd:string">
                                <xsd:annotation>
                                    <xsd:documentation>Resulting filename proposal after convert/sign. May contain a changed extension.
                                    </xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element xmlns:ns1="http://www.w3.org/2005/05/xmlmime" minOccurs="0" name="content"
                                ns1:expectedContentTypes="application/octet-stream" type="xsd:base64Binary">
                                <xsd:annotation>
                                    <xsd:documentation>Resulting content as MTOM Attachment. Not available on Error.</xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element minOccurs="0" name="hashCode" type="xsd:string">
                                <xsd:annotation>
                                    <xsd:documentation>Resulting hash code of the document. Only exists if the process supports hash code
                                        generation.
                                    </xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>

                <xsd:element name="convertInlineInputDocument" type="tns:InlineInputType" />
                <xsd:element name="signInlineInputDocument" type="tns:InlineInputType" />

                <xsd:complexType name="InlineInputType">
                    <xsd:annotation>
                        <xsd:documentation>Input document for sign or convert with embedded base64 content</xsd:documentation>
                    </xsd:annotation>
                    <xsd:sequence>
                        <xsd:element name="filename" type="xsd:string" minOccurs="1" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>Filename of the input document, including extension and base name, NOT the full path.
                                    Necessary to determine type of the document.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="outputFormat" type="xsd:string" minOccurs="0">
                            <xsd:annotation>
                                <xsd:documentation>optional output format (e.g. pdf, pdf_a), defaults to pdf</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element minOccurs="1" name="base64content" type="xsd:string">
                            <xsd:annotation>
                                <xsd:documentation>binary document content as embedded base64 string</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="userId" type="xsd:string" minOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>userId. used for different certificates etc.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="profileName" type="xsd:string" minOccurs="0">
                            <xsd:annotation>
                                <xsd:documentation>configuration profile name, has to match a server side profile. Used for different signature
                                    layouts</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="configProperty" type="tns:ConfigPropertyType" minOccurs="0" maxOccurs="unbounded">
                            <xsd:annotation>
                                <xsd:documentation>optional config/processing properties</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>

                <xsd:element name="inlineOutputDocument">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="infoCode" type="tns:InfoCodeType">
                                <xsd:annotation>
                                    <xsd:documentation>Shows if operation was successful</xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element name="filename" type="xsd:string">
                                <xsd:annotation>
                                    <xsd:documentation>Resulting filename proposal after convert/sign. May contain a changed extension.
                                    </xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element minOccurs="0" name="base64content" type="xsd:string">
                                <xsd:annotation>
                                    <xsd:documentation>Resulting content base64 string. Not available on Error.</xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element minOccurs="0" name="hashCode" type="xsd:string">
                                <xsd:annotation>
                                    <xsd:documentation>Resulting hash code of the document. Only exists if the process supports hash code
                                        generation.
                                    </xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>

                <xsd:element name="xmlInputDocument">
                    <xsd:complexType>
                        <xsd:annotation>
                            <xsd:documentation>Xml input document. Xml content is base64 encoded to avoid parsing/namespace problems.
                            </xsd:documentation>
                        </xsd:annotation>
                        <xsd:sequence>
                            <xsd:element name="filename" type="xsd:string">
                                <xsd:annotation>
                                    <xsd:documentation>Name of the xml document</xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element minOccurs="1" name="base64content" type="xsd:string">
                                <xsd:annotation>
                                    <xsd:documentation>Xml document as embedded base64 string. Base64 encoding is used to avoid parsing and
                                        namespace problems.</xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element name="userId" type="xsd:string" minOccurs="1">
                                <xsd:annotation>
                                    <xsd:documentation>userId. used for different certificates etc.</xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element name="profileName" type="xsd:string" minOccurs="0">
                                <xsd:annotation>
                                    <xsd:documentation>configuration profile name, has to match a server side profile. Used for different signature
                                        layouts</xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element name="configProperty" type="tns:ConfigPropertyType" minOccurs="0" maxOccurs="unbounded">
                                <xsd:annotation>
                                    <xsd:documentation>optional config/processing properties</xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element name="xmlOutputDocument">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="infoCode" type="tns:InfoCodeType">
                                <xsd:annotation>
                                    <xsd:documentation>Shows if operation was successful</xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element name="filename" type="xsd:string">
                                <xsd:annotation>
                                    <xsd:documentation>Resulting filename proposal after convert/sign. May contain a changed extension.
                                    </xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element minOccurs="0" name="base64content" type="xsd:string">
                                <xsd:annotation>
                                    <xsd:documentation>Resulting xml document as base64 string. Not available on Error.</xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element minOccurs="0" name="hashCode" type="xsd:string">
                                <xsd:annotation>
                                    <xsd:documentation>Resulting hash code of the document. Only exists if the process supports hash code
                                        generation.
                                    </xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:schema>
        </wsdl:types>
        <wsdl:message name="convertRequest">
            <wsdl:part name="convertRequest" element="tns:convertInputDocument" />
        </wsdl:message>
        <wsdl:message name="convertResponse">
            <wsdl:part name="convertResponse" element="tns:outputDocument" />
        </wsdl:message>
        <wsdl:message name="signRequest">
            <wsdl:part name="signRequest" element="tns:signInputDocument"></wsdl:part>
        </wsdl:message>
        <wsdl:message name="signResponse">
            <wsdl:part name="signResponse" element="tns:outputDocument"></wsdl:part>
        </wsdl:message>
        <wsdl:message name="signInlineRequest">
            <wsdl:part name="signInlineRequest" element="tns:signInlineInputDocument"></wsdl:part>
        </wsdl:message>
        <wsdl:message name="signInlineResponse">
            <wsdl:part name="signInlineResponse" element="tns:inlineOutputDocument"></wsdl:part>
        </wsdl:message>
        <wsdl:message name="convertInlineRequest">
            <wsdl:part name="convertInlineRequest" element="tns:convertInlineInputDocument"></wsdl:part>
        </wsdl:message>
        <wsdl:message name="convertInlineResponse">
            <wsdl:part name="convertInlineResponse" element="tns:inlineOutputDocument"></wsdl:part>
        </wsdl:message>
        <wsdl:message name="signXmlRequest">
            <wsdl:part name="signXmlRequest" element="tns:xmlInputDocument"></wsdl:part>
        </wsdl:message>
        <wsdl:message name="signXmlResponse">
            <wsdl:part name="signXmlResponse" element="tns:xmlOutputDocument"></wsdl:part>
        </wsdl:message>
        <wsdl:message name="generateHashCodeRequest">
            <wsdl:part name="generateHashCodeRequest" element="tns:generateHashCodeInputDocument"></wsdl:part>
        </wsdl:message>
        <wsdl:message name="generateHashCodeResponse">
            <wsdl:part name="generateHashCodeResponse" element="tns:outputDocument"></wsdl:part>
        </wsdl:message>
        <wsdl:message name="verifyHashCodeRequest">
            <wsdl:part name="verifyHashCodeRequest" element="tns:verifyHashCodeInputDocument"></wsdl:part>
        </wsdl:message>
        <wsdl:message name="verifyHashCodeResponse">
            <wsdl:part name="verifyHashCodeResponse" element="tns:outputDocument"></wsdl:part>
        </wsdl:message>
        <wsdl:portType name="exDocumentService">
            <wsdl:operation name="convert">
                <wsdl:documentation>Convert one document to pdf (Other formats may be available, e.g. pdf_a). Document is transported
                    as MTOM Attachment.</wsdl:documentation>
                <wsdl:input name="convertRequest" message="tns:convertRequest" />
                <wsdl:output name="convertResponse" message="tns:convertResponse" />
            </wsdl:operation>
            <wsdl:operation name="sign">
                <wsdl:documentation>Sign one (binary) document with default signature to pdf. Conversion to pdf (pdf_a) is done if
                    necessary. Document is transported as MTOM Attachment.</wsdl:documentation>
                <wsdl:input name="signRequest" message="tns:signRequest" />
                <wsdl:output name="signResponse" message="tns:signResponse" />
            </wsdl:operation>
            <wsdl:operation name="signInline">
                <wsdl:documentation>Sign one (binary) document with default signature to pdf. Conversion to pdf (pdf_a) is done if
                    necessary. Document is transported embedded base64 content.</wsdl:documentation>
                <wsdl:input name="signInlineRequest" message="tns:signInlineRequest"></wsdl:input>
                <wsdl:output name="signInlineResponse" message="tns:signInlineResponse"></wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="convertInline">
                <wsdl:documentation>Convert one document to pdf (Other formats may be available, e.g. pdf_a). Document is transported
                    embedded base64 string.</wsdl:documentation>
                <wsdl:input name="convertInlineRequest" message="tns:convertInlineRequest"></wsdl:input>
                <wsdl:output name="convertInlineResponse" message="tns:convertInlineResponse"></wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="signXml">
                <wsdl:documentation>Sign one xml document with (moa-ss) xml signature. Document is transported as embedded base64
                    string.</wsdl:documentation>
                <wsdl:input name="signXmlRequest" message="tns:signXmlRequest"></wsdl:input>
                <wsdl:output name="signXmlResponse" message="tns:signXmlResponse"></wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="generateHashCode">
                <wsdl:documentation>Generates a hash code from the given file. Document is transported as MTOM Attachment.
                </wsdl:documentation>
                <wsdl:input name="generateHashCodeRequest" message="tns:generateHashCodeRequest"></wsdl:input>
                <wsdl:output name="generateHashCodeResponse" message="tns:generateHashCodeResponse"></wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="verifyHashCode">
                <wsdl:documentation>Verifies a document with its given hash code. Document is transported as MTOM Attachment.
                </wsdl:documentation>
                <wsdl:input name="verifyHashCodeRequest" message="tns:verifyHashCodeRequest"></wsdl:input>
                <wsdl:output name="verifyHashCodeResponse" message="tns:verifyHashCodeResponse"></wsdl:output>
            </wsdl:operation>
        </wsdl:portType>
        <wsdl:binding name="exDocumentServiceSOAP" type="tns:exDocumentService">
            <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
            <wsdl:operation name="convert">
                <soap:operation soapAction="http://www.exthex.com/exDocumentService/convert" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="sign">
                <soap:operation soapAction="http://www.exthex.com/exDocumentService/sign" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="signInline">
                <soap:operation soapAction="http://www.exthex.com/exDocumentService/signInline" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="convertInline">
                <soap:operation soapAction="http://www.exthex.com/exDocumentService/convertInline" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="signXml">
                <soap:operation soapAction="http://www.exthex.com/exDocumentService/signXml" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="generateHashCode">
                <soap:operation soapAction="http://www.exthex.com/exDocumentService/generateHashCode" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="verifyHashCode">
                <soap:operation soapAction="http://www.exthex.com/exDocumentService/generateHashCode" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>
        <wsdl:service name="exDocumentService">
            <wsdl:port binding="tns:exDocumentServiceSOAP" name="exDocumentServiceSOAP">
                <soap:address location="http://www.yourserver.org/" />
            </wsdl:port>
        </wsdl:service>
    </wsdl:definitions>

#exDPDeliveryService.wsdl

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="wsdl-viewer.xsl"?>
      <!-- ########################################################################
      # current version: 1.0
      # version history
      # * 1.0 initial version
      ############################################################################ -->

    <wsdl:definitions name="exDPDeliveryService" targetNamespace="http://www.exthex.com/exDPDeliveryService"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xdp="http://www.exthex.com/exdp/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.exthex.com/exDPDeliveryService">
      <wsdl:types>
        <xsd:schema targetNamespace="http://www.exthex.com/exDPDeliveryService" xmlns="http://www.exthex.com/exdp/types">
          <xsd:import namespace="http://www.exthex.com/exdp/types" schemaLocation="schema/xdpDeliveryTypes.xsd" />

          <xsd:element name="xdpBulkDeliveryAsyncInput" type="xdp:xdpBulkDeliveryInput" />
          <xsd:element name="xdpBulkDeliveryAsyncResult" type="xdp:xdpBulkDeliveryResult" />

        </xsd:schema>
      </wsdl:types>

      <wsdl:message name="processRequest">
        <wsdl:part name="processRequest" element="xdp:xdpInput">
        </wsdl:part>
      </wsdl:message>
      <wsdl:message name="processResponse">
        <wsdl:part name="processResponse" element="xdp:xdpResult">
        </wsdl:part>
      </wsdl:message>

      <wsdl:message name="deliveryRequest">
        <wsdl:part name="deliveryRequest" element="xdp:xdpDeliveryInput">
        </wsdl:part>
      </wsdl:message>
      <wsdl:message name="deliveryResponse">
        <wsdl:part name="deliveryResponse" element="xdp:xdpDeliveryResult">
        </wsdl:part>
      </wsdl:message>

      <wsdl:message name="bulkDeliveryRequest">
        <wsdl:part name="bulkDeliveryRequest" element="xdp:xdpBulkDeliveryInput">
        </wsdl:part>
      </wsdl:message>
      <wsdl:message name="bulkDeliveryResponse">
        <wsdl:part name="bulkDeliveryResponse" element="xdp:xdpBulkDeliveryResult">
        </wsdl:part>
      </wsdl:message>

      <wsdl:message name="bulkDeliveryAsyncRequest">
        <wsdl:part name="bulkDeliveryAsyncRequest" element="tns:xdpBulkDeliveryAsyncInput">
        </wsdl:part>
      </wsdl:message>
      <wsdl:message name="bulkDeliveryAsyncResponse">
        <wsdl:part name="bulkDeliveryAsyncResponse" element="tns:xdpBulkDeliveryAsyncResult">
        </wsdl:part>
      </wsdl:message>

      <wsdl:portType name="exDPDeliveryService">
        <wsdl:documentation>Main exDP WSDL interface.
          Used for all processes (delivery and non-delivery)</wsdl:documentation>
        <wsdl:operation name="process">
          <wsdl:input name="processRequest" message="tns:processRequest">
          </wsdl:input>
          <wsdl:output name="processResponse" message="tns:processResponse">
          </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="processDelivery">
          <wsdl:input name="deliveryRequest" message="tns:deliveryRequest">
          </wsdl:input>
          <wsdl:output name="deliveryResponse" message="tns:deliveryResponse">
          </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="bulkDeliverySync">
          <wsdl:input name="bulkDeliveryRequest" message="tns:bulkDeliveryRequest">
          </wsdl:input>
          <wsdl:output name="bulkDeliveryResponse" message="tns:bulkDeliveryResponse">
          </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="bulkDeliveryAsync">
          <wsdl:input name="bulkDeliveryAsyncRequest" message="tns:bulkDeliveryAsyncRequest">
          </wsdl:input>
          <wsdl:output name="bulkDeliveryAsyncResponse" message="tns:bulkDeliveryAsyncResponse">
          </wsdl:output>
        </wsdl:operation>
      </wsdl:portType>

      <wsdl:binding name="exDPDeliveryServiceSoapBinding" type="tns:exDPDeliveryService">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="process">
          <soap:operation soapAction="process" style="document" />
          <wsdl:input name="processRequest">
            <soap:body use="literal" />
          </wsdl:input>
          <wsdl:output name="processResponse">
            <soap:body use="literal" />
          </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="processDelivery">
          <soap:operation soapAction="processDelivery" style="document" />
          <wsdl:input name="deliveryRequest">
            <soap:body use="literal" />
          </wsdl:input>
          <wsdl:output name="deliveryResponse">
            <soap:body use="literal" />
          </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="bulkDeliverySync">
          <soap:operation soapAction="bulkDeliverySync" style="document" />
          <wsdl:input name="bulkDeliveryRequest">
            <soap:body use="literal" />
          </wsdl:input>
          <wsdl:output name="bulkDeliveryResponse">
            <soap:body use="literal" />
          </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="bulkDeliveryAsync">
          <soap:operation soapAction="bulkDeliveryAsync" style="document" />
          <wsdl:input name="bulkDeliveryAsyncRequest">
            <soap:body use="literal" />
          </wsdl:input>
          <wsdl:output name="bulkDeliveryAsyncResponse">
            <soap:body use="literal" />
          </wsdl:output>
        </wsdl:operation>
      </wsdl:binding>

      <wsdl:service name="exDPDeliveryService">
        <wsdl:port name="exDPDeliveryServicePort" binding="tns:exDPDeliveryServiceSoapBinding">
          <soap:address location="http://localhost:8001/xdpService/ws/exDPDeliveryService" />
        </wsdl:port>
      </wsdl:service>

    </wsdl:definitions>

### exDPService.wsdl

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="wsdl-viewer.xsl"?>
    <!--########################################################################
    # current version: 1.0 - for more details see exDPDeliveryservice.wsdl
    ############################################################################-->
    <wsdl:definitions name="exDPService" targetNamespace="http://www.exthex.com/exDPService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
        xmlns:xdp="http://www.exthex.com/exdp/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
        xmlns:tns="http://www.exthex.com/exDPService">
        <wsdl:types>
            <xsd:schema targetNamespace="http://www.exthex.com/exDPService">
                <xsd:import namespace="http://www.exthex.com/exdp/types" schemaLocation="schema/xdpDeliveryTypes.xsd" />
            </xsd:schema>
        </wsdl:types>

        <wsdl:message name="processRequest">
            <wsdl:part name="processRequest" element="xdp:xdpInput">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="processResponse">
            <wsdl:part name="processResponse" element="xdp:xdpResult">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="bulkDeliveryRequest">
            <wsdl:part name="bulkDeliveryRequest" element="xdp:xdpBulkDeliveryInput">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="bulkDeliveryResponse">
            <wsdl:part name="bulkDeliveryResponse" element="xdp:xdpBulkDeliveryResult">
            </wsdl:part>
        </wsdl:message>

        <wsdl:portType name="exDPService">
            <wsdl:operation name="process">
                <wsdl:input name="processRequest" message="tns:processRequest">
                </wsdl:input>
                <wsdl:output name="processResponse" message="tns:processResponse">
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="bulkDeliverySync">
              <wsdl:input name="bulkDeliveryRequest" message="tns:bulkDeliveryRequest"/>
              <wsdl:output name="bulkDeliveryResponse" message="tns:bulkDeliveryResponse"/>
            </wsdl:operation>
        </wsdl:portType>
        <wsdl:binding name="exDPServiceSoapBinding" type="tns:exDPService">
            <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
            <wsdl:operation name="process">
                <soap:operation soapAction="process" style="document" />
                <wsdl:input name="processRequest">
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output name="processResponse">
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
            <wsdl:operation name="bulkDeliverySync">
                <soap:operation soapAction="bulkDeliverySync" style="document" />
                <wsdl:input name="bulkDeliveryRequest">
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output name="bulkDeliveryResponse">
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>
        <wsdl:service name="exDPService">
            <wsdl:port name="exDPServicePort" binding="tns:exDPServiceSoapBinding">
                <soap:address location="http://localhost:8001/xdpService/ws/exDPService" />
            </wsdl:port>
        </wsdl:service>
    </wsdl:definitions>

### exDPVerifyService.wsdl

    <?xml version='1.0' encoding='UTF-8'?>
    <?xml-stylesheet type="text/xsl" href="wsdl-viewer.xsl"?>
      <!-- ########################################################################
      # current version: 1.0
      # version history
      # * 1.0 initial version after test impl
      ############################################################################ -->
    <wsdl:definitions name="exDPVerifyService" targetNamespace="http://www.exthex.com/exDPVerifyService"
        xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.exthex.com/exDPVerifyService"
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <wsdl:types>

            <xs:schema targetNamespace="http://www.exthex.com/exDPVerifyService" version="1.0" elementFormDefault="qualified"
                xmlns:ns1="http://www.exthex.com/exdp/types" xmlns:tns="http://www.exthex.com/exDPVerifyService" xmlns:xs="http://www.w3.org/2001/XMLSchema">
                <xs:import namespace="http://www.exthex.com/exdp/types" schemaLocation="schema/xdpTypes.xsd" />

                <xs:element name="verifyInput" type="tns:verifyInput" />
                <xs:element name="verifyResult" type="tns:verifyResult" />
                <xs:complexType name="verifyInput">
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" minOccurs="1" name="document" type="ns1:document" />
                    </xs:sequence>
                </xs:complexType>
                <xs:complexType name="verifyResult">
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" minOccurs="1" name="result" type="ns1:verificationResult" />
                    </xs:sequence>
                </xs:complexType>
            </xs:schema>
        </wsdl:types>

        <wsdl:message name="verifySignaturesResponse">
            <wsdl:part element="tns:verifyResult" name="verifyResponse">
                <wsdl:documentation>verification result according to the input document. Send document via MTOM.</wsdl:documentation>
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="verifySignatures">
            <wsdl:part element="tns:verifyInput" name="verifyRequest">
                <wsdl:documentation>a of documents to verify (find signatures and verify)</wsdl:documentation>
            </wsdl:part>
        </wsdl:message>

        <wsdl:portType name="exDPVerifyService">
            <wsdl:operation name="verifySignatures">
                <wsdl:documentation>Verify digital signatures in a pdf documen</wsdl:documentation>
                <wsdl:input message="tns:verifySignatures" name="verifySignatures">
                </wsdl:input>
                <wsdl:output message="tns:verifySignaturesResponse" name="verifySignaturesResponse">
                </wsdl:output>
            </wsdl:operation>
        </wsdl:portType>

        <wsdl:binding name="exDPVerifyServiceSoapBinding" type="tns:exDPVerifyService">
            <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
            <wsdl:operation name="verifySignatures">
                <soap:operation soapAction="verifySignatures" style="document" />
                <wsdl:input name="verifySignatures">
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output name="verifySignaturesResponse">
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>
        <wsdl:service name="exDPVerifyService">
            <wsdl:documentation>Webservice for verification of signed document</wsdl:documentation>
            <wsdl:port binding="tns:exDPVerifyServiceSoapBinding" name="exDPVerifyServicePort">
                <soap:address location="http://jollyjumper:8003/xdpService/ws/exDPVerifyService" />
            </wsdl:port>
        </wsdl:service>
    </wsdl:definitions>

sendhybrid Service - Schema

### main.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/main" xmlns:tns="http://www.example.org/main"
        elementFormDefault="qualified">

        <import schemaLocation="xdpDeliveryTypes.xsd" namespace="http://www.exthex.com/exdp/types"/>
        <import schemaLocation="xdpTypes.xsd" namespace="http://www.exthex.com/exdp/types"/>

    </schema>

### xdpDeliveryTypes.xsd

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <xs:schema xmlns:t="http://www.exthex.com/exdp/types"
        xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xm="http://www.w3.org/2005/05/xmlmime"
        targetNamespace="http://www.exthex.com/exdp/types" elementFormDefault="qualified"
        version="1.0">
        <xs:include schemaLocation="xdpTypes.xsd" />

        <xs:element name="xdpDeliveryResult" type="t:xdpDeliveryResult" />
        <xs:element name="deliveryData" type="t:deliveryData" />
        <xs:element name="xdpBulkDeliveryInput" type="t:xdpBulkDeliveryInput" />
        <xs:element name="xdpBulkDeliveryResult" type="t:xdpBulkDeliveryResult" />
        <xs:element name="xdpAsyncResult" type="t:xdpAsyncResult" />

        <xs:complexType name="xdpDeliveryResult">
            <xs:sequence>
                <xs:element name="deliveryData" type="t:deliveryData"
                    minOccurs="0" />
                <xs:element name="documentResult" type="t:documentHolder"
                    nillable="true" minOccurs="0" maxOccurs="unbounded" />
                <xs:element name="success" type="xs:boolean" minOccurs="0"/>
                <xs:element name="finished" type="xs:boolean" minOccurs="0"/>
                <xs:element name="infoMessage" type="t:xdpMessage" minOccurs="0" />
                <xs:element name="profile" type="xs:string" minOccurs="0" />
                <xs:element name="operation" type="xs:string" minOccurs="0" />
                <xs:element name="tenantId" type="xs:string" minOccurs="0" />
                <xs:element name="userId" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
        <xs:element name="xdpDeliveryInput">
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="t:xdpInput">
                        <xs:sequence>
                            <xs:element name="deliveryInput" type="t:deliveryInput" />
                        </xs:sequence>
                        <xs:attribute name="deliveryType" type="t:deliveryType" />
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
        </xs:element>
        <xs:simpleType name="deliveryType">
            <xs:restriction base="xs:string">
                <xs:enumeration value="Message" />
                <xs:enumeration value="Delivery" />
            </xs:restriction>
        </xs:simpleType>
        <xs:complexType name="deliveryInput">
            <xs:sequence>
                <xs:element name="receiver" type="t:receiver" />
                <xs:element name="sender" type="t:sender" minOccurs="0" />
                <xs:element name="returnSender" type="t:sender" minOccurs="0" />
                <xs:element name="deliveryQuality" type="t:deliveryQuality"
                    minOccurs="0" />
                <xs:element name="registered" type="xs:boolean" minOccurs="0" />
                <xs:element name="hybridLetterMetaData" type="t:hybridLetterMetaData"
                    minOccurs="0" />
                <xs:element name="deliveryChannel" type="xs:string"
                    minOccurs="0" />
                <xs:element name="deliverySubject" type="xs:string"
                    minOccurs="0" />
                <xs:element name="deliveryMailBody" type="xs:string"
                    minOccurs="0" />
                <xs:element name="deliveryOptions" type="t:deliveryOptionMapType"
                    minOccurs="0" />
                <xs:element name="deliveryCategory" type="xs:string"
                    minOccurs="0" />
                <xs:element name="electronicDeliveryMetaData" type="t:electronicDeliveryMetaDataType"
                    minOccurs="0" />
                <xs:element name="muteHours" type="xs:int" minOccurs="0" />
                <xs:element name="requiredUserSecClass" type="t:authSecLevel"
                    minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="electronicDeliveryMetaDataType">
            <xs:sequence>
                <xs:element name="note" type="t:deliveryNoteType"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>
                            Additional information for the correspondence
                            portal, as configured in the
                            repository.
                            Semicolon-delimited
                            document specifics. • WelcomeLetter for allowing updates on user
                            data (delivery conatins a Welcome-letter. Could also be used for
                            Change-, or Good bye
                            letter)
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="inboxAddendum1" type="xs:string"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>
                            Additional information for the correspondence
                            portal, to be shown in a
                            custom column
                            and/or as a detail to the
                            delivery.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="inboxAddendum2" type="xs:string"
                    minOccurs="0" />
                <xs:element name="groups" type="t:groupType" minOccurs="0"
                    maxOccurs="unbounded" />
                <xs:element name="options" type="t:optionMapType"
                    minOccurs="0" />
                <xs:element name="updateReceiverData" type="xs:boolean" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>If set to true then given receiver data will be
                            updated in sendhybrid postbox.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <!-- remove substitution <xs:element name="electronicChannelMetaData" type="t:electronicChannelMetaDataType"
            substitutionGroup="t:metaData"> <xs:annotation> <xs:documentation>Specific
            Metadada for electronic delivery</xs:documentation> </xs:annotation> </xs:element>
            <xs:complexType name="electronicChannelMetaDataType"> <xs:complexContent>
            <xs:extension base="t:metaDataType"> <xs:sequence> <xs:element name="note"
            type="t:deliveryNoteType" minOccurs="0"> <xs:annotation> <xs:documentation>Additional
            information for the correspondence portal, as configured in the repository.
            Semicolon-delimited document specifics. • WelcomeLetter for allowing updates
            on user data (delivery conatins a Welcome-letter. Could also be used for
            Change-, or Good bye letter)</xs:documentation> </xs:annotation> </xs:element>
            <xs:element name="inboxAddendum1" type="xs:string" minOccurs="0"> <xs:annotation>
            <xs:documentation>Additional information for the correspondence portal, to
            be shown in a custom column and/or as a detail to the delivery.</xs:documentation>
            </xs:annotation> </xs:element> <xs:element name="inboxAddendum2" type="xs:string"
            minOccurs="0"/> <xs:element name="groups" type="t:groupsType" minOccurs="0"/>
            <xs:element name="options" type="t:optionMapType" minOccurs="0"/> </xs:sequence>
            </xs:extension> </xs:complexContent> </xs:complexType> -->
        <xs:complexType name="deliveryOptionMapType">
            <xs:sequence>
                <xs:element name="entry" type="t:deliveryOptionEntry"
                    minOccurs="0" maxOccurs="unbounded" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="deliveryOptionEntry">
            <xs:sequence>
                <xs:element name="key" type="t:deliveryOption" />
                <xs:element name="value" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
        <xs:simpleType name="deliveryOption">
            <xs:restriction base="xs:string">
                <xs:enumeration value="ENVELOPE">
                    <xs:annotation>
                        <xs:documentation>Selected envelope: C5/6, C4, C5,
                            SpecialEnvelopeXY)
                        </xs:documentation>
                    </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="ADDRESS_PAGE">
                    <xs:annotation>
                        <xs:documentation>Append address page ahead: false (standard),
                            true. NOT FOR DMS
                        </xs:documentation>
                    </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="ADDRESS_PAGE_TEXT">
                    <xs:annotation>
                        <xs:documentation>Additional text for address page with a maximum
                            of 400 characters
                        </xs:documentation>
                    </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="POSTAL_PRIORITY">
                    <xs:annotation>
                        <xs:documentation>Defines different rates for postal deliveries. ECO, PRIO,
                            ECO-BUSINESS...
                        </xs:documentation>
                    </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="PACKAGING_ID">
                    <xs:annotation>
                        <xs:documentation>Id for combining deliveries for different receivers but with the same address
                        </xs:documentation>
                    </xs:annotation>
                </xs:enumeration>
            </xs:restriction>
        </xs:simpleType>
        <xs:complexType name="deliveryData">
            <xs:complexContent>
                <xs:extension base="t:deliveryInput">
                    <xs:sequence>
                        <xs:element name="deliveryId" type="xs:long" />
                        <xs:element name="success" type="xs:boolean" />
                        <xs:element name="infoMessages" type="t:infoMessages"
                            minOccurs="0" />
                        <xs:element name="transmitDate" type="xs:dateTime"
                            minOccurs="0" />
                        <xs:element name="foreignId" type="xs:string" minOccurs="0" />
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="infoMessages">
            <xs:sequence>
                <xs:element name="infoMessage" type="t:xdpMessage" minOccurs="0" maxOccurs="unbounded" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="unstructuredReceiver">
            <xs:annotation>
                <xs:documentation>Der unstructuredReceiver bietet die Möglichkeit bis
                    zu neun Zeilen lang Daten zu definieren, die die unstrukturierte
                    Zustelladresse enthalten.
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="receiverLine1" type="xs:string"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Adresszeile am Kuvert. Normalerweise Name wie in
                            receiverName des structuredReceiver. Bsp: Fa.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine2" type="xs:string"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Bsp: z.Hd. Max Mustermann</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine3" type="xs:string"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Bsp: Straße 1</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine4" type="xs:string"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Bsp: Straße Zeile 2</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine5" type="xs:string"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Bsp: Postleitzahl und Ort</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine6" type="xs:string"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Bsp: Land</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine7" type="xs:string"
                    minOccurs="0" />
                <xs:element name="receiverLine8" type="xs:string"
                    minOccurs="0" />
                <xs:element name="receiverLine9" type="xs:string"
                    minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="sender">
            <xs:sequence>
                <xs:choice>
                    <xs:element name="legalPerson" type="t:legalPerson"
                        minOccurs="0" />
                    <xs:element name="physicalPerson" type="t:physicalPerson"
                        minOccurs="0" />
                </xs:choice>
                <xs:element name="postalAddress" type="t:postalAddress"
                    minOccurs="0" />
                <xs:element name="emailAddress" type="xs:string"
                    minOccurs="0" />
                <xs:element name="telephone" type="xs:string" minOccurs="0" />
                <xs:element name="fax" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="hybridLetterMetaData">
            <xs:sequence>
                <xs:element name="businessNumber1" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Geschaeftszahl 1 ist Pflichtfeld.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="businessNumber2" type="xs:string"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Geschaeftszahl 2 optional, falls erforderlich
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="authorityKey" type="xs:string"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Behördenkennung</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="signatureNumber" type="t:signatureNumber"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Die Vorausverfuegung_ID</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="optionalSignatureNumberValue" type="xs:string"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Ein optionales Feld sollte die
                            Vorausverfuegung_ID 99 gewaehlt werden
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:simpleType name="deliveryQuality">
            <xs:union memberTypes="xs:string">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="RSA" />
                        <xs:enumeration value="RSA_PLUS" />
                        <xs:enumeration value="NON_RSA" />
                        <xs:enumeration value="NON_RSA_PLUS" />
                        <xs:enumeration value="RSB" />
                        <xs:enumeration value="RSB_PLUS" />
                        <xs:enumeration value="NON_R" />
                        <xs:enumeration value="NON_R_PLUS" />
                        <xs:enumeration value="R" />
                        <xs:enumeration value="R_PLUS" />
                        <xs:enumeration value="RS" />
                        <xs:enumeration value="RS_PLUS" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:union>
        </xs:simpleType>
        <xs:simpleType name="signatureNumber">
            <xs:union memberTypes="xs:string">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="00">
                            <xs:annotation>
                                <xs:documentation>Keine Verfuegung (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="01">
                            <xs:annotation>
                                <xs:documentation>Nicht an Postbevollmaechtigte (nur Rsa)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="02">
                            <xs:annotation>
                                <xs:documentation>Nicht nachsenden (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="03">
                            <xs:annotation>
                                <xs:documentation>Nicht an Ehegatten/Partner zustellen (Rsa und
                                    Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="04">
                            <xs:annotation>
                                <xs:documentation>Nicht an Elternteil zustellen (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="05">
                            <xs:annotation>
                                <xs:documentation>Nicht an den Prokuristen (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="06">
                            <xs:annotation>
                                <xs:documentation>Zustellung in den koerperlichen Nahebereich
                                    (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="07">
                            <xs:annotation>
                                <xs:documentation>Zustellung trotz allfaelliger Beeintraechtigung und
                                    bestehender Erwachsenenvertretung (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="08">
                            <xs:annotation>
                                <xs:documentation>Bevollmaechtigte und Kanzleiangestellte sind
                                    von der Zustellung ausgeschlossen (§13 Abs.2 u. 4) (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="09">
                            <xs:annotation>
                                <xs:documentation>Trotz Postsperre dem Gemeinschuldner zustellen
                                    (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="10">
                            <xs:annotation>
                                <xs:documentation>Hinterlegung ohne Zustellversuch (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="11">
                            <xs:annotation>
                                <xs:documentation>Trotz Minderjaehrigkeit zustellen (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="12">
                            <xs:annotation>
                                <xs:documentation>Trotz behaupteter Ortsabwesenheit zustellen
                                    (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="20">
                            <xs:annotation>
                                <xs:documentation>Nicht an Postbevollmächtigte und Nicht
                                    nachsenden (nur Rsa)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="21">
                            <xs:annotation>
                                <xs:documentation>Nicht an Ehegatten/Partner zustellen und Nicht
                                    nachsenden (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="22">
                            <xs:annotation>
                                <xs:documentation>Nicht an Elternteil zustellen und Nicht
                                    nachsenden (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="23">
                            <xs:annotation>
                                <xs:documentation>Nicht an den Prokuristen und Nicht nachsenden
                                    (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="24">
                            <xs:annotation>
                                <xs:documentation>Zustellung in den koerperlichen Nahebereich und
                                    Nicht nachsenden (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="25">
                            <xs:annotation>
                                <xs:documentation>Zustellung trotz allfaelliger Beeintraechtigung und
                                    bestehender Erwachsenenvertretung und Nicht nachsenden (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="26">
                            <xs:annotation>
                                <xs:documentation>Trotz Postsperre dem Gemeinschuldner zustellen
                                    und Nicht nachsenden (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="27">
                            <xs:annotation>
                                <xs:documentation>Nicht an Postbevollmaechtigte und Nicht an
                                    Ehegatten zustellen (nur Rsa)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="28">
                            <xs:annotation>
                                <xs:documentation>Nicht an Postbevollmaechtigte und Nicht an
                                    Elternteil zustellen (nur Rsa)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="29">
                            <xs:annotation>
                                <xs:documentation>Nicht an Postbevollmaechtigte und Nicht an den
                                    Prokuristen (nur Rsa)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="30">
                            <xs:annotation>
                                <xs:documentation>Nicht an Postbevollmaechtigte und Zustellung in
                                    den koerperlichen Nahebereich (nur Rsa)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="31">
                            <xs:annotation>
                                <xs:documentation>Nicht an Postbevollmaechtigte und Zustellung
                                    trotz allfaelliger Beeintraechtigung und bestehender Erwachsenenvertretung
                                    (nur Rsa)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="32">
                            <xs:annotation>
                                <xs:documentation>Nicht an Postbevollmaechtigte und Trotz
                                    Postsperre dem Gemeinschuldner zustellen (nur Rsa)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="99">
                            <xs:annotation>
                                <xs:documentation>Nicht kategorisierte Vorausverfuegung (z.B.
                                    Zustellung lt. § XY) oder neue, noch nicht kategorisierte
                                    Vorausverfuegung (Rsa und Rsb)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                    </xs:restriction>
                </xs:simpleType>
            </xs:union>
        </xs:simpleType>
        <xs:simpleType name="deliveryNoteType">
            <xs:restriction base="xs:token">
                <xs:enumeration value="WelcomeLetter" />
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="authSecLevel">
            <xs:union memberTypes="xs:string">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="SecClass0" />
                        <xs:enumeration value="SecClass1" />
                        <xs:enumeration value="SecClass2" />
                        <xs:enumeration value="SecClass3" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:union>
        </xs:simpleType>
        <!-- unnecessary <xs:complexType name="groupsType"> <xs:sequence> <xs:element
            name="group" type="t:groupType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence>
            </xs:complexType> -->
        <xs:complexType name="groupType">
            <xs:sequence>
                <xs:element name="id" type="xs:string" minOccurs="0" />
                <xs:element name="groupName" type="xs:string" minOccurs="0" />
                <xs:element name="receiveMessagesAllowed" type="xs:boolean"
                    minOccurs="0" />
                <xs:element name="description" type="xs:string" minOccurs="0" />
                <xs:element name="groupSupporters" type="t:groupSupporterType"
                    maxOccurs="unbounded" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="groupSupporterType">
            <xs:sequence>
                <xs:element name="id" type="xs:string" />
                <xs:element name="givenName" type="xs:string" minOccurs="0" />
                <xs:element name="familyName" type="xs:string" minOccurs="0" />
                <xs:element name="email" type="xs:string" minOccurs="0" />
                <xs:element name="phoneNumber" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="xdpBulkDeliveryInput">
            <xs:sequence>
                <xs:element name="foreignId" type="xs:string" minOccurs="0" />
                <xs:element name="xdpBulkDeliveryResultReturnTarget" type="xs:string"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>http:// ... Callback-URL for Delivery-Response,
                            (s)ftp:// ... file tansfer service (credentials configured in
                            profile) , without protocol (target configured in profile)
                            example: /helevtia
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="jobName" type="xs:string" minOccurs="0" />
                <xs:element name="operation" type="xs:string" />
                <xs:element name="credential" type="t:xdpCredential" />
                <xs:element name="config" type="t:xdpConfig" minOccurs="0" />
                <xs:element name="commonDocuments" type="t:document"
                    nillable="true" minOccurs="0" maxOccurs="unbounded" />
                <xs:element name="commonDeliveryQuality" type="t:deliveryQuality"
                    minOccurs="0" />
                <xs:element name="commonSubject" type="xs:string"
                    minOccurs="0" />
                <xs:element name="commonMailBody" type="xs:string"
                    minOccurs="0" />
                <xs:element name="commonDeliveryOptions" type="t:deliveryOptionMapType"
                    minOccurs="0" />
                <xs:element name="commonDeliveryCategory" type="xs:string"
                    minOccurs="0" />
                <xs:element name="commonSender" type="t:sender" minOccurs="0" />
                <xs:element name="commonMuteHours" type="xs:int"
                    minOccurs="0" />
                <xs:element name="commonRequiredUserSecClass" type="t:authSecLevel"
                    minOccurs="0" />
                <xs:element name="addressExtractorConfig" type="xs:string"
                    minOccurs="0" />
                <xs:element name="deliveryElement" type="t:bulkDeliveryElement"
                    maxOccurs="unbounded" />
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="optional" />
        </xs:complexType>
        <xs:complexType name="bulkDeliveryElement">
            <xs:sequence>
                <xs:element name="receiver" type="t:receiver" minOccurs="0" />
                <xs:element name="receiverUnstructured" type="t:unstructuredReceiver"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>unstrukturierte Zustelladresse</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="sender" type="t:sender" minOccurs="0" />
                <xs:element name="returnSender" type="t:sender" minOccurs="0" />
                <xs:element name="deliveryQuality" type="t:deliveryQuality"
                    minOccurs="0" />
                <xs:element name="registered" type="xs:boolean" minOccurs="0" />
                <xs:element name="hybridLetterMetaData" type="t:hybridLetterMetaData"
                    minOccurs="0" />
                <xs:element name="deliveryChannel" type="xs:string"
                    minOccurs="0" />
                <xs:element name="deliverySubject" type="xs:string"
                    minOccurs="0" />
                <xs:element name="deliveryMailBody" type="xs:string"
                    minOccurs="0" />
                <xs:element name="deliveryOptions" type="t:deliveryOptionMapType"
                    minOccurs="0" />
                <xs:element name="deliveryCategory" type="xs:string"
                    minOccurs="0" />
                <xs:element name="electronicDeliveryMetaData" type="t:electronicDeliveryMetaDataType"
                    minOccurs="0" />
                <xs:element name="muteHours" type="xs:int" minOccurs="0" />
                <xs:element name="requiredUserSecClass" type="t:authSecLevel"
                    minOccurs="0" />
                <xs:element name="document" type="t:document" nillable="true"
                    minOccurs="0" maxOccurs="unbounded" />
                <xs:element name="foreignId" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="xdpBulkDeliveryResult">
            <xs:annotation>
                <xs:documentation>The result filename is the input filename appended
                    by _bulkDeliveryResult.xml
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="jobId" type="xs:long" />
                <xs:element name="foreignId" type="xs:string" minOccurs="0" />
                <xs:element name="overallSuccess" type="xs:boolean" />
                <xs:element name="overallFinished" type="xs:boolean" />
                <xs:element name="infoMessages" type="t:infoMessages" minOccurs="0" />
                <xs:element name="results" type="t:results" minOccurs="0"/>
                <xs:element name="profile" type="xs:string" minOccurs="0" />
                <xs:element name="operation" type="xs:string" minOccurs="0" />
                <xs:element name="tenantId" type="xs:string" minOccurs="0" />
                <xs:element name="userId" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="xdpAsyncResult">
            <xs:sequence>
                <xs:element name="jobId" type="xs:long" />
                <xs:element name="foreignId" type="xs:string" minOccurs="0" />
                <xs:element name="infoMessages" type="t:infoMessages" minOccurs="0" />
                <xs:element name="results" type="t:results" minOccurs="0"/>
                <xs:element name="profile" type="xs:string" minOccurs="0" />
                <xs:element name="operation" type="xs:string" minOccurs="0" />
                <xs:element name="tenantId" type="xs:string" minOccurs="0" />
                <xs:element name="userId" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="results">
            <xs:sequence>
                <xs:element name="result" type="t:xdpDeliveryResult" maxOccurs="unbounded" />
            </xs:sequence>
        </xs:complexType>
    </xs:schema>

### xdpTypes.xsd

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <xs:schema xmlns:t="http://www.exthex.com/exdp/types" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xm="http://www.w3.org/2005/05/xmlmime"
        targetNamespace="http://www.exthex.com/exdp/types" elementFormDefault="qualified" version="1.1">

        <xs:element name="xdpInput" type="t:xdpInput" />

        <xs:element name="xdpResult" type="t:xdpResult" />

        <xs:complexType name="xdpInput">
            <xs:sequence>
                <xs:element name="operation" type="xs:string" />
                <xs:element name="document" type="t:document" nillable="true" minOccurs="0" maxOccurs="unbounded" />
                <xs:element name="foreignId" type="xs:string" minOccurs="0" />
                <xs:element name="credential" type="t:xdpCredential" />
                <xs:element name="config" type="t:xdpConfig" minOccurs="0" />
                <xs:element name="jobName" type="xs:string" minOccurs="0" />
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="optional"/>
        </xs:complexType>

        <xs:complexType name="xdpResult">
            <xs:sequence>
                <xs:element name="documentResult" type="t:documentHolder" nillable="true" minOccurs="0" maxOccurs="unbounded" />
                <xs:element name="success" type="xs:boolean" minOccurs="0"/>
                <xs:element name="finished" type="xs:boolean" minOccurs="0"/>
                <xs:element name="infoMessage" type="t:xdpMessage" minOccurs="0" />
                <xs:element name="foreignId" type="xs:string" minOccurs="0" />
                <xs:element name="profile" type="xs:string" minOccurs="0" />
                <xs:element name="operation" type="xs:string" minOccurs="0" />
                <xs:element name="tenantId" type="xs:string" minOccurs="0" />
                <xs:element name="userId" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="documentHolder">
            <xs:sequence>
                <xs:element name="success" type="xs:boolean" />
                <xs:element name="infoMessage" type="t:xdpMessage" minOccurs="0" maxOccurs="unbounded" />
                <xs:element name="document" type="t:document" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="xdpConfig">
            <xs:all>
                <xs:element name="deliveryConfig" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Name of the delivery configuration for the delivery process.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="outputFormat" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>OutputFormat of result file. E.g. PDF, PDF_A, TIFF, JPG, PNG or any other supported type. Handle
                            case insensitive!</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="processDefName" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>The process definition name.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="profileName" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Name of configuration profile.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="signatureProfile" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Name of the signature profile (PDF-AS configuration).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="signatureType" type="t:signatureType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>One of:
                            - PDF_AS_TEXT: PDF-AS textual signature extracts text from pdf and signs the text only. Can be reproduced from the
                            hardcopy.
                            - PDF_AS_BIN: PDF-AS Binary signature signs the binary pdf contend. Cannot be reproduced from the hardcopy.
                            - XML_DSIG: Plain xml based dsig signature
                            - ADOBE_SIGN: Adobe pdf signature. Not certified, allows multi signatures.
                            - ADOBE_CERTIFIED: Adobe pdf signature, certified with no changes allowed (so no multi signatures will be valid).
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="signedNamePattern" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Name pattern for signed file. %file% %ext% placeholders are available.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliverySenderName" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Default sender name for the delivery if not provided otherwise.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliverySenderEmail" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Default sender email address for delivery if not provided otherwise.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="bzdDeliverySenderIsOrg" type="xs:boolean" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Set to true if the sender is an Organisation, false if a Company.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="bzdDeliverySenderAddress" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Sender postal address for bzd delivery.
                            Form: "CountryCode|PostalCode|City|Street|DoorNumber" eg.: "AT|8051|Graz|Goestingerstrasse|213"
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="bzdDeliveryStartNotificationTimeout" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>StartNotificationTimeout in hours.
                            Must not be used by governmental organisations (but may be used by private companies).
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="bzdDeliveryTimeout" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>BZD DeliveryTimeout in days, after this period the message is defined as undelivered.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="fileRefUserName" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Sets the username of the file reference. E.g. used for authentication to a FTP server.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="fileRefPassword" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Sets the password of the file reference. E.g. used for authentication to a FTP server.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="fileRefOutputUri" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Sets the output URI of the file reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="fileRefOverwrite" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Sets the overwrite option for the file reference
                            * true - if the "fileRefOutputUri" is "null", the source file will be overwritten
                            * true - if the "fileRefOutputUri" NOT "null" and the output file already exists, the output file will be
                            overwritten
                            * false - no overwrite no matter what
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="fileRefReturnBytes" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>if "true" the file content will also be stored in the documents content property
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryNotificationCallbackWebserviceAddress" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>The address of the webservice which should be used for delivery notification callback
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryNotificationCallbackEMailAddress" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>A valid mail address which is used by the BZD/TX portal to send the delivery notification
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryNotificationCallbackMobileNumber" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Determines the mobile number on which the customer wants to receive his or her notification
                            callback</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryNotificationCallbackChannel" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Determines the notification callback channel through which the customer wants to receive his or
                            her callback notification. Possible values: zuse2app, XDPCallbackWebservice, MailChannel, SMSChannel,
                            LoggingChannel
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryNotificationCallbackType" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Determines the notification type in which format the customer wants to receive the callback
                            notification. The type pdf can only be used if the user wants to receive the notification via mail and the BZD
                            channel. Default value: xml. Possible values: xml, pdf, xml+pdf.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="sendPasswordLetterToRegisteredPerson" type="xs:boolean" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Allow sending password letter to all persons that are already registered.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="costCenter" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Defines the costCenter (freetext) - will then be used also in the print job.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:all>
        </xs:complexType>

        <xs:complexType name="xdpCredential">
            <xs:all>
                <xs:element name="userId" type="xs:string" />
                <xs:element name="tenantId" type="xs:string" />
                <xs:element name="clientIpAddress" type="xs:string" minOccurs="0" />
                <xs:element name="clientPcName" type="xs:string" minOccurs="0" />
                <xs:element name="clientType" type="xs:string" minOccurs="0" />
                <xs:element name="userDetail" type="xs:string" minOccurs="0" />
                <xs:element name="email" type="xs:string" minOccurs="0" />
            </xs:all>
        </xs:complexType>

        <xs:complexType name="document">
            <xs:sequence>
                <xs:element name="fileName" type="t:requiredStringType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Origin filename of the document. If no file is provided this is the filename of a generated file
                            (e.g. for customer card) or the filename is in the fileRefURI.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="displayName" type="t:requiredStringType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>User friendly name of the document. The value the description for the file to be shown in a
                            document list or in documemt details.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="displayFileName" type="t:fileNameWithExtensionType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>User friendly file name of the document for user side download (proposed filename for download)
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="content" type="xs:base64Binary" minOccurs="0" xm:expectedContentTypes="application/octet-stream" />
                <xs:element name="mimeType" type="xs:string" minOccurs="0" />
                <xs:element name="compression" type="xs:string" minOccurs="0" />
                <xs:element name="fileRefURI" type="xs:string" minOccurs="0" />
                <xs:element name="documentOptions" type="t:optionMapType" minOccurs="0" />
                <!--xs:element name="metaData" type="t:commonMetaDataType" minOccurs="0"/ -->
                <xs:element type="t:documentMetaDataType" minOccurs="0" maxOccurs="1" name="postalDocumentMetaData" />
                <xs:element type="t:documentMetaDataType" minOccurs="0" maxOccurs="1" name="electronicDocumentMetaData" />
                <xs:element name="additionalData" type="t:junkYard" minOccurs="0" maxOccurs="unbounded" />
                <xs:element name="hash" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="documentMetaDataType">
            <xs:sequence>
                <xs:element name="note" type="t:documentNoteType"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Additional information for the correspondence
                            portal, as configured in the repository.
                            Semicolon-delimited document specifics.
                            • InsuranceCard for green insurance card
                            • CustomerCard for receipt of customer data via SMS or other
                            electronic media
                            • PaymentSlip for evidence of electronic payment possibility
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="sign" type="xs:boolean" default="true"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Flag for signature of the document. TODO for later
                            requests and phases: We could accept a
                            profile Name which lets us know how (and where) to sign
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="signProfile" type="t:requiredStringType"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Signature profile for signature of the document,
                            which carries the definition of the signature
                            on the server. The profile MUST be predefined and the sender has to
                            know the internal profile name.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="invalidate" type="xs:boolean" default="false"
                    minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Invalidation of the document with "Kein Original",
                            TODO for later phases: should every page be
                            invalidated? Are there different document references to invalidate with?
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="documentGeneration" type="t:documentGenerationType"
                    minOccurs="0" maxOccurs="9" />
                <xs:choice>
    <!--                <xs:element name="generationDataCustomerCard" type="t:generationDataCustomerCardType" -->
    <!--                    minOccurs="0" /> -->
                    <xs:sequence>
                        <xs:element name="payment" type="t:paymentType"
                            minOccurs="0" />
                        <xs:choice>
                            <xs:element name="generationDataPaymentSlipA4Landscape" type="t:generationDataPaymentSlipTypeA4Landscape"
                                minOccurs="0" />
                          <xs:element name="generationDataPaymentSlipA4Portrait" type="t:generationDataPaymentSlipTypeA4Portrait"
                                minOccurs="0" />
                        </xs:choice>
                    </xs:sequence>
                </xs:choice>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="junkYard">
            <xs:sequence>
                <xs:any namespace="##any" processContents="lax" minOccurs="0" />
            </xs:sequence>
            <xs:attribute name="name" type="xs:string" />
        </xs:complexType>

        <xs:simpleType name="signatureType">
            <xs:restriction base="xs:string">
                <xs:enumeration value="PDF_AS_TEXT" />
                <xs:enumeration value="PDF_AS_BIN" />
                <xs:enumeration value="XML_DSIG" />
                <xs:enumeration value="ADOBE_SIGN" />
                <xs:enumeration value="ADOBE_CERTIFIED" />
                <xs:enumeration value="UNKNOWN" />
                <xs:enumeration value="NONE" />
            </xs:restriction>
        </xs:simpleType>

        <xs:complexType name="xdpMessage">
            <xs:sequence>
                <xs:element name="id" type="xs:string" />
                <xs:element name="message" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>

        <!-- Verification helper ****************************************************** -->

        <xs:element name="verificationResult" type="t:verificationResult" />

        <xs:complexType name="verificationResult">
            <xs:sequence>
                <xs:element name="filename" type="xs:string" />
                <xs:element name="xdpMessage" type="t:xdpMessage" minOccurs="0" />
                <xs:element name="signatureVerifyResultEntries" type="t:verificationResultEntry" nillable="true"
                    minOccurs="0" maxOccurs="unbounded" />
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="verificationResultEntry">
            <xs:sequence>
                <xs:element name="certificateCheck" type="t:checkResult" />
                <xs:element name="manifestCheck" type="t:checkResult" />
                <xs:element name="valueCheck" type="t:checkResult" />
                <xs:element name="signTime" type="xs:dateTime" />
                <xs:element name="qualifiedCertificate" type="xs:boolean" />
                <xs:element name="signatureType" type="t:signatureType" minOccurs="0" />
                <xs:element name="signerCertificate" type="xs:base64Binary" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="checkResult">
            <xs:sequence>
                <xs:element name="code" type="xs:int" />
                <xs:element name="message" type="xs:string" />
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="optionMapType">
            <xs:sequence>
                <xs:element name="entry" type="t:optionEntryType" minOccurs="0" maxOccurs="unbounded" />
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="optionEntryType">
            <xs:sequence>
                <xs:element name="key" type="t:documentOption" />
                <xs:element name="value" type="xs:string" minOccurs="0" />
            </xs:sequence>
            <xs:attribute name="channels" type="xs:string" use="optional">
                <xs:annotation>
                    <xs:documentation>Channels, devided by a ";" where applicable. If no attribute is given, options are applicable for
                        all channles</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:simpleType name="documentOption">
            <xs:restriction base="xs:string">
                <xs:enumeration value="PAGE_FORMAT">
                    <xs:annotation>
                        <xs:documentation>Page format. z.B. A3, A4...</xs:documentation>
                    </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="COLOR_MODE">
                    <xs:annotation>
                        <xs:documentation>Color and page mode: 1/0, 1/1, 4/0, 4/4)</xs:documentation>
                    </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="PAPER_GRAMMAGE">
                    <xs:annotation>
                        <xs:documentation>Paper quality in g/m2 e.g. 80 (standard)</xs:documentation>
                    </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="PAPER_COATING">
                    <xs:annotation>
                        <xs:documentation>Paper coating: matt, gloss)</xs:documentation>
                    </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="PAPER_COLOR">
                    <xs:annotation>
                        <xs:documentation>Paper color: white (standard), SpecialpaperXY)</xs:documentation>
                    </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="DOUBLE_SIDED">
                    <xs:annotation>
                        <xs:documentation>Double sided: false (standard), true). NOT FOR DMS</xs:documentation>
                    </xs:annotation>
                </xs:enumeration>
            </xs:restriction>
        </xs:simpleType>

        <xs:complexType name="documentGenerationType">
            <xs:sequence>
                <xs:element name="layerDocumentReference" type="xs:anyURI" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>
                            filename of underlay document, or reference to underlay document in supplementation document store (example:
                            <layerDocumentReference>refstore:keyImRefstoreSoWieIhnZbUdoHat</layerDocumentReference>
                            )
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="layerPosString" type="t:layerPosStringType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Determines the page to be under-/overlayed. If the element is missing, the first page is
                            underlayed. The format is "x:0;y:0;w:1;p:1" where as for the page the wildcards ALL/FIRST/LAST/NEWPAGE.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="layer" type="xs:byte" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>if element is missing, the order of occurence determines the plane order. Positive values
                            determine overlay, negative numbers mean underlay. Plane 0 is the document origin. The first backplane in the
                            z-order is the -1 plane, and so on</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="content" type="xs:base64Binary" minOccurs="0" xm:expectedContentTypes="application/octet-stream" >
                    <xs:annotation>
                        <xs:documentation>Content if no document is referenced.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="generationDataCustomerCardType">
            <xs:sequence>
    <!--            <xs:element name="customerCardType" type="xs:string"> -->
    <!--                <xs:annotation> -->
    <!--                    <xs:documentation>Since not defined otherwise we currently use values 1-6</xs:documentation> -->
    <!--                </xs:annotation> -->
    <!--            </xs:element> -->
    <!--            <xs:element name="documentGeneration" type="dsi:documentGenerationType" minOccurs="0" maxOccurs="4"/> -->
                <xs:element name="field1" type="xs:string" minOccurs="0" />
                <xs:element name="field2" type="xs:string" minOccurs="0" />
                <xs:element name="field3" type="xs:string" minOccurs="0" />
                <xs:element name="field4" type="xs:string" minOccurs="0" />
                <xs:element name="field5" type="xs:string" minOccurs="0" />
                <xs:element name="field6" type="xs:string" minOccurs="0" />
                <xs:element name="field7" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="paymentType">
            <xs:sequence>
                <xs:element name="amount" type="xs:string" />
                <xs:element name="currency" type="xs:string" />
                <xs:element name="customerData" type="xs:string" minOccurs="0" />
                <xs:element name="dueDate" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Date format is dd.MM.yyyy</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="iban" type="xs:string" />
                <xs:element name="bic" type="xs:string" />
                <xs:element name="accountOwner" type="xs:string" />
                <xs:element name="financialInstitution" type="xs:string" />
                <xs:element name="receiverId" type="xs:token" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Id for payment proxy account. This is the direct way to determine the paymenttypes/account
                            combination</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="generationDataPaymentSlipTypeA4Landscape">
            <xs:sequence>
                <xs:element name="addressLine1" type="xs:string" minOccurs="0" />
                <xs:element name="addressLine2" type="xs:string" minOccurs="0" />
                <xs:element name="addressLine3" type="xs:string" minOccurs="0" />
                <xs:element name="addressLine4" type="xs:string" minOccurs="0" />
                <xs:element name="addressLine5" type="xs:string" minOccurs="0" />
                <xs:element name="purposeLine1" type="xs:string" minOccurs="0" />
                <xs:element name="purposeLine2" type="xs:string" minOccurs="0" />
                <xs:element name="purposeLine3" type="xs:string" minOccurs="0" />
                <xs:element name="confirmationLine01" type="xs:string" minOccurs="0" />
                <xs:element name="confirmationLine02" type="xs:string" minOccurs="0" />
                <xs:element name="confirmationLine03" type="xs:string" minOccurs="0" />
                <xs:element name="confirmationLine04" type="xs:string" minOccurs="0" />
                <xs:element name="confirmationLine05" type="xs:string" minOccurs="0" />
                <xs:element name="confirmationLine06" type="xs:string" minOccurs="0" />
                <xs:element name="confirmationLine07" type="xs:string" minOccurs="0" />
                <xs:element name="confirmationLine08" type="xs:string" minOccurs="0" />
                <xs:element name="confirmationLine09" type="xs:string" minOccurs="0" />
                <xs:element name="confirmationLine10" type="xs:string" minOccurs="0" />
                <xs:element name="codelineAmount" type="xs:string" minOccurs="0" />
                <xs:element name="codelineBehavior" type="xs:string" minOccurs="0" />
                <xs:element name="payer" type="t:receiver" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="generationDataPaymentSlipTypeA4Portrait">
            <xs:annotation>
                <xs:documentation>Given information in the "generationDataPaymentSlipTypeA4Portrait" will be used to generate a payment form on the bottom of a A4 page in portrait mode.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="rightSide_ReceiverLine1" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>The first line of the receiver on the right side of the payment form (max. 35 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="rightSide_ReceiverLine2" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>The second line of the receiver on the right side of the payment form (max. 35 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="rightSide_checkDigit" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>Checkdigit of the reference line (German: Zahlungsreferenz) - see paymentType.customerData for reference line on the right side of the payment form.</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="rightSide_ReasonLine1" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>First line of the reason on the right side of the payment form (max. 35 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="rightSide_ReasonLine2" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>Second line of the reason on the right side of the payment form (max. 35 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="rightSide_ReasonLine3" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>Third line of the reason on the right side of the payment form (max. 35 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="rightSide_ReasonLine4" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>Fourth line of the reason on the right side of the payment form (max. 35 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="leftSide_ReceiverLine1" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>One line of the receiver on the left side of the payment form (max. 22 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="leftSide_ReasonLine1" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>First line of the reason on the left side of the payment form (max. 22 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="leftSide_ReasonLine2" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>Second line of the reason on the left side of the payment form (max. 22 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="leftSide_ReasonLine3" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>Third line of the reason on the left side of the payment form (max. 22 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="leftSide_ReasonLine4" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>Fourth line of the reason on the left side of the payment form (max. 22 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="leftSide_ReasonLine5" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>Fifth line of the reason on the left side of the payment form (max. 22 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="leftSide_ReasonLine6" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>Sixth line of the reason on the left side of the payment form (max. 22 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="leftSide_ReasonLine7" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>Seventh line of the reason on the left side of the payment form (max. 22 characters).</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="IBAN_Sender" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>IBAN of the sender.</xs:documentation>
                    </xs:annotation></xs:element>
                <xs:element name="payer" type="t:receiver" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Payer information which will be used for payment form.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>

        <xs:simpleType name="documentNoteType">
            <xs:restriction base="xs:token">
                <xs:enumeration value="InsuranceCard" />
                <xs:enumeration value="CustomerCard" />
                <xs:enumeration value="PaymentSlip" />
                <!--xs:enumeration value="WelcomeLetter"/ -->
            </xs:restriction>
        </xs:simpleType>

        <xs:simpleType name="fileNameWithExtensionType">
            <xs:restriction base="t:stringWithoutLineBreaksAndTabType">
                <xs:pattern
                    value="[^ :&quot;&lt;&gt;|*?\\/&#127;]{1,}[^:&quot;&lt;&gt;|*?\\/&#127;]{0,}\.[^:&quot;&lt;&gt;|*?\\/&#127;]{0,}[^ :&quot;&lt;&gt;|*?\\/&#127;]{1,}" />
                <!-- Note: If this regular expression is changed the corresponding regular expression in FileNameUtility must be changed
                    as well. -->
            </xs:restriction>
        </xs:simpleType>

        <xs:simpleType name="requiredStringType">
            <xs:restriction base="t:stringWithoutLineBreaksAndTabType">
                <xs:minLength value="1" />
                <xs:pattern value=".*[^ ]+.*" />
                <!-- Note: minLength facet is for documentation purposes only because pattern facet already fails for empty strings. -->
            </xs:restriction>
        </xs:simpleType>

        <xs:simpleType name="stringWithoutLineBreaksAndTabType">
            <xs:restriction base="xs:string">
                <xs:pattern value="[^&#9;&#10;&#13;]{0,}" />
            </xs:restriction>
        </xs:simpleType>

        <xs:simpleType name="layerPosStringType">
            <xs:restriction base="xs:string">
                <xs:pattern value="([0-9]*|ALL|FIRST|LAST|NEWPAGE|-|;|x|y|w|p|:)*" />
            </xs:restriction>
        </xs:simpleType>

        <xs:complexType name="identification">
            <xs:sequence>
                <xs:element name="type" type="xs:string" />
                <xs:element name="value" type="xs:string" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="legalPerson">
            <xs:sequence>
                <xs:element name="name" type="xs:string" />
                <xs:element name="registerNr" type="xs:string" minOccurs="0" />
                <xs:element name="registerType" type="t:registerType"
                    minOccurs="0" />
                <xs:element name="zbpk" type="xs:string" minOccurs="0" />
                <xs:element name="detailLine" type="xs:string" minOccurs="0" />
                <xs:element name="physicalPerson" type="t:physicalPerson"
                    minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="physicalPerson">
            <xs:sequence>
                <xs:element name="familyName" type="xs:string" minOccurs="0" />
                <xs:element name="givenName" type="xs:string" minOccurs="0" />
                <xs:element name="dateOfBirth" type="xs:date" minOccurs="0" />
                <xs:element name="prefixTitle" type="xs:string" minOccurs="0" />
                <xs:element name="postfixTitle" type="xs:string"
                    minOccurs="0" />
                <xs:element name="bpk" type="xs:string" minOccurs="0" />
                <xs:element name="bpkArea" type="xs:string" minOccurs="0" />
                <xs:element name="zbpk" type="xs:string" minOccurs="0" />
                <xs:element name="salutation" type="xs:string" minOccurs="0" />
                <xs:element name="detailLine" type="xs:string" minOccurs="0" />
                <xs:element name="detailLine2" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="postalAddress">
            <xs:sequence>
                <xs:element name="street" type="xs:string" />
                <xs:element name="doorNr" type="xs:string" minOccurs="0" />
                <xs:element name="postalCode" type="xs:string" />
                <xs:element name="city" type="xs:string" />
                <xs:element name="countryCode" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
        <xs:simpleType name="registerType">
            <xs:restriction base="xs:string">
                <xs:enumeration value="ERsB" />
                <xs:enumeration value="Firma" />
                <xs:enumeration value="Verein" />
                <xs:enumeration value="Unbekannt" />
                <xs:enumeration value="Gemeindenummer" />
                <xs:enumeration value="Steuerregistriernummer" />
            </xs:restriction>
        </xs:simpleType>
        <xs:complexType name="receiver">
            <xs:sequence>
                <xs:element name="identification" type="t:identification"
                    minOccurs="0" maxOccurs="unbounded" />
                <xs:element name="email" type="xs:string" minOccurs="0" />
                <xs:element name="userToken" type="xs:string" minOccurs="0" />
                <xs:choice minOccurs="0">
                    <xs:element name="legalPerson" type="t:legalPerson"
                        minOccurs="0" />
                    <xs:element name="physicalPerson" type="t:physicalPerson"
                        minOccurs="0" />
                </xs:choice>
                <xs:element name="postalAddress" type="t:postalAddress"
                    minOccurs="0" />
                <xs:element name="genericId" type="xs:string" minOccurs="0" />
                <xs:element name="bundlingId" type="xs:string" minOccurs="0" />
                <xs:element name="phoneNumber" type="xs:string" minOccurs="0" />
                <xs:element name="ervCode" type="xs:string" minOccurs="0" />
                <xs:element name="accessPassword" type="xs:string"
                    minOccurs="0" />
                <xs:element name="queryData" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Normalisierter Daten die zur Abfrage verwendet
                            wurden.
                        </xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="queryMethod" type="xs:string" />
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:schema>

## Transaction portal

Swagger documentation can be found here: SwaggerUI

### cs-sstc-schema-assertion-01.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XML Spy v4.1 U (http://www.xmlspy.com) by Peter Reichstädter (CIO) -->
    <schema targetNamespace="urn:oasis:names:tc:SAML:1.0:assertion" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="unqualified">
        <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="W3C-XMLDSig.xsd"/>
        <annotation>
            <documentation>
                    Document identifier: cs-sstc-schema-assertion-01
                    Location: http://www.oasis-open.org/committees/security/docs/
                    </documentation>
        </annotation>
        <simpleType name="IDType">
            <restriction base="string"/>
        </simpleType>
        <simpleType name="IDReferenceType">
            <restriction base="string"/>
        </simpleType>
        <simpleType name="DecisionType">
            <restriction base="string">
                <enumeration value="Permit"/>
                <enumeration value="Deny"/>
                <enumeration value="Indeterminate"/>
            </restriction>
        </simpleType>
        <element name="AssertionIDReference" type="saml:IDReferenceType"/>
        <element name="Assertion" type="saml:AssertionType"/>
        <complexType name="AssertionType">
            <sequence>
                <element ref="saml:Conditions" minOccurs="0"/>
                <element ref="saml:Advice" minOccurs="0"/>
                <choice maxOccurs="unbounded">
                    <element ref="saml:Statement"/>
                    <element ref="saml:SubjectStatement"/>
                    <element ref="saml:AuthenticationStatement"/>
                    <element ref="saml:AuthorizationDecisionStatement"/>
                    <element ref="saml:AttributeStatement"/>
                </choice>
                <element ref="ds:Signature" minOccurs="0"/>
            </sequence>
            <attribute name="MajorVersion" type="integer" use="required"/>
            <attribute name="MinorVersion" type="integer" use="required"/>
            <attribute name="AssertionID" type="saml:IDType" use="required"/>
            <attribute name="Issuer" type="string" use="required"/>
            <attribute name="IssueInstant" type="dateTime" use="required"/>
        </complexType>
        <element name="Conditions" type="saml:ConditionsType"/>
        <complexType name="ConditionsType">
            <choice minOccurs="0" maxOccurs="unbounded">
                <element ref="saml:AudienceRestrictionCondition"/>
                <element ref="saml:Condition"/>
            </choice>
            <attribute name="NotBefore" type="dateTime" use="optional"/>
            <attribute name="NotOnOrAfter" type="dateTime" use="optional"/>
        </complexType>
        <element name="Condition" type="saml:ConditionAbstractType"/>
        <complexType name="ConditionAbstractType" abstract="true"/>
        <element name="AudienceRestrictionCondition" type="saml:AudienceRestrictionConditionType"/>
        <complexType name="AudienceRestrictionConditionType">
            <complexContent>
                <extension base="saml:ConditionAbstractType">
                    <sequence>
                        <element ref="saml:Audience" maxOccurs="unbounded"/>
                    </sequence>
                </extension>
            </complexContent>
        </complexType>
        <element name="Audience" type="anyURI"/>
        <element name="Advice" type="saml:AdviceType"/>
        <complexType name="AdviceType">
            <choice minOccurs="0" maxOccurs="unbounded">
                <element ref="saml:AssertionIDReference"/>
                <element ref="saml:Assertion"/>
                <any namespace="##other" processContents="lax"/>
            </choice>
        </complexType>
        <element name="Statement" type="saml:StatementAbstractType"/>
        <complexType name="StatementAbstractType" abstract="true"/>
        <element name="SubjectStatement" type="saml:SubjectStatementAbstractType"/>
        <complexType name="SubjectStatementAbstractType" abstract="true">
            <complexContent>
                <extension base="saml:StatementAbstractType">
                    <sequence>
                        <element ref="saml:Subject"/>
                    </sequence>
                </extension>
            </complexContent>
        </complexType>
        <element name="Subject" type="saml:SubjectType"/>
        <complexType name="SubjectType">
            <choice>
                <sequence>
                    <element ref="saml:NameIdentifier"/>
                    <element ref="saml:SubjectConfirmation" minOccurs="0"/>
                </sequence>
                <element ref="saml:SubjectConfirmation"/>
            </choice>
        </complexType>
        <element name="NameIdentifier" type="saml:NameIdentifierType"/>
        <complexType name="NameIdentifierType">
            <simpleContent>
                <extension base="string">
                    <attribute name="NameQualifier" type="string" use="optional"/>
                    <attribute name="Format" type="anyURI" use="optional"/>
                </extension>
            </simpleContent>
        </complexType>
        <element name="SubjectConfirmation" type="saml:SubjectConfirmationType"/>
        <complexType name="SubjectConfirmationType">
            <sequence>
                <element ref="saml:ConfirmationMethod" maxOccurs="unbounded"/>
                <element ref="saml:SubjectConfirmationData" minOccurs="0"/>
                <element ref="ds:KeyInfo" minOccurs="0"/>
            </sequence>
        </complexType>
        <element name="SubjectConfirmationData" type="anyType"/>
        <element name="ConfirmationMethod" type="anyURI"/>
        <element name="AuthenticationStatement" type="saml:AuthenticationStatementType"/>
        <complexType name="AuthenticationStatementType">
            <complexContent>
                <extension base="saml:SubjectStatementAbstractType">
                    <sequence>
                        <element ref="saml:SubjectLocality" minOccurs="0"/>
                        <element ref="saml:AuthorityBinding" minOccurs="0" maxOccurs="unbounded"/>
                    </sequence>
                    <attribute name="AuthenticationMethod" type="anyURI" use="required"/>
                    <attribute name="AuthenticationInstant" type="dateTime" use="required"/>
                </extension>
            </complexContent>
        </complexType>
        <element name="SubjectLocality" type="saml:SubjectLocalityType"/>
        <complexType name="SubjectLocalityType">
            <attribute name="IPAddress" type="string" use="optional"/>
            <attribute name="DNSAddress" type="string" use="optional"/>
        </complexType>
        <element name="AuthorityBinding" type="saml:AuthorityBindingType"/>
        <complexType name="AuthorityBindingType">
            <attribute name="AuthorityKind" type="QName" use="required"/>
            <attribute name="Location" type="anyURI" use="required"/>
            <attribute name="Binding" type="anyURI" use="required"/>
        </complexType>
        <element name="AuthorizationDecisionStatement" type="saml:AuthorizationDecisionStatementType"/>
        <complexType name="AuthorizationDecisionStatementType">
            <complexContent>
                <extension base="saml:SubjectStatementAbstractType">
                    <sequence>
                        <element ref="saml:Action" maxOccurs="unbounded"/>
                        <element ref="saml:Evidence" minOccurs="0"/>
                    </sequence>
                    <attribute name="Resource" type="anyURI" use="required"/>
                    <attribute name="Decision" type="saml:DecisionType" use="required"/>
                </extension>
            </complexContent>
        </complexType>
        <element name="Action" type="saml:ActionType"/>
        <complexType name="ActionType">
            <simpleContent>
                <extension base="string">
                    <attribute name="Namespace" type="anyURI"/>
                </extension>
            </simpleContent>
        </complexType>
        <element name="Evidence" type="saml:EvidenceType"/>
        <complexType name="EvidenceType">
            <choice maxOccurs="unbounded">
                <element ref="saml:AssertionIDReference"/>
                <element ref="saml:Assertion"/>
            </choice>
        </complexType>
        <element name="AttributeStatement" type="saml:AttributeStatementType"/>
        <complexType name="AttributeStatementType">
            <complexContent>
                <extension base="saml:SubjectStatementAbstractType">
                    <sequence>
                        <element ref="saml:Attribute" maxOccurs="unbounded"/>
                    </sequence>
                </extension>
            </complexContent>
        </complexType>
        <element name="AttributeDesignator" type="saml:AttributeDesignatorType"/>
        <complexType name="AttributeDesignatorType">
            <attribute name="AttributeName" type="string" use="required"/>
            <attribute name="AttributeNamespace" type="anyURI" use="required"/>
        </complexType>
        <element name="Attribute" type="saml:AttributeType"/>
        <complexType name="AttributeType">
            <complexContent>
                <extension base="saml:AttributeDesignatorType">
                    <sequence>
                        <element ref="saml:AttributeValue" maxOccurs="unbounded"/>
                    </sequence>
                </extension>
            </complexContent>
        </complexType>
        <element name="AttributeValue" type="anyType"/>
    </schema>

### dual_mypersondata_en.xsd

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xs:schema xmlns="http://reference.e-government.gv.at/namespace/persondata/20130121#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://reference.e-government.gv.at/namespace/persondata/20130121#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.0">
        <!--  <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="W3C-XMLDSig.xsd"/> -->
        <xs:annotation>
            <xs:documentation>This version of person deploys only global elements. All types derived from abstract types have been replaced by substitution groups</xs:documentation>
        </xs:annotation>
        <!-- ### signed structure of a person  ### -->
        <xs:element name="AbstractPersonData" type="AbstractPersonType">
            <xs:annotation>
                <xs:documentation>dummy abstract Peson Data element needed for bi-lingual schema (substitution groups)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="PersonData" type="PersonDataType">
            <xs:annotation>
                <xs:documentation>element of signed person datastructure type</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!-- ### base type for person data ### -->
        <xs:element name="Person" type="AbstractPersonType"/>
        <!-- ### physical person and corporate body ### -->
        <xs:element name="PhysicalPerson" type="PhysicalPersonType" substitutionGroup="Person">
            <xs:annotation>
                <xs:documentation>element of physical person type, dreived from Person (abstract)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="CorporateBody" type="CorporateBodyType" substitutionGroup="Person">
            <xs:annotation>
                <xs:documentation>element of corporate body type, derived from Person</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Name" type="PersonNameType">
            <xs:annotation>
                <xs:documentation>data related to the person's name</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DateOfBirth" type="xs:date">
            <xs:annotation>
                <xs:documentation>date of birth, compare Geburtsdatum</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!-- ### adress data for various types of communications ### -->
        <xs:element name="Address" type="AbstractAddressType"/>
        <xs:element name="PostalAddress" type="PostalAddressType" substitutionGroup="Address">
            <xs:annotation>
                <xs:documentation>Postal or ZMR Address, compare PostAdresse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="InternetAddress" type="InternetAddressType" substitutionGroup="Address">
            <xs:annotation>
                <xs:documentation>element of internet address type</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!--### Complex types ###-->
        <xs:complexType name="PersonDataType">
            <xs:annotation>
                <xs:documentation>signed person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements).</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="Person"/>
                <xs:element ref="Address" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="TelephoneAddress" type="TelephoneAddressType" substitutionGroup="Address">
            <xs:annotation>
                <xs:documentation>element of TelephoneAddressType, compare TelefonAdresse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="TelephoneAddressType">
            <xs:annotation>
                <xs:documentation>phone numbers</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="AbstractAddressType">
                    <xs:sequence minOccurs="0">
                        <xs:element name="Number" type="TelcomNumberType">
                            <xs:annotation>
                                <xs:documentation>phonenumber</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="TelcomNumberType">
            <xs:choice>
                <xs:element ref="FormattedNumber"/>
            </xs:choice>
        </xs:complexType>
        <xs:element name="FormattedNumber" type="xs:string">
            <xs:annotation>
                <xs:documentation>Complete Number ready formated, comapre FormatierteNummer</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="IdentificationType">
            <xs:annotation>
                <xs:documentation>unique identifier</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="Value">
                    <xs:annotation>
                        <xs:documentation>actual value of the identifier.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="Id" type="xs:ID" use="optional"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Type" type="xs:anyURI">
                    <xs:annotation>
                        <xs:documentation>type of valueas a urn e.g. urn:publicid:gv.at:cdid+ZS</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
            <xs:anyAttribute namespace="##other"/>
        </xs:complexType>
        <xs:complexType name="AbstractPersonType">
            <xs:annotation>
                <xs:documentation>main structure of person data</xs:documentation>
            </xs:annotation>
            <xs:choice minOccurs="0">
                <xs:element name="Identification" type="IdentificationType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>ERV code, bPK, ZbPK, vZbPK goes here</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
            <xs:anyAttribute namespace="##other"/>
        </xs:complexType>
        <xs:complexType name="PhysicalPersonType">
            <xs:annotation>
                <xs:documentation>physical person</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="AbstractPersonType">
                    <xs:sequence minOccurs="0">
                        <xs:element ref="Name"/>
                        <xs:element ref="DateOfBirth" minOccurs="0"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="PersonNameType">
            <xs:sequence>
                <xs:element name="GivenName" type="xs:string"/>
                <xs:element name="FamilyName">
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="primary" default="undefined">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:enumeration value="true"/>
                                            <xs:enumeration value="false"/>
                                            <xs:enumeration value="undefined"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <xs:attribute name="prefix" type="xs:string"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="prefixTitle" type="xs:string"/>
            <xs:attribute name="postfixTitle" type="xs:string"/>
        </xs:complexType>
        <xs:complexType name="CorporateBodyType">
            <xs:annotation>
                <xs:documentation>juridical person, organisation</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="AbstractPersonType">
                    <xs:sequence minOccurs="0">
                        <xs:element name="FullName" type="xs:token">
                            <xs:annotation>
                                <xs:documentation>name of corporate body (whole name), compare VollerName</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Organization" type="xs:token" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>part of an organisation, see also X.500 ou (eg departement, section, branch, ...) , compare Organisation</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="ForAttentionOf" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>zu Handen</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="Identification" type="IdentificationType" minOccurs="0">
                                        <xs:annotation>
                                            <xs:documentation>ERV code, bPK, ZbPK, vZbPK goes here</xs:documentation>
                                        </xs:annotation>
                                    </xs:element>
                                    <xs:element name="Department" type="xs:string" minOccurs="0"/>
                                    <xs:element name="GivenName" type="xs:string" minOccurs="0"/>
                                    <xs:element name="FamilyName" minOccurs="0">
                                        <xs:complexType>
                                            <xs:simpleContent>
                                                <xs:extension base="xs:string">
                                                    <xs:attribute name="primary" default="undefined">
                                                        <xs:simpleType>
                                                            <xs:restriction base="xs:string">
                                                                <xs:enumeration value="true"/>
                                                                <xs:enumeration value="false"/>
                                                                <xs:enumeration value="undefined"/>
                                                            </xs:restriction>
                                                        </xs:simpleType>
                                                    </xs:attribute>
                                                    <xs:attribute name="prefix" type="xs:string"/>
                                                </xs:extension>
                                            </xs:simpleContent>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="AbstractAddressType">
            <xs:annotation>
                <xs:documentation>main structure of address data</xs:documentation>
            </xs:annotation>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
            <xs:anyAttribute namespace="##other"/>
        </xs:complexType>
        <xs:complexType name="PostalAddressType">
            <xs:complexContent>
                <xs:extension base="AbstractAddressType">
                    <xs:sequence>
                        <xs:element name="CountryCode" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Code for the country, use ISO or internatinal Postalstandard, compare Staatscode</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:pattern value="[A-Z]{2}"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="PostalCode" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>ZIP, compare Postleitzahl</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Municipality" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>compare Gemeinde</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="DeliveryAddress">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="StreetName" type="xs:string"/>
                                    <xs:element name="BuildingNumber" type="xs:string"/>
                                    <xs:element name="Unit" type="xs:string" minOccurs="0">
                                        <xs:annotation>
                                            <xs:documentation>Stiege oder näheren Bezeichnung wie z.b. Werkstatt</xs:documentation>
                                        </xs:annotation>
                                    </xs:element>
                                    <xs:element name="DoorNumber" type="xs:string" minOccurs="0"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="InternetAddressType">
            <xs:annotation>
                <xs:documentation>internet based communication</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="AbstractAddressType">
                    <xs:sequence minOccurs="0">
                        <xs:element name="Address" type="xs:anyURI">
                            <xs:annotation>
                                <xs:documentation>URI: email-Address, Web, FTP, LDAP, ..., comapre Adress</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="ReplyToAddress" type="xs:boolean">
                        <xs:annotation>
                            <xs:documentation>Gibt an ob es sich um eine Antwortadresse handelt (z.B. für Versender)</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <!-- ### strings of defined maximum lenght for use with ZMR address #### -->
        <xs:simpleType name="DateOfBirthType">
            <xs:annotation>
                <xs:documentation>simple type for dates (union), which may omit day and/or month</xs:documentation>
            </xs:annotation>
            <xs:union memberTypes="xs:date xs:gYearMonth xs:gYear"/>
        </xs:simpleType>
    </xs:schema>

### DualeZustellung_Notification.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by Arne Tauber (Technische Universität Graz) -->
    <xs:schema xmlns:dd="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" xmlns:ddn="http://reference.e-government.gv.at/namespace/zustellung/dual_notification/20130121#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:p="http://reference.e-government.gv.at/namespace/persondata/20130121#" xmlns:zuse="http://reference.e-government.gv.at/namespace/zustellung/msg" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/dual_notification/20130121#" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/msg" schemaLocation="zuse.xsd"/>
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" schemaLocation="DualeZustellung.xsd"/>
        <xs:element name="DualNotificationRequest">
            <xs:annotation>
                <xs:documentation>Asynchrone Rückmeldung der Weiche an die Versenderapllikation über eine Statusänderung der Sendung (Versendet, Angenommen, Frist etc.)</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="ddn:DualNotificationRequestType"/>
                </xs:complexContent>
            </xs:complexType>
        </xs:element>
        <xs:element name="DualNotificationResponse" type="ddn:DualNotificationResponseType">
            <xs:annotation>
                <xs:documentation>Acknowlegde der Versenderapplikation über die erfolgreiche Verarbeitung der Notification</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="StatusRequest" type="ddn:StatusRequestType">
            <xs:annotation>
                <xs:documentation>Statusabfrage für eine Sendung (kann auch ein Bulk-Container sein) durch den Versender </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="StatusResponse" type="ddn:DualNotificationRequestType">
            <xs:annotation>
                <xs:documentation>Aktueller Status der Nachricht als Antwort auf die Statusabfrage</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DualNotificationRequestType">
            <xs:annotation>
                <xs:documentation>Type für: Asynchrone Rückmeldung der Weiche an die Versenderapllikation über eine Statusänderung der Sendung (Versendet, Angenommen, Frist etc.)</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="dd:AppDeliveryID"/>
                <xs:element ref="dd:DualDeliveryID" minOccurs="0"/>
                <xs:element name="Result" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Das Ergebnis der Zustellung.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:choice>
                            <xs:element ref="ddn:NotificationChannel">
                                <xs:annotation>
                                    <xs:documentation>Der Zustellkanal, für den diese Notofication versendet wird.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element ref="dd:Error">
                                <xs:annotation>
                                    <xs:documentation>Element im Fehlerfall vorhanden</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="ddn:AdditionalResults" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="ManipulatedPayloads" type="dd:ManipulatedPayloadsType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Zurücklieferung von manipulierten Payload (z.B. ASS oder Rendering) für den Fall der asyncronen Verarbeitung.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="dd:Status"/>
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>Gibt an, um Welche Schemaversion es sich handelt.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
        <xs:element name="NotificationChannel">
            <xs:annotation>
                <xs:documentation>Kanal/Kanäle für den die Notification gilt</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="ddn:NotificationChannelSet"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="NotificationChannelSet" type="ddn:NotificationChannelSetType">
            <xs:annotation>
                <xs:documentation>Kanal/Kanäle für den die Notification gilt</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="NotificationChannelSetType">
            <xs:annotation>
                <xs:documentation>Parametergruppe</xs:documentation>
            </xs:annotation>
        </xs:complexType>
        <xs:complexType name="DualNotificationResponseType">
            <xs:annotation>
                <xs:documentation>Type für: Acknowlegde der Versenderapplikation über die erfolgreiche Verarbeitung der Notification</xs:documentation>
            </xs:annotation>
            <xs:choice>
                <xs:element name="Success">
                    <xs:annotation>
                        <xs:documentation>Element im Erfolgsfall vorhanden</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:string"/>
                    </xs:simpleType>
                </xs:element>
                <xs:element ref="dd:Error">
                    <xs:annotation>
                        <xs:documentation>Element im Fehlerfall vorhanden</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:attribute name="version" type="xs:string" use="required"/>
        </xs:complexType>
        <xs:element name="EDeliveryNotification" type="ddn:EDeliveryNotificationType" substitutionGroup="ddn:NotificationChannelSet">
            <xs:annotation>
                <xs:documentation>Rückmeldung der elektronischen Zustellung.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="OtherNotification" type="ddn:OtherNotificationType" substitutionGroup="ddn:NotificationChannelSet">
            <xs:annotation>
                <xs:documentation>Platzhalter für weitere Rückmeldungen.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="PostalNotification" type="ddn:PostalNotificationType" substitutionGroup="ddn:NotificationChannelSet">
            <xs:annotation>
                <xs:documentation>Informationen von der Druckstraße über die erfolgreiche Übergabe der Zustellung an die Post.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="EDeliveryNotificationType">
            <xs:annotation>
                <xs:documentation>Notification für elektronische Zustellung</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="ddn:NotificationChannelSetType">
                    <xs:sequence>
                        <xs:element ref="zuse:DeliveryNotification"/>
                        <xs:element name="BinaryDeliveryNotification" type="xs:base64Binary">
                            <xs:annotation>
                                <xs:documentation>Enthält die gleiche Info wie das Element "zuse:DeliveryNotification" jedoch base64 codiert. Hintergrund: durch die XML Parser und die Transformation der XML Strukturen wird bei vielen XML-Tools ansonst die Signatur zerstört. </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="OtherNotificationType">
            <xs:annotation>
                <xs:documentation>Allgemeine Notification für im Schema nicht im speziellen berücksichtigten Kanäle</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="ddn:NotificationChannelSetType">
                    <xs:sequence>
                        <xs:element name="NotificationInformation" type="dd:ExtensionPointType"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="PostalNotificationType">
            <xs:annotation>
                <xs:documentation>Notification für physische Zustellung</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="ddn:NotificationChannelSetType">
                    <xs:sequence>
                        <xs:element name="Pages" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Seitenzahl</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:long">
                                    <xs:totalDigits value="6"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="Printtime" type="xs:dateTime" nillable="true" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Druckdatum und -zeit</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="PrintType" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Art des Druckes  (DUP - Duplex, SIM - Simplex)</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:enumeration value="DUP"/>
                                    <xs:enumeration value="SIM"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="Weight" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Gewicht der Sendung (Inhalt plus Kuvert)</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:maxLength value="13"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="EnvelopeType" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Kuvertyp</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:maxLength value="3"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="PostalDeliveryTime" type="xs:dateTime" nillable="true" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Übergabezeitpunkt an die Post</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="ServiceDeliveryTime" type="xs:dateTime" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Übergabezeitpunkt an die Druckstraße</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Sheets" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Anzahl der Bögen/Blätter
    Anmerkung: Im Druckjargon ist ein Blatt eine A3-Format, auf das abhängig von der Druckart (simplex, duplex) bis zu 4 A4-Seiten gedruckt werden können.</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:long">
                                    <xs:totalDigits value="10"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="PaymentForms" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Anzahl der Zahlscheine</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:int">
                                    <xs:totalDigits value="3"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="Costs" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Kosten</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:choice>
                                    <xs:element name="TotalCosts" type="xs:decimal">
                                        <xs:annotation>
                                            <xs:documentation>Die Gesamtkosten, falls keine Aufteilung möglich ist.</xs:documentation>
                                        </xs:annotation>
                                    </xs:element>
                                    <xs:element name="DetailedCosts">
                                        <xs:annotation>
                                            <xs:documentation>Die aufgeschlüsselten Kosten der postalischen Zustellung.</xs:documentation>
                                        </xs:annotation>
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="PrintingCosts" type="xs:decimal" minOccurs="0"/>
                                                <xs:element name="HandlingCosts" type="xs:decimal" minOccurs="0"/>
                                                <xs:element name="PostageCosts" type="xs:decimal" minOccurs="0"/>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:choice>
                            </xs:complexType>
                        </xs:element>
                        <xs:element ref="ddn:AdditonalPrintResults" minOccurs="0" maxOccurs="unbounded">
                            <xs:annotation>
                                <xs:documentation>Weitere Rückmeldungen der Druckstraße.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="DelivererInformation" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Informationen über den verwendeten Zusteller.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="Deliverer" type="xs:token"/>
                                    <xs:element name="DelivererReference" type="xs:string" minOccurs="0"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="ScannedData" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Für den Fall, dass der Dienstleister die Rückscheine einscannt, wird hier das Dokument mitgeliefert. Außerdem können hier die Scans des hybriden Rückscheinbriefs mitgeliefert werden.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="BinaryDocument" minOccurs="0">
                                        <xs:complexType>
                                            <xs:complexContent>
                                                <xs:extension base="dd:BinaryDocumentType">
                                                    <xs:attribute name="MIMEType" use="required"/>
                                                </xs:extension>
                                            </xs:complexContent>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element name="ExtractedMetaData" type="dd:ExtensionPointType" minOccurs="0">
                                        <xs:annotation>
                                            <xs:documentation>Wenn aus den gescannten Dokumenten Informationen gewonnen werden können, so können diese hier eingebettet werden.</xs:documentation>
                                        </xs:annotation>
                                    </xs:element>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="StatusRequestType">
            <xs:annotation>
                <xs:documentation>Type für Statusrequest</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="dd:ApplicationID" minOccurs="0"/>
                <xs:element ref="dd:AppDeliveryID"/>
                <xs:element ref="dd:DualDeliveryID" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="AdditionalResults">
            <xs:annotation>
                <xs:documentation>TODO: Genauere Spezifikation der Erweiterungen notwendig</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence maxOccurs="unbounded">
                    <xs:element ref="ddn:AdditonalResultSet"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="AdditonalResultSet" type="ddn:AdditonalResultSetType"/>
        <xs:complexType name="AdditonalResultSetType">
            <xs:annotation>
                <xs:documentation>Gruppe von Parametern</xs:documentation>
            </xs:annotation>
        </xs:complexType>
        <xs:element name="PropertyValueAdditonalResultSet" type="ddn:PropertyValueAdditonalResultSetType" substitutionGroup="ddn:AdditonalResultSet">
            <xs:annotation>
                <xs:documentation>Property Value Paare für weitere Ergebnisse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="PropertyValueAdditonalResultSetType">
            <xs:annotation>
                <xs:documentation>Property Value Paare für weitere Ergebnisse</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="ddn:AdditonalResultSetType">
                    <xs:sequence maxOccurs="unbounded">
                        <xs:element ref="dd:Parameter"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="AdditonalPrintResults">
            <xs:annotation>
                <xs:documentation>Rückmeldungen von der Druckstraße</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence maxOccurs="unbounded">
                    <xs:element ref="ddn:AdditionalPrintResultSet"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="AdditionalPrintResultSet" type="ddn:AdditionalPrintResultSetType">
            <xs:annotation>
                <xs:documentation>Rückmeldungen von der Druckstraße</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="AdditionalPrintResultSetType">
            <xs:annotation>
                <xs:documentation>Gruppe von Parametern</xs:documentation>
            </xs:annotation>
        </xs:complexType>
        <xs:element name="PropertyValuePrintResultSet" type="ddn:PropertyValuePrintResultSetType" substitutionGroup="ddn:AdditionalPrintResultSet">
            <xs:annotation>
                <xs:documentation>Property Value Paare für Rückmeldungen von der Druckstraße</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="PropertyValuePrintResultSetType">
            <xs:annotation>
                <xs:documentation>Property Value Paare für Rückmeldungen von der Druckstraße</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="ddn:AdditionalPrintResultSetType">
                    <xs:sequence maxOccurs="unbounded">
                        <xs:element ref="dd:Parameter"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:schema>

### DualeZustellung.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by Arne Tauber (Technische Universität Graz) -->
    <xs:schema xmlns:dd="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" xmlns:ebi="http://www.ebinterface.at/schema/4p0/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:p="http://reference.e-government.gv.at/namespace/persondata/20130121#" xmlns:egiz="uri:egiz.additional.params/20130121#" xmlns:zuse="http://reference.e-government.gv.at/namespace/zustellung/msg" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:import namespace="http://reference.e-government.gv.at/namespace/persondata/20130121#" schemaLocation="dual_mypersondata_en.xsd"/>
        <xs:import namespace="uri:general.additional.params/20130121#" schemaLocation="general-additonal-parameter.xsd"/>
        <xs:import namespace="http://www.ebinterface.at/schema/4p0/" schemaLocation="ebinterface-4.0.xsd"/>
        <xs:element name="DualDeliveryRequest">
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="dd:DualDeliveryRequestType"/>
                </xs:complexContent>
            </xs:complexType>
        </xs:element>
        <xs:element name="DualDeliveryResponse">
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="dd:DualDeliveryResponseType"/>
                </xs:complexContent>
            </xs:complexType>
        </xs:element>
        <xs:element name="Payload" type="dd:PayloadType"/>
        <xs:complexType name="DualDeliveryRequestType">
            <xs:annotation>
                <xs:documentation>Root Element des dualen Zustellrequests</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="dd:Sender" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Der Absender der Aussendung.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:choice>
                    <xs:element ref="dd:RecipientID"/>
                    <xs:element ref="dd:Recipient">
                        <xs:annotation>
                            <xs:documentation>Empfänger der Sendung</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:choice>
                <xs:element name="MetaData">
                    <xs:annotation>
                        <xs:documentation>Metadaten</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="dd:AppDeliveryID"/>
                            <xs:element ref="dd:ApplicationID" minOccurs="0"/>
                            <xs:element ref="dd:DeliveryQuality">
                                <xs:annotation>
                                    <xs:documentation>Zustellqualität, bspw. RSa, nonRSa, RSb, RSa+, RS</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Subject" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Betreff</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element ref="dd:GZ" minOccurs="0"/>
                            <xs:element name="Payments" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Zahlungsinformationen</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Payment" maxOccurs="unbounded">
                                            <xs:annotation>
                                                <xs:documentation>@postserver.at: Bitte Verfahrensvorschriften befügen, wie ebi:Invoice zu befüllen ist, um östrr. Zahlschein abbilden zu können. Sollte zwingend eine bereits bestehende Spezifikation aus dem Bankwesen oder der Wirtschaft sein, um nicht einen weiteren Standard zu erfinden.</xs:documentation>
                                            </xs:annotation>
                                            <xs:complexType>
                                                <xs:choice>
                                                    <xs:element ref="dd:PaymentForm">
                                                        <xs:annotation>
                                                            <xs:documentation>Zahlscheindaten, muss alle Informationen für Erlegsscheine und E-Zahlung enthalten. zB EPS</xs:documentation>
                                                        </xs:annotation>
                                                    </xs:element>
                                                    <xs:element ref="ebi:Invoice"/>
                                                </xs:choice>
                                                <xs:attribute name="Printout" type="xs:boolean">
                                                    <xs:annotation>
                                                        <xs:documentation>Falls gesetzt, muss im Falle einer postalischen Zustellung ein druckbarer Zahlschein erzeugt werden</xs:documentation>
                                                    </xs:annotation>
                                                </xs:attribute>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element ref="dd:AdditionalMetaData" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Weitere Metadaten</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element ref="dd:TestCase" minOccurs="0"/>
                            <xs:element ref="dd:ProcessingProfile" minOccurs="0"/>
                            <xs:element ref="dd:DocumentClass" minOccurs="0"/>
                            <xs:element ref="dd:Asynchronous" minOccurs="0"/>
                            <xs:element ref="dd:BulkId" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Eindeutige (Bulk-) Zustell-ID; ID zur Identifizierung eines übergeordneten Verarbeitungslaufs. Die ID wurde zuvor von der Dualen Zustellung mit Hilfe des Bulkrequests erzeugt.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element ref="dd:User" minOccurs="0"/>
                            <xs:element ref="dd:BillingToken" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Verrechnungsinformation; SAP Konto, Auftragsnr, etc...</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Preview" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Anforderung einer Vorschau vom dualen Zustellservice</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="URL" type="xs:anyURI"/>
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="dd:DeliveryChannels"/>
                <xs:element ref="dd:Payload" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Die Zuzustellenden Dokumente der Sendung.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>Gibt an, um Welche Schemaversion es sich handelt.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
        <xs:element name="AuthorizationId" type="xs:string">
            <xs:annotation>
                <xs:documentation>Authorisierungszuordnungsdaten zur Protokollierung (und ggf. für Authorisierung, falls vom Fremdsystem gefordert). Der Inhalt kann ein PVP-Header sein, oder der Benutzer und/oder TenanntId und/oder weitere Credentials sein.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DocumentClass" type="xs:token">
            <xs:annotation>
                <xs:documentation>Dokumentenklasse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Asynchronous" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Bei Angabe des Elements Asynchronous wird der Zustellauftrag entgegengenommen, geprüft (Schemaprüfung und fachliche Prüfung soweit zu diesem Zeitpunkt möglich) und verspeichert. In der synchronen Antwort wird die DualDeliveryID zurückgegeben. Sämtliche weiteren Verarbeitungsschritte (Signatur, Kanaladressierungsabfragen, Kanalansteuerung etc.) erfolgen asynchron. Der Sender wird über den Verlauf der asynchronen Schritte notifiziert (Versendet, der Druckstaße übergeben, etc. z.B. per Callback-WS)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="BulkId" type="xs:long">
            <xs:annotation>
                <xs:documentation>ID zur Identifizierung eines übergeordneten Verarbeitungslaufs.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="User" type="xs:string">
            <xs:annotation>
                <xs:documentation>Der Benutzer der Anwendung, welcher den Request ausgeloest hat.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="BillingToken" type="xs:token">
            <xs:annotation>
                <xs:documentation>Verrechnungsinformation.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="TestCase" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Angabe, ob es sich bei diesem Request um einen Test handelt. </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="ProcessingProfile">
            <xs:annotation>
                <xs:documentation>In diesem Profil sind Verarbeitungsvorschriften hinterlegt die festlegen welche Zustellkanäle in welcher Reihenfolge aufgerufen werden. Ferner legt das Profil auch fest welche XML-Schemata ein Client valdieren können muss, um mit der Dualen Zustellweiche kommunizieren zu können. D.h. auch die XSDs der verwendenten Erweiterungen (Stichwort Substitution Group)</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:simpleContent>
                    <xs:extension base="xs:string">
                        <xs:attribute name="version" type="xs:string" use="optional">
                            <xs:annotation>
                                <xs:documentation>Die Verison des MessageProfils.</xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                    </xs:extension>
                </xs:simpleContent>
            </xs:complexType>
        </xs:element>
        <xs:element name="Sender" type="dd:SenderType"/>
        <xs:element name="SenderProfile">
            <xs:annotation>
                <xs:documentation>Im dualen Zustellsystem hinterlegte ID des Senders</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:simpleContent>
                    <xs:extension base="xs:token">
                        <xs:attribute name="version" type="xs:token" use="optional">
                            <xs:annotation>
                                <xs:documentation>Version des Senderprofils</xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                    </xs:extension>
                </xs:simpleContent>
            </xs:complexType>
        </xs:element>
        <xs:complexType name="SenderType">
            <xs:sequence>
                <xs:element ref="dd:SenderProfile"/>
                <xs:element name="SenderData" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Daten des Versenders, falls die Angaben des Profils übersteuert werden sollen.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:complexContent>
                            <xs:extension base="p:PersonDataType"/>
                        </xs:complexContent>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="dd:Parameters" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Zusätzliche Parameter des Absenders.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="Recipient" type="dd:RecipientType">
            <xs:annotation>
                <xs:documentation>Empfänger</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="RecipientType">
            <xs:sequence>
                <xs:element name="RecipientData" type="p:PersonDataType">
                    <xs:annotation>
                        <xs:documentation>EmpfängerDaten</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="dd:Parameters" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Zusätzliche Parameter des Empfängers.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="DualDeliveryResponseType">
            <xs:annotation>
                <xs:documentation>Antwort auf den dualen Zustellrequest</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="dd:AppDeliveryID"/>
                <xs:element ref="dd:Status">
                    <xs:annotation>
                        <xs:documentation>Der Status der Verabeitung.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="dd:DualDeliveryID" minOccurs="0"/>
                <xs:element ref="dd:AdditionalMetaData" minOccurs="0"/>
                <xs:element name="UsedDeliveryChannels" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Die verwendeten Zustellkanäle</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="dd:UsedDeliveryChannel" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="ManipulatedPayloads" type="dd:ManipulatedPayloadsType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Zurücklieferung von manipulierten Payload (z.B. ASS oder Rendering) für den Fall der syncronen Verarbeitung.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="dd:Errors" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Fehelrmeldungen zum Request.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>Gibt an, um Welche Schemaversion es sich handelt.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
        <xs:complexType name="ManipulatedPayloadsType">
            <xs:sequence>
                <xs:element name="ManipulatedPayload" type="dd:PayloadType" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="UsedDeliveryChannel" type="dd:UsedDeliveryChannelType"/>
        <xs:complexType name="UsedDeliveryChannelType">
            <xs:sequence>
                <xs:element name="Name" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>Der Name des Zustellkanals</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="dd:Status">
                    <xs:annotation>
                        <xs:documentation>der Status der Verabritung des Zustellkanals</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="dd:Parameters" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Zusätzliche Pakamater, die der Zustellkanal zurückliefert.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="dd:Errors" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>fehler beim konkreten Zustellkanal.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="Errors" type="dd:ErrorsType"/>
        <xs:complexType name="ErrorsType">
            <xs:sequence>
                <xs:element ref="dd:Error" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="PayloadType">
            <xs:sequence>
                <xs:element ref="dd:PayloadAttributes">
                    <xs:annotation>
                        <xs:documentation>Die Metainformationen zu einem Dokument</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="dd:Document">
                    <xs:annotation>
                        <xs:documentation>SubstitutionGroup, welche die Anlieferungsart des Dokuments beinhaltet. Lässt sich anbieterabhängig erweitern.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="Document" type="dd:DocumentType"/>
        <xs:complexType name="DocumentType"/>
        <xs:element name="BinaryDocument" type="dd:BinaryDocumentType" substitutionGroup="dd:Document">
            <xs:annotation>
                <xs:documentation>Das Dokument ist im Request eingebettet.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="BinaryDocumentType">
            <xs:complexContent>
                <xs:extension base="dd:DocumentType">
                    <xs:sequence>
                        <xs:element name="Content" type="xs:base64Binary"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="DocumentReference" type="dd:DocumentReferenceType" substitutionGroup="dd:Document">
            <xs:annotation>
                <xs:documentation>Referenz auf das Dokument, wo dieses bezogen werden kann.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DocumentReferenceType">
            <xs:complexContent>
                <xs:extension base="dd:DocumentType">
                    <xs:sequence>
                        <xs:element name="URL" type="xs:anyURI"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="LocalFileReference" type="dd:LocalFileReferenceType" substitutionGroup="dd:Document">
            <xs:annotation>
                <xs:documentation>Ist für file-basierte Massendaten-Services gedacht. Ist eine Referenz auf das lokale Filesystem, in welchem sich das Dokument befindet. Die Angabe erfolgt relativ zu einem im Profil hinterlegtem Pfad.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="LocalFileReferenceType">
            <xs:complexContent>
                <xs:extension base="dd:DocumentType">
                    <xs:sequence>
                        <xs:element name="File" type="xs:string"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="IdReference" type="dd:IdReferenceType" substitutionGroup="dd:Document">
            <xs:annotation>
                <xs:documentation>Ist für Massendaten-Services gedacht. Ist eine Referenz auf eine Datei, welche bereits im Rahmen eines Massenauftrags übergeben wurde. Die Angabe erfolgt über Referenzierung der Dokumenten-Id.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="IdReferenceType">
            <xs:complexContent>
                <xs:extension base="dd:DocumentType">
                    <xs:sequence>
                        <xs:element name="Id" type="xs:string"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="AdditionalMetaData">
            <xs:annotation>
                <xs:documentation>Erweiterung der ZUSE-Spezifikation durch das BKA</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence maxOccurs="unbounded">
                    <xs:element ref="dd:AdditionalMetaDataSet">
                        <xs:annotation>
                            <xs:documentation>Substitutiongroup, welche Anbieterabhängig erweitert werden kann, um zusätzliche Funktionalitäten anzubieten.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="AdditionalMetaDataSet" type="dd:AdditionalMetaDataSetType"/>
        <xs:complexType name="AdditionalMetaDataSetType">
            <xs:annotation>
                <xs:documentation>Gruppe von Parametern</xs:documentation>
            </xs:annotation>
        </xs:complexType>
        <xs:element name="DeliveryChannels">
            <xs:annotation>
                <xs:documentation>Angabe der Zustellkanäle</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence minOccurs="0" maxOccurs="unbounded">
                    <xs:element ref="dd:DeliveryChannelSet">
                        <xs:annotation>
                            <xs:documentation>Substitutiongroup mit Zustellkanälen, welche sich vom Anbieter erweitern lässt.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="PayloadAttributes" type="dd:PayloadAttributesType"/>
        <xs:complexType name="PayloadAttributesType">
            <xs:annotation>
                <xs:documentation>Allgemeine Eigenschaften eines Zustellstücks</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="Id" type="xs:ID" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Eindeutige ID des Dokuments</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="FileName" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Dateiname</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="MIMEType" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>MIME Typ, z.B. application/pdf</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Size" type="xs:positiveInteger" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Größein bytes</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="PageCount" type="xs:int" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Die Anzahl der Seiten des Dokuments. Dient Kontrollzwecken.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Checksum" type="dd:Checksum" minOccurs="0"/>
                <xs:element name="Index" type="xs:positiveInteger" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Reihung (Sortierung der Dokumente), falls nicht angegeben, werden die Dokumente in der Reihenfolge sortiert, wie sie im XML angegeben sind.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="dd:Parameters" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Zusätzliche Parameter zu diesem Dokument.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="dd:PrintParameter" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="Checksum">
            <xs:annotation>
                <xs:documentation>Prüfsumme</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="AlgorithmID" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>Hash Algorithmus, z.B. SHA-1, SHA-265, SHA-512</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Value" type="xs:base64Binary">
                    <xs:annotation>
                        <xs:documentation>Hashwert</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="DeliveryQuality" type="xs:token">
            <xs:annotation>
                <xs:documentation>Zustellqualität, bspw. RSa, nonRSa, RSb, RSa+</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="PaymentForm">
            <xs:annotation>
                <xs:documentation>Zahlscheindaten</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Receiver">
                        <xs:annotation>
                            <xs:documentation>Name des Zahlungsempfänger</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="240"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="ReceiverBank" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Name der Empfängerbank</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="240"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="Amount" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Betrag (letzten beiden Stellen - Kommastellen)</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:decimal">
                                <xs:totalDigits value="14"/>
                                <xs:fractionDigits value="2"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="Purpose" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Verwendungszweck</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="240"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="CustomerData" type="xs:string" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>15-stelliger numerischer Wert, der in der Lesezone angedruckt wird</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="ReadingArea" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Infos zur Lesezone:
    entweder Feld nicht vorhanden - dann Lesezone leer oder
    Inhalt gleich "KTO" - dann Aufbereitung Felder AccRec und BLZRec als Lesezonenfelder durch OCC oder
    Inhalt gleich "KTOAMO" - dann  Aufbereitung Felder AccRec, BLZRec und Amount als Lesezonenfelder durch OCC</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="KTO"/>
                                <xs:enumeration value="KTOAMO"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="Currency" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Währungscode</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="3"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element ref="dd:AccountInfo" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Kontodaten des Empfängers und des Einzahlers</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="DueDate" type="xs:dateTime" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Fälligkeitsdatum, das am Zahlschein aufgedruckt wird</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="DirectDebit" type="xs:boolean" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Erzeugt "Bitte nicht zahlen" Text am Zahlschein - Betrag wird vom Konto eingezogen</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="ParameterSet" minOccurs="0">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element ref="dd:Parameter" maxOccurs="unbounded"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="DeliveryChannelSet" type="dd:DeliveryChannelSetType"/>
        <xs:complexType name="DeliveryChannelSetType"/>
        <xs:element name="ElectronicDelivery" type="dd:ElectronicDeliveryType" substitutionGroup="dd:DeliveryChannelSet">
            <xs:annotation>
                <xs:documentation>Kanal für die elektronische Zustellung.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="ElectronicDeliveryType">
            <xs:complexContent>
                <xs:extension base="dd:DeliveryChannelSetType">
                    <xs:sequence>
                        <xs:element name="RequiresEncryption" type="xs:boolean" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Verschlüsselung notwendig (moazsspec)</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="DeliveryConfirmation" type="xs:boolean" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Übergabebestätigung, Aufgabeschein (zusemsg)</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="CustomNotificationIntervals" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Verständigungsintervalle für die private Zustellung.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="RecipientNotification" maxOccurs="unbounded">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="NotificationMethod" type="dd:token255">
                                                    <xs:annotation>
                                                        <xs:documentation>electronic or paperbased notification</xs:documentation>
                                                    </xs:annotation>
                                                </xs:element>
                                                <xs:element name="TimeSinceDisposal" type="xs:duration">
                                                    <xs:annotation>
                                                        <xs:documentation>Verständigungsintervall, Zeit seit Übergabe an den Zusztellserver in Tagen oder Stunden</xs:documentation>
                                                    </xs:annotation>
                                                </xs:element>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="PostalDelivery" type="dd:PostalDeliveryType" substitutionGroup="dd:DeliveryChannelSet">
            <xs:annotation>
                <xs:documentation>Kanal für die postalische Zustellung.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="PostalDeliveryType">
            <xs:complexContent>
                <xs:extension base="dd:DeliveryChannelSetType">
                    <xs:annotation>
                        <xs:documentation>Parameter für die postalische Zustellung</xs:documentation>
                    </xs:annotation>
                    <xs:sequence>
                        <xs:element ref="dd:Priority" minOccurs="0"/>
                        <xs:element ref="dd:EnvelopeFormat" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Kuvertyp</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="PrintType" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Art des Druckes  (DUP - Duplex, SIM - Simplex)</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:enumeration value="DUP"/>
                                    <xs:enumeration value="SIM"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="PaperFormat" type="xs:string" default="A4" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Papierformat: A4, A3, Dynamic (Default=A4)</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Color" type="xs:boolean" default="false" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Farbdruck (Default=false)</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="PrintedEnvelope" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Zusätzliche Informationen, die auf ein Kuvert angedruckt werden können.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="RsID" minOccurs="0">
                                        <xs:annotation>
                                            <xs:documentation>Rückschein Identifikation: Wenn das Feld nicht gesetzt ist wird die ApplicationDeliveryID verwendet</xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:maxLength value="40"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="Spec_Info_Adr" minOccurs="0">
                                        <xs:annotation>
                                            <xs:documentation>Zusätzliche  Informationen RS* Kuvert unterhalb des Adressblocks</xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:maxLength value="40"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="Spec_Info_Top" minOccurs="0">
                                        <xs:annotation>
                                            <xs:documentation>Zusätzliche Informationen RS* Kuvert oben</xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:maxLength value="40"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="Spec_Info_Center" minOccurs="0" maxOccurs="2">
                                        <xs:annotation>
                                            <xs:documentation>Zusätzliche Informationen RS* Kuvert mittig</xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:maxLength value="50"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="Spec_Info_Bottom" minOccurs="0">
                                        <xs:annotation>
                                            <xs:documentation>Zusätzliche Informationen RS* Kuvert unten</xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:maxLength value="50"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="Name_Row" minOccurs="0" maxOccurs="4">
                                        <xs:annotation>
                                            <xs:documentation>Namenszeile beim RSa bzw. Container für unstrukturierte bzw. vorerstellte Empfänger-/Adressdaten. </xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:maxLength value="40"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="Zustellverfuegung" type="xs:string" minOccurs="0"/>
                                    <xs:element name="ZustellverfuegungErgaenzung" type="xs:string" minOccurs="0">
                                        <xs:annotation>
                                            <xs:documentation>Nur wenn Zustellverfuegung = 99</xs:documentation>
                                        </xs:annotation>
                                    </xs:element>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                        <xs:element ref="dd:AdditionalPrintParameter" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Zusätzliche Printparameter</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="EMailDelivery" type="dd:EMailDeliveryType" substitutionGroup="dd:DeliveryChannelSet">
            <xs:annotation>
                <xs:documentation>Kanal für die E-Mai-Zustellung.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="EMailDeliveryType">
            <xs:complexContent>
                <xs:extension base="dd:DeliveryChannelSetType">
                    <xs:sequence>
                        <xs:element name="RegMail" type="xs:boolean" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Registered Mail = Bestätigung der Abholung</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="RegMailDepositUntil" type="xs:dateTime" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Zeitpunkt, bis wann das Zustellstück für Registered-Mail hinterlegt wird</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="MailBody" type="xs:base64Binary" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Inhalt des Mailtextes.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="MIMEType" type="xs:token" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Mimetype des Mailtextes.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="OtherDelivery" type="dd:OtherDeliveryType" substitutionGroup="dd:DeliveryChannelSet">
            <xs:annotation>
                <xs:documentation>Platzhalter für einen weiteren Zustellkanal, welcher verwendet werden kann, ohne die SubstitutionGroup zu erweitern.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="OtherDeliveryType">
            <xs:complexContent>
                <xs:extension base="dd:DeliveryChannelSetType">
                    <xs:sequence>
                        <xs:element name="DeliveryInformation" type="dd:ExtensionPointType"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="AccountInfo">
            <xs:annotation>
                <xs:documentation>Kontodaten des Empfängers und Einzahlers</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Receiver">
                        <xs:annotation>
                            <xs:documentation>Enpfänger</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:choice>
                                <xs:element ref="dd:InternationalAccount"/>
                                <xs:element ref="dd:LocalAccount"/>
                            </xs:choice>
                        </xs:complexType>
                    </xs:element>
                    <xs:element name="Depositor" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Einzahler</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:choice>
                                <xs:element ref="dd:InternationalAccount"/>
                                <xs:element ref="dd:LocalAccount"/>
                            </xs:choice>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="InternationalAccount">
            <xs:annotation>
                <xs:documentation>Kontodaten im internationalen Format</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="BIC">
                        <xs:annotation>
                            <xs:documentation>Bank Identifier Code (BIC) </xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="11"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="IBAN">
                        <xs:annotation>
                            <xs:documentation>International Bank Account Number (IBAN) </xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="34"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="LocalAccount">
            <xs:annotation>
                <xs:documentation>Kontodaten im österreichischen Format</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="BLZ">
                        <xs:annotation>
                            <xs:documentation>Bankleitzahl</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="11"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="AccountNr">
                        <xs:annotation>
                            <xs:documentation>Kontonummer</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="34"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="ApplicationID">
            <xs:annotation>
                <xs:documentation>ID der Fachanwendung</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:simpleContent>
                    <xs:extension base="xs:token">
                        <xs:attribute name="version" type="xs:string"/>
                    </xs:extension>
                </xs:simpleContent>
            </xs:complexType>
        </xs:element>
        <xs:element name="AppDeliveryID" type="xs:token">
            <xs:annotation>
                <xs:documentation>Eindeutige ID</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DualDeliveryID" type="xs:token">
            <xs:annotation>
                <xs:documentation>Interne ID des dualen Zustellsystems</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="PropertyValueMetaDataSet" type="dd:PropertyValueMetaDataSetType" substitutionGroup="dd:AdditionalMetaDataSet"/>
        <xs:complexType name="PropertyValueMetaDataSetType">
            <xs:complexContent>
                <xs:extension base="dd:AdditionalMetaDataSetType">
                    <xs:sequence maxOccurs="unbounded">
                        <xs:element ref="dd:Parameter"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="AdditionalPrintParameter">
            <xs:complexType>
                <xs:sequence maxOccurs="unbounded">
                    <xs:element ref="dd:AdditionalPrintParameterSet">
                        <xs:annotation>
                            <xs:documentation>SubstitutionGroup, welche Druckstraßenabhängige Printparameter aufnehmen kann.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="AdditionalPrintParameterSet" type="dd:AdditionalPrintParameterSetType"/>
        <xs:complexType name="AdditionalPrintParameterSetType"/>
        <xs:element name="PropertyValuePrintParameterSet" type="dd:PropertyValuePrintParameterSetType" substitutionGroup="dd:AdditionalPrintParameterSet">
            <xs:annotation>
                <xs:documentation>Nimmt allgemeine weitere Parameter auf, für z.B. „Code für Freimachungsvermerk“, oder „Freimachungsvermerk“, oder „personalisierte Nachricht“, oder „personalisierte Grafik“. Über diesen Weg ist es auch möglich ein EnvelopeLogo mitzusenden, der Inhalt kann dann eine Referenz oder das base64-codierte Logo sein.</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="PropertyValuePrintParameterSetType">
            <xs:complexContent>
                <xs:extension base="dd:AdditionalPrintParameterSetType">
                    <xs:sequence maxOccurs="unbounded">
                        <xs:element ref="dd:Parameter"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="Parameter" type="dd:ParameterType">
            <xs:annotation>
                <xs:documentation>Parameter sind für Bugfixes gedacht für den Fall das bei der Schema Erstellung einzelnen Felder vergessen wurden und der Aufwand für ein Redeployment aller Services zu hoch ist. Wenn neue Strukturen erforderlich sind, ist das Konstrukt der Substitiongroup ab den entsprechenden Erweiterungspunkten des Schemas zu verwenden </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="ParameterType">
            <xs:sequence>
                <xs:element name="Property" type="xs:string"/>
                <xs:element name="Value" type="xs:string" minOccurs="0"/>
                <xs:element name="Type" type="xs:string" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="Status" type="dd:StatusType"/>
        <xs:complexType name="StatusType">
            <xs:sequence>
                <xs:element name="Code" type="xs:token"/>
                <xs:element name="Text" type="xs:string" minOccurs="0"/>
                <xs:element name="Timestamp" type="xs:dateTime" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="Error" type="dd:ErrorType"/>
        <xs:complexType name="ErrorType">
            <xs:sequence>
                <xs:element name="Info" type="xs:string"/>
                <xs:element name="Code" type="xs:token"/>
                <xs:element name="Severity" type="xs:string" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="GetVersionRequest">
            <xs:annotation>
                <xs:documentation>Request enthält keinen Parameter</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence/>
            </xs:complexType>
        </xs:element>
        <xs:element name="GetVersionResponse">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Version" type="dd:versionNumberType"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:simpleType name="versionNumberType">
            <xs:restriction base="xs:string">
                <xs:pattern value="[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:complexType name="StatusRequestType">
            <xs:sequence>
                <xs:element ref="dd:ApplicationID" minOccurs="0"/>
                <xs:element name="ApplicationDeliveryID" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>ApplicationDelivery_ID gemäß Zustellrequest</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="DualDeliveryID" type="xs:integer" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Die ID unter der der Request für die duale Zustellung im DUAL-ZS abgespeichert ist.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="ExtensionPointType">
            <xs:sequence>
                <xs:any namespace="##any" processContents="lax">
                    <xs:annotation>
                        <xs:documentation>Hier können zusätzliche  Informationen hinterlegt werden. </xs:documentation>
                    </xs:annotation>
                </xs:any>
            </xs:sequence>
            <xs:attribute name="namespace" type="xs:anyURI" use="required">
                <xs:annotation>
                    <xs:documentation>Namespace des verwendeten Schemas</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
        <xs:element name="Parameters" type="dd:ParametersType"/>
        <xs:complexType name="ParametersType">
            <xs:sequence>
                <xs:element ref="dd:Parameter" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:simpleType name="token255">
            <xs:annotation>
                <xs:documentation>Token auf 255 Zeichen beschränkt.</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:token">
                <xs:minLength value="1"/>
                <xs:maxLength value="255"/>
            </xs:restriction>
        </xs:simpleType>
        <!-- Elements -->
        <xs:element name="Priority">
            <xs:annotation>
                <xs:documentation>erwünschte Priorität
    0 .. niedrigste
    9.. höchste</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:integer">
                    <xs:totalDigits value="1"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element name="EnvelopeFormat" type="xs:string" nillable="false">
            <xs:annotation>
                <xs:documentation>Kuvertyp entsprechend DIN 678 - z.B. C6/5, C4
    Nur bei 'nonR' und 'nonRSa'!!! (Default=C6/5)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="GZ">
            <xs:annotation>
                <xs:documentation>Geschäftszahl</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="RecipientID" type="xs:token"/>
        <xs:element name="PrintParameter">
            <xs:annotation>
                <xs:documentation>Zusätzliche Druckparameter zu diesem Dokument.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Color" type="xs:boolean" default="false" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Farbdruck (Default=false)</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="PaperFormat" type="xs:string" default="A4" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Papierformat: A4, A3, Dynamic (Default=A4)</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="PrintType" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Art des Druckes  (DUP - Duplex, SIM - Simplex)</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="DUP"/>
                                <xs:enumeration value="SIM"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="OverPrint" type="xs:boolean" default="false" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Nicht abfallender (OverPrint=false, Defaultwert) oder Abfallender Druck (true)</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="dd:Parameters" minOccurs="0"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:schema>

### ebinterface-4.0.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns="http://www.ebinterface.at/schema/4p0/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:ext="http://www.ebinterface.at/schema/4p0/extensions/ext" targetNamespace="http://www.ebinterface.at/schema/4p0/" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="W3C-XMLDSig.xsd"/>
        <xs:import namespace="http://www.ebinterface.at/schema/4p0/extensions/ext" schemaLocation="ebinterface-4.0-ext.xsd"/>
        <xs:annotation>
            <xs:documentation>
                schema version: 4.0
                last update: 2011-09-20
                documentation: http://www.ebinterface.at/download/documentation/ebInvoice_4p0.pdf
            </xs:documentation>
        </xs:annotation>
        <!-- === Root Element === -->
        <xs:element name="Invoice" type="InvoiceType"/>
        <!-- === Element Declarations === -->
        <xs:element name="AccountingArea" type="AccountingAreaType"/>
        <xs:element name="AdditionalInformation" type="AdditionalInformationType"/>
        <xs:element name="Address" type="AddressType"/>
        <xs:element name="AddressExtension" type="xs:string"/>
        <xs:element name="AddressIdentifier" type="AddressIdentifierType"/>
        <xs:element name="AlternativeQuantity" type="UnitType"/>
        <xs:element name="Amount" type="Decimal2Type"/>
        <xs:element name="ArticleNumber" type="ArticleNumberType"/>
        <xs:element name="BankAccountNr" type="xs:string"/>
        <xs:element name="BankAccountOwner" type="BankAccountOwnerType"/>
        <xs:element name="BankCode" type="BankCodeCType"/>
        <xs:element name="BankName" type="BankNameType"/>
        <xs:element name="BaseAmount" type="Decimal2Type"/>
        <xs:element name="BeneficiaryAccount" type="AccountType"/>
        <xs:element name="BIC" type="BICType"/>
        <xs:element name="Biller" type="BillerType"/>
        <xs:element name="BillersInvoiceRecipientID" type="AlphaNumIDType"/>
        <xs:element name="BillersOrderingPartyID" type="AlphaNumIDType"/>
        <xs:element name="BillersOrderReference" type="OrderReferenceDetailType"/>
        <xs:element name="Boxes" type="xs:positiveInteger"/>
        <xs:element name="ChargeNumber" type="AlphaNumType"/>
        <xs:element name="Classification" type="ClassificationType"/>
        <xs:element name="Color" type="xs:string"/>
        <xs:element name="Comment" type="xs:string"/>
        <xs:element name="ConsolidatorsBillerID" type="AlphaNumIDType"/>
        <xs:element name="Contact" type="xs:string"/>
        <xs:element name="Country" type="CountryType"/>
        <xs:element name="Custom" type="CustomType"/>
        <xs:element name="Date" type="xs:date"/>
        <xs:element name="Delivery" type="DeliveryType"/>
        <xs:element name="DeliveryID" type="AlphaNumIDType"/>
        <xs:element name="Description" type="xs:string"/>
        <xs:element name="Details" type="DetailsType"/>
        <xs:element name="DirectDebit" type="DirectDebitType"/>
        <xs:element name="Discount" type="DiscountType"/>
        <xs:element name="DiscountFlag" type="xs:boolean"/>
        <xs:element name="DueDate" type="xs:date"/>
        <xs:element name="Email" type="xs:string"/>
        <xs:element name="FooterDescription" type="xs:string"/>
        <xs:element name="FromDate" type="xs:date"/>
        <xs:element name="FurtherIdentification" type="FurtherIdentificationType"/>
        <xs:element name="HeaderDescription" type="xs:string"/>
        <xs:element name="IBAN" type="IBANType"/>
        <xs:element name="InvoiceDate" type="xs:date"/>
        <xs:element name="InvoiceNumber" type="AlphaNumIDType"/>
        <xs:element name="InvoiceRecipient" type="InvoiceRecipientType"/>
        <xs:element name="InvoiceRecipientsBillerID" type="AlphaNumIDType"/>
        <xs:element name="InvoiceRecipientsOrderReference" type="OrderReferenceDetailType"/>
        <xs:element name="Item" type="ItemType"/>
        <xs:element name="ItemList" type="ItemListType"/>
        <xs:element name="LayoutID" type="AlphaNumIDType"/>
        <xs:element name="LineItemAmount" type="Decimal2Type"/>
        <xs:element name="ListLineItem" type="ListLineItemType"/>
        <xs:element name="LogoURL" type="xs:anyURI"/>
        <xs:element name="MinimumPayment" type="Decimal2Type"/>
        <xs:element name="Name" type="xs:string"/>
        <xs:element name="NoPayment" type="NoPaymentType"/>
        <xs:element name="OrderID" type="AlphaNumIDType"/>
        <xs:element name="OrderingParty" type="OrderingPartyType"/>
        <xs:element name="OrderPositionNumber" type="AlphaNumType"/>
        <xs:element name="OrderReference" type="OrderReferenceType"/>
        <xs:element name="OtherTax" type="OtherTaxType"/>
        <xs:element name="PaymentConditions" type="PaymentConditionsType"/>
        <xs:element name="PaymentDate" type="xs:date"/>
        <xs:element name="PaymentMethod" type="PaymentMethodType"/>
        <xs:element name="PaymentReference" type="PaymentReferenceType"/>
        <xs:element name="Percentage" type="PercentageType"/>
        <xs:element name="Period" type="PeriodType"/>
        <xs:element name="Phone" type="xs:string"/>
        <xs:element name="POBox" type="xs:string"/>
        <xs:element name="PositionNumber" type="xs:positiveInteger"/>
        <xs:element name="PresentationDetails" type="PresentationDetailsType"/>
        <xs:element name="Quantity" type="UnitType"/>
        <xs:element name="Reduction" type="ReductionAndSurchargeType"/>
        <xs:element name="ReductionAndSurchargeDetails" type="ReductionAndSurchargeDetailsType"/>
        <xs:element name="ReductionAndSurchargeListLineItemDetails" type="ReductionAndSurchargeListLineItemDetailsType"/>
        <xs:element name="ReductionListLineItem" type="ReductionAndSurchargeBaseType"/>
        <xs:element name="ReferenceDate" type="xs:date"/>
        <xs:element name="Salutation" type="xs:string"/>
        <xs:element name="SerialNumber" type="AlphaNumType"/>
        <xs:element name="Size" type="AlphaNumType"/>
        <xs:element name="Street" type="xs:string"/>
        <xs:element name="SubOrganizationID" type="xs:string"/>
        <xs:element name="SuppressZero" type="xs:boolean"/>
        <xs:element name="Surcharge" type="ReductionAndSurchargeType"/>
        <xs:element name="SurchargeListLineItem" type="ReductionAndSurchargeBaseType"/>
        <xs:element name="Tax" type="TaxType"/>
        <xs:element name="TaxedAmount" type="Decimal2Type"/>
        <xs:element name="TaxExemption" type="xs:string"/>
        <xs:element name="TaxRate" type="TaxRateType"/>
        <xs:element name="ToDate" type="xs:date"/>
        <xs:element name="TotalGrossAmount" type="Decimal2Type"/>
        <xs:element name="Town" type="xs:string"/>
        <xs:element name="UnitPrice" type="Decimal4Type"/>
        <xs:element name="UniversalBankTransaction" type="UniversalBankTransactionType"/>
        <xs:element name="URL" type="xs:anyURI"/>
        <xs:element name="VAT" type="VATType"/>
        <xs:element name="VATIdentificationNumber" type="xs:string"/>
        <xs:element name="Weight" type="UnitType"/>
        <xs:element name="ZIP" type="xs:string"/>
        <!-- === Attribute Deklarations === -->
        <xs:attribute name="AddressIdentifierType" type="AddressIdentifierTypeType"/>
        <xs:attribute name="ArticleNumberType" type="ArticleNumberTypeType"/>
        <xs:attribute name="BankCodeType" type="CountryCodeType"/>
        <xs:attribute name="CancelledOriginalDocument" type="AlphaNumIDType"/>
        <xs:attribute name="CheckSum" type="CheckSumType"/>
        <xs:attribute name="ClassificationSchema" type="xs:string"/>
        <xs:attribute name="ConsolidatorPayable" type="xs:boolean"/>
        <xs:attribute name="CountryCode" type="CountryCodeType"/>
        <xs:attribute name="DocumentTitle" type="xs:string"/>
        <xs:attribute name="DocumentType" type="DocumentTypeType"/>
        <xs:attribute name="GeneratingSystem" type="xs:string"/>
        <xs:attribute name="IdentificationType" type="xs:string"/>
        <xs:attribute name="InvoiceCurrency" type="CurrencyType"/>
        <xs:attribute name="Language" type="LanguageType"/>
        <xs:attribute name="ManualProcessing" type="xs:boolean"/>
        <xs:attribute name="TaxCode" type="TaxCodeType"/>
        <xs:attribute name="Unit" type="xs:string"/>
        <!-- === Group Deklarations === -->
        <xs:group name="Custom">
            <xs:sequence>
                <xs:any namespace="##other" processContents="lax"/>
            </xs:sequence>
        </xs:group>
        <!-- === Simple Types === -->
        <xs:simpleType name="AccountingAreaType">
            <xs:restriction base="xs:string">
                <xs:maxLength value="20"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="AddressIdentifierTypeType">
            <xs:restriction base="xs:token">
                <xs:enumeration value="GLN"/>
                <xs:enumeration value="DUNS"/>
                <xs:enumeration value="ProprietaryAddressID"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="AlphaNumType">
            <xs:restriction base="xs:string">
                <xs:pattern value="[0-9 | A-Z | a-z | -_巼Ŗݟ]+"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="AlphaNumIDType">
            <xs:restriction base="AlphaNumType">
                <xs:maxLength value="35"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="ArticleNumberTypeType">
            <xs:restriction base="xs:token">
                <xs:enumeration value="PZN"/>
                <xs:enumeration value="GTIN"/>
                <xs:enumeration value="InvoiceRecipientsArticleNumber"/>
                <xs:enumeration value="BillersArticleNumber"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="BankAccountOwnerType">
            <xs:restriction base="xs:string">
                <xs:maxLength value="70"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="BankNameType">
            <xs:restriction base="xs:string">
                <xs:maxLength value="255"/>
            </xs:restriction>
        </xs:simpleType>
        <!-- BICs either have 8  or 11 characters (ISO 9362) -->
        <xs:simpleType name="BICType">
            <xs:restriction base="xs:string">
                <xs:pattern value="[0-9 | A-Z | a-z]{8}([0-9 | A-Z | a-z]{3})?"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="CheckSumType">
            <xs:restriction base="xs:string">
                <xs:pattern value="[0-9 | X]{1}"/>
            </xs:restriction>
        </xs:simpleType>
        <!-- Country Codes accordyng to ISO 3166-1 (retrieved 2011-09-20) -->
        <xs:simpleType name="CountryCodeType">
            <xs:restriction base="xs:token">
                <xs:enumeration value="AF"/>
                <xs:enumeration value="AX"/>
                <xs:enumeration value="AL"/>
                <xs:enumeration value="DZ"/>
                <xs:enumeration value="AS"/>
                <xs:enumeration value="AD"/>
                <xs:enumeration value="AO"/>
                <xs:enumeration value="AI"/>
                <xs:enumeration value="AQ"/>
                <xs:enumeration value="AG"/>
                <xs:enumeration value="AR"/>
                <xs:enumeration value="AM"/>
                <xs:enumeration value="AW"/>
                <xs:enumeration value="AU"/>
                <xs:enumeration value="AT"/>
                <xs:enumeration value="AZ"/>
                <xs:enumeration value="BS"/>
                <xs:enumeration value="BH"/>
                <xs:enumeration value="BD"/>
                <xs:enumeration value="BB"/>
                <xs:enumeration value="BY"/>
                <xs:enumeration value="BE"/>
                <xs:enumeration value="BZ"/>
                <xs:enumeration value="BJ"/>
                <xs:enumeration value="BM"/>
                <xs:enumeration value="BT"/>
                <xs:enumeration value="BO"/>
                <xs:enumeration value="BQ"/>
                <xs:enumeration value="BA"/>
                <xs:enumeration value="BW"/>
                <xs:enumeration value="BV"/>
                <xs:enumeration value="BR"/>
                <xs:enumeration value="IO"/>
                <xs:enumeration value="BN"/>
                <xs:enumeration value="BG"/>
                <xs:enumeration value="BF"/>
                <xs:enumeration value="BI"/>
                <xs:enumeration value="KH"/>
                <xs:enumeration value="CM"/>
                <xs:enumeration value="CA"/>
                <xs:enumeration value="CV"/>
                <xs:enumeration value="KY"/>
                <xs:enumeration value="CF"/>
                <xs:enumeration value="TD"/>
                <xs:enumeration value="CL"/>
                <xs:enumeration value="CN"/>
                <xs:enumeration value="CX"/>
                <xs:enumeration value="CC"/>
                <xs:enumeration value="CO"/>
                <xs:enumeration value="KM"/>
                <xs:enumeration value="CG"/>
                <xs:enumeration value="CD"/>
                <xs:enumeration value="CK"/>
                <xs:enumeration value="CR"/>
                <xs:enumeration value="CI"/>
                <xs:enumeration value="HR"/>
                <xs:enumeration value="CU"/>
                <xs:enumeration value="CW"/>
                <xs:enumeration value="CY"/>
                <xs:enumeration value="CZ"/>
                <xs:enumeration value="DK"/>
                <xs:enumeration value="DJ"/>
                <xs:enumeration value="DM"/>
                <xs:enumeration value="DO"/>
                <xs:enumeration value="EC"/>
                <xs:enumeration value="EG"/>
                <xs:enumeration value="SV"/>
                <xs:enumeration value="GQ"/>
                <xs:enumeration value="ER"/>
                <xs:enumeration value="EE"/>
                <xs:enumeration value="ET"/>
                <xs:enumeration value="FK"/>
                <xs:enumeration value="FO"/>
                <xs:enumeration value="FJ"/>
                <xs:enumeration value="FI"/>
                <xs:enumeration value="FR"/>
                <xs:enumeration value="GF"/>
                <xs:enumeration value="PF"/>
                <xs:enumeration value="TF"/>
                <xs:enumeration value="GA"/>
                <xs:enumeration value="GM"/>
                <xs:enumeration value="GE"/>
                <xs:enumeration value="DE"/>
                <xs:enumeration value="GH"/>
                <xs:enumeration value="GI"/>
                <xs:enumeration value="GR"/>
                <xs:enumeration value="GL"/>
                <xs:enumeration value="GD"/>
                <xs:enumeration value="GP"/>
                <xs:enumeration value="GU"/>
                <xs:enumeration value="GT"/>
                <xs:enumeration value="GG"/>
                <xs:enumeration value="GN"/>
                <xs:enumeration value="GW"/>
                <xs:enumeration value="GY"/>
                <xs:enumeration value="HT"/>
                <xs:enumeration value="HM"/>
                <xs:enumeration value="VA"/>
                <xs:enumeration value="HN"/>
                <xs:enumeration value="HK"/>
                <xs:enumeration value="HU"/>
                <xs:enumeration value="IS"/>
                <xs:enumeration value="IN"/>
                <xs:enumeration value="ID"/>
                <xs:enumeration value="IR"/>
                <xs:enumeration value="IQ"/>
                <xs:enumeration value="IE"/>
                <xs:enumeration value="IM"/>
                <xs:enumeration value="IL"/>
                <xs:enumeration value="IT"/>
                <xs:enumeration value="JM"/>
                <xs:enumeration value="JP"/>
                <xs:enumeration value="JE"/>
                <xs:enumeration value="JO"/>
                <xs:enumeration value="KZ"/>
                <xs:enumeration value="KE"/>
                <xs:enumeration value="KI"/>
                <xs:enumeration value="KP"/>
                <xs:enumeration value="KR"/>
                <xs:enumeration value="KW"/>
                <xs:enumeration value="KG"/>
                <xs:enumeration value="LA"/>
                <xs:enumeration value="LV"/>
                <xs:enumeration value="LB"/>
                <xs:enumeration value="LS"/>
                <xs:enumeration value="LR"/>
                <xs:enumeration value="LY"/>
                <xs:enumeration value="LI"/>
                <xs:enumeration value="LT"/>
                <xs:enumeration value="LU"/>
                <xs:enumeration value="MO"/>
                <xs:enumeration value="MK"/>
                <xs:enumeration value="MG"/>
                <xs:enumeration value="MW"/>
                <xs:enumeration value="MY"/>
                <xs:enumeration value="MV"/>
                <xs:enumeration value="ML"/>
                <xs:enumeration value="MT"/>
                <xs:enumeration value="MH"/>
                <xs:enumeration value="MQ"/>
                <xs:enumeration value="MR"/>
                <xs:enumeration value="MU"/>
                <xs:enumeration value="YT"/>
                <xs:enumeration value="MX"/>
                <xs:enumeration value="FM"/>
                <xs:enumeration value="MD"/>
                <xs:enumeration value="MC"/>
                <xs:enumeration value="MN"/>
                <xs:enumeration value="ME"/>
                <xs:enumeration value="MS"/>
                <xs:enumeration value="MA"/>
                <xs:enumeration value="MZ"/>
                <xs:enumeration value="MM"/>
                <xs:enumeration value="NA"/>
                <xs:enumeration value="NR"/>
                <xs:enumeration value="NP"/>
                <xs:enumeration value="NL"/>
                <xs:enumeration value="NC"/>
                <xs:enumeration value="NZ"/>
                <xs:enumeration value="NI"/>
                <xs:enumeration value="NE"/>
                <xs:enumeration value="NG"/>
                <xs:enumeration value="NU"/>
                <xs:enumeration value="NF"/>
                <xs:enumeration value="MP"/>
                <xs:enumeration value="NO"/>
                <xs:enumeration value="OM"/>
                <xs:enumeration value="PK"/>
                <xs:enumeration value="PW"/>
                <xs:enumeration value="PS"/>
                <xs:enumeration value="PA"/>
                <xs:enumeration value="PG"/>
                <xs:enumeration value="PY"/>
                <xs:enumeration value="PE"/>
                <xs:enumeration value="PH"/>
                <xs:enumeration value="PN"/>
                <xs:enumeration value="PL"/>
                <xs:enumeration value="PT"/>
                <xs:enumeration value="PR"/>
                <xs:enumeration value="QA"/>
                <xs:enumeration value="RE"/>
                <xs:enumeration value="RO"/>
                <xs:enumeration value="RU"/>
                <xs:enumeration value="RW"/>
                <xs:enumeration value="BL"/>
                <xs:enumeration value="SH"/>
                <xs:enumeration value="KN"/>
                <xs:enumeration value="LC"/>
                <xs:enumeration value="MF"/>
                <xs:enumeration value="PM"/>
                <xs:enumeration value="VC"/>
                <xs:enumeration value="WS"/>
                <xs:enumeration value="SM"/>
                <xs:enumeration value="ST"/>
                <xs:enumeration value="SA"/>
                <xs:enumeration value="SN"/>
                <xs:enumeration value="RS"/>
                <xs:enumeration value="SC"/>
                <xs:enumeration value="SL"/>
                <xs:enumeration value="SG"/>
                <xs:enumeration value="SX"/>
                <xs:enumeration value="SK"/>
                <xs:enumeration value="SI"/>
                <xs:enumeration value="SB"/>
                <xs:enumeration value="SO"/>
                <xs:enumeration value="ZA"/>
                <xs:enumeration value="GS"/>
                <xs:enumeration value="SS"/>
                <xs:enumeration value="ES"/>
                <xs:enumeration value="LK"/>
                <xs:enumeration value="SD"/>
                <xs:enumeration value="SR"/>
                <xs:enumeration value="SJ"/>
                <xs:enumeration value="SZ"/>
                <xs:enumeration value="SE"/>
                <xs:enumeration value="CH"/>
                <xs:enumeration value="SY"/>
                <xs:enumeration value="TW"/>
                <xs:enumeration value="TJ"/>
                <xs:enumeration value="TZ"/>
                <xs:enumeration value="TH"/>
                <xs:enumeration value="TL"/>
                <xs:enumeration value="TG"/>
                <xs:enumeration value="TK"/>
                <xs:enumeration value="TO"/>
                <xs:enumeration value="TT"/>
                <xs:enumeration value="TN"/>
                <xs:enumeration value="TR"/>
                <xs:enumeration value="TM"/>
                <xs:enumeration value="TC"/>
                <xs:enumeration value="TV"/>
                <xs:enumeration value="UG"/>
                <xs:enumeration value="UA"/>
                <xs:enumeration value="AE"/>
                <xs:enumeration value="GB"/>
                <xs:enumeration value="US"/>
                <xs:enumeration value="UM"/>
                <xs:enumeration value="UY"/>
                <xs:enumeration value="UZ"/>
                <xs:enumeration value="VU"/>
                <xs:enumeration value="VE"/>
                <xs:enumeration value="VN"/>
                <xs:enumeration value="VG"/>
                <xs:enumeration value="VI"/>
                <xs:enumeration value="WF"/>
                <xs:enumeration value="EH"/>
                <xs:enumeration value="YE"/>
                <xs:enumeration value="ZM"/>
                <xs:enumeration value="ZW"/>
            </xs:restriction>
        </xs:simpleType>
        <!-- Currency Codes according ISO 4217 (retrieved 2011-09-20 - duplicates have been removed)-->
        <xs:simpleType name="CurrencyType">
            <xs:restriction base="xs:token">
                <xs:enumeration value="AFN"/>
                <xs:enumeration value="EUR"/>
                <xs:enumeration value="ALL"/>
                <xs:enumeration value="DZD"/>
                <xs:enumeration value="USD"/>
                <xs:enumeration value="AOA"/>
                <xs:enumeration value="XCD"/>
                <xs:enumeration value="ARS"/>
                <xs:enumeration value="AMD"/>
                <xs:enumeration value="AWG"/>
                <xs:enumeration value="AUD"/>
                <xs:enumeration value="AZN"/>
                <xs:enumeration value="BSD"/>
                <xs:enumeration value="BHD"/>
                <xs:enumeration value="BDT"/>
                <xs:enumeration value="BBD"/>
                <xs:enumeration value="BYR"/>
                <xs:enumeration value="BZD"/>
                <xs:enumeration value="XOF"/>
                <xs:enumeration value="BMD"/>
                <xs:enumeration value="INR"/>
                <xs:enumeration value="BTN"/>
                <xs:enumeration value="BOB"/>
                <xs:enumeration value="BOV"/>
                <xs:enumeration value="BAM"/>
                <xs:enumeration value="BWP"/>
                <xs:enumeration value="NOK"/>
                <xs:enumeration value="BRL"/>
                <xs:enumeration value="BND"/>
                <xs:enumeration value="BGN"/>
                <xs:enumeration value="BIF"/>
                <xs:enumeration value="KHR"/>
                <xs:enumeration value="XAF"/>
                <xs:enumeration value="CAD"/>
                <xs:enumeration value="CVE"/>
                <xs:enumeration value="KYD"/>
                <xs:enumeration value="CLP"/>
                <xs:enumeration value="CLF"/>
                <xs:enumeration value="CNY"/>
                <xs:enumeration value="COP"/>
                <xs:enumeration value="COU"/>
                <xs:enumeration value="KMF"/>
                <xs:enumeration value="CDF"/>
                <xs:enumeration value="NZD"/>
                <xs:enumeration value="CRC"/>
                <xs:enumeration value="HRK"/>
                <xs:enumeration value="CUP"/>
                <xs:enumeration value="CUC"/>
                <xs:enumeration value="ANG"/>
                <xs:enumeration value="CZK"/>
                <xs:enumeration value="DKK"/>
                <xs:enumeration value="DJF"/>
                <xs:enumeration value="DOP"/>
                <xs:enumeration value="EGP"/>
                <xs:enumeration value="SVC"/>
                <xs:enumeration value="ERN"/>
                <xs:enumeration value="ETB"/>
                <xs:enumeration value="FKP"/>
                <xs:enumeration value="FJD"/>
                <xs:enumeration value="XPF"/>
                <xs:enumeration value="GMD"/>
                <xs:enumeration value="GEL"/>
                <xs:enumeration value="GHS"/>
                <xs:enumeration value="GIP"/>
                <xs:enumeration value="GTQ"/>
                <xs:enumeration value="GBP"/>
                <xs:enumeration value="GNF"/>
                <xs:enumeration value="GYD"/>
                <xs:enumeration value="HTG"/>
                <xs:enumeration value="HNL"/>
                <xs:enumeration value="HKD"/>
                <xs:enumeration value="HUF"/>
                <xs:enumeration value="ISK"/>
                <xs:enumeration value="IDR"/>
                <xs:enumeration value="XDR"/>
                <xs:enumeration value="IRR"/>
                <xs:enumeration value="IQD"/>
                <xs:enumeration value="ILS"/>
                <xs:enumeration value="JMD"/>
                <xs:enumeration value="JPY"/>
                <xs:enumeration value="JOD"/>
                <xs:enumeration value="KZT"/>
                <xs:enumeration value="KES"/>
                <xs:enumeration value="KPW"/>
                <xs:enumeration value="KRW"/>
                <xs:enumeration value="KWD"/>
                <xs:enumeration value="KGS"/>
                <xs:enumeration value="LAK"/>
                <xs:enumeration value="LVL"/>
                <xs:enumeration value="LBP"/>
                <xs:enumeration value="LSL"/>
                <xs:enumeration value="ZAR"/>
                <xs:enumeration value="LRD"/>
                <xs:enumeration value="LYD"/>
                <xs:enumeration value="CHF"/>
                <xs:enumeration value="LTL"/>
                <xs:enumeration value="MOP"/>
                <xs:enumeration value="MKD"/>
                <xs:enumeration value="MGA"/>
                <xs:enumeration value="MWK"/>
                <xs:enumeration value="MYR"/>
                <xs:enumeration value="MVR"/>
                <xs:enumeration value="MRO"/>
                <xs:enumeration value="MUR"/>
                <xs:enumeration value="XUA"/>
                <xs:enumeration value="MXN"/>
                <xs:enumeration value="MXV"/>
                <xs:enumeration value="MDL"/>
                <xs:enumeration value="MNT"/>
                <xs:enumeration value="MAD"/>
                <xs:enumeration value="MZN"/>
                <xs:enumeration value="MMK"/>
                <xs:enumeration value="NAD"/>
                <xs:enumeration value="NPR"/>
                <xs:enumeration value="NIO"/>
                <xs:enumeration value="NGN"/>
                <xs:enumeration value="OMR"/>
                <xs:enumeration value="PKR"/>
                <xs:enumeration value="PAB"/>
                <xs:enumeration value="PGK"/>
                <xs:enumeration value="PYG"/>
                <xs:enumeration value="PEN"/>
                <xs:enumeration value="PHP"/>
                <xs:enumeration value="PLN"/>
                <xs:enumeration value="QAR"/>
                <xs:enumeration value="RON"/>
                <xs:enumeration value="RUB"/>
                <xs:enumeration value="RWF"/>
                <xs:enumeration value="SHP"/>
                <xs:enumeration value="WST"/>
                <xs:enumeration value="STD"/>
                <xs:enumeration value="SAR"/>
                <xs:enumeration value="RSD"/>
                <xs:enumeration value="SCR"/>
                <xs:enumeration value="SLL"/>
                <xs:enumeration value="SGD"/>
                <xs:enumeration value="XSU"/>
                <xs:enumeration value="SBD"/>
                <xs:enumeration value="SOS"/>
                <xs:enumeration value="SSP"/>
                <xs:enumeration value="LKR"/>
                <xs:enumeration value="SDG"/>
                <xs:enumeration value="SRD"/>
                <xs:enumeration value="SZL"/>
                <xs:enumeration value="SEK"/>
                <xs:enumeration value="CHE"/>
                <xs:enumeration value="CHW"/>
                <xs:enumeration value="SYP"/>
                <xs:enumeration value="TWD"/>
                <xs:enumeration value="TJS"/>
                <xs:enumeration value="TZS"/>
                <xs:enumeration value="THB"/>
                <xs:enumeration value="TOP"/>
                <xs:enumeration value="TTD"/>
                <xs:enumeration value="TND"/>
                <xs:enumeration value="TRY"/>
                <xs:enumeration value="TMT"/>
                <xs:enumeration value="UGX"/>
                <xs:enumeration value="UAH"/>
                <xs:enumeration value="AED"/>
                <xs:enumeration value="USN"/>
                <xs:enumeration value="USS"/>
                <xs:enumeration value="UYU"/>
                <xs:enumeration value="UYI"/>
                <xs:enumeration value="UZS"/>
                <xs:enumeration value="VUV"/>
                <xs:enumeration value="VEF"/>
                <xs:enumeration value="VND"/>
                <xs:enumeration value="YER"/>
                <xs:enumeration value="ZMK"/>
                <xs:enumeration value="ZWL"/>
                <xs:enumeration value="XBA"/>
                <xs:enumeration value="XBB"/>
                <xs:enumeration value="XBC"/>
                <xs:enumeration value="XBD"/>
                <xs:enumeration value="XFU"/>
                <xs:enumeration value="XTS"/>
                <xs:enumeration value="XXX"/>
                <xs:enumeration value="XAU"/>
                <xs:enumeration value="XPD"/>
                <xs:enumeration value="XPT"/>
                <xs:enumeration value="XAG"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="Decimal2Type">
            <xs:restriction base="xs:decimal">
                <xs:fractionDigits value="2"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="Decimal4Type">
            <xs:restriction base="xs:decimal">
                <xs:fractionDigits value="4"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="Digit12Type">
            <xs:restriction base="xs:string">
                <xs:pattern value="(\d){1,12}"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="DocumentTypeType">
            <xs:restriction base="xs:string">
                <xs:enumeration value="Invoice"/>
                <xs:enumeration value="InvoiceForAdvancePayment"/>
                <xs:enumeration value="InvoiceForPartialDelivery"/>
                <xs:enumeration value="FinalSettlement"/>
                <xs:enumeration value="SubsequentCredit"/>
                <xs:enumeration value="CreditMemo"/>
                <xs:enumeration value="SubsequentDebit"/>
                <xs:enumeration value="SelfBilling"/>
            </xs:restriction>
        </xs:simpleType>
        <!-- ISO 13616 und EBS-Standard (European Banking Standard):
            max. 34 Stellen, alphanummerisch -->
        <xs:simpleType name="IBANType">
            <xs:restriction base="xs:string">
                <xs:maxLength value="34"/>
            </xs:restriction>
        </xs:simpleType>
        <!-- Language Codes according to ISO 639-2 -->
        <xs:simpleType name="LanguageType">
            <xs:restriction base="xs:token">
                <xs:enumeration value="aar"/>
                <xs:enumeration value="abk"/>
                <xs:enumeration value="ace"/>
                <xs:enumeration value="ach"/>
                <xs:enumeration value="ada"/>
                <xs:enumeration value="ady"/>
                <xs:enumeration value="afa"/>
                <xs:enumeration value="afh"/>
                <xs:enumeration value="afr"/>
                <xs:enumeration value="aka"/>
                <xs:enumeration value="akk"/>
                <xs:enumeration value="alb"/>
                <xs:enumeration value="sqi"/>
                <xs:enumeration value="ale"/>
                <xs:enumeration value="alg"/>
                <xs:enumeration value="amh"/>
                <xs:enumeration value="ang"/>
                <xs:enumeration value="apa"/>
                <xs:enumeration value="ara"/>
                <xs:enumeration value="arc"/>
                <xs:enumeration value="arg"/>
                <xs:enumeration value="arm"/>
                <xs:enumeration value="hye"/>
                <xs:enumeration value="arn"/>
                <xs:enumeration value="arp"/>
                <xs:enumeration value="art"/>
                <xs:enumeration value="arw"/>
                <xs:enumeration value="asm"/>
                <xs:enumeration value="ast"/>
                <xs:enumeration value="ath"/>
                <xs:enumeration value="aus"/>
                <xs:enumeration value="ava"/>
                <xs:enumeration value="ave"/>
                <xs:enumeration value="awa"/>
                <xs:enumeration value="aym"/>
                <xs:enumeration value="aze"/>
                <xs:enumeration value="bad"/>
                <xs:enumeration value="bai"/>
                <xs:enumeration value="bak"/>
                <xs:enumeration value="bal"/>
                <xs:enumeration value="bam"/>
                <xs:enumeration value="ban"/>
                <xs:enumeration value="baq"/>
                <xs:enumeration value="eus"/>
                <xs:enumeration value="bas"/>
                <xs:enumeration value="bat"/>
                <xs:enumeration value="bej"/>
                <xs:enumeration value="bem"/>
                <xs:enumeration value="ben"/>
                <xs:enumeration value="ber"/>
                <xs:enumeration value="bho"/>
                <xs:enumeration value="bih"/>
                <xs:enumeration value="bik"/>
                <xs:enumeration value="bin"/>
                <xs:enumeration value="bis"/>
                <xs:enumeration value="bla"/>
                <xs:enumeration value="bnt"/>
                <xs:enumeration value="bos"/>
                <xs:enumeration value="bra"/>
                <xs:enumeration value="bre"/>
                <xs:enumeration value="btk"/>
                <xs:enumeration value="bua"/>
                <xs:enumeration value="bug"/>
                <xs:enumeration value="bul"/>
                <xs:enumeration value="bur"/>
                <xs:enumeration value="mya"/>
                <xs:enumeration value="byn"/>
                <xs:enumeration value="cad"/>
                <xs:enumeration value="cai"/>
                <xs:enumeration value="car"/>
                <xs:enumeration value="cat"/>
                <xs:enumeration value="cau"/>
                <xs:enumeration value="ceb"/>
                <xs:enumeration value="cel"/>
                <xs:enumeration value="cha"/>
                <xs:enumeration value="chb"/>
                <xs:enumeration value="che"/>
                <xs:enumeration value="chg"/>
                <xs:enumeration value="chi"/>
                <xs:enumeration value="zho"/>
                <xs:enumeration value="chk"/>
                <xs:enumeration value="chm"/>
                <xs:enumeration value="chn"/>
                <xs:enumeration value="cho"/>
                <xs:enumeration value="chp"/>
                <xs:enumeration value="chr"/>
                <xs:enumeration value="chu"/>
                <xs:enumeration value="chv"/>
                <xs:enumeration value="chy"/>
                <xs:enumeration value="cmc"/>
                <xs:enumeration value="cop"/>
                <xs:enumeration value="cor"/>
                <xs:enumeration value="cos"/>
                <xs:enumeration value="cpe"/>
                <xs:enumeration value="cpf"/>
                <xs:enumeration value="cpp"/>
                <xs:enumeration value="cre"/>
                <xs:enumeration value="crh"/>
                <xs:enumeration value="crp"/>
                <xs:enumeration value="csb"/>
                <xs:enumeration value="cus"/>
                <xs:enumeration value="cze"/>
                <xs:enumeration value="ces"/>
                <xs:enumeration value="dak"/>
                <xs:enumeration value="dan"/>
                <xs:enumeration value="dar"/>
                <xs:enumeration value="day"/>
                <xs:enumeration value="del"/>
                <xs:enumeration value="den"/>
                <xs:enumeration value="dgr"/>
                <xs:enumeration value="din"/>
                <xs:enumeration value="div"/>
                <xs:enumeration value="doi"/>
                <xs:enumeration value="dra"/>
                <xs:enumeration value="dsb"/>
                <xs:enumeration value="dua"/>
                <xs:enumeration value="dum"/>
                <xs:enumeration value="dut"/>
                <xs:enumeration value="nld"/>
                <xs:enumeration value="dyu"/>
                <xs:enumeration value="dzo"/>
                <xs:enumeration value="efi"/>
                <xs:enumeration value="egy"/>
                <xs:enumeration value="eka"/>
                <xs:enumeration value="elx"/>
                <xs:enumeration value="eng"/>
                <xs:enumeration value="enm"/>
                <xs:enumeration value="epo"/>
                <xs:enumeration value="est"/>
                <xs:enumeration value="ewe"/>
                <xs:enumeration value="ewo"/>
                <xs:enumeration value="fan"/>
                <xs:enumeration value="fao"/>
                <xs:enumeration value="fat"/>
                <xs:enumeration value="fij"/>
                <xs:enumeration value="fil"/>
                <xs:enumeration value="fin"/>
                <xs:enumeration value="fiu"/>
                <xs:enumeration value="fon"/>
                <xs:enumeration value="fre"/>
                <xs:enumeration value="fra"/>
                <xs:enumeration value="frm"/>
                <xs:enumeration value="fro"/>
                <xs:enumeration value="fry"/>
                <xs:enumeration value="ful"/>
                <xs:enumeration value="fur"/>
                <xs:enumeration value="gaa"/>
                <xs:enumeration value="gay"/>
                <xs:enumeration value="gba"/>
                <xs:enumeration value="gem"/>
                <xs:enumeration value="geo"/>
                <xs:enumeration value="kat"/>
                <xs:enumeration value="ger"/>
                <xs:enumeration value="deu"/>
                <xs:enumeration value="gez"/>
                <xs:enumeration value="gil"/>
                <xs:enumeration value="gla"/>
                <xs:enumeration value="gle"/>
                <xs:enumeration value="glg"/>
                <xs:enumeration value="glv"/>
                <xs:enumeration value="gmh"/>
                <xs:enumeration value="goh"/>
                <xs:enumeration value="gon"/>
                <xs:enumeration value="gor"/>
                <xs:enumeration value="got"/>
                <xs:enumeration value="grb"/>
                <xs:enumeration value="grc"/>
                <xs:enumeration value="gre"/>
                <xs:enumeration value="ell"/>
                <xs:enumeration value="grn"/>
                <xs:enumeration value="guj"/>
                <xs:enumeration value="gwi"/>
                <xs:enumeration value="hai"/>
                <xs:enumeration value="hat"/>
                <xs:enumeration value="hau"/>
                <xs:enumeration value="haw"/>
                <xs:enumeration value="heb"/>
                <xs:enumeration value="her"/>
                <xs:enumeration value="hil"/>
                <xs:enumeration value="him"/>
                <xs:enumeration value="hin"/>
                <xs:enumeration value="hit"/>
                <xs:enumeration value="hmn"/>
                <xs:enumeration value="hmo"/>
                <xs:enumeration value="hsb"/>
                <xs:enumeration value="hun"/>
                <xs:enumeration value="hup"/>
                <xs:enumeration value="iba"/>
                <xs:enumeration value="ibo"/>
                <xs:enumeration value="ice"/>
                <xs:enumeration value="isl"/>
                <xs:enumeration value="ido"/>
                <xs:enumeration value="iii"/>
                <xs:enumeration value="ijo"/>
                <xs:enumeration value="iku"/>
                <xs:enumeration value="ile"/>
                <xs:enumeration value="ilo"/>
                <xs:enumeration value="ina"/>
                <xs:enumeration value="inc"/>
                <xs:enumeration value="ind"/>
                <xs:enumeration value="ine"/>
                <xs:enumeration value="inh"/>
                <xs:enumeration value="ipk"/>
                <xs:enumeration value="ira"/>
                <xs:enumeration value="iro"/>
                <xs:enumeration value="ita"/>
                <xs:enumeration value="jbo"/>
                <xs:enumeration value="jav"/>
                <xs:enumeration value="jpn"/>
                <xs:enumeration value="jpr"/>
                <xs:enumeration value="jrb"/>
                <xs:enumeration value="kaa"/>
                <xs:enumeration value="kab"/>
                <xs:enumeration value="kac"/>
                <xs:enumeration value="kal"/>
                <xs:enumeration value="kam"/>
                <xs:enumeration value="kan"/>
                <xs:enumeration value="kar"/>
                <xs:enumeration value="kas"/>
                <xs:enumeration value="kau"/>
                <xs:enumeration value="kaw"/>
                <xs:enumeration value="kaz"/>
                <xs:enumeration value="kbd"/>
                <xs:enumeration value="kha"/>
                <xs:enumeration value="khi"/>
                <xs:enumeration value="khm"/>
                <xs:enumeration value="kho"/>
                <xs:enumeration value="kik"/>
                <xs:enumeration value="kin"/>
                <xs:enumeration value="kir"/>
                <xs:enumeration value="kmb"/>
                <xs:enumeration value="kok"/>
                <xs:enumeration value="kom"/>
                <xs:enumeration value="kon"/>
                <xs:enumeration value="kor"/>
                <xs:enumeration value="kos"/>
                <xs:enumeration value="kpe"/>
                <xs:enumeration value="krc"/>
                <xs:enumeration value="kro"/>
                <xs:enumeration value="kru"/>
                <xs:enumeration value="kua"/>
                <xs:enumeration value="kum"/>
                <xs:enumeration value="kur"/>
                <xs:enumeration value="kut"/>
                <xs:enumeration value="lad"/>
                <xs:enumeration value="lah"/>
                <xs:enumeration value="lam"/>
                <xs:enumeration value="lao"/>
                <xs:enumeration value="lat"/>
                <xs:enumeration value="lav"/>
                <xs:enumeration value="lez"/>
                <xs:enumeration value="lim"/>
                <xs:enumeration value="lin"/>
                <xs:enumeration value="lit"/>
                <xs:enumeration value="lol"/>
                <xs:enumeration value="loz"/>
                <xs:enumeration value="ltz"/>
                <xs:enumeration value="lua"/>
                <xs:enumeration value="lub"/>
                <xs:enumeration value="lug"/>
                <xs:enumeration value="lui"/>
                <xs:enumeration value="lun"/>
                <xs:enumeration value="luo"/>
                <xs:enumeration value="lus"/>
                <xs:enumeration value="mac"/>
                <xs:enumeration value="mkd"/>
                <xs:enumeration value="mad"/>
                <xs:enumeration value="mag"/>
                <xs:enumeration value="mah"/>
                <xs:enumeration value="mai"/>
                <xs:enumeration value="mak"/>
                <xs:enumeration value="mal"/>
                <xs:enumeration value="man"/>
                <xs:enumeration value="mao"/>
                <xs:enumeration value="mri"/>
                <xs:enumeration value="map"/>
                <xs:enumeration value="mar"/>
                <xs:enumeration value="mas"/>
                <xs:enumeration value="may"/>
                <xs:enumeration value="msa"/>
                <xs:enumeration value="mdf"/>
                <xs:enumeration value="mdr"/>
                <xs:enumeration value="men"/>
                <xs:enumeration value="mga"/>
                <xs:enumeration value="mic"/>
                <xs:enumeration value="min"/>
                <xs:enumeration value="mis"/>
                <xs:enumeration value="mkh"/>
                <xs:enumeration value="mlg"/>
                <xs:enumeration value="mlt"/>
                <xs:enumeration value="mnc"/>
                <xs:enumeration value="mni"/>
                <xs:enumeration value="mno"/>
                <xs:enumeration value="moh"/>
                <xs:enumeration value="mol"/>
                <xs:enumeration value="mon"/>
                <xs:enumeration value="mos"/>
                <xs:enumeration value="mul"/>
                <xs:enumeration value="mun"/>
                <xs:enumeration value="mus"/>
                <xs:enumeration value="mwl"/>
                <xs:enumeration value="mwr"/>
                <xs:enumeration value="myn"/>
                <xs:enumeration value="myv"/>
                <xs:enumeration value="nah"/>
                <xs:enumeration value="nai"/>
                <xs:enumeration value="nap"/>
                <xs:enumeration value="nau"/>
                <xs:enumeration value="nav"/>
                <xs:enumeration value="nbl"/>
                <xs:enumeration value="nde"/>
                <xs:enumeration value="ndo"/>
                <xs:enumeration value="nds"/>
                <xs:enumeration value="nep"/>
                <xs:enumeration value="new"/>
                <xs:enumeration value="nia"/>
                <xs:enumeration value="nic"/>
                <xs:enumeration value="niu"/>
                <xs:enumeration value="nno"/>
                <xs:enumeration value="nob"/>
                <xs:enumeration value="nog"/>
                <xs:enumeration value="non"/>
                <xs:enumeration value="nor"/>
                <xs:enumeration value="nso"/>
                <xs:enumeration value="nub"/>
                <xs:enumeration value="nwc"/>
                <xs:enumeration value="nya"/>
                <xs:enumeration value="nym"/>
                <xs:enumeration value="nyn"/>
                <xs:enumeration value="nyo"/>
                <xs:enumeration value="nzi"/>
                <xs:enumeration value="oci"/>
                <xs:enumeration value="oji"/>
                <xs:enumeration value="ori"/>
                <xs:enumeration value="orm"/>
                <xs:enumeration value="osa"/>
                <xs:enumeration value="oss"/>
                <xs:enumeration value="ota"/>
                <xs:enumeration value="oto"/>
                <xs:enumeration value="paa"/>
                <xs:enumeration value="pag"/>
                <xs:enumeration value="pal"/>
                <xs:enumeration value="pam"/>
                <xs:enumeration value="pan"/>
                <xs:enumeration value="pap"/>
                <xs:enumeration value="pau"/>
                <xs:enumeration value="peo"/>
                <xs:enumeration value="per"/>
                <xs:enumeration value="fas"/>
                <xs:enumeration value="phi"/>
                <xs:enumeration value="phn"/>
                <xs:enumeration value="pli"/>
                <xs:enumeration value="pol"/>
                <xs:enumeration value="pon"/>
                <xs:enumeration value="por"/>
                <xs:enumeration value="pra"/>
                <xs:enumeration value="pro"/>
                <xs:enumeration value="pus"/>
                <xs:enumeration value="que"/>
                <xs:enumeration value="raj"/>
                <xs:enumeration value="rap"/>
                <xs:enumeration value="rar"/>
                <xs:enumeration value="roa"/>
                <xs:enumeration value="roh"/>
                <xs:enumeration value="rom"/>
                <xs:enumeration value="rum"/>
                <xs:enumeration value="ron"/>
                <xs:enumeration value="run"/>
                <xs:enumeration value="rus"/>
                <xs:enumeration value="sad"/>
                <xs:enumeration value="sag"/>
                <xs:enumeration value="sah"/>
                <xs:enumeration value="sai"/>
                <xs:enumeration value="sal"/>
                <xs:enumeration value="sam"/>
                <xs:enumeration value="san"/>
                <xs:enumeration value="sas"/>
                <xs:enumeration value="sat"/>
                <xs:enumeration value="scc"/>
                <xs:enumeration value="srp"/>
                <xs:enumeration value="scn"/>
                <xs:enumeration value="sco"/>
                <xs:enumeration value="scr"/>
                <xs:enumeration value="hrv"/>
                <xs:enumeration value="sel"/>
                <xs:enumeration value="sem"/>
                <xs:enumeration value="sga"/>
                <xs:enumeration value="sgn"/>
                <xs:enumeration value="shn"/>
                <xs:enumeration value="sid"/>
                <xs:enumeration value="sin"/>
                <xs:enumeration value="sio"/>
                <xs:enumeration value="sit"/>
                <xs:enumeration value="sla"/>
                <xs:enumeration value="slo"/>
                <xs:enumeration value="slk"/>
                <xs:enumeration value="slv"/>
                <xs:enumeration value="sma"/>
                <xs:enumeration value="sme"/>
                <xs:enumeration value="smi"/>
                <xs:enumeration value="smj"/>
                <xs:enumeration value="smn"/>
                <xs:enumeration value="smo"/>
                <xs:enumeration value="sms"/>
                <xs:enumeration value="sna"/>
                <xs:enumeration value="snd"/>
                <xs:enumeration value="snk"/>
                <xs:enumeration value="sog"/>
                <xs:enumeration value="som"/>
                <xs:enumeration value="son"/>
                <xs:enumeration value="sot"/>
                <xs:enumeration value="spa"/>
                <xs:enumeration value="srd"/>
                <xs:enumeration value="srr"/>
                <xs:enumeration value="ssa"/>
                <xs:enumeration value="ssw"/>
                <xs:enumeration value="suk"/>
                <xs:enumeration value="sun"/>
                <xs:enumeration value="sus"/>
                <xs:enumeration value="sux"/>
                <xs:enumeration value="swa"/>
                <xs:enumeration value="swe"/>
                <xs:enumeration value="syr"/>
                <xs:enumeration value="tah"/>
                <xs:enumeration value="tai"/>
                <xs:enumeration value="tam"/>
                <xs:enumeration value="tat"/>
                <xs:enumeration value="tel"/>
                <xs:enumeration value="tem"/>
                <xs:enumeration value="ter"/>
                <xs:enumeration value="tet"/>
                <xs:enumeration value="tgk"/>
                <xs:enumeration value="tgl"/>
                <xs:enumeration value="tha"/>
                <xs:enumeration value="tib"/>
                <xs:enumeration value="bod"/>
                <xs:enumeration value="tig"/>
                <xs:enumeration value="tir"/>
                <xs:enumeration value="tiv"/>
                <xs:enumeration value="tkl"/>
                <xs:enumeration value="tlh"/>
                <xs:enumeration value="tli"/>
                <xs:enumeration value="tmh"/>
                <xs:enumeration value="tog"/>
                <xs:enumeration value="ton"/>
                <xs:enumeration value="tpi"/>
                <xs:enumeration value="tsi"/>
                <xs:enumeration value="tsn"/>
                <xs:enumeration value="tso"/>
                <xs:enumeration value="tuk"/>
                <xs:enumeration value="tum"/>
                <xs:enumeration value="tup"/>
                <xs:enumeration value="tur"/>
                <xs:enumeration value="tut"/>
                <xs:enumeration value="tvl"/>
                <xs:enumeration value="twi"/>
                <xs:enumeration value="tyv"/>
                <xs:enumeration value="udm"/>
                <xs:enumeration value="uga"/>
                <xs:enumeration value="uig"/>
                <xs:enumeration value="ukr"/>
                <xs:enumeration value="umb"/>
                <xs:enumeration value="und"/>
                <xs:enumeration value="urd"/>
                <xs:enumeration value="uzb"/>
                <xs:enumeration value="vai"/>
                <xs:enumeration value="ven"/>
                <xs:enumeration value="vie"/>
                <xs:enumeration value="vol"/>
                <xs:enumeration value="vot"/>
                <xs:enumeration value="wak"/>
                <xs:enumeration value="wal"/>
                <xs:enumeration value="war"/>
                <xs:enumeration value="was"/>
                <xs:enumeration value="wel"/>
                <xs:enumeration value="cym"/>
                <xs:enumeration value="wen"/>
                <xs:enumeration value="wln"/>
                <xs:enumeration value="wol"/>
                <xs:enumeration value="xal"/>
                <xs:enumeration value="xho"/>
                <xs:enumeration value="yao"/>
                <xs:enumeration value="yap"/>
                <xs:enumeration value="yid"/>
                <xs:enumeration value="yor"/>
                <xs:enumeration value="ypk"/>
                <xs:enumeration value="zap"/>
                <xs:enumeration value="zen"/>
                <xs:enumeration value="zha"/>
                <xs:enumeration value="znd"/>
                <xs:enumeration value="zul"/>
                <xs:enumeration value="zun"/>
                <xs:enumeration value=""/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="PercentageType">
            <xs:restriction base="xs:decimal">
                <xs:maxInclusive value="100"/>
                <xs:minInclusive value="0"/>
                <xs:fractionDigits value="2"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="TaxCodeType">
            <xs:restriction base="xs:string">
                <xs:pattern value="AT(XXX|[0-9]{3})"/>
            </xs:restriction>
        </xs:simpleType>
        <!-- === Complex Types === -->
        <xs:complexType name="AccountType">
            <xs:sequence>
                <xs:element ref="BankName" minOccurs="0"/>
                <xs:element ref="BankCode" minOccurs="0"/>
                <xs:element ref="BIC" minOccurs="0"/>
                <xs:element ref="BankAccountNr" minOccurs="0"/>
                <xs:element ref="IBAN" minOccurs="0"/>
                <xs:element ref="BankAccountOwner" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="AdditionalInformationType">
            <xs:sequence>
                <xs:element ref="SerialNumber" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="ChargeNumber" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="Classification" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="AlternativeQuantity" minOccurs="0"/>
                <xs:element ref="Size" minOccurs="0"/>
                <xs:element ref="Weight" minOccurs="0"/>
                <xs:element ref="Boxes" minOccurs="0"/>
                <xs:element ref="Color" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="AddressIdentifierType" mixed="true">
            <xs:attribute ref="AddressIdentifierType" use="optional"/>
        </xs:complexType>
        <xs:complexType name="AddressType">
            <xs:sequence>
                <xs:element ref="AddressIdentifier" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="Salutation" minOccurs="0"/>
                <xs:element ref="Name"/>
                <xs:element ref="Street"/>
                <xs:element ref="POBox" minOccurs="0"/>
                <xs:element ref="Town"/>
                <xs:element ref="ZIP"/>
                <xs:element ref="Country"/>
                <xs:element ref="Phone" minOccurs="0"/>
                <xs:element ref="Email" minOccurs="0"/>
                <xs:element ref="Contact" minOccurs="0"/>
                <xs:element ref="AddressExtension" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="ArticleNumberType" mixed="true">
            <xs:attribute ref="ArticleNumberType" use="optional"/>
        </xs:complexType>
        <xs:complexType name="BankCodeCType">
            <xs:simpleContent>
                <xs:extension base="xs:integer">
                    <xs:attribute ref="BankCodeType" use="required"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
        <xs:complexType name="BillerType">
            <xs:sequence>
                <xs:element ref="VATIdentificationNumber"/>
                <xs:element ref="FurtherIdentification" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="ConsolidatorsBillerID" minOccurs="0"/>
                <xs:element ref="InvoiceRecipientsBillerID" minOccurs="0"/>
                <xs:element ref="OrderReference" minOccurs="0"/>
                <xs:element ref="Address"/>
                <xs:element ref="ext:BillerExtension" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="ClassificationType">
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute ref="ClassificationSchema" use="optional"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
        <xs:complexType name="CountryType" mixed="true">
            <xs:attribute ref="CountryCode" use="optional"/>
        </xs:complexType>
        <xs:complexType name="CustomType">
            <xs:sequence>
                <xs:group ref="Custom"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="DeliveryType">
            <xs:sequence>
                <xs:element ref="DeliveryID" minOccurs="0"/>
                <xs:choice>
                    <xs:element ref="Date"/>
                    <xs:element ref="Period"/>
                </xs:choice>
                <xs:element ref="Address" minOccurs="0"/>
                <xs:element ref="Description" minOccurs="0"/>
                <xs:element ref="ext:DeliveryExtension" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="DetailsType">
            <xs:sequence>
                <xs:element ref="HeaderDescription" minOccurs="0"/>
                <xs:element ref="ItemList" maxOccurs="unbounded"/>
                <xs:element ref="FooterDescription" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="DirectDebitType">
            <xs:complexContent>
                <xs:extension base="PaymentMethodType"/>
                <!--dummy wird nicht erweitert-->
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="DiscountType">
            <xs:sequence>
                <xs:element ref="PaymentDate"/>
                <xs:element ref="BaseAmount" minOccurs="0"/>
                <xs:element ref="Percentage" minOccurs="0"/>
                <xs:element ref="Amount" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="FurtherIdentificationType">
            <xs:simpleContent>
                <xs:extension base="AlphaNumIDType">
                    <xs:attribute ref="IdentificationType" use="required"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
        <xs:complexType name="InvoiceType">
            <xs:sequence>
                <xs:element ref="dsig:Signature" minOccurs="0"/>
                <xs:element ref="InvoiceNumber"/>
                <xs:element ref="InvoiceDate"/>
                <xs:element ref="Delivery" minOccurs="0"/>
                <xs:element ref="Biller"/>
                <xs:element ref="InvoiceRecipient"/>
                <xs:element ref="OrderingParty" minOccurs="0"/>
                <xs:element ref="Details"/>
                <xs:element ref="ReductionAndSurchargeDetails" minOccurs="0"/>
                <xs:element ref="Tax"/>
                <xs:element ref="TotalGrossAmount"/>
                <xs:element ref="PaymentMethod" minOccurs="0"/>
                <xs:element ref="PaymentConditions" minOccurs="0"/>
                <xs:element ref="PresentationDetails" minOccurs="0"/>
                <xs:element ref="ext:InvoiceRootExtension" minOccurs="0"/>
            </xs:sequence>
            <xs:attribute ref="GeneratingSystem" use="required"/>
            <xs:attribute ref="CancelledOriginalDocument" use="optional"/>
            <xs:attribute ref="DocumentType" use="required"/>
            <xs:attribute ref="InvoiceCurrency" use="required"/>
            <xs:attribute ref="ManualProcessing" use="optional"/>
            <xs:attribute ref="DocumentTitle" use="optional"/>
            <xs:attribute ref="Language" use="optional"/>
        </xs:complexType>
        <xs:complexType name="InvoiceRecipientType">
            <xs:sequence>
                <xs:element ref="VATIdentificationNumber"/>
                <xs:element ref="BillersInvoiceRecipientID"/>
                <xs:element ref="AccountingArea" minOccurs="0"/>
                <xs:element ref="SubOrganizationID" minOccurs="0"/>
                <xs:element ref="OrderReference" minOccurs="0"/>
                <xs:element ref="Address"/>
                <xs:element ref="ext:InvoiceRecipientExtension" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="ItemListType">
            <xs:sequence>
                <xs:element ref="HeaderDescription" minOccurs="0"/>
                <xs:element ref="ListLineItem" maxOccurs="unbounded"/>
                <xs:element ref="FooterDescription" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="ItemType">
            <xs:sequence>
                <xs:element ref="TaxedAmount"/>
                <xs:element ref="TaxRate"/>
                <xs:element ref="Amount"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="ListLineItemType">
            <xs:sequence>
                <xs:element ref="PositionNumber" minOccurs="0"/>
                <xs:element ref="Description" maxOccurs="unbounded"/>
                <xs:element ref="ArticleNumber" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="Quantity"/>
                <xs:element ref="UnitPrice"/>
                <xs:element ref="TaxRate"/>
                <xs:element ref="DiscountFlag" minOccurs="0"/>
                <xs:element ref="ReductionAndSurchargeListLineItemDetails" minOccurs="0"/>
                <xs:element ref="Delivery" minOccurs="0"/>
                <xs:element ref="BillersOrderReference" minOccurs="0"/>
                <xs:element ref="InvoiceRecipientsOrderReference" minOccurs="0"/>
                <xs:element ref="AdditionalInformation" minOccurs="0"/>
                <xs:element ref="LineItemAmount"/>
                <xs:element ref="ext:ListLineItemExtension" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="NoPaymentType">
            <xs:complexContent>
                <xs:extension base="PaymentMethodType"/>
                <!--dummy wird nicht erweitert-->
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="OrderingPartyType">
            <xs:sequence>
                <xs:element ref="VATIdentificationNumber"/>
                <xs:element ref="BillersOrderingPartyID"/>
                <xs:element ref="OrderReference" minOccurs="0"/>
                <xs:element ref="Address"/>
                <xs:element ref="ext:OrderingPartyExtension" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="OrderReferenceDetailType">
            <xs:sequence>
                <xs:element ref="OrderID"/>
                <xs:element ref="OrderPositionNumber" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="OrderReferenceType">
            <xs:sequence>
                <xs:element ref="OrderID"/>
                <xs:element ref="ReferenceDate" minOccurs="0"/>
                <xs:element ref="Description" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="OtherTaxType">
            <xs:sequence>
                <xs:element ref="Comment"/>
                <xs:element ref="Amount"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="PaymentConditionsType">
            <xs:sequence>
                <xs:element ref="DueDate"/>
                <xs:element ref="Discount" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="MinimumPayment" minOccurs="0"/>
                <xs:element ref="Comment" minOccurs="0"/>
                <xs:element ref="ext:PaymentConditionsExtension" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="PaymentMethodType">
            <xs:sequence>
                <xs:element ref="Comment" minOccurs="0"/>
                <xs:element ref="ext:PaymentMethodExtension" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="PaymentReferenceType">
            <xs:simpleContent>
                <xs:extension base="Digit12Type">
                    <xs:attribute ref="CheckSum" use="optional"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
        <xs:complexType name="PeriodType">
            <xs:sequence>
                <xs:element ref="FromDate"/>
                <xs:element ref="ToDate"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="PresentationDetailsType">
            <xs:sequence>
                <xs:element ref="URL" minOccurs="0"/>
                <xs:element ref="LogoURL" minOccurs="0"/>
                <xs:element ref="LayoutID" minOccurs="0"/>
                <xs:element ref="SuppressZero" minOccurs="0"/>
                <xs:element ref="ext:PresentationDetailsExtension" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="ReductionAndSurchargeDetailsType">
            <xs:sequence>
                <xs:choice maxOccurs="unbounded">
                    <xs:element ref="Reduction" minOccurs="0"/>
                    <xs:element ref="Surcharge" minOccurs="0"/>
                </xs:choice>
                <xs:element ref="ext:ReductionAndSurchargeDetailsExtension" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="ReductionAndSurchargeListLineItemDetailsType">
            <xs:sequence>
                <xs:choice>
                    <xs:element ref="ReductionListLineItem" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element ref="SurchargeListLineItem" minOccurs="0" maxOccurs="unbounded"/>
                </xs:choice>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="ReductionAndSurchargeBaseType">
            <xs:sequence>
                <xs:element ref="BaseAmount"/>
                <xs:element ref="Percentage" minOccurs="0"/>
                <xs:element ref="Amount" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="ReductionAndSurchargeType">
            <xs:complexContent>
                <xs:extension base="ReductionAndSurchargeBaseType">
                    <xs:sequence>
                        <xs:element ref="TaxRate"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="TaxRateType">
            <xs:simpleContent>
                <xs:extension base="PercentageType">
                    <xs:attribute ref="TaxCode" use="optional"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
        <xs:complexType name="TaxType">
            <xs:sequence>
                <xs:element ref="VAT"/>
                <xs:element ref="OtherTax" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="ext:TaxExtension" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="UnitType">
            <xs:simpleContent>
                <xs:extension base="Decimal4Type">
                    <xs:attribute ref="Unit" use="required"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
        <xs:complexType name="UniversalBankTransactionType">
            <xs:complexContent>
                <xs:extension base="PaymentMethodType">
                    <xs:sequence>
                        <xs:element ref="BeneficiaryAccount" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="PaymentReference" minOccurs="0"/>
                    </xs:sequence>
                    <xs:attribute ref="ConsolidatorPayable" use="optional"/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="VATType">
            <xs:choice>
                <xs:element ref="TaxExemption"/>
                <xs:sequence>
                    <xs:element ref="Item" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:choice>
        </xs:complexType>
    </xs:schema>

### ebinterface-4.0-ext.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSpy v2010 rel. 3 sp1 (http://www.altova.com) by - (Vienna University of Technology, Business Informatics) -->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.ebinterface.at/schema/4p0/extensions/ext" xmlns:sv="http://www.ebinterface.at/schema/4p0/extensions/sv" xmlns:pharmaceuticals="http://www.ebinterface.at/schema/4p0/extensions/pharmaceuticals" targetNamespace="http://www.ebinterface.at/schema/4p0/extensions/ext" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <!-- Import the industry specific namespaces -->
        <xs:import namespace="http://www.ebinterface.at/schema/4p0/extensions/sv" schemaLocation="ebinterface-4.0-sv.xsd"/>
        <!-- === Element declarations === -->
        <xs:element name="BillerExtension" type="BillerExtensionType"/>
        <xs:element name="Custom" type="CustomType"/>
        <xs:element name="DeliveryExtension" type="DeliveryExtensionType"/>
        <xs:element name="DetailsExtension" type="DetailsExtensionType"/>
        <xs:element name="InvoiceRecipientExtension" type="InvoiceRecipientExtensionType"/>
        <xs:element name="InvoiceRootExtension" type="InvoiceRootExtensionType"/>
        <xs:element name="ListLineItemExtension" type="ListLineItemExtensionType"/>
        <xs:element name="OrderingPartyExtension" type="OrderingPartyExtensionType"/>
        <xs:element name="PaymentConditionsExtension" type="PaymentConditionsExtensionType"/>
        <xs:element name="PaymentMethodExtension" type="PaymentMethodExtensionType"/>
        <xs:element name="PresentationDetailsExtension" type="PresentationDetailsExtensionType"/>
        <xs:element name="ReductionAndSurchargeDetailsExtension" type="ReductionAndSurchargeDetailsExtensionType"/>
        <xs:element name="TaxExtension" type="TaxExtensionType"/>
        <!-- === Group Deklarations === -->
        <xs:group name="Custom">
            <xs:sequence>
                <xs:any namespace="##other" processContents="lax"/>
            </xs:sequence>
        </xs:group>
        <!-- === Complex Type declarations === -->
        <xs:complexType name="BillerExtensionType">
            <xs:sequence>
                <xs:element ref="sv:BillerExtension" minOccurs="0"/>
                <xs:element ref="Custom" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="CustomType">
            <xs:sequence>
                <xs:group ref="Custom"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="DeliveryExtensionType">
            <xs:sequence>
                <xs:element ref="sv:DeliveryExtension" minOccurs="0"/>
                <xs:element ref="Custom" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="DetailsExtensionType">
            <xs:sequence>
                <xs:element ref="sv:DetailsExtension" minOccurs="0"/>
                <xs:element ref="Custom" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="InvoiceRecipientExtensionType">
            <xs:sequence>
                <xs:element ref="sv:InvoiceRecipientExtension" minOccurs="0"/>
                <xs:element ref="Custom" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="InvoiceRootExtensionType">
            <xs:sequence>
                <xs:element ref="sv:InvoiceRootExtension" minOccurs="0"/>
                <xs:element ref="Custom" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="ListLineItemExtensionType">
            <xs:sequence>
                <xs:element ref="sv:ListLineItemExtension" minOccurs="0"/>
                <xs:element ref="Custom" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="OrderingPartyExtensionType">
            <xs:sequence>
                <xs:element ref="sv:OrderingPartyExtension" minOccurs="0"/>
                <xs:element ref="Custom" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="PaymentConditionsExtensionType">
            <xs:sequence>
                <xs:element ref="sv:PaymentConditionsExtension" minOccurs="0"/>
                <xs:element ref="Custom" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="PaymentMethodExtensionType">
            <xs:sequence>
                <xs:element ref="sv:PaymentMethodExtension" minOccurs="0"/>
                <xs:element ref="Custom" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="PresentationDetailsExtensionType">
            <xs:sequence>
                <xs:element ref="sv:PresentationDetailsExtension" minOccurs="0"/>
                <xs:element ref="Custom" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="ReductionAndSurchargeDetailsExtensionType">
            <xs:sequence>
                <xs:element ref="sv:ReductionAndSurchargeDetailsExtension" minOccurs="0"/>
                <xs:element ref="Custom" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="TaxExtensionType">
            <xs:sequence>
                <xs:element ref="sv:TaxExtension" minOccurs="0"/>
                <xs:element ref="Custom" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:schema>

### ebinterface-4.0-sv.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSpy v2010 rel. 3 sp1 (http://www.altova.com) by - (Vienna University of Technology, Business Informatics) -->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.ebinterface.at/schema/4p0/extensions/sv" targetNamespace="http://www.ebinterface.at/schema/4p0/extensions/sv" elementFormDefault="qualified" attributeFormDefault="qualified">
        <!-- === Base Extension Element Definitions ===  -->
        <xs:element name="BillerExtension" type="BillerExtensionType"/>
        <xs:element name="DeliveryExtension" type="DeliveryExtensionType"/>
        <xs:element name="DetailsExtension" type="DetailsExtensionType"/>
        <xs:element name="InvoiceRecipientExtension" type="InvoiceRecipientExtensionType"/>
        <xs:element name="InvoiceRootExtension" type="InvoiceRootExtensionType"/>
        <xs:element name="ListLineItemExtension" type="ListLineItemExtensionType"/>
        <xs:element name="OrderingPartyExtension" type="OrderingPartyExtensionType"/>
        <xs:element name="PaymentConditionsExtension" type="PaymentConditionsExtensionType"/>
        <xs:element name="PaymentMethodExtension" type="PaymentMethodExtensionType"/>
        <xs:element name="ReductionAndSurchargeDetailsExtension" type="ReductionAndSurchargeDetailsExtensionType"/>
        <xs:element name="PresentationDetailsExtension" type="PresentationDetailsExtensionType"/>
        <xs:element name="TaxExtension" type="TaxExtensionType"/>
        <!-- === Extension specific elements === -->
        <xs:element name="BeneficiarySocialInsuranceNumber" type="DigitExact10Type"/>
        <xs:element name="BillersContractPartnerNumber" type="DigitExact6Type"/>
        <!-- === Simple Type definitions === -->
        <xs:simpleType name="DigitExact6Type">
            <xs:restriction base="xs:string">
                <xs:pattern value="(\d){6}"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="DigitExact10Type">
            <xs:restriction base="xs:string">
                <xs:pattern value="(\d){10}"/>
            </xs:restriction>
        </xs:simpleType>
        <!-- === Complex Type declarations === -->
        <xs:complexType name="BillerExtensionType">
            <xs:sequence>
                <xs:element ref="BillersContractPartnerNumber" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="DeliveryExtensionType">
            <xs:sequence/>
        </xs:complexType>
        <xs:complexType name="DetailsExtensionType">
            <xs:sequence/>
        </xs:complexType>
        <xs:complexType name="InvoiceRecipientExtensionType">
            <xs:sequence/>
        </xs:complexType>
        <xs:complexType name="InvoiceRootExtensionType">
            <xs:sequence/>
        </xs:complexType>
        <xs:complexType name="ListLineItemExtensionType">
            <xs:sequence>
                <xs:element ref="BeneficiarySocialInsuranceNumber" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="OrderingPartyExtensionType">
            <xs:sequence/>
        </xs:complexType>
        <xs:complexType name="PaymentConditionsExtensionType">
            <xs:sequence/>
        </xs:complexType>
        <xs:complexType name="PaymentMethodExtensionType">
            <xs:sequence/>
        </xs:complexType>
        <xs:complexType name="PresentationDetailsExtensionType">
            <xs:sequence/>
        </xs:complexType>
        <xs:complexType name="ReductionAndSurchargeDetailsExtensionType">
            <xs:sequence/>
        </xs:complexType>
        <xs:complexType name="TaxExtensionType">
            <xs:sequence/>
        </xs:complexType>
    </xs:schema>

### exDPCallbackService.wsdl

    <?xml version="1.0" encoding="UTF-8"?>
    <!--########################################################################
    # current version: 1.0 - for more details see exDPDeliveryservice.wsdl
    ############################################################################-->
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                      xmlns:dn="http://reference.e-government.gv.at/namespace/zustellung/dual_notification/20130121#"
                      xmlns:tns="http://www.exthex.com/exDPCallbackService.wsdl"
                      name="exDPCallbackService"
                      targetNamespace="http://www.exthex.com/exDPCallbackService.wsdl">

        <wsdl:import location="DualeZustellung_Notification.xsd" namespace="http://reference.e-government.gv.at/namespace/zustellung/dual_notification/20130121#" />

        <wsdl:message name="DualNotificationRequest">
            <wsdl:part name="DualNotificationRequest" element="dn:DualNotificationRequest" />
        </wsdl:message>

        <wsdl:message name="DualNotificationResponse">
            <wsdl:part name="DualNotificationResponse" element="dn:DualNotificationResponse" />
        </wsdl:message>

        <wsdl:portType name="exDPCallbackService">
            <wsdl:operation name="callback">
                <wsdl:input message="tns:DualNotificationRequest" />
                <wsdl:output message="tns:DualNotificationResponse" />
            </wsdl:operation>
        </wsdl:portType>

        <wsdl:binding name="exDPCallbackServiceSoapBinding" type="tns:exDPCallbackService">
            <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
            <wsdl:operation name="callback">
                <soap:operation soapAction="capeconnect:exDPCallbackService:exDPCallbackService#callback" style="document" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>

        <wsdl:service name="exDPCallbackService">
            <wsdl:port name="exDPCallbackServicePort" binding="tns:exDPCallbackServiceSoapBinding">
                <soap:address location="http://localhost:8004/xdpTxService/ws/exDPCallbackService" />
            </wsdl:port>
        </wsdl:service>
    </wsdl:definitions>

### exDPDeliveryResultPollingService.wsdl

    <?xml version="1.0" encoding="UTF-8"?>
    <!--########################################################################
    # current version: 1.0 - for more details see exDPDeliveryResultPollingService.wsdl
    ############################################################################-->
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                      xmlns:tns="http://www.exthex.com/exDPDeliveryResultPollingService.wsdl"
                      xmlns:pns="http://www.exthex.com/exDPDeliveryResultPollingServiceTypes.xsd"
                      name="exDPDeliveryResultPollingService"
                      targetNamespace="http://www.exthex.com/exDPDeliveryResultPollingService.wsdl">

        <wsdl:import location="schema/exDPDeliveryResultPollingServiceTypes.xsd"
                     namespace="http://www.exthex.com/exDPDeliveryResultPollingServiceTypes.xsd" />

        <wsdl:message name="BulkDeliveryResultRequest">
            <wsdl:part name="BulkDeliveryResultRequest" element="pns:bulkDeliveryResultRequest" />
        </wsdl:message>

        <wsdl:message name="BulkDeliveryResultResponse">
            <wsdl:part name="BulkDeliveryResultResponse" element="pns:xdpBulkDeliveryResult" />
        </wsdl:message>

        <wsdl:portType name="exDPDeliveryResultPollingService">
            <wsdl:operation name="retrieveBulkDeliveryResult">
                <wsdl:input message="tns:BulkDeliveryResultRequest" />
                <wsdl:output message="tns:BulkDeliveryResultResponse" />
            </wsdl:operation>
        </wsdl:portType>

        <wsdl:binding name="exDPDeliveryResultPollingServiceSoapBinding" type="tns:exDPDeliveryResultPollingService">
            <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
            <wsdl:operation name="retrieveBulkDeliveryResult">
                <soap:operation soapAction="capeconnect:exDPDeliveryResultPollingService:exDPDeliveryResultPollingService#retrieveBulkDeliveryResult" style="document" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>

        <wsdl:service name="exDPDeliveryResultPollingService">
            <wsdl:port name="exDPDeliveryResultPollingServicePort" binding="tns:exDPDeliveryResultPollingServiceSoapBinding">
                <soap:address location="http://localhost:8004/xdpTxService/ws/exDPDeliveryResultPollingService" />
            </wsdl:port>
        </wsdl:service>
    </wsdl:definitions>

### exDPDeliveryResultPollingServiceTypes.xsd

    <?xml version="1.0" encoding="UTF-8"?>

    <xs:schema
        xmlns:ps="http://www.exthex.com/exDPDeliveryResultPollingServiceTypes.xsd"
        xmlns:xdp="http://www.exthex.com/exDPDeliveryResultPollingServiceTypes.xsd"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:t="http://www.exthex.com/exdp/types"
        targetNamespace="http://www.exthex.com/exDPDeliveryResultPollingServiceTypes.xsd"
        elementFormDefault="qualified" attributeFormDefault="unqualified">

        <xs:import  namespace="http://www.exthex.com/exdp/types" schemaLocation="xdpDeliveryTypes.xsd"> </xs:import>

        <xs:element name="bulkDeliveryResultRequest" type="ps:BulkDeliveryResultRequestType"></xs:element>

        <xs:element name="xdpBulkDeliveryResult" type="t:xdpBulkDeliveryResult"></xs:element>

        <xs:complexType name="BulkDeliveryResultRequestType">
            <xs:sequence>
                <xs:element name="tenantId" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The tenant id the delivery has been submitted with</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="userId" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The user id the delivery has been submitted with</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="foreignId" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>foreign id the sender submitted the delivery with</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="jobId" type="xs:string" nillable="false" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>jobId id returned when submitted via the sendhybrid service</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="required" />
        </xs:complexType>
    </xs:schema>

### exDPDeliveryStatusPollingService.wsdl

    <?xml version="1.0" encoding="UTF-8"?>
    <!--########################################################################
    # current version: 1.0 - for more details see exDPDeliveryStatusPollingService.wsdl
    ############################################################################-->
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                      xmlns:tns="http://www.exthex.com/exDPDeliveryStatusPollingService.wsdl"
                      xmlns:pns="http://www.exthex.com/exDPDeliveryStatusPollingServiceTypes.xsd"
                      name="exDPDeliveryStatusPollingService"
                      targetNamespace="http://www.exthex.com/exDPDeliveryStatusPollingService.wsdl">
        <wsdl:import location="exDPDeliveryStatusPollingServiceTypes.xsd"
                     namespace="http://www.exthex.com/exDPDeliveryStatusPollingServiceTypes.xsd" />

        <wsdl:message name="DeliveryStatusRequest">
            <wsdl:part name="DeliveryStatusRequest" element="pns:deliveryStatusRequest" />
        </wsdl:message>

        <wsdl:message name="DeliveryStatusResponse">
            <wsdl:part name="DeliveryStatusResponse" element="pns:deliveryStatusResponse" />
        </wsdl:message>

        <wsdl:portType name="exDPDeliveryStatusPollingService">
            <wsdl:operation name="retrieveDeliveryStatus">
                <wsdl:input message="tns:DeliveryStatusRequest" />
                <wsdl:output message="tns:DeliveryStatusResponse" />
            </wsdl:operation>
        </wsdl:portType>

        <wsdl:binding name="exDPDeliveryStatusPollingServiceSoapBinding" type="tns:exDPDeliveryStatusPollingService">
            <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
            <wsdl:operation name="retrieveDeliveryStatus">
                <soap:operation soapAction="capeconnect:exDPDeliveryStatusPollingService:exDPDeliveryStatusPollingService#retrieveDeliveryStatus" style="document" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>

        <wsdl:service name="exDPDeliveryStatusPollingService">
            <wsdl:port name="exDPDeliveryStatusPollingServicePort" binding="tns:exDPDeliveryStatusPollingServiceSoapBinding">
                <soap:address location="http://localhost:8004/xdpTxService/ws/exDPDeliveryStatusPollingService" />
            </wsdl:port>
        </wsdl:service>
    </wsdl:definitions>

### exDPDeliveryStatusPollingServiceTypes.xsd

    <?xml version="1.0" encoding="UTF-8"?>

    <xs:schema
        xmlns:ps="http://www.exthex.com/exDPDeliveryStatusPollingServiceTypes.xsd"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.exthex.com/exDPDeliveryStatusPollingServiceTypes.xsd"
        elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:element name="deliveryStatusRequest" type="ps:DeliveryStatusRequestType"></xs:element>

        <xs:element name="deliveryStatusResponse" type="ps:DeliveryStatusResponseType"></xs:element>

        <xs:complexType name="DeliveryStatusResponseType">
            <xs:sequence>
                <xs:element name="globalDeliveryInfo" type="ps:GlobalDeliveryInfoType" minOccurs="1" >
                    <xs:annotation>
                        <xs:documentation>Basic delivery info like tenant id, user id, last status details...</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryStatus" type="ps:DeliveryStatusType" minOccurs="1" maxOccurs="unbounded" >
                    <xs:annotation>
                        <xs:documentation>A list of statuses for this delivery</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="xdpMessageType">
            <xs:sequence>
                <xs:element name="id" type="xs:string" >
                    <xs:annotation>
                        <xs:documentation>XDP Message Code</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="message" type="xs:string" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>Info message text</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="DeliveryStatusType">
            <xs:sequence>
                <xs:element name="date" type="xs:dateTime" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Send date when delivery was handed over to channel or receipt date</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="statusCode" type="xs:string" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Delivery code which represents the state the delivery is in</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="statusDescription" type="xs:string" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>A short textual description about the delivery state</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="finalState" type="xs:boolean" minOccurs="1" maxOccurs="1" default="false">
                    <xs:annotation>
                        <xs:documentation>Marks a delivery status as final. There are no more statuses expected</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="errorState" type="xs:boolean" minOccurs="1" maxOccurs="1" default="false">
                    <xs:annotation>
                        <xs:documentation>Marks error states</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="selectedDeliveryChannel" type="xs:string" minOccurs="0" maxOccurs="1" >
                    <xs:annotation>
                        <xs:documentation>The delivery channel which has been selected</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="selectedDeliveryChannelDisplayName" type="xs:string" minOccurs="0" maxOccurs="1" >
                    <xs:annotation>
                        <xs:documentation>The name of the channel through which the delivery has been sent</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryServer" type="xs:string" minOccurs="0" maxOccurs="1" >
                    <xs:annotation>
                        <xs:documentation>The delivery server which has been selected</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="additionalData" type="ps:AdditionalDataType" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Holds additional aviso/delivery/hybridletter information</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="files" type="ps:DeliveryFileType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>A list of DeliveryFiles</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="DeliveryStatusRequestType">
            <xs:sequence>
                <xs:element name="tenantId" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The tenant id the delivery has been submitted with</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="userId" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The user id the delivery has been submitted with</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="foreignId" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Foreign id the sender submitted the delivery with</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryId" type="xs:string" nillable="false" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Delivery id returned when submitted via the sendhybrid service</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="lastStatusOnly" type="xs:boolean" minOccurs="1" maxOccurs="1" default="false">
                    <xs:annotation>
                        <xs:documentation>Returns only the last status received</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="required" />
        </xs:complexType>

        <xs:complexType name="DeliveryFileType">
            <xs:sequence>
                <xs:element name="documentId" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The ID identifying the document</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="type" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Type of document retrieved (e.g.: INPUT_DOCUMENT, OUTPUT_DOCUMENT, DELIVERY_DOCUMENT, ADDRESS_PAGE)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="filename" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The filename of the file</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="mimeType" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>MimeType identifies file format</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="order" type="xs:short" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Order of files from INPUT over DELIVERY to OUTPUT documents</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="fileHashCode" type="xs:string"    nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Reference to retrieve the file</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="infoMessages" type="ps:xdpMessageType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Info messages list taken from document</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="AdditionalDataType">
            <xs:sequence>
                <xs:element name="avisoData" type="ps:AvisoDataType" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Information about the aviso data</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryInfo" type="ps:DeliveryInfoType" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Additional information about the delivery process</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="hybridLetterData" type="ps:HybridLetterDataType" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Hybrid letter specific information</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="GlobalDeliveryInfoType">
            <xs:sequence>
                <xs:element name="tenantId" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The tenant id the delivery has been submitted with</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="userId" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The user id the delivery has been submitted with</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="foreignId" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Foreign id the sender submitted the delivery with</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryId" type="xs:string" nillable="false" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Delivery id returned when submitted via the sendhybrid service</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="profile" type="xs:string" nillable="false" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Profile used for this delivery</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="lastStatusDate" type="xs:dateTime" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Send date when delivery was handed over to channel or receipt date</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="statusCode" type="xs:string" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Delivery code which represents the state the delivery is in</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="finalState" type="xs:boolean" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Marks a delivery status as final. There are no more statuses expected</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="errorState" type="xs:boolean" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Marks error states</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="paymentState" type="xs:boolean" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Marks a payment status: true if the payment has been realized; otherwise false</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="barCode" type="xs:string" minOccurs="0" maxOccurs="1" >
                    <xs:annotation>
                        <xs:documentation>The barcode generated for the hybrid letter delivery. Since version '1.1'.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="consolidatedInDeliveryId" type="xs:string" nillable="false" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The deliveryId into which this delivery has been consolidated (i.e. put into same envelope) New since version 3.2</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="consolidatedInForeignId" type="xs:string" nillable="false" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The foreignId into which this delivery has been consolidated (i.e. put into same envelope) New since version 3.2</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="jobInfoMessages" type="ps:xdpMessageType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Info messages list taken from job</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryDataInfoMessages" type="ps:xdpMessageType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Info messages list taken from delivery data</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="DeliveryInfoType">
            <xs:sequence>
                <xs:element name="zbpk" type="xs:string" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The zbpk of the receiver</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="AvisoDataType">
            <xs:sequence>
                <xs:element name="barCode" type="xs:string" minOccurs="1" maxOccurs="1" >
                    <xs:annotation>
                        <xs:documentation>The barcode generated for the hybrid letter delivery</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="avisoStatusText" type="xs:string" minOccurs="0" maxOccurs="1" >
                    <xs:annotation>
                        <xs:documentation>Optional text about the status from the Austrian Post A.G. (e.g.: receiver address invalid: no city)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryAvisoStatus" type="xs:string" minOccurs="1" maxOccurs="1" >
                    <xs:annotation>
                        <xs:documentation>Status of aviso data</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="HybridLetterDataType">
            <xs:sequence>
                <xs:element name="postalStatusCode" type="xs:string" minOccurs="0" maxOccurs="1" >
                    <xs:annotation>
                        <xs:documentation>Postal status code of the delivery submitted by Post A.G.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="postalStatusText" type="xs:string" minOccurs="0" maxOccurs="1" >
                    <xs:annotation>
                        <xs:documentation>Textual representation of the code</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="postalStatusTextDetail" type="xs:string" minOccurs="0" maxOccurs="1" >
                    <xs:annotation>
                        <xs:documentation>Free text with additional information about the status</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="finalState" type="xs:boolean" minOccurs="1" maxOccurs="1" default="false" >
                    <xs:annotation>
                        <xs:documentation>Marks a final status (true/false)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="date" type="xs:dateTime" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The day the status was set</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryArea" type="xs:string" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Specifies the department type and identifier of the Post A.G.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="startOfDepositation" type="xs:dateTime" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Start of the pickup due date (is set if the state is "hinterlegt" or "ausgefolgt")</xs:documentation>
                    </xs:annotation>
                </xs:element>
                            <xs:element name="statusCorrection" type="xs:boolean" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Boolean value indicating if the status was changed</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="comment" type="xs:string" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>If the status was changed, this free text describes which values have been changed</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="PDFDigital" type="xs:boolean" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Digital = 1, Scanpoint = 0</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Uhrzeit" type="xs:time" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The time the status was set</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Abholfiliale" type="xs:string" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The delivery store where the delivery can be picked up</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Hinterlegungsort" type="xs:string"    minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The delivery place where the delivery can be picked up</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Uebernahmeverhaeltnis" type="xs:string"   minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The relationship of the person who took the delivery</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="IdentitaetGeprueft" type="xs:string"  minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Was the identity checked</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Freitext" type="xs:string" minOccurs="0"  maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Custom text</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="GrundUnfaehigkeit" type="xs:string"   minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>The reason why the person could not sign</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="NachsendeDaten" type="ps:NachsendeDatenType"  minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Holds additional recipient information for forwarding</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="NachsendeDatenType">
            <xs:sequence>
                <xs:element name="PostalCode" type="xs:int" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Postal code</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Municipality" type="xs:string" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Municipality</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="StreetName" type="xs:string" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Street name</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="BuildingNumber" type="xs:string" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Building number</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="DoorNumber" type="xs:string" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Door number</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Rechtstitel" type="xs:string" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Legal title - only optional with status "gerichtlicher Nachsender"</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Anrede" type="xs:string" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Salutation</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Titel" type="xs:string" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Title</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Vorname" type="xs:string" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>First name</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Nachname" type="xs:string" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Surname - company name also passed with this field</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:schema>

### exDPFileTransferService.wsdl

    <?xml version="1.0" encoding="UTF-8"?>
    <!--########################################################################
    # current version: 1.0 - for more details see exDPFileTransferService.wsdl
    ############################################################################-->
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                      xmlns:tns="http://www.exthex.com/exDPFileTransferService.wsdl"
                      xmlns:fs="http://www.exthex.com/exDPFileTransferServiceTypes.xsd"
                      name="exDPFileTransferService"
                      targetNamespace="http://www.exthex.com/exDPFileTransferService.wsdl">
        <wsdl:import location="exDPFileTransferServiceTypes.xsd"
                     namespace="http://www.exthex.com/exDPFileTransferServiceTypes.xsd" />

        <wsdl:message name="FileDownloadRequest">
            <wsdl:part name="FileDownloadRequest" element="fs:fileDownloadRequest" />
        </wsdl:message>

        <wsdl:message name="FileDownloadResponse">
            <wsdl:part name="FileDownloadResponse" element="fs:fileDownloadResponse" />
        </wsdl:message>

        <wsdl:portType name="exDPFileTransferService">
            <wsdl:operation name="downloadFile">
                <wsdl:input message="tns:FileDownloadRequest" />
                <wsdl:output message="tns:FileDownloadResponse" />
            </wsdl:operation>
        </wsdl:portType>

        <wsdl:binding name="exDPFileTransferServiceSoapBinding" type="tns:exDPFileTransferService">
            <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
            <wsdl:operation name="downloadFile">
                <soap:operation soapAction="capeconnect:exDPFileTransferService:exDPFileTransferService#downloadFile" style="document" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>

        <wsdl:service name="exDPFileTransferService">
            <wsdl:port name="exDPFileTransferServicePort" binding="tns:exDPFileTransferServiceSoapBinding">
                <soap:address location="http://localhost:8004/xdpTxService/ws/exDPFileTransferService" />
            </wsdl:port>
        </wsdl:service>
    </wsdl:definitions>

### exDPFileTransferServiceTypes.xsd

    <?xml version="1.0" encoding="UTF-8"?>

    <xs:schema xmlns:ts="http://www.exthex.com/exDPFileTransferServiceTypes.xsd"
                xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.exthex.com/exDPFileTransferServiceTypes.xsd"
                xmlns:xm="http://www.w3.org/2005/05/xmlmime"
                elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:element name="fileDownloadRequest">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="tenantId" type="xs:string" minOccurs="1" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>Id of the tenant the file belongs to</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="userId" type="xs:string" minOccurs="1" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>Id of the sender the file belongs to</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="foreignId" type="xs:string" minOccurs="1" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>Foreign id of the delivery</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="documentId" type="xs:string" minOccurs="1" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>Document id</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="fileHashCode" type="xs:string" minOccurs="1" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>Hash code of the searching file</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>

        <xs:element name="fileDownloadResponse">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="documentId" type="xs:string" minOccurs="1" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>Document id</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="fileHashCode" type="xs:string" minOccurs="0" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>File hash code</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="filename" type="xs:string" minOccurs="0" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>Filename</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="mimeType" type="xs:string" minOccurs="0" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>Mime type of the file</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="contentLength" type="xs:int" minOccurs="0" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>Length of the file content</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="content" type="xs:base64Binary" minOccurs="1" maxOccurs="1" nillable="true" xm:expectedContentTypes="application/octet-stream">
                      <xs:annotation>
                        <xs:documentation>Base64 encoded content of the file</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="status" type="ts:Status" minOccurs="1" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>Response status</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>

        <xs:complexType name="Status">
            <xs:sequence>
                <xs:element name="status" type="xs:string" minOccurs="1" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>Status code (e.g. no file found etc)</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                <xs:element name="description" type="xs:string" minOccurs="1" maxOccurs="1" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Description of the status</xs:documentation>
                      </xs:annotation>
                    </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:schema>

### exDPPollingService.wsdl

    <?xml version="1.0" encoding="UTF-8"?>
    <!--########################################################################
    # current version: 1.0 - for more details see exDPPollingService.wsdl
    ############################################################################-->
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                      xmlns:dn="http://reference.e-government.gv.at/namespace/zustellung/dual_notification/20130121#"
                      xmlns:tns="http://www.exthex.com/exDPPollingService.wsdl"
                      xmlns:pns="http://www.exthex.com/exDPPollingServiceTypes.xsd"
                      name="exDPPollingService"
                      targetNamespace="http://www.exthex.com/exDPPollingService.wsdl">

        <wsdl:import location="DualeZustellung_Notification.xsd" namespace="http://reference.e-government.gv.at/namespace/zustellung/dual_notification/20130121#" />
        <wsdl:import location="exDPPollingServiceTypes.xsd" namespace="http://www.exthex.com/exDPPollingServiceTypes.xsd" />

        <wsdl:message name="StatusRequest">
            <wsdl:part name="StatusRequest" element="dn:StatusRequest" />
            <wsdl:part name="PollingOptions" element="pns:PollingOptions" />
        </wsdl:message>

        <wsdl:message name="StatusResponse">
            <wsdl:part name="StatusResponse" element="dn:StatusResponse" />
        </wsdl:message>

        <wsdl:portType name="exDPPollingService">
            <wsdl:operation name="requestStatus">
                <wsdl:input message="tns:StatusRequest" />
                <wsdl:output message="tns:StatusResponse" />
            </wsdl:operation>
        </wsdl:portType>

        <wsdl:binding name="exDPPollingServiceSoapBinding" type="tns:exDPPollingService">
            <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
            <wsdl:operation name="requestStatus">
                <soap:operation soapAction="capeconnect:exDPPollingService:exDPPollingService#requestStatus" style="document" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>

        <wsdl:service name="exDPPollingService">
            <wsdl:port name="exDPPollingServicePort" binding="tns:exDPPollingServiceSoapBinding">
                <soap:address location="http://localhost:8004/xdpTxService/ws/exDPPollingService" />
            </wsdl:port>
        </wsdl:service>
    </wsdl:definitions>

### exDPPollingServiceTypes.xsd

    <?xml version="1.0" encoding="UTF-8"?>

    <xs:schema xmlns:ps="http://www.exthex.com/exDPPollingServiceTypes.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.exthex.com/exDPPollingServiceTypes.xsd" elementFormDefault="qualified"
        attributeFormDefault="unqualified">

        <xs:element name="PollingOptions" type="ps:PollingOptionsType">
            <xs:annotation>
                <xs:documentation>Additional polling options</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="PollingOptionsType">
            <xs:sequence>
                <xs:element name="RequestAddressPageDocument" type="xs:boolean" default="false">
                    <xs:annotation>
                        <xs:documentation>If set to true then address page in case of hybrid letter process will be added to the response.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="RequestReceiptDocument" type="xs:boolean" default="false">
                    <xs:annotation>
                        <xs:documentation>If set to true then retrieved receipt will be added to the response.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:schema>

### general-additonal-parameter.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSpy v2010 rel. 3 (http://www.altova.com) by Hendryk Lechtenbrink (Bundesrechenzentrum GmbH) -->
    <xs:schema xmlns:dd="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" xmlns:ddgp="uri:general.additional.params/20130121#" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="uri:general.additional.params/20130121#" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" schemaLocation="DualeZustellung.xsd"/>
        <xs:element name="GeneralAditionalPrintParameter" type="ddgp:GeneralAditionalPrintParameterType" substitutionGroup="dd:AdditionalPrintParameterSet"/>
        <xs:complexType name="GeneralAditionalPrintParameterType">
            <xs:complexContent>
                <xs:extension base="dd:AdditionalPrintParameterSetType">
                    <xs:sequence>
                        <xs:element ref="ddgp:PostageRange" minOccurs="0"/>
                        <xs:element name="PrinterName" type="xs:string" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Druckername (z.B. td08466), sonst default Druckstrasse</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Auflieferort" type="xs:string" minOccurs="0"/>
                        <xs:element name="Auflieferdatum" type="xs:string" minOccurs="0"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="PostageRange" type="xs:string">
            <xs:annotation>
                <xs:documentation>Portobereich (inland, eu, noneu). Dient zur Sortierung</xs:documentation>
            </xs:annotation>
        </xs:element>
    </xs:schema>

### printJobStatusService.wsdl

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                      xmlns:tns="http://www.exthex.com/printJobStatusService.wsdl"
                      xmlns:pns="http://www.exthex.com/exdp/types"
                      name="printJobStatusService"
                      targetNamespace="http://www.exthex.com/printJobStatusService.wsdl">

        <wsdl:import location="printJobStatusTypes.xsd" namespace="http://www.exthex.com/exdp/types" />

        <wsdl:message name="PrintJobStatusRequest">
            <wsdl:part name="PrintJobStatusRequest" element="pns:PrintJobStatusRequest" />
        </wsdl:message>

        <wsdl:message name="PrintJobStatusResponse">
            <wsdl:part name="PrintJobStatusResponse" element="pns:PrintJobStatusResponse" />
        </wsdl:message>

        <wsdl:portType name="PrintJobStatusService">
            <wsdl:operation name="requestStatus">
                <wsdl:input message="tns:PrintJobStatusRequest" />
                <wsdl:output message="tns:PrintJobStatusResponse" />
            </wsdl:operation>
        </wsdl:portType>

        <wsdl:binding name="PrintJobStatusServiceSoapBinding" type="tns:PrintJobStatusService">
            <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />

            <wsdl:operation name="requestStatus">
                <soap:operation soapAction="capeconnect:printJobStatusService:printJobStatusService#requestStatus" style="document" />
                <wsdl:input>
                    <soap:body use="literal" />
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal" />
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>

        <wsdl:service name="PrintJobStatusService">
            <wsdl:port name="printJobStatusPort" binding="tns:PrintJobStatusServiceSoapBinding">
                <soap:address location="http://localhost:8004/xdpTxService/ws/printJobStatusService" />
            </wsdl:port>
        </wsdl:service>

    </wsdl:definitions>

### printJobStatusTypes.xsd

    <?xml version="1.0" encoding="UTF-8"?>

    <xs:schema xmlns:ps="http://www.exthex.com/exdp/types"
               xmlns:xs="http://www.w3.org/2001/XMLSchema"
               xmlns:ns1="http://www.w3.org/2005/05/xmlmime"
               targetNamespace="http://www.exthex.com/exdp/types"
               elementFormDefault="qualified"
               attributeFormDefault="unqualified">

        <xs:include schemaLocation="xdpPrinttypes_v03.xsd"/>

        <xs:element name="PrintJobStatusRequest">
            <xs:complexType name="PrintJobStatusRequest">
                <xs:sequence>
                    <xs:element name="PrintResults" type="ps:printResults" />
                    <xs:element name="RequestCredentials" type="ps:RequestCredentials" minOccurs="1" maxOccurs="1" />
                </xs:sequence>
                <xs:attribute name="version" type="xs:string" use="required"/>
            </xs:complexType>
        </xs:element>
        <xs:element name="PrintJobStatusResponse">
            <xs:complexType name="PrintJobStatusResponse">
                <xs:sequence>
                    <xs:element name="StatusResponse" type="ps:StatusReponse" />
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:complexType name="StatusReponse">
            <xs:annotation>
                <xs:documentation>Eine Menge von Rückmeldungen vom Request</xs:documentation>
            </xs:annotation>

            <xs:sequence>
                <xs:element name="jobResponse" type="ps:PrintJobResponseType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Rückmeldungen auf Jobebene</xs:documentation>
                    </xs:annotation>
                </xs:element>

                <xs:element name="jobResponse" type="ps:PrintJobResponseType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Rückmeldungen für die Print Items</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="RequestCredentials">
            <xs:sequence>
                <xs:element name="userId" type="xs:string" />
                <xs:element name="password" type="xs:string" />
                <xs:element name="tenantId" type="xs:string" />
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="PrintJobResponseType">
            <xs:sequence>
                <xs:element name="itemId" type="xs:long">
                    <xs:annotation>
                        <xs:documentation>Eindeutige ID des betroffenen PrintJobs oder -items (damit die Rückmeldung dem PrintJob oder PrintItem zugewiesen werden kann)</xs:documentation>
                    </xs:annotation>
                </xs:element>

                <xs:element name="responseCode" type="xs:string" minOccurs="0" />

                <xs:element name="responseDetailMessage" type="xs:string" />
            </xs:sequence>
        </xs:complexType>

    </xs:schema>

### W3C-XMLDSig.xsd

    <?xml version="1.0" encoding="utf-8"?>
    <!-- PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd"
     -->
    <!-- Schema for XML Signatures
        http://www.w3.org/2000/09/xmldsig#
        $Revision: 1.1 $ on $Date: 2002/11/11 16:24:27 $ by $Author: Linauer $

        Copyright 2001 The Internet Society and W3C (Massachusetts Institute
        of Technology, Institut National de Recherche en Informatique et en
        Automatique, Keio University). All Rights Reserved.
        http://www.w3.org/Consortium/Legal/

        This document is governed by the W3C Software License [1] as described
        in the FAQ [2].

        [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
        [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
    -->
    <schema targetNamespace="http://www.w3.org/2000/09/xmldsig#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="0.1">
        <!-- Basic Types Defined for Signatures -->
        <!-- modified to ensure that whiteSpace is preserved
    <simpleType name="CryptoBinary">
      <restriction base="base64Binary">
      </restriction>
    </simpleType>
     -->
        <simpleType name="CryptoBinary">
            <restriction base="string">
                <whiteSpace value="preserve"/>
                <pattern value="[A-Za-z0-9\+/=\n\r\t ]*"/>
            </restriction>
        </simpleType>
        <!-- Start Signature -->
        <element name="Signature" type="ds:SignatureType"/>
        <complexType name="SignatureType">
            <sequence>
                <element ref="ds:SignedInfo"/>
                <element ref="ds:SignatureValue"/>
                <element ref="ds:KeyInfo" minOccurs="0"/>
                <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
            <attribute name="Id" type="ID" use="optional"/>
        </complexType>
        <element name="SignatureValue" type="ds:SignatureValueType"/>
        <complexType name="SignatureValueType">
            <simpleContent>
                <extension base="ds:CryptoBinary">
                    <attribute name="Id" type="ID" use="optional"/>
                </extension>
            </simpleContent>
        </complexType>
        <!-- Start SignedInfo -->
        <element name="SignedInfo" type="ds:SignedInfoType"/>
        <complexType name="SignedInfoType">
            <sequence>
                <element ref="ds:CanonicalizationMethod"/>
                <element ref="ds:SignatureMethod"/>
                <element ref="ds:Reference" maxOccurs="unbounded"/>
            </sequence>
            <attribute name="Id" type="ID" use="optional"/>
        </complexType>
        <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/>
        <complexType name="CanonicalizationMethodType" mixed="true">
            <sequence>
                <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
                <!-- (0,unbounded) elements from (1,1) namespace -->
            </sequence>
            <attribute name="Algorithm" type="anyURI" use="required"/>
        </complexType>
        <element name="SignatureMethod" type="ds:SignatureMethodType"/>
        <complexType name="SignatureMethodType" mixed="true">
            <sequence>
                <element name="HMACOutputLength" type="ds:HMACOutputLengthType" minOccurs="0"/>
                <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
                <!-- (0,unbounded) elements from (1,1) external namespace -->
            </sequence>
            <attribute name="Algorithm" type="anyURI" use="required"/>
        </complexType>
        <!-- Start Reference -->
        <element name="Reference" type="ds:ReferenceType"/>
        <complexType name="ReferenceType">
            <sequence>
                <element ref="ds:Transforms" minOccurs="0"/>
                <element ref="ds:DigestMethod"/>
                <element ref="ds:DigestValue"/>
            </sequence>
            <attribute name="Id" type="ID" use="optional"/>
            <attribute name="URI" type="anyURI" use="optional"/>
            <attribute name="Type" type="anyURI" use="optional"/>
        </complexType>
        <element name="Transforms" type="ds:TransformsType"/>
        <complexType name="TransformsType">
            <sequence>
                <element ref="ds:Transform" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
        <element name="Transform" type="ds:TransformType"/>
        <complexType name="TransformType" mixed="true">
            <choice minOccurs="0" maxOccurs="unbounded">
                <any namespace="##other" processContents="lax"/>
                <element name="XPath" type="string"/>
                <!-- (1,1) elements from (0,unbounded) namespaces -->
            </choice>
            <attribute name="Algorithm" type="anyURI" use="required"/>
        </complexType>
        <!-- End Reference -->
        <element name="DigestMethod" type="ds:DigestMethodType"/>
        <complexType name="DigestMethodType" mixed="true">
            <sequence>
                <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
            <attribute name="Algorithm" type="anyURI" use="required"/>
        </complexType>
        <element name="DigestValue" type="ds:DigestValueType"/>
        <simpleType name="DigestValueType">
            <restriction base="ds:CryptoBinary"/>
        </simpleType>
        <!-- End SignedInfo -->
        <!-- Start KeyInfo -->
        <element name="KeyInfo" type="ds:KeyInfoType"/>
        <complexType name="KeyInfoType" mixed="true">
            <choice maxOccurs="unbounded">
                <element ref="ds:KeyName"/>
                <element ref="ds:KeyValue"/>
                <element ref="ds:RetrievalMethod"/>
                <element ref="ds:X509Data"/>
                <element ref="ds:PGPData"/>
                <element ref="ds:SPKIData"/>
                <element ref="ds:MgmtData"/>
                <any namespace="##other" processContents="lax"/>
                <!-- (1,1) elements from (0,unbounded) namespaces -->
            </choice>
            <attribute name="Id" type="ID" use="optional"/>
        </complexType>
        <element name="KeyName" type="string"/>
        <element name="MgmtData" type="string"/>
        <element name="KeyValue" type="ds:KeyValueType"/>
        <complexType name="KeyValueType" mixed="true">
            <choice>
                <element ref="ds:DSAKeyValue"/>
                <element ref="ds:RSAKeyValue"/>
                <any namespace="##other" processContents="lax"/>
            </choice>
        </complexType>
        <element name="RetrievalMethod" type="ds:RetrievalMethodType"/>
        <complexType name="RetrievalMethodType">
            <sequence>
                <element name="Transforms" type="ds:TransformsType" minOccurs="0"/>
            </sequence>
            <attribute name="URI" type="anyURI"/>
            <attribute name="Type" type="anyURI" use="optional"/>
        </complexType>
        <!-- Start X509Data -->
        <element name="X509Data" type="ds:X509DataType"/>
        <complexType name="X509DataType">
            <sequence maxOccurs="unbounded">
                <choice>
                    <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
                    <element name="X509SKI" type="ds:CryptoBinary"/>
                    <element name="X509SubjectName" type="string"/>
                    <element name="X509Certificate" type="ds:CryptoBinary"/>
                    <element name="X509CRL" type="ds:CryptoBinary"/>
                    <any namespace="##other" processContents="lax"/>
                </choice>
            </sequence>
        </complexType>
        <complexType name="X509IssuerSerialType">
            <sequence>
                <element name="X509IssuerName" type="string"/>
                <element name="X509SerialNumber" type="integer"/>
            </sequence>
        </complexType>
        <!-- End X509Data -->
        <!-- Begin PGPData -->
        <element name="PGPData" type="ds:PGPDataType"/>
        <complexType name="PGPDataType">
            <choice>
                <sequence>
                    <element name="PGPKeyID" type="ds:CryptoBinary"/>
                    <element name="PGPKeyPacket" type="ds:CryptoBinary" minOccurs="0"/>
                    <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                </sequence>
                <sequence>
                    <element name="PGPKeyPacket" type="ds:CryptoBinary"/>
                    <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                </sequence>
            </choice>
        </complexType>
        <!-- End PGPData -->
        <!-- Begin SPKIData -->
        <element name="SPKIData" type="ds:SPKIDataType"/>
        <complexType name="SPKIDataType">
            <sequence maxOccurs="unbounded">
                <element name="SPKISexp" type="ds:CryptoBinary"/>
                <any namespace="##other" processContents="lax" minOccurs="0"/>
            </sequence>
        </complexType>
        <!-- End SPKIData -->
        <!-- End KeyInfo -->
        <!-- Start Object (Manifest, SignatureProperty) -->
        <element name="Object" type="ds:ObjectType"/>
        <complexType name="ObjectType" mixed="true">
            <sequence minOccurs="0" maxOccurs="unbounded">
                <any namespace="##any" processContents="lax"/>
            </sequence>
            <attribute name="Id" type="ID" use="optional"/>
            <attribute name="MimeType" type="string" use="optional"/>
            <attribute name="Encoding" type="anyURI" use="optional"/>
            <!-- add a grep facet -->
        </complexType>
        <element name="Manifest" type="ds:ManifestType"/>
        <complexType name="ManifestType">
            <sequence>
                <element ref="ds:Reference" maxOccurs="unbounded"/>
            </sequence>
            <attribute name="Id" type="ID" use="optional"/>
        </complexType>
        <element name="SignatureProperties" type="ds:SignaturePropertiesType"/>
        <complexType name="SignaturePropertiesType">
            <sequence>
                <element ref="ds:SignatureProperty" maxOccurs="unbounded"/>
            </sequence>
            <attribute name="Id" type="ID" use="optional"/>
        </complexType>
        <element name="SignatureProperty" type="ds:SignaturePropertyType"/>
        <complexType name="SignaturePropertyType" mixed="true">
            <choice maxOccurs="unbounded">
                <any namespace="##other" processContents="lax"/>
                <!-- (1,1) elements from (1,unbounded) namespaces -->
            </choice>
            <attribute name="Target" type="anyURI" use="required"/>
            <attribute name="Id" type="ID" use="optional"/>
        </complexType>
        <!-- End Object (Manifest, SignatureProperty) -->
        <!-- Start Algorithm Parameters -->
        <simpleType name="HMACOutputLengthType">
            <restriction base="integer"/>
        </simpleType>
        <!-- Start KeyValue Element-types -->
        <element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
        <complexType name="DSAKeyValueType">
            <sequence>
                <sequence minOccurs="0">
                    <element name="P" type="ds:CryptoBinary"/>
                    <element name="Q" type="ds:CryptoBinary"/>
                </sequence>
                <element name="J" type="ds:CryptoBinary" minOccurs="0"/>
                <element name="G" type="ds:CryptoBinary" minOccurs="0"/>
                <element name="Y" type="ds:CryptoBinary"/>
                <sequence minOccurs="0">
                    <element name="Seed" type="ds:CryptoBinary"/>
                    <element name="PgenCounter" type="ds:CryptoBinary"/>
                </sequence>
            </sequence>
        </complexType>
        <element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
        <complexType name="RSAKeyValueType">
            <sequence>
                <element name="Modulus" type="ds:CryptoBinary"/>
                <element name="Exponent" type="ds:CryptoBinary"/>
            </sequence>
        </complexType>
        <!-- End KeyValue Element-types -->
        <!-- End Signature -->
    </schema>

### xdpPrinttypes_v03.xsd

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <xs:schema xmlns:pf="http://www.exthex.com/exdp/types" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://www.w3.org/2005/05/xmlmime" xmlns:dd="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" targetNamespace="http://www.exthex.com/exdp/types" elementFormDefault="qualified" version="3.2.2">
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" schemaLocation="./dd-schema/DualeZustellung.xsd"/>
        <xs:element name="printJob" type="pf:printJob"/>
        <xs:element name="printJobItem" type="pf:printJobItemType"/>
        <xs:element name="printResults" type="pf:printResults"/>
        <xs:complexType name="postalAddress">
            <xs:sequence>
                <xs:element name="street" type="xs:string"/>
                <xs:element name="buildingNr" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Hausnummer (aktuell keine Abbildung in easyVersand)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="unit" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Gebäude / Stiege (aktuell keine Abbildung in easyVersand)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="doorNr" type="xs:string" minOccurs="0"/>
                <xs:element name="postalCode" type="xs:string"/>
                <xs:element name="city" type="xs:string" minOccurs="0"/>
                <xs:element name="countryCode" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>ISO code 2-stellig. Verpflichtend bei Ausland</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="poBox" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Postfach (aktuell keine Abbildung in easyVersand)</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="structuredReceiver">
            <xs:annotation>
                <xs:documentation>Entweder der structuredReceiver oder der unstructuredReceiver kann verwendet werden.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="receiverName1" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Empfängername für Versand</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverName2" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Empfängername Zeile 2 für den Versand</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="address" type="pf:postalAddress" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Zustelladresse</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="unstructuredReceiver">
            <xs:annotation>
                <xs:documentation>Entweder der structuredReceiver oder der unstructuredReceiver kann verwendet werden.  Der unstructuredReceiver bietet die Möglichkeit bis zu neun Zeilen lang Daten zu definieren.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="receiverLine1" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Adresszeile am Kuvert. Normalerweise Name wie in receiverName des structuredReceiver. DMS-Bsp: Fa.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine2" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>DMS-Bsp: z.Hd. Max Mustermann</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine3" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>DMS-Bsp: Straße 1</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine4" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>DMS-Bsp: Straße Zeile 2</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine5" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>DMS-Bsp: Postleitzahl und Ort</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine6" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>DMS-Bsp: Land</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine7" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>bei DMS nicht benutzt</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine8" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>bei DMS nicht benutzt</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverLine9" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>bei DMS nicht benutzt</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="sender">
            <xs:annotation>
                <xs:documentation>Entweder der structuredReceiver oder der unstructuredReceiver kann verwendet werden.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="tenantID" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Eindeutige Versender-ID für die Zuordnung der Sendung</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="tenantName" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Versender Name (beschreibender Klartextname)</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="printJob">
            <xs:annotation>
                <xs:documentation>Ein Druckjob, enthält mehrere Items. Eine Steuerdatei enthält einen Job.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="jobId" type="xs:long">
                    <xs:annotation>
                        <xs:documentation>Eindeutige Nummer für den Job</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="creator" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Zugrundeliegendes sendendes System, z.B. "exthex"</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="creationTime" type="xs:dateTime" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Erstellzeitpunkt des Jobs. DMS: Bevorzugtes Format Jahr/Monat/Tag Stunde/Minute/Sekunde (2006-02-23T23:23:23) “T”=Trennzeichen</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="comment" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Hinweise für die Jobproduktion/Verarbeitungshinweise</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="jobPriority" type="xs:int" default="9" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Priorität - 1 (hohe Priorität) bis 9 </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="testJob" type="xs:boolean" default="false" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Markiert einen Test-Job, d.h. es soll nicht produktiv gedruckt/gesendet werden</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="inserts" type="pf:insertCollectionType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Definition physikalischer Beilagen</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="callbackURL" type="xs:anyURI" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Adresse des Statusmeldungen-Empfangsservices. WS-URL, an den die Meldungen bezüglich Jobstati und Itemstati geschickt werden, z.B. https://services.sendhybrid.com/exdpService/ws/exDPDeliveryService/ . Dieses Element sollte unbedingt genützt werden, um die Statusmeldungen über den PrintJob im Transaktionsportal aufzuzeichnen und wiederzugeben.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="printJobItem" type="pf:printJobItemType" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Die einzelnen Items des Jobs</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="printJobItemType">
            <xs:annotation>
                <xs:documentation>Eine Sendung im Gesamtjob.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="deliveryItemId" type="xs:long">
                    <xs:annotation>
                        <xs:documentation>Eindeutige ID der Sendung</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="customerID" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>SAP Konto zur Portoverrechnung bei der Österr. Post (DMS: 16 Stellen alphanumerische Verrechnungseinheit, Aternativ: externe Kundennummer)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="costCenter" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Kostenstelle zur Verrechnung der Sendung (alle Papierprodukte, Herstellungskosten, Beilagen, Dienstleistungen können nur über diese eine Kostenstelle gemeinsam verrechnet werdent). Komplexere Verrechnungen sind direkt mit dem Druckdienstleister auszumachen</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryItemDescription" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Ergänzende Beschreibung für die Druck-Produktion, z.B. falls der Inhalt ein Massen-PDF ist.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiver" type="pf:structuredReceiver" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>strukturierte Zustelladresse</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="receiverUnstructured" type="pf:unstructuredReceiver" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>unstrukturierte Zustelladresse</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="sender" type="pf:sender" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Versender</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryOptions" type="pf:deliveryOptionsType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Allgemeine Versandoptionen. Siehe Type deliveryOption</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="envelopeOptions" type="pf:envelopeOptionsType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Optionen für die Kuvertierung. Siehe Type deliveryOption</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="document" type="pf:printJobDocument" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Die einzelnen Dateien der Sendung</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="printJobDocument">
            <xs:annotation>
                <xs:documentation/>
            </xs:annotation>
            <xs:sequence>
                <xs:choice>
                    <xs:sequence>
                        <xs:element name="fileName" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>Dateiname des zugehörigen PDFs bzw. Druckfiles.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="pf:documentPayload">
                            <xs:annotation>
                                <xs:documentation>SubstitutionGroup, welche die Anlieferungsart des Dokuments beinhaltet. Lässt sich anbieterabhängig erweitern.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="MIMEType" type="xs:token" default="application/pdf">
                            <xs:annotation>
                                <xs:documentation>MIME Typ, z.B. application/pdf</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="pageFrom" type="xs:int" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Im Falle der Übermittlung eines Massendokuments Startseite der Übermittlung (beginnend bei 1)</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="pageTo" type="xs:int" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Im Falle der Übermittlung eines Massendokuments Letzte Seite der Übermittlung</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="pageOptions" type="pf:pageOptionsType" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="md5Digest" type="xs:string" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Optionale MD5 Prüfsumme</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                    <xs:choice minOccurs="0">
                        <xs:element name="insert1" type="xs:boolean" default="true">
                            <xs:annotation>
                                <xs:documentation>Beilage 1 zuführen (Referenz insert1ID auf Jobebene). Werte: true/false und 1/0</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="insert2" type="xs:boolean" default="true">
                            <xs:annotation>
                                <xs:documentation>Beischließung von Beilage 2...</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="insert3" type="xs:boolean" default="true"/>
                        <xs:element name="insert4" type="xs:boolean" default="true"/>
                        <xs:element name="insert5" type="xs:boolean" default="true"/>
                        <xs:element name="insert6" type="xs:boolean" default="true"/>
                        <xs:element name="insert7" type="xs:boolean" default="true"/>
                        <xs:element name="insert8" type="xs:boolean" default="true"/>
                    </xs:choice>
                </xs:choice>
                <xs:element name="numberOfPages" type="xs:int" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Anzahl der Seiten des Dokuments</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="unstructuredDocumentOption" type="pf:unstructuredOptionEntry" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Unspezifische Dokumentoptionen, falls zusätzliche Parameter notwendig werden. Z.B. für Faltoptionen oder zuätzliche Qualitätsangaben wie PAPER_COATING=matt|glaenzend für das Setzen der Papieroberfläche (muss mit Druckdienstleister abgestimmt sein)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="sequenceNr" type="xs:int" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Für die stabile Sortierung des Dokuments innerhalb der Lieferung.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="documentPayload" type="pf:documentPayloadType"/>
        <xs:complexType name="documentPayloadType"/>
        <xs:element name="localFileReference" type="pf:localReferenceType" substitutionGroup="pf:documentPayload"/>
        <xs:complexType name="localReferenceType">
            <xs:complexContent>
                <xs:extension base="pf:documentPayloadType">
                    <xs:sequence>
                        <xs:element name="localReference" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>Falls Dokument im Printjob beigelegt ist, wird hier der relative Pfad samt Dateiname angegeben. Dies ist der Standardfall. Im Standardfall (exthex) ist der Inhalt des Elements gleich dem Inhalt des zugeordneten fileName Elements</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="binaryDocument" type="pf:binaryContentType" substitutionGroup="pf:documentPayload"/>
        <xs:complexType name="binaryContentType">
            <xs:complexContent>
                <xs:extension base="pf:documentPayloadType">
                    <xs:sequence>
                        <xs:element name="content" type="xs:base64Binary" ns1:expectedContentTypes="application/octet-stream">
                            <xs:annotation>
                                <xs:documentation>BASE64 codierter Inhalt, im Request eingebettet</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="externalFileReference" type="pf:externalFileRefType" substitutionGroup="pf:documentPayload"/>
        <xs:complexType name="externalFileRefType">
            <xs:complexContent>
                <xs:extension base="pf:documentPayloadType">
                    <xs:sequence>
                        <xs:element name="URL" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>URI zum zu druckenden Dokument</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="unstructuredDocumentOptionsType">
            <xs:annotation>
                <xs:documentation>Unspezifische Dokumentenoptionen</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <!-- TODO auskommentiert und in documentOptionEntry geändert -->
                <!-- <xs:element name="entry" type="deliveryOptionEntry" -->
                <!-- minOccurs="0" maxOccurs="unbounded"> -->
                <!-- <xs:annotation> -->
                <!-- <xs:documentation>unspezifische Optionen</xs:documentation> -->
                <!-- </xs:annotation> -->
                <!-- </xs:element> -->
                <xs:element name="entry" type="pf:unstructuredOptionEntry" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="deliveryOptionsType">
            <xs:sequence>
                <xs:element name="sheetsTotal" type="xs:int" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Komplette Blatt!!!-Anzahl für Sendung. Falls angegeben wird dies zur Aufteilung auf mehrere Kuverts herangezogen</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="colorMode" type="pf:colorModeType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Farbformat der gelieferten PDF-Dokumente. D2D: COLOR (default), BW, CMYK, RGB.   Bei DMS White Paper Production automatische Ermittlung (Doppelnutzen muss gleich sein). Werte sonst z.B. BW oder CMYK</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="plexMode" default="DUP" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Einseitiger/beidseitiger Druck SIM/DUP Default: DUP</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="SIM"/>
                            <xs:enumeration value="DUP"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="borderless" type="xs:boolean" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Besondere Anforderung randlos zu drucken</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="foreignID" type="xs:long" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Kundenspezifische Nummer im Datamatrix für Rückscan, 16 Stellen numerisch</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryQuality" default="nonR" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>nonR, nonR+, R, R+, RS, RS+, nonRSa, nonRSa+, RSa, RSa+, RSb, RSb+.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="nonR">
                                <xs:annotation>
                                    <xs:documentation>Normalbrief</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="nonR+">
                                <xs:annotation>
                                    <xs:documentation>Normalbrief eigenhändig. Nicht an Postbevollmächtigte</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="R">
                                <xs:annotation>
                                    <xs:documentation>Einschreiben</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="R+">
                                <xs:annotation>
                                    <xs:documentation>Einschreiben eigenhändig. Nicht an Postbevollmächtigte</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="RS">
                                <xs:annotation>
                                    <xs:documentation>Einschreiben mit Rückschein</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="RS+">
                                <xs:annotation>
                                    <xs:documentation>Einschreiben eigenhändig mit Rückschein. Nicht an Postbevollmächtigte</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="nonRSa">
                                <xs:annotation>
                                    <xs:documentation>Einfache Zustellung durch eine Behörde ohne Zustellnachweis</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="nonRSa+">
                                <xs:annotation>
                                    <xs:documentation>Einfache Zustellung durch eine Behörde ohne Zustellnachweis. Nicht an Postbevollmächtigte</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="RSa">
                                <xs:annotation>
                                    <xs:documentation>RSa-Zustellung (behördlich) zu eigenen Handen mit Zustellnachweis</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="RSa+">
                                <xs:annotation>
                                    <xs:documentation>RSa-Zustellung (behördlich) zu eigenen Handen mit Zustellnachweis. Abholung durch Dritte unter Verwendung von Vollmachten ist nicht möglich.</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="RSb">
                                <xs:annotation>
                                    <xs:documentation>RSb-Zustellung (behördlich mit Ersatzempfänger) mit Zustellnachweis</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="RSb+">
                                <xs:annotation>
                                    <xs:documentation>RSb-Zustellung (behördlich mit Ersatzempfänger) mit Zustellnachweis. Nicht an Postbevollmächtigte.</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="postalPriority" default="PRIO" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Prioritäten: PRIO (für PRIO Universaldienst E+1), ECO (für ECO Universaldienst E+2/3), ECO-BUSINESS (für ECO BUSINESS Nicht Universaldienst E+4/5</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="packagingId" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Verpackungs-ID</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="dd:AdditionalPrintParameter" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Zusätzliche Printparameter</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="unstructuredDeliveryOption" type="pf:unstructuredOptionEntry" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Unspezifische Sendungsoptionen z.B. auch Code für Freimachungsvermerk, oder Message für Generierung von personalisierten Bildern (z.B. "WICHTIG - KEINE Werbesendung")</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="unstructuredOptionEntry">
            <xs:sequence>
                <xs:element name="key" type="xs:string"/>
                <xs:element name="value" type="xs:string" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <!-- TODO auskommentiert weil nicht mehr gebraucht -->
        <!-- <xs:simpleType name="deliveryOption"> -->
        <!-- <xs:restriction base="xs:string"> -->
        <!-- <xs:enumeration value="ENVELOPE"> -->
        <!-- <xs:annotation> -->
        <!-- <xs:documentation>Gewünschtes Kuvert: C6/5, C5/6, C5, C4, -->
        <!-- SonderkuvertXY) -->
        <!-- </xs:documentation> -->
        <!-- </xs:annotation> -->
        <!-- </xs:enumeration> -->
        <!-- <xs:enumeration value="ENVELOPE_CODE"> -->
        <!-- <xs:annotation> -->
        <!-- <xs:documentation>ID des verwendeten Kuverts. Max. 3-stelliger -->
        <!-- Integer. -->
        <!-- </xs:documentation> -->
        <!-- </xs:annotation> -->
        <!-- </xs:enumeration> -->
        <!-- </xs:restriction> -->
        <!-- </xs:simpleType> -->
        <xs:complexType name="documentOptionMapType">
            <xs:sequence>
                <xs:element name="entry" type="pf:unstructuredOptionEntry" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:simpleType name="pageFormatType">
            <xs:annotation>
                <xs:documentation>Seitenformat. z.B. A4, A3,...</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:enumeration value="A3"/>
                <xs:enumeration value="A4"/>
                <xs:enumeration value="A5"/>
                <xs:enumeration value="B5"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="colorModeType">
            <xs:annotation>
                <xs:documentation>Farbauswahl: schwarz-weiß (BW) oder färbig (COLOR) bzw. spezifischere Angabe des Farbraumes: RGB (3-färbig); CMYK (4-färbig)</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:enumeration value="COLOR"/>
                <xs:enumeration value="BW"/>
                <xs:enumeration value="CMYK"/>
                <xs:enumeration value="RGB"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="paperCodeType">
            <xs:annotation>
                <xs:documentation>Eindeutige Materialcodes die sich aus Papiergewicht/-qualität,Verarbeitung, und Farbe  zusammensetzen, z. B. 108020013000
                    Code besteht aus 3 Teilen:
                    - 1XXX: Papierqualität (paper grammage): in g/m² z.b. 80 (Standard)
                       1080: 80 g/m²
                        ...
                    - 20XX: Papieroberfläche (paper coating): matt, glänzend
                       2001: matt
                       2002: glänzend
                    - 3XXX: Papierfarbe (paper color): weiß (Standard)
                       3000: weiß
                </xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:enumeration value="108020013000"/>
                <xs:enumeration value="108020023000"/>
            </xs:restriction>
        </xs:simpleType>
        <!-- <xs:simpleType name="documentOption"> -->
        <!-- <xs:restriction base="xs:string"> -->
        <!-- <xs:enumeration value="PAGE_FORMAT"> -->
        <!-- <xs:annotation> -->
        <!-- <xs:documentation>Seitenformat. z.B. A4, A3, SonderpapierXY -->
        <!-- </xs:documentation> -->
        <!-- </xs:annotation> -->
        <!-- </xs:enumeration> -->
        <!-- <xs:enumeration value="COLOR_MODE"> -->
        <!-- <xs:annotation> -->
        <!-- <xs:documentation>Farb- und Seitenmodus: 1/0, 1/1, 4/0, 4/4) -->
        <!-- </xs:documentation> -->
        <!-- </xs:annotation> -->
        <!-- </xs:enumeration> -->
        <!-- <xs:enumeration value="PAPER_GRAMMAGE"> -->
        <!-- <xs:annotation> -->
        <!-- <xs:documentation>Papierqualität in g/m² z.b. 80 (Standard) -->
        <!-- </xs:documentation> -->
        <!-- </xs:annotation> -->
        <!-- </xs:enumeration> -->
        <!-- <xs:enumeration value="PAPER_COATING"> -->
        <!-- <xs:annotation> -->
        <!-- <xs:documentation>Papieroberfläche: matt, glaenzend) -->
        <!-- </xs:documentation> -->
        <!-- </xs:annotation> -->
        <!-- </xs:enumeration> -->
        <!-- <xs:enumeration value="PAPER_COLOR"> -->
        <!-- <xs:annotation> -->
        <!-- <xs:documentation>Papierfarbe: weiß (Standard)</xs:documentation> -->
        <!-- </xs:annotation> -->
        <!-- </xs:enumeration> -->
        <!-- </xs:restriction> -->
        <!-- </xs:simpleType> -->
        <xs:complexType name="printResults">
            <xs:annotation>
                <xs:documentation>Eine Menge von Resultaten für PrintJobItems. Haben keine Beziehung zum PrintJob, sondern können verschiedene Items enthalten</xs:documentation>
            </xs:annotation>
            <xs:choice>
                <xs:element name="jobResult" type="pf:printFactoryResultType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Resultat Items auf Jobebene</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="itemResult" type="pf:printFactoryResultType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Resultate für die Print Items</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:complexType>
        <xs:complexType name="printFactoryResultType">
            <xs:annotation>
                <xs:documentation>Gesamtergebnis eines Jobs oder auf Einzelbasis rückgemeldet</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="itemId" type="xs:long">
                    <xs:annotation>
                        <xs:documentation>Eindeutige ID des betroffenen PrintJobs oder -items</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="state">
                    <xs:annotation>
                        <xs:documentation>Status des Jobs oder der Sendung</xs:documentation>
                        <!--
                        Status des Items:
                            DATA_ARRIVED - Druckdaten in Druckerei erkannt und Verarbeitung gestartet (Entschlüsselung und weitere Prüfungen noch nicht durchgeführt. Daher Rückmeldung nur auf Job-Ebene möglich
                            DATA_RECEIVED - Druckdaten in Druckerei erfolgreich entschlüsselt und Sendungen wurden angelegt
                            DATA_TO_APPROVE - Druckdaten wurden aufbereitet und stehen zur Überprüfung/Freigabe bereit
                            PRINTED - Dokument(e) der Sendung erfolgreich gedruckt
                            INSERTED - Sendung erfolgreich kuvertiert
                            REPRINT - Sendung neuerlich erstellt
                            SENT - Erfolgreich versendet (dem Zusteller übergeben)
                            DATA_ERROR - Unspezifizierter Fehler in der Übernahme der Druckdaten
                            PRINT_ERROR - Fehler beim Drucken
                            DELIVERY_ERROR - Fehler bei der Zustellung bzw. bei der Vorbereitung
                            RETURNED - Retoure/Rücksendung erhalten, d.h. fehlerhafter Zustellversuch
                            CANCELLED - Print job or print item has been cancelled and will not be produced.
                        -->
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="DATA_ARRIVED">
                                <xs:annotation>
                                    <xs:documentation>Druckdaten in Druckerei erkannt und Verarbeitung gestartet (Entschlüsselung und weitere Prüfungen noch nicht durchgeführt. Daher Rückmeldung nur auf Job-Ebene möglich</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="DATA_RECEIVED">
                                <xs:annotation>
                                    <xs:documentation>Druckdaten in Druckerei erfolgreich entschlüsselt und Sendungen wurden angelegt</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="DATA_TO_APPROVE">
                                <xs:annotation>
                                    <xs:documentation>Druckdaten wurden aufbereitet und stehen zur Überprüfung/Freigabe bereit</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="PRINTED">
                                <xs:annotation>
                                    <xs:documentation>Dokument(e) der Sendung erfolgreich gedruckt</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="INSERTED">
                                <xs:annotation>
                                    <xs:documentation>Sendung erfolgreich kuvertiert</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="REPRINT">
                                <xs:annotation>
                                    <xs:documentation>Sendung neuerlich erstellt</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="SENT">
                                <xs:annotation>
                                    <xs:documentation>Erfolgreich versendet (dem Zusteller übergeben)</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="DATA_ERROR">
                                <xs:annotation>
                                    <xs:documentation>Unspezifizierter Fehler in der Übernahme der Druckdaten</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="PRINT_ERROR">
                                <xs:annotation>
                                    <xs:documentation>Fehler beim Drucken</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="DELIVERY_ERROR">
                                <xs:annotation>
                                    <xs:documentation>Fehler bei der Zustellung bzw. bei der Vorbereitung</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="RETURNED">
                                <xs:annotation>
                                    <xs:documentation>Retoure/Rücksendung erhalten, d.h. fehlerhafter Zustellversuch</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                            <xs:enumeration value="CANCELLED">
                                <xs:annotation>
                                    <xs:documentation>Print job or print item has been cancelled and will not be produced.</xs:documentation>
                                </xs:annotation>
                            </xs:enumeration>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="processingDate" type="xs:dateTime">
                    <xs:annotation>
                        <xs:documentation>Datum und Zeit des Ereignisses (z.B. in UTC Form "2016-09-26T13:52:10+01:00").</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="printPrice" type="xs:int" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Druckkosten in Cent</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliveryPrice" type="xs:int" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Versandkosten in Cent</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deliverer" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Bezeichnung des ausführenden Zustellers (z.B. Post, Hurtig und Flink, UPS)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="detailCode" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Infocode zur Detailnachricht</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="detailMessage" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="reports" type="pf:reportsType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Der Statusmeldung beigeschlossene Reports</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="reportsType">
            <xs:sequence>
                <xs:element name="report" type="pf:reportType" maxOccurs="10"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="reportType">
            <xs:complexContent>
                <xs:extension base="pf:fileEnclosureType">
                    <xs:sequence>
                        <xs:element name="description" type="xs:string" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Beschreibug des Berichts</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="envelopeOptionsType">
            <xs:annotation>
                <xs:documentation>Definiert alle Optionen für das Kuvert</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="envelopeFormat" default="C6/5" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Format für Kuvert (DMS: bei White-Paper-Production Prozess nur C6/5 und C5 möglich. Default: "C6/5". Soll keine Kuvertierung durchgeführt werden, so ist specialEnvelopeID entsprechend zu setzen)</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="C6/5"/>
                            <xs:enumeration value="C5"/>
                            <xs:enumeration value="C5/6"/>
                            <xs:enumeration value="C4"/>
                            <xs:enumeration value="B4"/>
                            <xs:enumeration value="B5"/>
                            <xs:enumeration value="C6"/>
                            <xs:enumeration value="E4"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="specialEnvelopeID" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>ID für Kuvert bei Vorhalten von Offset gedrucktem Briefpapier (Nurfür Nicht-White-Paper-Production Prozesse)
                        Citycom: env_cty
                        Volkshilfe: env_vhstmk
                        Standard Hybrider Rückschein C4: rsxSpecialEnvelope
                        Hybrider Rückschein C5: rsxSpecialEnvelopeC5
                        "noEnvelope" bedeutet ohne Kuvertierung, wenn z.B. nur ausgedruckt werden soll.
                        Hinweis: Falls bei Dataform gedruckt wird, ist zusätzlich das envelopeFormat anzugeben
                        Standardkuvert bei Dataform: env_standard (= weißes Kuvert + Aufdruck „Bar freigemacht“)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="windowEnvelope" type="xs:boolean" default="false" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Falls im Druckprozess Fensterkuverts verwendet werden müssen (z.B. weil kein Receiver eingetragen ist/ermittelt werden kann). Default: false. Wenn Element nicht vorhanden, wird das Kuvert bedruckt (fensterlos)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="envelopeLayout" type="xs:string" default="exthex_layout01" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>In der Produktion vordefiniertes Layout. Dieses definiert Größe und Position der folgende Grafiken und Texte. DefaultLayout enthält nur Freimachung 'Brief'. Dieses Element ist bei DMS Whitepaper-Production verpflichtend. Defaultwert bei exthex: exthex_layout01</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="envelopeBGImage" type="pf:fileEnclosureType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Grafik die auf Kuvert aufgedruckt wird. TODO: Format ist noch zu spezifizieren.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="msg01Image" type="pf:fileEnclosureType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>DMS-Bsp: Priority Banner (blau für Auslandsbriefe)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="msg02Image" type="pf:fileEnclosureType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>DMS-Bsp: Barcode für Einschreiben (muss in dem Fall vom Sender erzeugt werden, sonst ist das Element registered zu verwenden)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="msg03Image" type="pf:fileEnclosureType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>DMS-Bsp: personalisierte Bilder, Nachrichten</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="registered" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Barcodenummer für Einschreiben</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="priority" type="xs:boolean" default="true" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Schalter für die Aktivierung eines Priority Banners (blau für Auslandsbriefe). Wird in der Produktion dann aufgebracht. Default: true</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="RSxEnvelope" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Element aus Dualer Zustellung - PrintedEnvelope. Zusätzliche Informationen, die auf ein Kuvert angedruckt werden können.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="RsID" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Rückschein Identifikation: Wenn das Feld nicht gesetzt ist wird die ApplicationDeliveryID verwendet</xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:maxLength value="40"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="Spec_Info_Adr" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Zusätzliche  Informationen RS* Kuvert unterhalb des Adressblocks</xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:maxLength value="40"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="Spec_Info_Top" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Zusätzliche Informationen RS* Kuvert oben</xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:maxLength value="40"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="Spec_Info_Center" minOccurs="0" maxOccurs="2">
                                <xs:annotation>
                                    <xs:documentation>Zusätzliche Informationen RS* Kuvert mittig</xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:maxLength value="50"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="Spec_Info_Bottom" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Zusätzliche Informationen RS* Kuvert unten</xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:maxLength value="50"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="Name_Row" minOccurs="0" maxOccurs="4">
                                <xs:annotation>
                                    <xs:documentation>Namenszeile beim RSa bzw. Container für unstrukturierte bzw. vorerstellte Empfänger-/Adressdaten. </xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:maxLength value="40"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="Zustellverfuegung" type="xs:string" minOccurs="0"/>
                            <xs:element name="ZustellverfuegungErgaenzung" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Nur wenn Zustellverfuegung = 99</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="pageOptionsType">
            <xs:sequence>
                <xs:element name="pageNumber" type="xs:int">
                    <xs:annotation>
                        <xs:documentation>Betreffende Seite. Wert 0 heißt auf alle Seiten angewandt</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:choice minOccurs="0">
                    <xs:element name="paperID" type="xs:string">
                        <xs:annotation>
                            <xs:documentation>ID für Briefapier für Nicht-White-Paper-Production Prozesse (bei Vorhalten von Offset gedrucktem Briefpapier)
                            Bsp. Citycom: let_cty
                            Volkshilfe: let_vhstmk
                            SEPA-Zahlungsanweisung Hochformat: paymentslip
                            SEPA-Zahlungsanweisung quer: paymentsliplandscape
                            Standard: plainwhite (entspricht paperCodeType:108020013000 mit 80g, etc.. Die Druckdienstleister setzen diesen Wert ggf. auf alle nicht gekennzeichneten Blätter)</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="paperCode" type="pf:paperCodeType">
                        <xs:annotation>
                            <xs:documentation>Eindeutige Materialcodes die sich aus Papiergewicht/-qualität,Verarbeitung, und Farbe  zusammensetzen, z. B. 108020013000 (Enum)</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:choice>
                <xs:element name="underlayFile" type="pf:fileEnclosureType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>PDF-Datei für Underlay</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="pageFormat" type="pf:pageFormatType" default="A4" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Seitenformat. z.B. A4, A3,...</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="fileEnclosureType">
            <xs:annotation>
                <xs:documentation>im Printjob enthaltene oder referenzierte Datei.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="fileName" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Dateiname der entsprechenden Datei.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="pf:documentPayload"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="insertCollectionType">
            <xs:sequence>
                <xs:element name="insert1" type="pf:insertType" minOccurs="0"/>
                <xs:element name="insert2" type="pf:insertType" minOccurs="0"/>
                <xs:element name="insert3" type="pf:insertType" minOccurs="0"/>
                <xs:element name="insert4" type="pf:insertType" minOccurs="0"/>
                <xs:element name="insert5" type="pf:insertType" minOccurs="0"/>
                <xs:element name="insert6" type="pf:insertType" minOccurs="0"/>
                <xs:element name="insert7" type="pf:insertType" minOccurs="0"/>
                <xs:element name="insert8" type="pf:insertType" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="insertType">
            <xs:sequence>
                <xs:element name="insertID" type="xs:string" minOccurs="1">
                    <xs:annotation>
                        <xs:documentation>ID der physikalischen Beilage. 8 Beilagen pro Job sind möglich (rüstbar). Inhalt muss eindeutige Referenz oder Hinweis auf zu verwendende Beilage sein (Freitextangabe möglich). Eine hier definierte physikalische Beilage kann jeder Sendung über das insert1(-8)-Flag beigeschlossen werden.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="insertGrammage" type="xs:token" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Gewicht der (physikalischen) Beilage in Gramm.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!--
                        <xs:element name="preproduce" type="xs:boolean" default="true" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Verwendung vorproduzierter Beilagen</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                          -->
            </xs:sequence>
        </xs:complexType>
    </xs:schema>

### zuse_mypersondata_en.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by Arne Tauber (Technische Universität Graz) -->
    <!--
    PersonData Blueprint solution for use with ZUSE Spezifikation, containes slimmed down version of PersonData 2.0 spec with special consideration to ZUSE Needs, compatible with PersonData 2.0
    -->
    <?xml-stylesheet type="text/xsl" href="getelementnames.xslt"?>
    <xs:schema xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://reference.e-government.gv.at/namespace/persondata/20020228#" targetNamespace="http://reference.e-government.gv.at/namespace/persondata/20020228#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.0">
        <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="W3C-XMLDSig.xsd"/>
        <xs:annotation>
            <xs:documentation>This version of person deploys only global elements. All types derived from abstract types have been replaced by substitution groups</xs:documentation>
        </xs:annotation>
        <!-- ### signed structure of a person  ### -->
        <xs:element name="AbstractPersonData" type="AbstractPersonType">
            <xs:annotation>
                <xs:documentation>dummy abstract Peson Data element needed for bi-lingual schema (substitution groups)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="PersonData" type="PersonDataType" substitutionGroup="AbstractPersonData">
            <xs:annotation>
                <xs:documentation>element of signed person datastructure type</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!-- ### base type for person data ### -->
        <xs:element name="Person" type="AbstractPersonType"/>
        <!-- ### physical person and corporate body ### -->
        <xs:element name="PhysicalPerson" type="PhysicalPersonType" substitutionGroup="Person">
            <xs:annotation>
                <xs:documentation>element of physical person type, dreived from Person (abstract)</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="CorporateBody" type="CorporateBodyType" substitutionGroup="Person">
            <xs:annotation>
                <xs:documentation>element of corporate body type, derived from Person</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Name" type="PersonNameType">
            <xs:annotation>
                <xs:documentation>data related to the person's name</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DateOfBirth" type="DateOfBirthType">
            <xs:annotation>
                <xs:documentation>date of birth, compare Geburtsdatum</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!-- ### adress data for various types of communications ### -->
        <xs:element name="Address" type="AbstractAddressType"/>
        <xs:element name="PostalAddress" type="PostalAddressType" substitutionGroup="Address">
            <xs:annotation>
                <xs:documentation>Postal or ZMR Address, compare PostAdresse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="InternetAddress" type="InternetAddressType" substitutionGroup="Address">
            <xs:annotation>
                <xs:documentation>element of internet address type</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="TelephoneAddress" type="TelephoneAddressType" substitutionGroup="Address">
            <xs:annotation>
                <xs:documentation>element of TelephoneAddressType, compare TelefonAdresse</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!-- ###  Identification elements ###-->
        <xs:element name="AbstractSimpleIdentification" type="xs:string"/>
        <xs:element name="OID" type="xs:string" substitutionGroup="AbstractSimpleIdentification"/>
        <xs:element name="NatPErgaenzungsRegisterZahl" type="xs:string" substitutionGroup="AbstractSimpleIdentification"/>
        <xs:element name="NichtNatPErgaenzungsRegisterZahl" type="xs:string" substitutionGroup="AbstractSimpleIdentification"/>
        <xs:element name="VereinsRegisterZahl" type="xs:string" substitutionGroup="AbstractSimpleIdentification"/>
        <xs:element name="FirmenbuchNummer" type="xs:string" substitutionGroup="AbstractSimpleIdentification"/>
        <!--### elements of simple type ####-->
        <xs:element name="FormattedNumber" type="xs:string">
            <xs:annotation>
                <xs:documentation>Complete Number ready formated, comapre FormatierteNummer</xs:documentation>
            </xs:annotation>
        </xs:element>
        <!--### Complex types ###-->
        <xs:complexType name="PersonDataType">
            <xs:annotation>
                <xs:documentation>signed person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements).</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="AbstractPersonType">
                    <xs:sequence>
                        <xs:element ref="Person"/>
                        <xs:element ref="Address" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="IdentificationType">
            <xs:annotation>
                <xs:documentation>unique identifier</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="Value">
                    <xs:annotation>
                        <xs:documentation>actual value of the identifier.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="Id" type="xs:ID" use="optional"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Type" type="xs:anyURI">
                    <xs:annotation>
                        <xs:documentation>type of value (eg 'ZMR', 'SV-Nummer', 'Martrikelnummer', database identification, ...)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Authority" type="xs:anyURI" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>authority, which is reponsible for generation of the identifier (eg university in case of 'MatrikelNummer')</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>any additional properties</xs:documentation>
                    </xs:annotation>
                </xs:any>
            </xs:sequence>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
            <xs:anyAttribute namespace="##other"/>
        </xs:complexType>
        <xs:complexType name="AbstractPersonType">
            <xs:annotation>
                <xs:documentation>main structure of person data</xs:documentation>
            </xs:annotation>
            <xs:choice minOccurs="0">
                <xs:element ref="AbstractSimpleIdentification" minOccurs="0"/>
            </xs:choice>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
            <xs:anyAttribute namespace="##other"/>
        </xs:complexType>
        <xs:complexType name="PhysicalPersonType">
            <xs:annotation>
                <xs:documentation>physical person</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="AbstractPersonType">
                    <xs:sequence minOccurs="0">
                        <xs:element ref="Name"/>
                        <xs:element ref="DateOfBirth" minOccurs="0"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="PersonNameType">
            <xs:sequence>
                <xs:element name="GivenName" type="xs:string"/>
                <xs:element name="FamilyName">
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="primary" default="undefined">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:enumeration value="true"/>
                                            <xs:enumeration value="false"/>
                                            <xs:enumeration value="undefined"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <xs:attribute name="prefix" type="xs:string"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Affix" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Inlcudes all Information that is not exactly a name: academic or aristocratic titles, ... the new position attribute can contain a suffx or prefix value</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="type" use="required">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:enumeration value="academicGrade"/>
                                            <xs:enumeration value="aristocraticPrefix"/>
                                            <xs:enumeration value="aristocraticTitle"/>
                                            <xs:enumeration value="familyNamePrefix"/>
                                            <xs:enumeration value="familyNameSuffix"/>
                                            <xs:enumeration value="formOfAddress"/>
                                            <xs:enumeration value="generation"/>
                                            <xs:enumeration value="qualification"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                                <xs:attribute name="position" use="optional">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:enumeration value="prefix"/>
                                            <xs:enumeration value="suffix"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="CorporateBodyType">
            <xs:annotation>
                <xs:documentation>juridical person, organisation</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="AbstractPersonType">
                    <xs:sequence minOccurs="0">
                        <xs:element name="FullName" type="xs:token">
                            <xs:annotation>
                                <xs:documentation>name of corporate body (whole name), compare VollerName</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Organization" type="xs:token" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>part of an organisation, see also X.500 ou (eg departement, section, branch, ...) , compare Organisation</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="AbstractAddressType">
            <xs:annotation>
                <xs:documentation>main structure of address data</xs:documentation>
            </xs:annotation>
            <xs:attribute name="Id" type="xs:ID" use="optional"/>
            <xs:anyAttribute namespace="##other"/>
        </xs:complexType>
        <xs:complexType name="PostalAddressType">
            <xs:complexContent>
                <xs:extension base="AbstractAddressType">
                    <xs:sequence>
                        <xs:element name="CountryCode" type="xs:string" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Code for the country, use ISO or internatinal Postalstandard, compare Staatscode</xs:documentation>
                            </xs:annotation>
                            <!-- xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:pattern value="[A-Z]{2}"/>
                                </xs:restriction>
                            </xs:simpleType -->
                        </xs:element>
                        <xs:element name="PostalCode" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>ZIP, compare Postleitzahl</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Municipality" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>compare Gemeinde</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="MunicipalityNumber" type="xs:string" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>compare Gemeindekennzahl</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="DeliveryAddress">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="StreetName" type="xs:string"/>
                                    <xs:element name="BuildingNumber" type="xs:string"/>
                                    <xs:element name="Unit" type="xs:string" minOccurs="0"/>
                                    <xs:element name="DoorNumber" type="xs:string" minOccurs="0"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="type" default="undefined">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="postOfficeBoxAddress"/>
                                <xs:enumeration value="streetAddress"/>
                                <xs:enumeration value="militaryAddress"/>
                                <xs:enumeration value="undefined"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="TelcomNumberType">
            <xs:choice>
                <xs:element ref="FormattedNumber"/>
            </xs:choice>
        </xs:complexType>
        <xs:complexType name="InternetAddressType">
            <xs:annotation>
                <xs:documentation>internet based communication</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="AbstractAddressType">
                    <xs:sequence minOccurs="0">
                        <xs:element ref="dsig:KeyInfo" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>certificate for secure communication</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Address" type="xs:anyURI">
                            <xs:annotation>
                                <xs:documentation>URI: email-Address, Web, FTP, LDAP, ..., comapre Adress</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="TelephoneAddressType">
            <xs:annotation>
                <xs:documentation>phone numbers</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="AbstractAddressType">
                    <xs:sequence minOccurs="0">
                        <xs:element name="Number" type="TelcomNumberType">
                            <xs:annotation>
                                <xs:documentation>phonenumber</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <!-- ### strings of defined maximum lenght for use with ZMR address #### -->
        <xs:simpleType name="DateOfBirthType">
            <xs:annotation>
                <xs:documentation>simple type for dates (union), which may omit day and/or month</xs:documentation>
            </xs:annotation>
            <xs:union memberTypes="xs:date xs:gYearMonth xs:gYear"/>
        </xs:simpleType>
        <xs:simpleType name="string3">
            <xs:restriction base="xs:string">
                <xs:maxLength value="3"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string4">
            <xs:restriction base="xs:string">
                <xs:maxLength value="4"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string7">
            <xs:restriction base="xs:string">
                <xs:maxLength value="7"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string20">
            <xs:restriction base="xs:string">
                <xs:maxLength value="20"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string30">
            <xs:restriction base="xs:string">
                <xs:maxLength value="30"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string50">
            <xs:restriction base="xs:string">
                <xs:maxLength value="50"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="string100">
            <xs:restriction base="xs:string">
                <xs:maxLength value="100"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="integer5">
            <xs:restriction base="xs:integer">
                <xs:minInclusive value="10000"/>
                <xs:maxInclusive value="99999"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:schema>

### zuse.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:p="http://reference.e-government.gv.at/namespace/persondata/20020228#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:msg="http://reference.e-government.gv.at/namespace/zustellung/msg" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/msg" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.4.2">
        <!--### Imports ###-->
        <xs:import namespace="http://reference.e-government.gv.at/namespace/persondata/20020228#" schemaLocation="zuse_mypersondata_en.xsd"/>
        <!--# for sake of simplvity, a slimmed down version of the persondata 2.0 will be used, namespace stys on persondata #-->
        <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="W3C-XMLDSig.xsd"/>
        <xs:import namespace="urn:oasis:names:tc:SAML:1.0:assertion" schemaLocation="cs-sstc-schema-assertion-01.xsd"/>
        <!--###  Nachrichten und Nachrichtenstrukturen ###-->
        <!--###  Zustellstückanlieferung ###-->
        <xs:element name="DeliveryRequest" type="msg:DeliveryRequestType">
            <xs:annotation>
                <xs:documentation>Zustellstückanleiferung</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryRequestType">
            <xs:sequence>
                <xs:choice>
                    <xs:element name="ZbPK" type="msg:token255">
                        <xs:annotation>
                            <xs:documentation>Obsolet -> Verwendung von Identification Element</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="edID" type="msg:token255">
                        <xs:annotation>
                            <xs:documentation>Obsolet -> Verwendung von Identification Element</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="Identification">
                        <xs:annotation>
                            <xs:documentation>Identifikation basierend auf Type/Value</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="Type" type="xs:string"/>
                                <xs:element name="Value" type="xs:string"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:choice>
                <xs:element name="NotificationAddress">
                    <xs:annotation>
                        <xs:documentation>Wohin sollen Zustellungsbestätigungen oder Fehlermeldung weitergeleitet werden</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:choice>
                            <xs:element name="WebserviceURL">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:anyURI">
                                            <xs:attribute name="AlternativeEmail" type="xs:anyURI"/>
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Email" type="p:InternetAddressType">
                                <xs:annotation>
                                    <xs:documentation>Für Notfälle, wenn der Absemnder  weder übe einenr Webservice noch über ein eelektronisches Postfach verfügt.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:choice>
                        <xs:attribute name="Type" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>Typ des Zustellnachweises, z.B. xml+pdf oder nur xml (default)</xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="msg:Sender"/>
                <xs:element ref="msg:Receiver" minOccurs="0"/>
                <xs:element name="MetaData">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Subject" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Zur Anzeige in der Mailbox, vgl. Subject von herkömml. E-mails</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element ref="msg:AppDeliveryID"/>
                            <xs:element ref="msg:GZ" minOccurs="0"/>
                            <xs:element ref="msg:MZSDeliveryID" minOccurs="0"/>
                            <xs:element name="DeliveryQuality" type="msg:token255">
                                <xs:annotation>
                                    <xs:documentation>RSa, non-RSa</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="DeliveryConfirmation" type="xs:boolean" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Gibt an ob eine Übergabebestätigung vom Zustelldienst als Antwort retourniert werden soll</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element ref="msg:DocumentClass" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Dokumentenklasse als String bzw. Namespace im Fall von XML-Dokumenten im Anhang, um auf Empfängerseite eine automatische Verarbeitung durch ein Workflowsystem realisieren zu können.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element ref="msg:References" minOccurs="0"/>
                            <xs:element name="StartNotificationBefore" type="xs:dateTime" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Zeitpunkt an dem die erste Benachrichtigung versandt sein muß</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="DeliverBefore" type="xs:dateTime" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Ende der Vorhaltefrist, min 3 Wochen ab Versenden der ersten Verständigung, default 3 Wochen</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="PrintParameter" minOccurs="0">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
                                    </xs:sequence>
                                    <xs:attribute name="profile" type="xs:anyURI" use="required"/>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="DocumentReference" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Docuementlocation in case of Callback attachements</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="URL" type="xs:anyURI"/>
                            <xs:element name="MimeType" type="msg:token255" minOccurs="0"/>
                            <xs:element name="FileName" type="msg:string255" minOccurs="0"/>
                            <xs:element name="MD5Checksum" type="msg:token255" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="CustomNotificationIntervals" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="RecipientNotification" maxOccurs="unbounded">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="NotificationMethod" type="msg:token255">
                                            <xs:annotation>
                                                <xs:documentation>electronic or paperbased notification</xs:documentation>
                                            </xs:annotation>
                                        </xs:element>
                                        <xs:element name="TimeSinceDisposal" type="xs:duration">
                                            <xs:annotation>
                                                <xs:documentation>Verständigungsintervall, Zeit seit Übergabe an den Zusztellserver in Tagen oder Stunden</xs:documentation>
                                            </xs:annotation>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="version">
                <xs:simpleType>
                    <xs:restriction base="msg:token255"/>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
        <xs:element name="References" type="msg:ReferencesType">
            <xs:annotation>
                <xs:documentation>Liste aller verfügbaren IDs jener Elektronischen Zustellung, auf die der Versender antworten will</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="ReferencesType">
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="msg:AppDeliveryID"/>
                <xs:element ref="msg:GZ"/>
                <xs:element ref="msg:MZSDeliveryID"/>
                <xs:element ref="msg:ZSDeliveryID"/>
            </xs:choice>
        </xs:complexType>
        <xs:element name="DeliveryRequestStatus">
            <xs:annotation>
                <xs:documentation>Webservice Response of ZSDeliveryRequest, also to used asynchronously </xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="msg:DeliveryRequestStatusType"/>
                </xs:complexContent>
            </xs:complexType>
        </xs:element>
        <xs:complexType name="DeliveryRequestStatusType">
            <xs:choice>
                <xs:element name="Success" type="msg:DeliveryAnswerType">
                    <xs:annotation>
                        <xs:documentation>Zustellstück wurde erfolgreich übernommen</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="DeliveryConfirmation" type="msg:DeliveryConfirmationType">
                    <xs:annotation>
                        <xs:documentation>Signierte Übergabebestätigung an den Zustelldienst</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="PartialSuccess" type="msg:DeliveryAnswerType">
                    <xs:annotation>
                        <xs:documentation>Zustellstück wurde erfolgreich übernommen, attachment wird später geladen</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Error">
                    <xs:annotation>
                        <xs:documentation>Zustellstück konnte nicht erfolgreich angenommen werden</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:complexContent>
                            <xs:extension base="msg:DeliveryAnswerType">
                                <xs:sequence>
                                    <xs:element name="ErrorInfo">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="Code" type="xs:positiveInteger">
                                                    <xs:annotation>
                                                        <xs:documentation>Numerischer Fehlercode</xs:documentation>
                                                    </xs:annotation>
                                                </xs:element>
                                                <xs:element name="Text" type="msg:string255">
                                                    <xs:annotation>
                                                        <xs:documentation>Fehlerbeschreibung</xs:documentation>
                                                    </xs:annotation>
                                                </xs:element>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:sequence>
                            </xs:extension>
                        </xs:complexContent>
                    </xs:complexType>
                </xs:element>
            </xs:choice>
            <xs:attribute name="version">
                <xs:simpleType>
                    <xs:restriction base="msg:token255"/>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
        <xs:element name="DeliveryRequestStatusACK">
            <xs:annotation>
                <xs:documentation>Wenn DeliveryRequestStatus in asynchroner Koomunikation als Request benutz wird, ist DeliveryRequstStatusACK die Antwort</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="msg:DeliveryRequestStatusACKType"/>
                </xs:complexContent>
            </xs:complexType>
        </xs:element>
        <xs:complexType name="DeliveryRequestStatusACKType">
            <xs:sequence>
                <xs:element ref="msg:AppDeliveryID"/>
                <xs:element ref="msg:ZSDeliveryID"/>
            </xs:sequence>
            <xs:attribute name="version">
                <xs:simpleType>
                    <xs:restriction base="msg:token255"/>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
        <xs:annotation>
            <xs:documentation>### Bestätigung über Zustellungs (Miß-) Erfolg   ###</xs:documentation>
        </xs:annotation>
        <xs:element name="DeliveryNotification">
            <xs:annotation>
                <xs:documentation>Benachrichtigung über die (nicht) erfolgte Zustellung</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="msg:DeliveryNotificationType"/>
                </xs:complexContent>
            </xs:complexType>
        </xs:element>
        <xs:complexType name="DeliveryNotificationType">
            <xs:sequence>
                <xs:choice>
                    <xs:element name="Success">
                        <xs:annotation>
                            <xs:documentation>Zustellstück wurde vom Empfänger angenommen</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:complexContent>
                                <xs:extension base="msg:DeliveryAnswerType">
                                    <xs:sequence>
                                        <xs:element ref="msg:Sender"/>
                                        <xs:element ref="msg:Receiver"/>
                                        <xs:element name="NotificationsPerformed">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="RecipientNotification" maxOccurs="unbounded">
                                                        <xs:complexType>
                                                            <xs:sequence>
                                                                <xs:element name="NotificationMethod">
                                                                    <xs:annotation>
                                                                        <xs:documentation>electronic or paper</xs:documentation>
                                                                    </xs:annotation>
                                                                    <xs:simpleType>
                                                                        <xs:restriction base="xs:token">
                                                                            <xs:enumeration value="electronic"/>
                                                                            <xs:enumeration value="paperbased"/>
                                                                        </xs:restriction>
                                                                    </xs:simpleType>
                                                                </xs:element>
                                                                <xs:element name="Timestamp" type="xs:dateTime"/>
                                                            </xs:sequence>
                                                        </xs:complexType>
                                                    </xs:element>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                        <xs:element name="ConfirmationTimestamp" type="xs:dateTime">
                                            <xs:annotation>
                                                <xs:documentation>Timestamp of User Signature</xs:documentation>
                                            </xs:annotation>
                                        </xs:element>
                                        <xs:choice>
                                            <xs:element name="AuthBlock" type="saml:AssertionType">
                                                <xs:annotation>
                                                    <xs:documentation>SAMLAssertion</xs:documentation>
                                                </xs:annotation>
                                            </xs:element>
                                            <xs:element name="BinaryConfirmation">
                                                <xs:complexType>
                                                    <xs:simpleContent>
                                                        <xs:extension base="xs:base64Binary">
                                                            <xs:attribute name="Type" use="required"/>
                                                        </xs:extension>
                                                    </xs:simpleContent>
                                                </xs:complexType>
                                            </xs:element>
                                        </xs:choice>
                                        <xs:element ref="dsig:Signature"/>
                                    </xs:sequence>
                                </xs:extension>
                            </xs:complexContent>
                        </xs:complexType>
                    </xs:element>
                    <xs:element name="Error">
                        <xs:annotation>
                            <xs:documentation>Zustellstück wurde vom Empfänger nciht angenommen/abgeholt</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:complexContent>
                                <xs:extension base="msg:DeliveryAnswerType">
                                    <xs:sequence>
                                        <xs:element ref="msg:Sender"/>
                                        <xs:element ref="msg:Receiver"/>
                                        <xs:element name="NotificationsPerformed">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <!--Element RecipientNotification sollte in Zukunft zum Einsatu kommen-->
                                                    <xs:element name="RecipientNotification" minOccurs="0" maxOccurs="unbounded">
                                                        <xs:complexType>
                                                            <xs:sequence>
                                                                <xs:element name="NotificationMethod">
                                                                    <xs:annotation>
                                                                        <xs:documentation>electronic or paper</xs:documentation>
                                                                    </xs:annotation>
                                                                    <xs:simpleType>
                                                                        <xs:restriction base="xs:token">
                                                                            <xs:enumeration value="electronic"/>
                                                                            <xs:enumeration value="paperbased"/>
                                                                        </xs:restriction>
                                                                    </xs:simpleType>
                                                                </xs:element>
                                                                <xs:element name="Timestamp" type="xs:dateTime"/>
                                                            </xs:sequence>
                                                        </xs:complexType>
                                                    </xs:element>
                                                    <!--Element Notification für Abwärtskompatibilität-->
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                        <xs:element name="ErrorInfo">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="Code" type="xs:positiveInteger"/>
                                                    <xs:element name="Text" type="msg:string255"/>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                        <xs:element ref="dsig:Signature"/>
                                    </xs:sequence>
                                </xs:extension>
                            </xs:complexContent>
                        </xs:complexType>
                    </xs:element>
                </xs:choice>
                <xs:element name="AdditionalFormat" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:base64Binary">
                                <xs:attribute name="Type" use="required"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="version">
                <xs:simpleType>
                    <xs:restriction base="msg:token255"/>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
        <xs:element name="DeliveryNotificationACK">
            <xs:annotation>
                <xs:documentation>Webservice Response of ZSDeliveryNotification</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="msg:DeliveryNotificationACKType"/>
                </xs:complexContent>
            </xs:complexType>
        </xs:element>
        <xs:complexType name="DeliveryNotificationACKType">
            <xs:sequence>
                <xs:element ref="msg:AppDeliveryID"/>
                <xs:element ref="msg:ZSDeliveryID"/>
            </xs:sequence>
            <xs:attribute name="version">
                <xs:simpleType>
                    <xs:restriction base="msg:token255"/>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
        <!--### sonstige globale Elemente ###-->
        <xs:element name="AppDeliveryID" type="msg:token255">
            <xs:annotation>
                <xs:documentation>ID des Zustellstücke beim Absender</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="GZ" type="xs:string">
            <xs:annotation>
                <xs:documentation>Geschäftszahl</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="ZSDeliveryID" type="msg:token255">
            <xs:annotation>
                <xs:documentation>ID des Zustellstücke innerhalb des Zustellservers</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="MZSDeliveryID" type="msg:token255">
            <xs:annotation>
                <xs:documentation>ID des Zustellstücks des Mittlers</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="Sender">
            <xs:annotation>
                <xs:documentation>Informationen zum Sender</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:choice>
                        <xs:element name="Organisation">
                            <xs:annotation>
                                <xs:documentation>Behörde als PersonData Corporate Body. Im Falle eines behördlichen Absenders ist der Sender durch dieses Element zu formulieren.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:complexContent>
                                    <xs:extension base="p:CorporateBodyType"/>
                                </xs:complexContent>
                            </xs:complexType>
                        </xs:element>
                        <xs:choice>
                            <xs:element ref="p:PhysicalPerson"/>
                            <xs:element ref="p:CorporateBody"/>
                        </xs:choice>
                    </xs:choice>
                    <xs:element ref="msg:MailBox" minOccurs="0"/>
                    <xs:element ref="p:Address" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="DocumentClass">
            <xs:annotation>
                <xs:documentation>Enthält den Namespace des XML-Dokuments, um auf Empfängerseite eine automatische Verarbeitung durch ein Workflowsystem realisieren zu können.</xs:documentation>
            </xs:annotation>
            <xs:complexType mixed="true">
                <xs:attribute name="Namespace" type="xs:anyURI">
                    <xs:annotation>
                        <xs:documentation>Namespace des XML-Files, dass als Dokument im Attachemt mitgeliefert wird.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:complexType>
        </xs:element>
        <xs:element name="Receiver">
            <xs:annotation>
                <xs:documentation>Informationen zum Empfänger</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:choice>
                        <xs:element ref="p:PhysicalPerson"/>
                        <xs:element ref="p:CorporateBody"/>
                    </xs:choice>
                    <xs:element ref="msg:MailBox" minOccurs="0"/>
                    <xs:element ref="p:PostalAddress" minOccurs="0"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <!--### Hilfstypen ###-->
        <xs:complexType name="DeliveryAnswerType">
            <xs:annotation>
                <xs:documentation>Abstrakter Antwort Typ</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="DeliveryService" type="msg:string255"/>
                <xs:element ref="msg:AppDeliveryID"/>
                <xs:element ref="msg:GZ" minOccurs="0"/>
                <xs:element ref="msg:MZSDeliveryID" minOccurs="0"/>
                <xs:element ref="msg:ZSDeliveryID"/>
                <xs:element name="RelayedViaERV" type="xs:boolean" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Gibt an ob das Zustellstück über den ERV zugestellt wurde</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        <xs:simpleType name="string255">
            <xs:annotation>
                <xs:documentation>String auf 255 Zeichen beschränkt.</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:maxLength value="255"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="token255">
            <xs:annotation>
                <xs:documentation>Token auf 255 Zeichen beschränkt.</xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:token">
                <xs:minLength value="1"/>
                <xs:maxLength value="255"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:element name="MailBox">
            <xs:annotation>
                <xs:documentation>Spezielles Postfach des Empfängers, z.B. eine Filiale einer jur. Person</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DeliveryConfirmationType">
            <xs:complexContent>
                <xs:extension base="msg:DeliveryAnswerType">
                    <xs:sequence>
                        <xs:element ref="msg:Sender"/>
                        <xs:element ref="msg:Receiver"/>
                        <xs:element name="DeliveryTimestamp" type="xs:dateTime">
                            <xs:annotation>
                                <xs:documentation>Übergabezeitpunkt an den Zustelldienst</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="dsig:Signature"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:element name="DeliveryResponse" type="msg:DeliveryRequestStatusType"/>
    </xs:schema>

### zuse2app.wsdl

    <?xml version="1.0" encoding="UTF-8"?>
    <definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
                 xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
                 xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                 xmlns:tns="http://reference.e-government.gv.at/namespace/zuse11/zuse2app.wsdl"
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                 xmlns:zuse="http://reference.e-government.gv.at/namespace/zustellung/msg"
                 name="zuse2app"
                 targetNamespace="http://reference.e-government.gv.at/namespace/zuse11/zuse2app.wsdl">

        <import location="zuse.xsd" namespace="http://reference.e-government.gv.at/namespace/zustellung/msg"/>

        <message name="DeliveryRequestStatusResponse">
            <part name="DeliveryRequestStatusResponse" element="zuse:DeliveryRequestStatusACK"/>
        </message>
        <message name="DeliveryRequestStatus">
            <part name="DeliveryRequestStatus" element="zuse:DeliveryRequestStatus"/>
        </message>
        <message name="DeliveryNotificationResponse">
            <part name="DeliveryNotificationResponse" element="zuse:DeliveryNotificationACK"/>
        </message>
        <message name="DeliveryNotificationRequest">
            <part name="DeliveryNotificationRequest" element="zuse:DeliveryNotification"/>
        </message>

        <portType name="NotificationPortType">
            <operation name="Notification">
                <input message="tns:DeliveryNotificationRequest"/>
                <output message="tns:DeliveryNotificationResponse"/>
            </operation>
        </portType>
        <portType name="StatusPortType">
            <operation name="Status">
                <input message="tns:DeliveryRequestStatus"/>
                <output message="tns:DeliveryRequestStatusResponse"/>
            </operation>
        </portType>

        <binding name="StatusBinding" type="tns:StatusPortType">
            <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
            <operation name="Status">
                <soap:operation soapAction="capeconnect:zuse2app:StatusPortType#Status" style="document"/>
                <input>
                    <soap:body use="literal"/>
                </input>
                <output>
                    <soap:body use="literal"/>
                </output>
            </operation>
        </binding>
        <binding name="NotificationBinding" type="tns:NotificationPortType">
            <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
            <operation name="Notification">
                <soap:operation soapAction="capeconnect:app2zuse:NotificationPortType#Notification"/>
                <input>
                    <soap:body use="literal"/>
                </input>
                <output>
                    <soap:body use="literal"/>
                </output>
            </operation>
        </binding>

        <service name="zuse2app">
            <port name="status" binding="tns:StatusBinding">
                <soap:address location="http://localhost:8000/zuse/zusestatus"/>
            </port>
            <port name="notification" binding="tns:NotificationBinding">
                <soap:address location="http://localhost:8000/zuse/zusenotification"/>
            </port>
        </service>
    </definitions>

## Transaction Portal - DD Schema

### DualeZustellung_Bulk.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by Arne Tauber (Technische Universität Graz) -->
    <xs:schema xmlns:dd="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" xmlns:ddn="http://reference.e-government.gv.at/namespace/zustellung/dual_notification/20130121#" xmlns:ddb="http://reference.e-government.gv.at/namespace/zustellung/dual_bulk/20130121#" xmlns:ddpa="http://reference.e-government.gv.at/namespace/zustellung/dual_pa/20130121#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:p="http://reference.e-government.gv.at/namespace/persondata/20130121#" xmlns:egiz="uri:egiz.additional.params/20130121#" xmlns:zuse="http://reference.e-government.gv.at/namespace/zustellung/msg" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/dual_bulk/20130121#" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" schemaLocation="DualeZustellung.xsd"/>
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/dual_notification/20130121#" schemaLocation="DualeZustellung_Notification.xsd"/>
        <xs:import namespace="http://reference.e-government.gv.at/namespace/persondata/20130121#" schemaLocation="dual_mypersondata_en.xsd"/>
        <xs:element name="DualDeliveryBulkRequest" type="ddb:DualDeliveryBulkRequestType">
            <xs:annotation>
                <xs:documentation>Dieser Request dient dazu einen Container für Massensendungen zu eröffnen bzw. diesen nach Anlieferung aller "Slaves" zu schließen</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DualDeliveryBulkResponse" type="ddb:DualDeliveryBulkResponseType">
            <xs:annotation>
                <xs:documentation>Bei start eines Bulk-Requests wird die Bulk-ID zurückgegeben diese ID ist bei allen "Slaves" sowie für den Finish-Bulk-Request anzuführen</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DualNotificationBulkRequest" type="ddb:DualNotificationBulkRequestType">
            <xs:annotation>
                <xs:documentation>Dieser Request stellt die (asynchrone) Antwort auf einen Bulk-Request dar und beeinhaltet den Status sämtlicher "Slaves" des Bulk-Containers</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DualNotificationBulkResponse" type="ddb:DualNotificationBulkResponseType">
            <xs:annotation>
                <xs:documentation>Quittierung über den Empfang der Bulk-Notification</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DualNotificationBulkResponseType">
            <xs:annotation>
                <xs:documentation>Quittierung über den Empfang der Bulk-Notification</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="DualNotificationResponses" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="ddn:DualNotificationResponse"/>
                            <xs:element name="ApplicationDeliveryID" type="xs:string">
                                <xs:annotation>
                                    <xs:documentation>ApplicationDelivery_ID gemäß Zustellrequest</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="DualZSID" type="xs:integer" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>DualZS_ID gemäß Zustellresponse</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="required"/>
        </xs:complexType>
        <xs:complexType name="DualDeliveryBulkRequestType">
            <xs:annotation>
                <xs:documentation>Dieser Request dient dazu einen Container für Massensendungen zu eröffnen bzw. diesen nach Anlieferung aller "Slaves" zu schließen</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="Sender">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="SenderProfile">
                                <xs:annotation>
                                    <xs:documentation>Im dualen Zustellsystem hinterlegte ID des Senders</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:token">
                                            <xs:attribute name="version" type="xs:token" use="optional"/>
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SenderData" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Daten des Versenders</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:complexContent>
                                        <xs:extension base="p:PersonDataType"/>
                                    </xs:complexContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element ref="dd:Parameters" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="MetaData">
                    <xs:annotation>
                        <xs:documentation>Meta-daten</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="dd:ApplicationID" minOccurs="0"/>
                            <xs:element ref="dd:GZ" minOccurs="0"/>
                            <xs:element ref="dd:AdditionalMetaData" minOccurs="0"/>
                            <xs:element ref="dd:TestCase" minOccurs="0"/>
                            <xs:element ref="dd:ProcessingProfile" minOccurs="0"/>
                            <xs:element ref="dd:Asynchronous" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="dd:Payload" minOccurs="0" maxOccurs="unbounded"/>
                <xs:choice>
                    <xs:element name="StartBulk" type="xs:boolean">
                        <xs:annotation>
                            <xs:documentation>Zeigt an, dass ein neuer Bulk angelegt werden soll</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="FinishBulk">
                        <xs:annotation>
                            <xs:documentation>Zeigt an das zu diesem Bulk keinen weiteren Dokumenten mehr angeliefert werden.</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element ref="dd:BulkId" minOccurs="0"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:choice>
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="required"/>
        </xs:complexType>
        <xs:complexType name="DualDeliveryBulkResponseType">
            <xs:annotation>
                <xs:documentation>Dieser Request stellt die (asynchrone) Antwort auf einen Bulk-Request dar und beeinhaltet den Status sämtlicher "Slaves" des Bulk-Containers</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="dd:Status"/>
                <xs:element ref="dd:BulkId" minOccurs="0"/>
                <xs:element ref="dd:AdditionalMetaData" minOccurs="0"/>
                <xs:element ref="dd:Errors" minOccurs="0"/>
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="required"/>
        </xs:complexType>
        <xs:element name="BulkElements">
            <xs:annotation>
                <xs:documentation>Informationen über die "Slaves" einer Bulk-Verarbeitung</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="ddn:DualNotificationRequest" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:complexType name="DualNotificationBulkRequestType">
            <xs:annotation>
                <xs:documentation>Dieser Request stellt die (asynchrone) Antwort auf einen Bulk-Request dar und beeinhaltet den Status sämtlicher "Slaves" des Bulk-Containers</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="ApplicationDeliveryID" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>ApplicationDelivery_ID gemäß Zustellrequest</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="DualZSID" type="xs:integer" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>DualZS_ID gemäß Zustellresponse</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="ddb:BulkElements" minOccurs="0"/>
                <xs:element ref="dd:Status"/>
                <xs:element ref="dd:Errors" minOccurs="0"/>
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:schema>

### DualeZustellung_Cancellation.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by Arne Tauber (Technische Universität Graz) -->
    <xs:schema xmlns:dd="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" xmlns:ddb="http://reference.e-government.gv.at/namespace/zustellung/dual_bulk/20130121#" xmlns:ddca="http://reference.e-government.gv.at/namespace/zustellung/dual_ca/20130121#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:p="http://reference.e-government.gv.at/namespace/persondata/20130121#" xmlns:egiz="uri:egiz.additional.params/20130121#" xmlns:zuse="http://reference.e-government.gv.at/namespace/zustellung/msg" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/dual_ca/20130121#" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" schemaLocation="DualeZustellung.xsd"/>
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/dual_bulk/20130121#" schemaLocation="DualeZustellung_Bulk.xsd"/>
        <xs:import namespace="http://reference.e-government.gv.at/namespace/persondata/20130121#" schemaLocation="dual_mypersondata_en.xsd"/>
        <xs:element name="DualDeliveryCancellationRequest">
            <xs:annotation>
                <xs:documentation>Dieser Request gilt sowohl für Standard als auch für Bulk und PreAdressing Geschäftsfälle die Verarbeitung wird soweit möglich abgebrochen</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="ddca:DualDeliveryCancellationRequestType"/>
                </xs:complexContent>
            </xs:complexType>
        </xs:element>
        <xs:element name="DualDeliveryCancellationResponse">
            <xs:annotation>
                <xs:documentation>Dieser Storno-Response, Bei Bulk-Sendungen wird der Status der einzelnen Nachrichten mittels der Notification-Message an den Sender übermittelt</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="ddca:DualDeliveryCancellationResponseType"/>
                </xs:complexContent>
            </xs:complexType>
        </xs:element>
        <xs:complexType name="DualDeliveryCancellationRequestType">
            <xs:annotation>
                <xs:documentation>Root Element des Storno-Requests, dieser Request gilt sowohl für Standard als auch für Bulk und PreAdressing Geschäftsfälle die Verarbeitung wird soweit möglich abgebrochen</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="dd:SenderProfile"/>
                <xs:element ref="dd:ApplicationID"/>
                <xs:element ref="dd:DualDeliveryID"/>
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="required"/>
        </xs:complexType>
        <xs:complexType name="DualDeliveryCancellationResponseType">
            <xs:annotation>
                <xs:documentation>Root Element des Storno-Response, Bei Bulk-Sendungen wird der Status der einzelnen Nachrichten mittels der Notification-Message an den Sender übermittelt</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="dd:DualDeliveryID"/>
                <xs:element ref="dd:AppDeliveryID"/>
                <xs:element ref="dd:Status"/>
                <xs:element ref="ddb:BulkElements" minOccurs="0"/>
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:schema>

### DualeZustellung_PreAddressing.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by Arne Tauber (Technische Universität Graz) -->
    <xs:schema xmlns:dd="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" xmlns:ddpa="http://reference.e-government.gv.at/namespace/zustellung/dual_pa/20130121#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:p="http://reference.e-government.gv.at/namespace/persondata/20130121#" xmlns:ddb="http://reference.e-government.gv.at/namespace/zustellung/dual_bulk/20130121#" xmlns:egiz="uri:egiz.additional.params" xmlns:zuse="http://reference.e-government.gv.at/namespace/zustellung/msg" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/dual_pa/20130121#" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" schemaLocation="DualeZustellung.xsd"/>
        <xs:import namespace="http://reference.e-government.gv.at/namespace/persondata/20130121#" schemaLocation="dual_mypersondata_en.xsd"/>
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/dual_bulk/20130121#" schemaLocation="DualeZustellung_Bulk.xsd"/>
        <xs:element name="DualDeliveryPreAddressingRequest" type="ddpa:DualDeliveryPreAddressingRequestType">
            <xs:annotation>
                <xs:documentation>Der Vorabadressierungsrequest enthält alle relevanten Metadaten um die Adressierbarkeit mehrere/einer großen Menge von Empfängern auf den gewünschten Kanälen lt. Verarbeitungsprofil zu ermitteln (nur Adressierungsrelevante Metadaten keine Payloads!). Dieser Request dient dazu div. Szenarien der Dualen Zustellung effizient und perfomant umsetzen zu können. Wird beim Request "PreCreateSendings" angegeben so wird für die auf einem der gewünschten Kanäle  adressierbaren Empfänger bereites ein Eintrag in der Datenbasis der Dualen Zustellung erstellt. In Folge wird für diese Sendungen lediglich der Payload übermittelt um die Versendung zu initieren. Zweck: z.B: E-Versand über die Weiche aber Druck der elektronisch nicht erreichbaren Empfänger auf der lokalen Druckstrasse des Versenders (bei der derzeit geringen elektronischen Erreichbarkeit der Empfänger kann somit die "unnötige" Übertragung von großen Datenmengen vermieden werden), kanalspezifische Aufbereitung von Attachemnts wie kanalspezifische Signatur z.B. elektronisch ohne Zahlschein aber mit Zahlungsinformation etc. z.B. bei sehr großen Massensendungen bei denen das Adressierungsergebnis zeitkritisch ist und die weitere Verarbeitung beeinflusst vgl. Anforderungen HVB. </xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:element name="DualDeliveryPreAddressingResponse" type="ddpa:DualDeliveryPreAddressingResponseType">
            <xs:annotation>
                <xs:documentation>Rückgabe der Adressierungsergebnisse für die angefragten Empfänger je gewünschtem Kanal incl. DualZuseIDs bei Angabe von "PreCreateSendings"</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="DualDeliveryPreAddressingRequestType">
            <xs:annotation>
                <xs:documentation>Der Vorabadressierungsrequest enthält alle relevanten Metadaten um die Adressierbarkeit mehrere/einer großen Menge von Empfängern auf den gewünschten Kanälen lt. Verarbeitungsprofil zu ermitteln (nur Adressierungsrelevante Metadaten keine Payloads!). Dieser Request dient dazu div. Szenarien der Dualen Zustellung effizient und perfomant umsetzen zu können. Wird beim Request "PreCreateSendings" angegeben so wird für die auf einem der gewünschten Kanäle  adressierbaren Empfänger bereites ein Eintrag in der Datenbasis der Dualen Zustellung erstellt. In Folge wird für diese Sendungen lediglich der Payload übermittelt um die Versendung zu initieren. Zweck: z.B: E-Versand über die Weiche aber Druck der elektronisch nicht erreichbaren Empfänger auf der lokalen Druckstrasse des Versenders (bei der derzeit geringen elektronischen Erreichbarkeit der Empfänger kann somit die "unnötige" Übertragung von großen Datenmengen vermieden werden), kanalspezifische Aufbereitung von Attachemnts wie kanalspezifische Signatur z.B. el</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="dd:Sender"/>
                <xs:element name="Recipients">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Recipient" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation>Empfänger</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element ref="dd:RecipientID"/>
                                        <xs:element ref="dd:Recipient"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="MetaData">
                    <xs:annotation>
                        <xs:documentation>Meta-daten</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element ref="dd:AppDeliveryID"/>
                            <xs:element ref="dd:ApplicationID" minOccurs="0"/>
                            <xs:element ref="dd:AdditionalMetaData" minOccurs="0"/>
                            <xs:element ref="dd:TestCase" minOccurs="0"/>
                            <xs:element ref="dd:ProcessingProfile" minOccurs="0"/>
                            <xs:element ref="dd:Asynchronous" minOccurs="0"/>
                            <xs:element name="PreCreateSendings" type="xs:boolean" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Falls ein Emfänger gefunden wird, wird der Geschäftsfall gleich angelegt. Die ID wird im Response zurückgeliefert.
    Im Nachfolgerequest muss dann nur die Payload mitgeliefert werden.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="dd:DeliveryChannels"/>
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="required"/>
        </xs:complexType>
        <xs:complexType name="DualDeliveryPreAddressingResponseType">
            <xs:annotation>
                <xs:documentation>Antwort auf den Vorabadressierungsrequest siehe ann: DualDeliveryPreAddressingResponse</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="dd:AppDeliveryID"/>
                <xs:element ref="dd:Status"/>
                <xs:element ref="dd:DualDeliveryID" minOccurs="0"/>
                <xs:element name="AddressingResults" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="AddressingResult" minOccurs="0" maxOccurs="unbounded">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="DeliveryChannelAddressingResult" type="dd:UsedDeliveryChannelType" maxOccurs="unbounded"/>
                                        <xs:element ref="dd:DualDeliveryID" minOccurs="0"/>
                                        <xs:element ref="dd:RecipientID"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="dd:Errors" minOccurs="0"/>
            </xs:sequence>
            <xs:attribute name="version" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:schema>

### DualeZustellung_Print.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Mit XMLSpy v2010 rel. 3 sp1 (x64) (http://www.altova.com) von Herbert Pacnik (Fachabtelung 1B Informationstechnik) bearbeitet -->
    <!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by Arne Tauber (Technische Universität Graz) -->
    <xs:schema xmlns:dd="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" xmlns:ddpr="http://reference.e-government.gv.at/namespace/zustellung/dual_print/20130121#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:p="http://reference.e-government.gv.at/namespace/persondata/20130121#" xmlns:egiz="uri:egiz.additional.params" xmlns:zuse="http://reference.e-government.gv.at/namespace/zustellung/msg" xmlns:ddb="http://reference.e-government.gv.at/namespace/zustellung/dual_bulk/20130121#" xmlns:ddgp="uri:general.additional.params/20130121#" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/dual_print/20130121#" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/dual/20130121#" schemaLocation="DualeZustellung.xsd"/>
        <xs:import namespace="http://reference.e-government.gv.at/namespace/persondata/20130121#" schemaLocation="dual_mypersondata_en.xsd"/>
        <xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/dual_bulk/20130121#" schemaLocation="DualeZustellung_Bulk.xsd"/>
        <xs:import namespace="uri:general.additional.params/20130121#" schemaLocation="general-additonal-parameter.xsd"/>
        <xs:element name="DualDeliveryPrintRequest" type="ddpr:DualDeliveryPrintRequestType"/>
        <xs:element name="DualDeliveryPrintResponse" type="ddpr:DualDeliveryPrintResponseType"/>
        <xs:complexType name="DualDeliveryPrintRequestType">
            <xs:sequence>
                <xs:element ref="dd:BulkId" minOccurs="0"/>
                <xs:element ref="dd:AppDeliveryID" minOccurs="0"/>
                <xs:element ref="dd:DualDeliveryID"/>
                <xs:element ref="dd:Sender"/>
                <xs:element ref="dd:Recipient" minOccurs="0"/>
                <xs:element ref="dd:Priority" minOccurs="0"/>
                <xs:element ref="dd:EnvelopeFormat"/>
                <xs:element ref="dd:AdditionalMetaData" minOccurs="0"/>
                <xs:element ref="dd:PrintParameter" minOccurs="0"/>
                <xs:element ref="dd:DeliveryQuality"/>
                <xs:element ref="ddgp:PostageRange"/>
                <xs:element ref="dd:Payload" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="Portobereich" nillable="false">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="inland"/>
                    <xs:enumeration value="eu"/>
                    <xs:enumeration value="noneu"/>
                    <xs:enumeration value="unbekannt"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element name="Verrechnung">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Kostenstelle" type="xs:string" nillable="false"/>
                    <xs:element name="Seiten" type="xs:int" nillable="false"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="Absender">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Bezeichnung" type="xs:string" nillable="false"/>
                    <xs:element name="VKZ" type="xs:string" nillable="false"/>
                    <xs:element name="Sachbearbeiter" type="xs:string" nillable="false"/>
                    <xs:element name="Tel" type="xs:string" nillable="false"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <!-- <xs:complexType name="PayloadAttributes">
            <xs:annotation>
                <xs:documentation>Allgemeine Eigenschaften eines Zustellstücks</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="Id" type="xs:ID">
                    <xs:annotation>
                        <xs:documentation>Eindeutige ID des Dokuments</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="FileName" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Dateiname</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ContentType" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>MIME Typ, z.B. application/pdf</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="PrintType" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Art des Druckes  (DUP - Duplex, SIM - Simplex)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="PaperFormat" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Papierformat: A4, A3, Dynamic (Default=A4)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Size" type="xs:positiveInteger">
                    <xs:annotation>
                        <xs:documentation>Größein bytes</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Index" type="xs:positiveInteger">
                    <xs:annotation>
                        <xs:documentation>Reihung (Sortierung der Dokumente)</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>-->
        <xs:complexType name="DualDeliveryPrintResponseType">
            <xs:sequence>
                <xs:element ref="dd:BulkId" minOccurs="0"/>
                <xs:element ref="dd:AppDeliveryID" minOccurs="0"/>
                <xs:element ref="dd:DualDeliveryID"/>
                <xs:element name="JobID" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Von der Druckstraße vergebene ID für den Druckjob</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="dd:AdditionalMetaData" minOccurs="0"/>
                <xs:element name="PrintDate" type="xs:dateTime">
                    <xs:annotation>
                        <xs:documentation>Datum des Ausdrucks</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="PostalDeliveryDate">
                    <xs:annotation>
                        <xs:documentation>Datum der Auflierfung beim Zustelldienst</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Pages" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Anzahl der gedruckten Seiten</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Sheets">
                    <xs:annotation>
                        <xs:documentation>Anzahl der Blätter</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Weight" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Gewicht des gesamten Kuverts</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:schema>

## 9 sendhybrid Client

### Installation introduction

# 1. Installation using setup

After double-clicking the setup file, the installation starts. Accept the license agreement and then click on advanced (“erweitert”).

1) Screenshot: Agree to the license agreement

It is strongly recommended to install the client for all users under Advanced.

2) Screenshot: User choice

3) Screenshot: Select the target folder

In the extended setup of the client, in addition to the sendhybrid core components, desktop symbols can be created for the individual operations and certificates can be installed.

The certificates are only necessary if the client is used as a ‘Pad-Sign’ client and usually do not have to be installed.

4) Screenshot: Choosing product features

Once all settings have been made, the installation can begin.

5) Screenshot: Complete installation

You must now restart the computer.

6. Screenshot:Computer restarting*

# 2. Registration

If the client was successfully installed, it can be started by double-clicking on the shortcut created on the desktop.

When it is started for the first time, a registration dialog appears and the user is asked to enter the registration key.

7) Screenshot: Choose registration method

Two registration methods are available to the user.

## 2.1 Registration with username / password

When registering using a user name and password, the user can choose any user name.

The fields marked with * are mandatory and must be filled in to complete the registration.

8) Screenshot: Registration with username and password

The registration can then be completed.

9) Screenshot: Registration confirmation

## 2.2 Registration with Windows user name

When registering with a Windows user name, the user name of the Windows user is automatically read out and used as the sendhybrid user name.

The user only needs to add information such as first and last name and his email address. The fields marked with * are mandatory and must be filled out.

10) Screenshot: Registration with Windows user and password

The registration can then be completed.

### User interface description

## 1. User interface for the delivery of the documents - Overview

1. Selection of the delivery document (pdf, docx)
2. Panel for selecting the delivery functions
3. The two delivery qualities RSa and RSb can be selected
4. Selection of the delivery option. If you select the “Automatic choice” option, an attempt is first made to deliver to an official delivery service and then by post. In addition, the choice of a signature is possible here
5. The business number is the number of files. In addition, a second number of files can be assigned
6. Enter the recipient data. The iso code must be entered for the country (AT for Austria)
7. When a document is delivered to the recipient (s), the recipient (s) will be transferred to the address book
8. After entering or selecting a recipient, this can be added to the recipient list of the document
9. The document is delivered to the recipient (s)

## 2. Add recipient

### 2.1 Enter the recipient data manually

Enter recipient data and add to the recipient list.

The recipient is added to the list.

After clicking on “Deliver document”, the status of the delivery is displayed in the recipient list.

### 2.2 Import recipients

A list of recipients can be imported. To do this, click on “Import recipient” (“Empfänger importieren”).

Select a CSV file and click on “Open” (“Öffnen”).

And the recipients are added to the recipient list and the document can be sent.

Example CSV file:

## Additional Resources

### Additional Data Type

Parameter | Description | Mandatory
--- | --- | ---
avisoData | Information about the aviso data | No
deliveryInfo | Additional information about the delivery process | No
hybridLetterData | Hybrid letter specific information | No

### Aviso data type

Parameter | Description | Mandatory
--- | --- | ---
barCode | The barcode generated for the hybrid letter delivery | Yes
avisoStatusText | Optional text about the status from the Austrian Post A.G. (e.g.: receiver address invalid: no city) | No
deliveryAvisoStatus | Status of aviso data | Yes

### Bulk delivery result request type

Parameter | Description | Mandatory
--- | --- | ---
barCode | The barcode generated for the hybrid letter delivery | Yes
avisoStatusText | Optional text about the status from the Austrian Post A.G. (e.g.: receiver address invalid: no city) | No
deliveryAvisoStatus | Status of aviso data | Yes

### Delivery File Type

Parameter | Description | Mandatory
--- | --- | ---
documentId | The ID identifying the document | Yes
type | Type of document retrieved (e.g.: INPUT_DOCUMENT, OUTPUT_DOCUMENT, DELIVERY_DOCUMENT, ADDRESS_PAGE) | Yes
filename | The filename of the file | Yes
mimeType | MimeType identifies file format | Yes
order | Order of files from INPUT over DELIVERY to OUTPUT documents | Yes
fileHashCode | Reference to retrieve the file | Yes
infoMessages | Info messages list taken from document | No

### Delivery info type

Parameter | Description | Mandatory
--- | --- | ---
zbpk | The zbpk of the receiver | No

### Delivery Status Codes

Code | Description | ErrorState
--- | --- | ---
1000 | Waiting for channel selection | false
1001 | Delivery channel selected | false
1002 | No delivery channel found | true
1003 | Delivered to channel | false
1004 | Delivery error | true
1005 | Malware detected | true
1006 | Waiting for execution time | false
1007 | Delivery paused | false
1008 | Delivery canceled | false
2000 | Waiting for sending aviso xml to ftp | false
2001 | Waiting for aviso check if it’s correct | false
2003 | Aviso success - Waiting for printing | false
2003 | Aviso status ok | false
2004 | Aviso status error | true
3000 | Receiver successfully received delivery [Postal Delivery] | false
3001 | Receiver did not receive delivery [Postal Delivery] | true
3002 | Postal delivery status [Postal Delivery] | false
3100 | Receiver successfully received delivery [E-BOX] | false
3101 | Delivery was not read [E-BOX] | true
3200 | Receiver successfully received delivery [BZD] | false
3201 | Receiver notification failed and receiver did not pick up delivery [BZD] | true
3202 | Receiver did not pick up delivery [BZD] | false
3203 | Receiver notification failed [BZD] | false
3300 | Receiver successfully received delivery [Qualified Mail] | false
3301 | Receiver did not receive delivery [Qualified Mail] | true
3400 | Receiver successfully received delivery [Demo] | false
3401 | Receiver did not receive delivery [Demo] | true
3410 | Receiver successfully received delivery [Documents Concatenation] | false
3411 | Receiver did not receive delivery [Documents Concatenation] | true
3420 | Receiver successfully received delivery [Self Print] | false
3421 | Receiver did not receive delivery [Self Print] | true
3430 | Receiver successfully received delivery [Logging] | false
3431 | Receiver did not receive delivery [Logging] | true
3440 | Receiver successfully received delivery [ERB] | false
3441 | Receiver did not receive delivery [ERB] | true
3450 | Receiver successfully received delivery [Email] | false
3451 | Receiver did not receive delivery [Email] | true
3460 | Receiver successfully received delivery [Postal Email] | false
3461 | Receiver did not receive delivery [Postal Email] | true
3470 | Receiver successfully received delivery [Encrypted Email] | false
3471 | Receiver did not receive delivery [Encrypted Email] | true
4000 | Document retrieved successfully | false
9000 | General error occured! | true
9030 | No delivery found for the given id | true
9031 | Document has an invalid content or no content at all | true
9998 | Invalid document hash code | true
9999 | Client not authorized | true

# DeliveryStatus Receipt Codes Mapping

Channnel | Receiver successfully received delivery, errorState = false | Old Success Code | Receiver did not receive delivery, errorState = true | Old Error Code | Additionally delivery status codes
--- | --- | --- | --- | --- | ---
BZD | 3200 | 3200 | 3201 | 3201 | 3202 - “Receiver did not pick up delivery”, errorState = false 3203 - “Receiver notification falied” (temporary status) errorState = false
Postal Delivery | 3000 | 3000 | 3001 | 3001 | 3002 - “Postal delivery status”, errorState = false
Self Print | 3420 | 3000 | 3421 | 3001 |
E-BOX | 3100 | 3100 | 3101 | 3101 |
Qualified Mail | 3300 | 3300 | 3301 | 3301 |
Demo | 3400 | 3000 | 3401 | 3001 |
Documents Concatenation | 3410 | 3000 | 3411 | 3001 |
Logging | 3430 | 3000 | 3431 | 3001 |
ERB | 3440 | 3000 | 3441 | 3001 |
Email | 3450 | 3000 | 3451 | 3001 |
Postal Email | 3460 | 3000 | 3461 | 3001 |
Encrypted Email | 3470 | 3000 | 3471 | 3001 |

### Delivery Status Request Type

Parameter | Description | Mandatory
--- | --- | ---
tenantId | The tenant id the delivery has been submitted with | Yes
userId | The user id the delivery has been submitted with | Yes
foreignId | Foreign id the sender submitted the delivery with | Yes
deliveryId | Delivery id returned when submitted via the sendhybrid service | No
lastStatusOnly | Returns only the last status received | Yes

### Delivery status response type

Parameter | Description | Mandatory
--- | --- | ---
globalDeliveryInfo | Basic delivery info like tenant id, user id, last status details… | Yes
deliveryStatus | A list of statuses for this delivery | No

### Delivery status type

Parameter | Description | Mandatory
--- | --- | ---
date | Send date when delivery was handed over to channel or receipt date | No
statusCode | Delivery code which represents the state the delivery is in | Yes
statusDescription | A short textual description about the delivery state | No
finalState | Marks a delivery status as final. There are no more statuses expected | Yes
errorState | Marks error states | Yes
selectedDeliveryChannel | The delivery channel which has been selected | No
selectedDeliveryChannelDisplayName | The name of the channel through which the delivery has been sent | No
deliveryServer | The delivery server which has been selected | No
additionalData | Holds additional aviso/delivery/hybridletter information | No
files | A list of DeliveryFiles | No

### Global delivery info type

Parameter | Description | Mandatory
--- | --- | ---
tenantId | The tenant id the delivery has been submitted with | Yes
userId | The user id the delivery has been submitted with | Yes
foreignId | Foreign id the sender submitted the delivery with | Yes
deliveryId | Delivery id returned when submitted via the sendhybrid service | No
profile | Profile used for this delivery | No
lastStatusDate | Send date when delivery was handed over to channel or receipt date | Yes
statusCode | Delivery code which represents the state the delivery is in | Yes
finalState | Marks a delivery status as final. There are no more statuses expected | No
errorState | Marks error states | No
paymentState | Marks a payment status: true if the payment has been realized; otherwise false | No
barCode | The barcode generated for the hybrid letter delivery. Since version ‘1.1’. | No
consolidatedInDeliveryId | The deliveryId into which this delivery has been consolidated (i.e. put into same envelope) New since version 3.2 | No
consolidatedInForeignId | The foreignId into which this delivery has been consolidated (i.e. put into same envelope) New since version 3.2 | No
jobInfoMessages | Info messages list taken from job | No
deliveryDataInfoMessages | Info messages list taken from delivery data | No

### Hybrid letter data type

(DeliveryReceipt-table)

Parameter | Description | Mandatory
--- | --- | ---
postalStatusCode | Postal status code of the delivery submitted by Post A.G. | No
postalStatusText | Textual representation of the code | No
postalStatusTextDetail | Free text with additional information about the status | No
finalState | Marks a final status (true/false) | Yes
date | The day the status was set | No
deliveryArea | Specifies the department type and identifier of the Post A.G. | No
startOfDepositation | Start of the pickup due date (is set if the state is “hinterlegt” or “ausgefolgt”) | No
statusCorrection | Boolean value indicating if the status was changed | No
comment | If the status was changed, this free text describes which values have been changed | No
PDFDigital | Digital = 1, Scanpoint = 0 | No
Uhrzeit | The time the status was set | No
Abholfiliale (deliveryStore) | The delivery store where the delivery can be picked up | No
Hinterlegungsort (deliveryPlace) | The delivery place where the delivery can be picked up | No
Uebernahmeverhaeltnis (assumptionProportion) | The relationship of the person who took the delivery | No
IdentitaetGeprueft (identityCheck) | Was the identity checked | No
Freitext (description) | Custom text | No
GrundUnfaehigkeit (incapacityDescription) | The reason why the person could not sign | No
NachsendeDaten (DeliveryReceiptForwardingData) | Holds additional recipient information for forwarding | No

### Nachsenden daten type

(DeliveryReceiptForwardingData)

Parameter | Description | Mandatory
--- | --- | ---
PostalCode | Postal code | Yes
Municipality | Municipality | Yes
StreetName | Street name | Yes
BuildingNumber | Building number | No
DoorNumber | Door number | No
Rechtstitel | Legal title - only optional with status “gerichtlicher Nachsender” | No
Anrede | Salutation | Yes
Titel | Title | No
Vorname | First name | No
Nachname | Surname - company name also passed with this field | Yes

### xdpMessageType

Parameter | Description | Mandatory
--- | --- | ---
id | XDP Message Code | No
message | Info message text | No