VERSION 1.0.1 MANDATORY

Contents

1. ebMS3 Message Header Data Model

The OASIS ebXML Messaging Services Version 3.0 specification [ebMS3] defines a communications-protocol neutral method for exchanging electronic business messages. It defines specific Web Services-based enveloping constructs supporting reliable, secure delivery of business information. Furthermore, the specification defines a flexible enveloping technique, permitting messages to contain payloads of any format type.

The specification described in this section depicts upon the ebMS3 specification and customizes it for the use within OOTS system. Therefore the elements, structures and principles outlined by the ebMS3 specications are related to the OOTS system and they are further restricted through approriate business rules. The implementation guidelines aims to provide a complete list of elements and business rules associated to the ebMS message header of the Evidence Request, Evidence Response and Evidence Error Response.

While this implementation guide applies to the ebMS3 message header, it is specific to OOTS and therefore defines constraints that are not enforced by general purpose eDelivery AS4 implementations. Instead, any error reporting relating to rules defined in this implementation guide is not done using ebMS3 error messages, but using evidence error responses containing an Exception of type InvalidRequestExceptionType. In the "detail" attribute it can be indicated which rule was violated in the ebMS3 header structure.   

The following data model illustrates the full hierarchical structure and use of information elements of the eb:Messaging Container Element.

ebMS data model


2. ebMS3 Message Header of the Evidence Request and XML Example

This section illustrates the use of the ebMS message header for the Evidence Request.

In short, the sender of the Evidence Request uses an ebMS message header that contains the Access Point identifiers as sender and receiver in the eb:PartyInfo elements eb:From and eb:To . Using an eDelivery AS4 profile enhancement, however, the outer corners, i.e. the Evidence Requester (eb:Property/@name="originalSender") and Evidence Provider (eb:Property/@name="finalRecipient"), must be included in the ebMS message header as eb:Property  of the eb:MessageProperties . The Evidence Provider can be identified by the sdg:Publisher/sdg:Identifier  element of the DSD Response. For the identification of the receiving Access Point in the ebMS message header the values to be used in the eg:PartyInfo/eb:To/eb:PartyId element are extracted from the DSD Response sdg:AccessService/sdg:Identifier .

The Evidence Request is identified through the value 'ExecuteQueryRequest' of eb:Action.The Evidence Request is referenced in the eb:PayloadInfo element. The element eb:CollaborationInfo  contains information that facilitates collaboration between the parties such as the Service type, the Action excecuted and the eb:ConversionId  which is used to associate different request-response messages.

The following XML example illustrates the structure of the ebMS message header for an Evidence Request. 

XML Example of ebMS3 Message Header for Evidence Request
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<eb:Messaging xmlns:eb="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:S12="http://www.w3.org/2003/05/soap-envelope"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xsi:schemaLocation="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/
    https://www.oasis-open.org/committees/download.php/64179/ebms-header-3_0-200704_with_property_type_attribute.xsd"
    S12:mustUnderstand="true"
    wsu:Id="_148995f58ebb3087d1d3dccbd089db9f7922188240a56eaa657f1a8998a6c45be">
    
    <!-- The attributes S12:mustUnderstand and wsu:Id are optional. -->
    
    <eb:UserMessage>
        <eb:MessageInfo>
            <!--  The date at which the message header was created, must be dateTime (see [XMLSCHEMA]).  -->
            <eb:Timestamp>2017-10-24T09:06:36.000Z</eb:Timestamp>
            <!--  A globally unique identifier for the message. MUST be expressed according to RFC2822.  -->
            <eb:MessageId>69b00c83-ab63-4426-b90d-1896817cceec@digst.dk</eb:MessageId>
        </eb:MessageInfo>
        <eb:PartyInfo>
            <!--  The 'eb:PartyId/@type' MUST not extend 256 characters and it either, MUST use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]' and a code being part of the code list 'EAS' (Electronic Address Scheme ) OR it MUST use the prefix 'urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code]' and a code being part of the code list ‘EEA_Country-CodeList’. For testing purposes the code "oots" can be used.    -->
            <eb:From>
                <!--  The AS4 gateway (C2) that is sending the message on behalf of the Evidence Requester.     -->
                <eb:PartyId type="urn:cef.eu:names:identifier:EAS:0060">8889909098</eb:PartyId>
                <!--  Fixed Value   -->
                <eb:Role>http://sdg.europa.eu/edelivery/gateway</eb:Role>
            </eb:From>
            <eb:To>
                <!--  The AS4 gateway (C3) that is receiving the message on behalf of the Evidence Provider.   -->
                <eb:PartyId type="urn:cef.eu:names:identifier:EAS:0204">991-GatewayGermany-11</eb:PartyId>
                <!--  Fixed Value   -->
                <eb:Role>http://sdg.europa.eu/edelivery/gateway</eb:Role>
            </eb:To>
        </eb:PartyInfo>
        <eb:CollaborationInfo>
            <!-- Fixed Value that follows the rules of the ebXML Messaging Protocol Binding for RegRep Version 1.0 -->
            <eb:Service type="urn:oasis:names:tc:ebcore:ebrs:ebms:binding:1.0">QueryManager</eb:Service>
            <!--  Element identifying an operation. For the Evidence Request the value ExecuteQueryRequest is used.  -->
            <eb:Action>ExecuteQueryRequest</eb:Action>
            <!-- The unique ConversationId applies to all requests and their responses within a user session to link requests-response scenarios executed throughout a procedure. MUST be expressed as UUID. -->
            <eb:ConversationId>c73b7fdc-1ab0-4b1e-b295-ac9e4a35d764</eb:ConversationId>
        </eb:CollaborationInfo>
        <eb:MessageProperties>
            <!--  The value of the 'eb:Property/@type' MUST not extend 256 characters and it either, MUST use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]' and a code being part of the code list 'EAS' (Electronic Address Scheme ) OR it MUST use the prefix 'urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code]' and a code being part of the code list ‘EEA_Country-CodeList’. For testing purposes the code "oots" can be used.   -->
            <!--  This element points to the Evidence Requester (C1) that is described in the Evidence Request. eb:Property/@name must be declared as 'originalSender'  -->
            <eb:Property name="originalSender" type="urn:cef.eu:names:identifier:EAS:0096">DK22233223</eb:Property>
            <!--  This element points to the Evidence Provider (C4) that is described in the Evidence Request. eb:Property/@name must be declared as 'finalRecipient'  -->
            <eb:Property name="finalRecipient" type="urn:cef.eu:names:identifier:EAS:9930">DE73524311</eb:Property>
        </eb:MessageProperties>
        <eb:PayloadInfo>
            <!--  The href attribute of every PartInfo MUST have a value that is the [RFC2392] Content-ID (CID) URI of the payload object referenced. The payload object must be referenced with the same UUID as defined in the RegRep payload as rim:slot "SpecificationIdentifier". The value on the right side of the prefix 'cid:' and left from the symbol '@' MUST be a valid UUID. eb:PartInfo/@href MUST use the prefix 'cid:' and be expressed according to RFC2822.   -->
            <eb:PartInfo href="cid:4ffb5281-179d-4578-adf2-39fd13ccc797@digst.dk">
                <!--  There MUST be one or two eb:Property of eb:PartProperties. There MUST be one eb:Property/@name  with the fixed value "MimeType".  -->
                <eb:PartProperties>
                    <!--  To declare the Evidence Request payload which is defined as ebXML RegRep document, the MIME must be  "application/x-ebrs+xml."  -->
                    <eb:Property name="MimeType">application/x-ebrs+xml</eb:Property>
                    <!--   The element declares the compression format of payload. If present, the value of the property MUST be application/gzip and MUST have a name attribute with the fixed value "CompressionType".  -->
                    <eb:Property name="CompressionType">application/gzip</eb:Property>
                </eb:PartProperties>
            </eb:PartInfo>
        </eb:PayloadInfo>
    </eb:UserMessage>
</eb:Messaging>


3. ebMS3 Message Header of the Evidence Response and XML Example

This section illustrates the use of the ebMS message header of the Evidence Response. 

In short, the sender of the Evidence Response uses an ebMS message header that contains the Access Point identifiers as sender and receiver in the eb:PartyInfo elements eb:From and eb:To . Using an eDelivery AS4 profile enhancement, however, the outer corners, i.e. the Evidence Provider (eb:Property/@name="originalSender") and Evidence Requester (eb:Property/@name="finalRecipient"), must be included in the ebMS message header as eb:Property  of the eb:MessageProperties . Thus, to properly route the message back to the Evidence Requester, the Evidence provider access services must apply reverse routing of the received message. Reverse routing is achieved by applying the following rules:

  • The eb:PartyInfo elements eb:To of the Evidence Request ebMS header becomes the eb:PartyInfo elements eb:From of the response message
  • The eb:Property/@name="originalSender"  of the Evidence Request ebMS header becomes the eb:Property/@name="finalRecipient"   of the response message
  • The eb:PartyInfo elements eb:From of the Evidence Request ebMS header becomes the eb:PartyInfo elements eb:To of the response message
  • The eb:Property/@name="finalRecipient"  of the Evidence Request ebMS header becomes the eb:Property/@name="originalSender"   of the response message

The Evidence Response is identified through the value 'ExecuteQueryResponse' of eb:Action. The Evidence Response itself is referenced in the eb:PayloadInfo as eb:PartInfo element. Another eb:PartInfo element is added for each Evidence that is described as rim:RegistryObject  of the Evidence Response. The element eb:CollaborationInfo  contains information that facilitates collaboration between the parties such as the Service type, the Action excecuted and the eb:ConversionId  which is used to associate different request-response messages.

The following XML example illustrates the structure of the ebMS message header for an Evidence Response. 

XML Example of ebMS3 Message Header for Evidence Response
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<eb:Messaging xmlns:eb="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:S12="http://www.w3.org/2003/05/soap-envelope"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xsi:schemaLocation="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/
    https://www.oasis-open.org/committees/download.php/64179/ebms-header-3_0-200704_with_property_type_attribute.xsd"
    S12:mustUnderstand="true"
    wsu:Id="_148995f58ebb3087d1d3dccbd089db9f7922188240a56eaa657f1a8998a6c45be">

    <!-- The attributes S12:mustUnderstand and wsu:Id are optional. -->


    <eb:UserMessage>
        <eb:MessageInfo>
            <!--  The date at which the message header was created, must be dateTime (see [XMLSCHEMA]).  -->
            <eb:Timestamp>2017-10-24T09:07:38.000Z</eb:Timestamp>
            <!--  A globally unique identifier for the message. MUST be expressed according to RFC2822.  -->
            <eb:MessageId>15b41ec1-47cc-46f5-b5ec-05561ebceeb5@it.nrw</eb:MessageId>
        </eb:MessageInfo>
        <eb:PartyInfo>
            <!--  The 'eb:PartyId/@type' MUST not extend 256 characters and it either, MUST use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]' and a code being part of the code list 'EAS' (Electronic Address Scheme ) OR it MUST use the prefix 'urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code]' and a code being part of the code list ‘EEA_Country-CodeList’. For testing purposes the code "oots" can be used.    -->
            <eb:From>
                <!--  The AS4 gateway (C2) that is sending the message on behalf of the Evidence Provider.     -->
                <eb:PartyId type="urn:cef.eu:names:identifier:EAS:0204">991-GatewayGermany-11</eb:PartyId>
                <!--  Fixed Value   -->
                <eb:Role>http://sdg.europa.eu/edelivery/gateway</eb:Role>
            </eb:From>
            <eb:To>
                <!--  The AS4 gateway (C3) that is receiving the message on behalf of the Evidence Requester.   -->
                <eb:PartyId type="urn:cef.eu:names:identifier:EAS:0060">8889909098</eb:PartyId>
                <!--  Fixed Value   -->
                <eb:Role>http://sdg.europa.eu/edelivery/gateway</eb:Role>
            </eb:To>
        </eb:PartyInfo>
        <eb:CollaborationInfo>
            <!-- Fixed Value that follows the rules of the ebXML Messaging Protocol Binding for RegRep Version 1.0 -->
            <eb:Service type="urn:oasis:names:tc:ebcore:ebrs:ebms:binding:1.0">QueryManager</eb:Service>
            <!--  Element identifying an operation. For the Evidence Response the value ExecuteQueryResponse is used.  -->
            <eb:Action>ExecuteQueryResponse</eb:Action>
            <!-- The unique ConversationId applies to all requests and their responses within a user session to link requests-response scenarios executed throughout a procedure. MUST be expressed as UUID. -->
            <eb:ConversationId>c73b7fdc-1ab0-4b1e-b295-ac9e4a35d764</eb:ConversationId>
        </eb:CollaborationInfo>
        <eb:MessageProperties>
            <!--  The value of the 'eb:Property/@type' MUST not extend 256 characters and it either, MUST use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]' and a code being part of the code list 'EAS' (Electronic Address Scheme ) OR it MUST use the prefix 'urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code]' and a code being part of the code list ‘EEA_Country-CodeList’. For testing purposes the code "oots" can be used.   -->
            <!--  This element points to the Evidence Provider (C1) that is described in the Evidence Response. eb:Property/@name must be declared as 'originalSender'  -->
            <eb:Property name="originalSender" type="urn:cef.eu:names:identifier:EAS:9930">DE73524311</eb:Property>
            <!--  This element points to the Evidence Requester (C4) that is described in the Evidence Request. eb:Property/@name must be declared as 'finalRecipient'  -->
            <eb:Property name="finalRecipient" type="urn:cef.eu:names:identifier:EAS:0096">DK22233223</eb:Property>
        </eb:MessageProperties>
        <eb:PayloadInfo>
            <!--  The href attribute of every PartInfo MUST have a value that is the [RFC2392] Content-ID (CID) URI of the payload object referenced. The payload object must be referenced with the same UUID as defined in the RegRep payload as rim:slot "SpecificationIdentifier". The value on the right side of the prefix 'cid:' and left from the symbol '@' MUST be a valid UUID. eb:PartInfo/@href MUST use the prefix 'cid:' and be expressed according to RFC2822.   -->
            <eb:PartInfo href="cid:166155eb-d7a7-4cac-9086-8a85f0116462@it.nrw">
                <!--  There MUST be one or two eb:Property of eb:PartProperties. There MUST be one eb:Property/@name  with the fixed value "MimeType".  -->
                <eb:PartProperties>
                    <!--  If the eb:Action value is 'ExecuteQueryResponse' the first eb:PartInfo[1]/eb:PartProperties/eb:Property with name="MimeType" SHALL be 'application/x-ebrs+xml' to declare the Evidence Response payload defined as ebXML RegRep document  -->
                    <eb:Property name="MimeType">application/x-ebrs+xml</eb:Property>
                    <!--   The element declares the compression format of payload. If present, the value of the property MUST be application/gzip and MUST have a name attribute with the fixed value "CompressionType".  -->
                    <eb:Property name="CompressionType">application/gzip</eb:Property>
                </eb:PartProperties>
            </eb:PartInfo>
            <!--  The href attribute MUST have a value that is the [RFC2392] Content-ID (CID) URI of the payload object referenced. For Evidence documents the same CID as defined in the RegRep payload element 'rim:RepositoryItemRef/@xlink:href' MUST be used. The value on the right side of the prefix 'cid:' and left from the symbol '@' MUST be a valid UUID. eb:PartInfo/@href MUST use the prefix 'cid:' and be expressed according to RFC2822.   -->
            <eb:PartInfo href="cid:3ec68c74-7f4f-4ec0-b511-0e89f062781e@it.nrw">
                <!--  There MUST be one or two eb:Property of eb:PartProperties. There MUST be one eb:Property/@name  with the fixed value "MimeType".  -->
                <eb:PartProperties>
                    <!--   Additional eb:PartProperties are used to describe the Evidence documents. MUST be a valid mime type of the code list 'OOTSMediaTypes'.  -->
                    <eb:Property name="MimeType">application/xml</eb:Property>
                    <!--   The element declares the compression format of payload. If present, the value of the property MUST be application/gzip and MUST have a name attribute with the fixed value "CompressionType".  -->
                    <eb:Property name="CompressionType">application/gzip</eb:Property>
                </eb:PartProperties>
            </eb:PartInfo>
            <!--  The href attribute MUST have a value that is the [RFC2392] Content-ID (CID) URI of the payload object referenced. For Evidence documents the same CID as defined in the RegRep payload element 'rim:RepositoryItemRef/@xlink:href' MUST be used. The value on the right side of the prefix 'cid:' and left from the symbol '@' MUST be a valid UUID. eb:PartInfo/@href MUST use the prefix 'cid:' and be expressed according to RFC2822.   -->
            <eb:PartInfo href="cid:bf55b4fc-fdc6-4a52-8762-4dba62f6fd96@it.nrw">
                <!--  There MUST be one or two eb:Property of eb:PartProperties. There MUST be one eb:Property/@name  with the fixed value "MimeType".  -->
                <eb:PartProperties>
                    <!--  Additional eb:PartProperties are used to describe the Evidence documents. MUST be a valid mime type of the code list 'OOTSMediaTypes'.  -->
                    <eb:Property name="MimeType">application/pdf</eb:Property>
                    <!--   The element declares the compression format of payload. If present, the value of the property MUST be application/gzip and MUST have a name attribute with the fixed value "CompressionType".  -->
                    <eb:Property name="CompressionType">application/gzip</eb:Property>
                </eb:PartProperties>
            </eb:PartInfo>
        </eb:PayloadInfo>
    </eb:UserMessage>
</eb:Messaging>


4. ebMS3 Message Header of the Evidence Error Response and XML Example

This section illustrates the use of the ebMS message header of the Evidence Error Response. 

In short, the sender of the Evidence Error Response uses an ebMS message header that contains the Access Point identifiers as sender and receiver in the eb:PartyInfo elements eb:From and eb:To . Using an eDelivery AS4 profile enhancement, however, the outer corners, i.e. the Evidence Provider (eb:Property/@name="originalSender") and Evidence Requester (eb:Property/@name="finalRecipient") must be included in the ebMS message header as eb:Property  of the eb:MessageProperties . Thus, to properly route the message back to the Evidence Requester, the Evidence Provider access services must apply reverse routing of the received message. Reverse routing is achieved by applying the following rules:

  • The eb:PartyInfo elements eb:To of the Evidence Request ebMS header becomes the eb:PartyInfo elements eb:From of the response message
  • The eb:Property/@name="originalSender"  of the Evidence Request ebMS header becomes the eb:Property/@name="finalRecipient"   of the response message
  • The eb:PartyInfo elements eb:From of the Evidence Request ebMS header becomes the eb:PartyInfo elements eb:To of the response message
  • The eb:Property/@name="finalRecipient"  of the Evidence Request ebMS header becomes the eb:Property/@name="originalSender"   of the response message

The Evidence Error Response is identified through the value 'ExceptionResponse' of eb:Action. It is referenced in the eb:PayloadInfo as eb:PartInfo element. The element eb:CollaborationInfo  contains information that facilitates collaboration between the parties such as the Service type, the Action excecuted and the eb:ConversionId  which is used to associate different request-response messages.

The following XML example illustrates the structure of the ebMS message header for an Evidence Error Response. 

XML Example of ebMS3 Message Header for Evidence Error Response
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<eb:Messaging xmlns:eb="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:S12="http://www.w3.org/2003/05/soap-envelope"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xsi:schemaLocation="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/
    https://www.oasis-open.org/committees/download.php/64179/ebms-header-3_0-200704_with_property_type_attribute.xsd"
    S12:mustUnderstand="true"
    wsu:Id="_148995f58ebb3087d1d3dccbd089db9f7922188240a56eaa657f1a8998a6c45be">

    <!-- The attributes S12:mustUnderstand and wsu:Id are optional. -->

    <eb:UserMessage>
        <eb:MessageInfo>
            <!--  The date at which the message header was created, must be dateTime (see [XMLSCHEMA]).  -->
            <eb:Timestamp>2017-10-24T09:08:38.000Z</eb:Timestamp>
            <!--  A globally unique identifier for the message. MUST be expressed according to RFC2822.  -->
            <eb:MessageId>7d8a6e33-ba2b-4b09-87e4-903d01c23877@it.nrw</eb:MessageId>
        </eb:MessageInfo>
        <eb:PartyInfo>
            <!--  The 'eb:PartyId/@type' MUST not extend 256 characters and it either, MUST use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]' and a code being part of the code list 'EAS' (Electronic Address Scheme ) OR it MUST use the prefix 'urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code]' and a code being part of the code list ‘EEA_Country-CodeList’. For testing purposes the code "oots" can be used.    -->
            <eb:From>
                <!--  The AS4 gateway (C2) that is sending the message on behalf of the Evidence Provider.     -->
                <eb:PartyId type="urn:cef.eu:names:identifier:EAS:0204">991-GatewayGermany-11</eb:PartyId>
                <!--  Fixed Value   -->
                <eb:Role>http://sdg.europa.eu/edelivery/gateway</eb:Role>
            </eb:From>
            <eb:To>
                <!--  The AS4 gateway (C3) that is receiving the message on behalf of the Evidence Requester.   -->
                <eb:PartyId type="urn:cef.eu:names:identifier:EAS:0060">8889909098</eb:PartyId>
                <!--  Fixed Value   -->
                <eb:Role>http://sdg.europa.eu/edelivery/gateway</eb:Role>
            </eb:To>
        </eb:PartyInfo>
        <eb:CollaborationInfo>
            <!-- Fixed Value that follows the rules of the ebXML Messaging Protocol Binding for RegRep Version 1.0 -->
            <eb:Service type="urn:oasis:names:tc:ebcore:ebrs:ebms:binding:1.0">QueryManager</eb:Service>
            <!--  Element identifying an operation. For the Evidence Error Response the value ExceptionResponse is used.  -->
            <eb:Action>ExceptionResponse</eb:Action>
            <!-- The unique ConversationId applies to all requests and their responses within a user session to link requests-response scenarios executed throughout a procedure. MUST be expressed as UUID. -->
            <eb:ConversationId>c73b7fdc-1ab0-4b1e-b295-ac9e4a35d764</eb:ConversationId>
        </eb:CollaborationInfo>
        <eb:MessageProperties>
            <!--  The value of the 'eb:Property/@type' MUST not extend 256 characters and it either, MUST use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]' and a code being part of the code list 'EAS' (Electronic Address Scheme ) OR it MUST use the prefix 'urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code]' and a code being part of the code list ‘EEA_Country-CodeList’. For testing purposes the code "oots" can be used.   -->
            <!--  This element points to the Evidence Provider (C1) that is described in the Evidence Error Response. eb:Property/@name must be declared as 'originalSender' In case of exceptions the originalSender of the response message may be the Error Provider declared in the Evidence Error Response Message.  -->
            <eb:Property name="originalSender" type="urn:cef.eu:names:identifier:EAS:9930">DE73524311</eb:Property>
            <!--  This element points to the Evidence Requester (C4) that is described in the Evidence Request. eb:Property/@name must be declared as 'finalRecipient'  -->
            <eb:Property name="finalRecipient" type="urn:cef.eu:names:identifier:EAS:0096">DK22233223</eb:Property>
        </eb:MessageProperties>
        <eb:PayloadInfo>
            <!--  The href attribute of every PartInfo MUST have a value that is the [RFC2392] Content-ID (CID) URI of the payload object referenced. The payload object must be referenced with the same UUID as defined in the RegRep payload as rim:slot "SpecificationIdentifier". The value on the right side of the prefix 'cid:' and left from the symbol '@' MUST be a valid UUID. eb:PartInfo/@href MUST use the prefix 'cid:' and be expressed according to RFC2822.   -->
            <eb:PartInfo href="cid:e913004e-5ab6-4a10-a866-c9087516960e@it.nrw">
                <!--  There MUST be one or two eb:Property of eb:PartProperties. There MUST be one eb:Property/@name  with the fixed value "MimeType".  -->
                <eb:PartProperties>
                    <!--  To declare the Evidence Error Response payload which is defined as ebXML RegRep document, the MIME must be  "application/x-ebrs+xml."  -->
                    <eb:Property name="MimeType">application/x-ebrs+xml</eb:Property>
                    <!--   The element declares the compression format of payload. If present, the value of the property MUST be application/gzip and MUST have a name attribute with the fixed value "CompressionType".  -->
                    <eb:Property name="CompressionType">application/gzip</eb:Property>
                </eb:PartProperties>
            </eb:PartInfo>
        </eb:PayloadInfo>
    </eb:UserMessage>
</eb:Messaging>


5. ebMS3 Message Header Implementation Guideline

The following table describes the full hierarchical structure and use of information elements of the eb:Messaging Container Element. Due to the RegRep Binding and the different message types Evidence Request, Evidence Response and Evidence Error Response in the OOTS, there are different semantic characteristics of the definitions of the ebMS Message header. The commonalities and differences are explained in various columns and summarised in the business rules.

Legend

The table below represent the tree structure of the data model of the ebMS3 Message Header for the Evidence Request. Light grey rows describe classes and define their properties and attributes. Light green rows soley illustrate the classes that are subordinated or associated to a class and therewith illustrate the tree structure of the data model. Light green rows are thus always repeated as light grey rows to describe the properties and attributes of a class. The hierarchy of the tree structure is also indicated in the first column via the '+' symbol. 


NameDefinition Evidence Request

Definition Evidence Response

Definition Evidence Error Response

Cardinality

Evidence Request

Evidence Error Response

Cardinality

Evidence  Response

Data Type

BusinessRules

Note: Full rule description is described in section 4.7.2

Example

eb:Messaging

Root element of the ebMS3 Header




R-EDM-ebMS-001: The eb:Messaging envelope should not contain the elements 'SignalMessage', 'MessageInfo/RefToMessageId', 'CollaborationInfo/AgreementRef', 'PartInfo/Schema' and 'PartInfo/Description'.
+

@S12:mustUnderstand

The SOAP mustUnderstand global attribute indicates whether the header entry is mandatory or optional for the recipient to process.

0..1

0..1

boolean



+

@wsu:Id

The unique identifier of the header.

0..1

0..1

identifier



+

@xml:id

The unique identifier of the XML.

0..1

0..1

identifier



+

eb:UserMessage

The UserMessage element contains all header information for a User message. 

1..11..1


+

eb:UserMessage

The UserMessage element contains all header information for a User message. 

1..11..1


++eb:MessageInfoThis REQUIRED element occurs once, and contains data that identifies the message, and relates to other messages' identifiers.1..11..1


++eb:PartyInfoThis REQUIRED element occurs once, and contains data about originating party and destination party. In the OOTS System these are the AS4 gateways of the Evidence Requester and Evidence Provider. 1..11..1


++eb:CollaborationInfo

This REQUIRED element occurs once, and contains elements that facilitate collaboration between parties.

1..11..1


++eb:MessagePropertiesThis REQUIRED element occurs once, and contains message properties to identify the competent authority that is sending the message and the competent authority that is receiving the message.1..11..1

R-EDM-ebMS-002: There MUST be exactly one element eb:MessageProperties.


++eb:PayloadInfoThe element identifies payload data associated with the message.1..11..1
R-EDM-ebMS-003: There MUST be one element eb:PayloadInfo.
++eb:MessageInfoThis REQUIRED element occurs once, and contains data that identifies the message, and relates to other messages' identifiers.1..11..1


+++eb:Timestamp

The REQUIRED Timestamp element has a value representing the date at which the message header was created, and is conforming to a dateTime (see [XMLSCHEMA]). 

1..11..1dateTime
2017-10-24T09:07:36.000Z
+++eb:MessageIdThis REQUIRED element has a value representing – for each message - a globally unique identifier conforming to MessageId [RFC2822]. 1..11..1stringR-EDM-ebMS-004: eb:MessageId MUST be expressed according to RFC2822.69b00c83-ab63-4426-b90d-1896817cceec@example.oots.eu
++eb:PartyInfoThis REQUIRED element occurs once, and contains data about originating party and destination party. In the OOTS System these are the AS4 gateways of the Evidence Requester and Evidence Provider. 1..11..1


+++eb:FromThe REQUIRED element occurs once, and contains information describing the originating party. In the OOTS System this element refers to the AS4 gateway that is sending the message on behalf of the Evidence Requester. The REQUIRED element occurs once, and contains information describing the originating party. In the OOTS System this element refers to the AS4 gateway that is sending the message on behalf of the Evidence Provider. It is detected through reverse routing of the Evidence Request. 1..11..1


+++eb:ToThe REQUIRED element occurs once, and contains information describing the destination party. In the OOTS System this element refers to the AS4 gateway that is receiving the message on behalf of the Evidence Provider. It is detected through the DSD Query Response element sdg:AccessService.The REQUIRED element occurs once, and contains information describing the destination party. In the OOTS System this element refers to the AS4 gateway that is receiving the message on behalf of the Evidence Requester.  It is detected through reverse routing of the Evidence Request. 1..11..1


+++eb:FromThe REQUIRED element occurs once, and contains information describing the originating party. In the OOTS System this element describes the AS4 gateway that is sending the message on behalf of the Evidence Requester. The REQUIRED element occurs once, and contains information describing the originating party. In the OOTS System this element refers to the AS4 gateway that is sending the message on behalf of the Evidence Provider. It is detected through reverse routing of the Evidence Request. 1..11..1


++++eb:PartyIdThe REQUIRED PartyId element occurs ones and identifies the endpoint of the destination party. In the OOTS System this element identifies the AS4 gateway that is sending the message on behalf of the Evidence Requester (C2).The REQUIRED PartyId element occurs ones and identifies the endpoint of the destination party. In the OOTS System this element identifies the AS4 gateway that is sending the message on behalf of the Evidence Provider (C2). It is detected through reverse routing of the Evidence Request. 1..11..1stringR-EDM-ebMS-005: The eb:PartyId MUST be used only once.991-APEvidenceRequester-91
+++++eb:PartyId/@typeThe type attribute indicates the domain of names to which the string in the content of the PartyId element belongs. The default value urn:cef.eu:names:identifier:EAS:[Code] SHOULD be used. If there is no appropiate EAS scheme for the postfix, the unregistered option urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code] MAY be also used togehter with a ‘ISO 3166-1 alpha-2 country code (EEA_country subset)’ postfix.MMstring

R-EDM-ebMS-006: The value of the 'eb:PartyId/@type'  MUST not extend 256 characters and it either, MUST use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]' and a code being part of the code list 'EAS' (Electronic Address Scheme ) OR it MUST use the prefix 'urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code]' and a code being part of the code list ‘ISO 3166-1 alpha-2 country code (EEA_country subset)’.

urn:cef.eu:names:identifier:EAS:0204

urn:oasis:names:tc:ebcore:partyid-type:unregistered:NL

++++eb:RoleThe REQUIRED eb:Role element occurs once, and identifies the authorized role of the Party sending  the message. In the OOTS the fixed value http://sdg.europa.eu/edelivery/gateway. is used. 1..11..1stringR-EDM-ebMS-008: The eb:Role MUST be set to fixed value http://sdg.europa.eu/edelivery/gateway.http://sdg.europa.eu/edelivery/gateway
+++eb:ToThe REQUIRED element occurs once, and contains information describing the destination party. In the OOTS System this element describes the AS4 gateway that is receiving the message on behalf of the Evidence Provider. The REQUIRED element occurs once, and contains information describing the destination party. In the OOTS System this element refers to the AS4 gateway that is receiving the message on behalf of the Evidence Requester.  It is detected through reverse routing of the Evidence Request. 
 
1..11..1


++++eb:PartyIdThe REQUIRED PartyId element occurs ones and identifies the endpoint of the destination party.  In the OOTS System this element identifies the AS4 gateway that is receiving the message on behalf of the Evidence Requester (C3). It is detected through the element sdg:AccessService of the DSD Query Response.The REQUIRED PartyId element occurs ones and identifies the endpoint of the destination party.  In the OOTS System this element identifies the AS4 gateway that is receiving the message on behalf of the Evidence Requester (C3). It is detected through reverse routing of the Evidence Request. 
 
1..11..1stringR-EDM-ebMS-009: The eb:PartyId MUST be used only once.8889909098
+++++eb:PartyId/@typeThe type attribute indicates the domain of names to which the string in the content of the PartyId element belongs. The default value urn:cef.eu:names:identifier:EAS:[Code] SHOULD be used. If there is no appropiate EAS scheme for the postfix, the unregistered option urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code] MAY be also used togehter with a ‘ISO 3166-1 alpha-2 country code (EEA_country subset)’ postfix.MMstring

R-EDM-ebMS-010: The value of the 'eb:PartyId/@type'  MUST not extend 256 characters and it either, MUST use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]' and a code being part of the code list 'EAS' (Electronic Address Scheme ) OR it MUST use the prefix 'urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code]' and a code being part of the code list ‘ISO 3166-1 alpha-2 country code (EEA_country subset)’.

urn:cef.eu:names:identifier:EAS:0204

urn:oasis:names:tc:ebcore:partyid-type:unregistered:NL

++++eb:RoleThe REQUIRED eb:Role element occurs once, and identifies the authorized role of the Party receiving the message. In the OOTS the fixed value http://sdg.europa.eu/edelivery/gateway. is used. 1..11..1stringR-EDM-ebMS-012: The eb:Role MUST be set to fixed value http://sdg.europa.eu/edelivery/gateway.http://sdg.europa.eu/edelivery/gateway
++eb:CollaborationInfo

This REQUIRED element occurs once, and contains elements that facilitate collaboration between parties. 

1..11..1


+++eb:ServiceThis REQUIRED element occurs once. It is a string identifying the service that acts on the message and it is specified by the designer of the service. Follows the rules of the ebXML Messaging Protocol Binding for RegRep Version 1.0. In the OOTS the fixed value QueryManager is used. 1..11..1stringR-EDM-ebMS-013: The eb:Service MUST be set to fixed value 'QueryManager'QueryManager
++++eb:Service/@typeThe type attribute indicates how the parties sending and receiving the message will interpret the value of the element. In OOTS the type attribute points the ebXML Messaging Protocol Binding for RegRep Version 1.0. In the OOTS the fixed value urn:oasis:names:tc:ebcore:ebrs:ebms:binding:1.0 is used. MMstring

R-EDM-ebMS-014: The eb:Service/@type MUST be present.

R-EDM-ebMS-015: The eb:Service/@type MUST be set to fixed value 'urn:oasis:names:tc:ebcore:ebrs:ebms:binding:1.0'

urn:oasis:names:tc:ebcore:ebrs:ebms:binding:1.0
+++eb:ActionThis REQUIRED element occurs once. The element is a string identifying an operation or an activity within a Service that may support several of these. Follows the rules of ebXML Messaging Protocol Binding for RegRep Version 1.0. For the Evidence Request the value ExecuteQueryRequest is used.This REQUIRED element occurs once. The element is a string identifying an operation or an activity within a Service that may support several of these. Follows the rules of ebXML Messaging Protocol Binding for RegRep Version 1.0. For the Evidence Response the value ExecuteQueryResponse is used.This REQUIRED element occurs once. The element is a string identifying an operation or an activity within a Service that may support several of these. Follows the rules of ebXML Messaging Protocol Binding for RegRep Version 1.0. For the Evidence Error Response the value 'ExceptionResponse' is used.1..11..1stringR-EDM-ebMS-016: eb:Action MUST use the values 'ExecuteQueryRequest' 'ExecuteQueryResponse' or 'ExceptionResponse'.

ExecuteQueryRequest

ExecuteQueryResponse

ExceptionResponse

+++eb:ConversationIdThis REQUIRED element occurs once. The element is a string identifying the set of related messages that make up a conversation between Parties. In the OOTS, a unique ConversationId applies to all requests and their responses within a single user session to link requests-response scenarios executed throughout a procedure. Single User multiple requests are issued to a Data Service. If different queries are made for the same data service within a user session, the same ConversationId is used. Queries that are made at later times due to unavailability use a new ConversationId.1..11..1string

R-EDM-ebMS-017: The eb:ConversationId MUST be expressed as UUID.

c73b7fdc-1ab0-4b1e-b295-ac9e4a35d764
++eb:MessagePropertiesThis REQUIRED element occurs once, and contains message properties to identify the competent authority that is sending the message and the competent authority that is receiving the message.1..11..1

R-EDM-ebMS-002: There MUST be excately one element eb:MessageProperties.


+++eb:Property (name="originalSender") The identifier of the competent authority that is sending the message. In the OOTS, this element points to the Evidence Requester (C1) that is described in the Evidence Request.The identifier of the competent authority that is sending the message. In the OOTS, this element points to the Evidence Provider (C1) that is described in the Evidence Request.2..22..2stringR-EDM-ebMS-018: There MUST be exately two elements eb:Property of eb:MessageProperties. DK22233223
++++eb:Property/@name (name="originalSender")

The eb:Property/@name is used to classify the original sender (C1) party or Evidence Requester that created the message. The name attibute must have the fixed value 'originalSender'.

The eb:Property/@name is used to classify the original sender (C1) party or Evidence Provider that created the message. The name attibute must have the fixed value 'originalSender'.



The eb:Property/@name is used to classify the original sender (C1) party or Evidence Provider that created the message. The name attibute must have the fixed value 'originalSender'.

Note: In case of exceptions the originalSender of the response message should be the Error Provider declared in the Evidence Error Response Message. In most cases the Error Provider is the Evidence Provider informing the Evidence Requester about a failed response or missing information or to preform an authentication or preview. However, in case of multiple national routings an error might be created by an intermediate or a technical endpoint (e.g. gateway) that has been accredited to supply the evidence. 

MMnameR-EDM-ebMS-019: One of the values from eb:Property/@name uses 'originalSender' and the other one 'finalRecipient'.originalSender
++++eb:Property/@type (name="originalSender")

The type attribute indicates the domain of names to which the string in the content of the PartyId element belongs. The default value urn:cef.eu:names:identifier:EAS:[Code] SHOULD be used. If there is no appropiate EAS scheme for the postfix, the unregistered option urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code] MAY be also used togehter with a ‘ISO 3166-1 alpha-2 country code (EEA_country subset)’ postfix.

MMstring

R-EDM-ebMS-020: There MUST be one element eb:Property/@type for eb:Property.

R-EDM-ebMS-021: The value of the 'eb:PartyId/@type'  MUST not extend 256 characters and it either, MUST use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]' and a code being part of the code list 'EAS' (Electronic Address Scheme ) OR it MUST use the prefix 'urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code]' and a code being part of the code list ‘ISO 3166-1 alpha-2 country code (EEA_country subset)’.

urn:cef.eu:names:identifier:EAS:0096

urn:oasis:names:tc:ebcore:partyid-type:unregistered:NL

+++eb:Property (name="finalRecipient")The identifier of the competent authority that is receiving the message. In the OOTS, this element points to the Evidence Provider (C4) that is described in the Evidence Request. It is detected through the element sdg:Publisher of the Query Response of the DSDThe identifier of the competent authority that is receiving the message. In the OOTS, this element points to the Evidence Requester (C4) that is receiving the Evidence Response. It is detected through reverse routing.2..22..2stringR-EDM-ebMS-018: There MUST be exately two eb:Property of eb:MessageProperties.DE73524311
++++eb:Property/@name (name="finalRecipient")

The eb:Property/@name is used to classify the final recipient (C4) party or Evidence Provider that receives the message. The name attibute must have the fixed value 'finalRecipient'.

The eb:Property/@name is used to classify the final recipient (C4) party or Evidence Requester that receives the message. The name attibute must have the fixed value 'finalRecipient'.




MMnameR-EDM-ebMS-019: One of the values from eb:Property/@name uses 'originalSender' and the other one 'finalRecipient'.finalRecipient
++++eb:Property/@type (name="finalRecipient")The type attribute indicates the domain of names to which the string in the content of the PartyId element belongs. The default value urn:cef.eu:names:identifier:EAS:[Code] SHOULD be used. If there is no appropiate EAS scheme for the postfix, the unregistered option urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code] MAY be also used togehter with a ‘ISO 3166-1 alpha-2 country code (EEA_country subset)’ postfix.MMstring

R-EDM-ebMS-020: There MUST be one element eb:Property/@type for eb:Property.

R-EDM-ebMS-021: The value of the 'eb:PartyId/@type'  MUST not extend 256 characters and it either, MUST use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]' and a code being part of the code list 'EAS' (Electronic Address Scheme ) OR it MUST use the prefix 'urn:oasis:names:tc:ebcore:partyid-type:unregistered:[Code]' and a code being part of the code list ‘ISO 3166-1 alpha-2 country code (EEA_country subset)’.

urn:cef.eu:names:identifier:EAS:9930

urn:oasis:names:tc:ebcore:partyid-type:unregistered:NL

++eb:PayloadInfoThe element identifies payload data associated with the message.1..11..1
R-EDM-ebMS-003: There MUST be one element eb:PayloadInfo.
+++eb:PartInfo The PartInfo element is used to reference a MIME attachment, an XML element within the SOAP Body, or another resource which may be obtained by resolving a URL, according to the value of the href attribute. It is used to refer to the ebXML RegRep Evidence Request document.The PartInfo element is used to reference a MIME attachment, an XML element within the SOAP Body, or another resource which may be obtained by resolving a URL, according to the value of the href attribute. It is used to refer to the ebXML RegRep Evidence Response document and 0-n Evidence documents that are referenced by the ebXML RegRep Response document. Thus, another eb:PartInfo element is added for each Evidence that is described as rim:RegistryObject  of the Evidence Response.The PartInfo element is used to reference a MIME attachment, an XML element within the SOAP Body, or another resource which may be obtained by resolving a URL, according to the value of the href attribute. It is used to refer to the ebXML RegRep Evidence Error Response document.1..11..n

R-EDM-ebMS-023: There MUST be excately one element eb:PartInfo in the eb:PayloadInfo if the eb:Action value is 'ExecuteQueryRequest' or 'ExceptionResponse'.

R-EDM-ebMS-024: There MUST be at least one element eb:PartInfo in the eb:PayloadInfo if the eb:Action value is 'ExecuteQueryResponse'.


+++eb:PartInfo The PartInfo element is used to reference a MIME attachment, an XML element within the SOAP Body, or another resource which may be obtained by resolving a URL, according to the value of the href attribute. It is used to refer to the ebXML RegRep Evidence Request document.The PartInfo element is used to reference a MIME attachment, an XML element within the SOAP Body, or another resource which may be obtained by resolving a URL, according to the value of the href attribute. It is used to refer to the ebXML RegRep Evidence Response document and the Evidence documents (0-n) that are referenced by the ebXML RegRep Response document. Thus, another eb:PartInfo element is added for each Evidence that is described as rim:RegistryObject  of the Evidence Response.The PartInfo element is used to reference a MIME attachment, an XML element within the SOAP Body, or another resource which may be obtained by resolving a URL, according to the value of the href attribute. It is used to refer to the ebXML RegRep Evidence Error Response document.1..11..n

R-EDM-ebMS-023: There MUST be excately one element eb:PartInfo in the eb:PayloadInfo if the eb:Action value is 'ExecuteQueryRequest' or 'ExceptionResponse'.

R-EDM-ebMS-024: There MUST be at least one element eb:PartInfo in the eb:PayloadInfo if the eb:Action value is 'ExecuteQueryResponse'.



++++eb:PartInfo/@hrefThe attribute has a value that is the [RFC2392] Content-ID (CID) URI of the payload object referenced. The payload object must be referenced with the same UUID as defined in the RegRep payload. MMtoken

R-EDM-ebMS-025: The attribute href of eb:PartInfo MUST be provided.

R-EDM-ebMS-026: eb:PartInfo/@href MUST use the prefix 'cid:' and be expressed according to RFC2822.

R-EDM-ebMS-026: eb:PartInfo/@href MUST use the prefix 'cid:' and be expressed according to RFC2822.

R-EDM-ebMS-027: In eb:PartyInfo/@href, the value on the right side of the prefix 'cid:' and left from the symbol '@' MUST be a valid UUID.

cid:9bb1535b-655d-4dd5-a858-559224284a4d@example.oots.eu
++++eb:PartPropertiesThis element is a container for eb:Property child elements.1..11..1

R-EDM-ebMS-028: There MUST be excately one element eb:PartProperties.


++++eb:PartPropertiesThis element is a container for eb:Property child elements.1..11..1

R-EDM-ebMS-028: There MUST be excately one element eb:PartProperties.


+++++eb:Property (name="MimeType")The element declares the payload. The value of the property MUST be the MIME type of the payload, which for the ebXML RegRep document is defined as application/x-ebrs+xml. 

The element declares the payload. The value of the property MUST be the MIME type of the payload, which for the ebXML RegRep document is defined as application/x-ebrs+xml.

For Evidence documents that are referenced in the ebXML RegRep document and described through an eb:Property a valid OOTSMediaType must be used.

The element declares the payload. The value of the property MUST be the MIME type of the payload, which for the ebXML RegRep document is defined as application/x-ebrs+xml. 1..21..2string

R-EDM-ebMS-029: There MUST be one or two eb:Property of eb:PartProperties.

R-EDM-ebMS-030: In the message there MUST be exactly one eb:PartInfo/eb:PartProperties/eb:Property with name="MimeType" that has the fixed value 'application/x-ebrs+xml'.

R-EDM-ebMS-031: If the eb:Action value is 'ExecuteQueryResponse' the eb:Property with  name="MimeType" MUST be either 'application/x-ebrs+xml' or a a valid mime type of the code list 'OOTSMediaTypes'.

R-EDM-ebMS-032: If the eb:Action value is 'ExecuteQueryResponse' the first eb:PartInfo[1]/eb:PartProperties/eb:Property with name="MimeType" SHALL be 'application/x-ebrs+xml'

application/x-ebrs+xml
++++++

eb:Property/@name (name="MimeType")

The element contains meta-data that qualifies the payload data as MimeType.MMstring

R-EDM-ebMS-033: There MUST be one eb:Property/@name  with the fixed value "MimeType".

MimeType
+++++eb:Property (name="CompressionType")The element declares the compression format of payload. The value of the property MUST application/gzip. 1..21..2string

R-EDM-ebMS-029: There MUST be one or two eb:Property of eb:PartProperties.

R-EDM-ebMS-034: A eb:Property with name="CompressionType" MUST have the fixed value 'application/gzip'.

application/gzip
++++++eb:Property/@name (name="CompressionType")The element contains meta-data that qualifies the payload data as GNU zip or gzip.MMstring

R-EDM-ebMS-035: If there is a second eb:Property the eb:Property MUST have a name attribute with the fixed value "CompressionType".

CompressionType


References

[ebMS3] http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/core/ebms_core-3.0-spec.html

  • No labels