Hi, As discussed on the last call, I am working on a mapping from CPA3 to PMode. The implementation is an XSLT stylesheet that processes a CPA3 file and generates output in the dotted string PMode parameter format used in the ebMS and AS4 specifications. The mapping is far from complete, but attached is a sample input and output file. If we have an ebMS TC call tonight, I would like to hear if this exercise (and the output format) is useful to help explain the concepts. If yes, I'd be happy to continue work on the script, to demonstrate full coverage of functionality, at least for AS4. The stylesheet will not be of much direct use to any AS4 product, as each products has its own configuration formats or API that any product would use instead of the dotted string format, but it could be useful to explain to a developer how the mapping would work. The CPA input file is actually derived from two CPP documents, also attached for information, using an in-progress, prototype CPA generation tool. The example is also an illustration of
https://issues.oasis-open.org/browse/EBXMLMSG-74 . Kind Regards, Pim van der Eijk <cppa:CPA xmlns:cppa="
http://docs.oasis-open.org/ebcore/ns/cppa-3.0" ;> <cppa:AgreementInfo> <cppa:AgreementIdentifier>Acpp_Bcpp</cppa:AgreementIdentifier> <cppa:Description xml:lang="en">Agreement formed from Acpp and Bcpp at 2015-03-13T16:17:29.040193</cppa:Description> <cppa:ProfileIdentifier>Acpp</cppa:ProfileIdentifier> <cppa:ProfileIdentifier>Bcpp</cppa:ProfileIdentifier> <cppa:ActivationDate>2015-03-20T16:17:29.040227</cppa:ActivationDate> <cppa:ExpirationDate>2016-01-01T00:00:00</cppa:ExpirationDate> </cppa:AgreementInfo> <cppa:PartyInfo> <cppa:PartyName xml:lang="en">Party A</cppa:PartyName> <cppa:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0000">A</cppa:PartyId> <cppa:ServiceCollaboration> <cppa:PartyRole name="Seller"/> <cppa:CounterPartyRole name="Buyer"/> <cppa:ServiceBinding> <cppa:Service>OrderingBilling</cppa:Service> <cppa:ActionBinding action="AcceptOrder" sendOrReceive="send" id="BiiTrns003_S" replyTo="BiiTrns001_R"> <cppa:ChannelId>Acpp_ch1_Bcpp_ch5</cppa:ChannelId> </cppa:ActionBinding> <cppa:ActionBinding action="RejectOrder" sendOrReceive="send" id="BiiTrns002_S" replyTo="BiiTrns001_R"> <cppa:ChannelId>Acpp_ch1_Bcpp_ch5</cppa:ChannelId> </cppa:ActionBinding> <cppa:ActionBinding action="SubmitOrder" sendOrReceive="receive" id="BiiTrns001_R" > <cppa:ChannelId>Acpp_ch5_Bcpp_ch1</cppa:ChannelId> </cppa:ActionBinding> </cppa:ServiceBinding> </cppa:ServiceCollaboration> <cppa:ServiceCollaboration> <cppa:PartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/ > <cppa:CounterPartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/ > <cppa:ServiceBinding> <cppa:Service>
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service </cppa:Service> <cppa:ActionBinding action="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test" ; sendOrReceive="send" id="test_outgoing_a"> <cppa:ChannelId>Acpp_ch1_Bcpp_ch5</cppa:ChannelId> </cppa:ActionBinding> </cppa:ServiceBinding> </cppa:ServiceCollaboration> <cppa:ServiceCollaboration> <cppa:PartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/ > <cppa:CounterPartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/ > <cppa:ServiceBinding> <cppa:Service>
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service </cppa:Service> <cppa:ActionBinding action="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test" ; sendOrReceive="receive" id="test_incoming_a"> <cppa:ChannelId>Acpp_ch5_Bcpp_ch1</cppa:ChannelId> </cppa:ActionBinding> </cppa:ServiceBinding> </cppa:ServiceCollaboration> </cppa:PartyInfo> <cppa:PartyInfo> <cppa:PartyName xml:lang="en">Party B</cppa:PartyName> <cppa:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0000">B</cppa:PartyId> <cppa:ServiceCollaboration> <cppa:PartyRole name="Buyer"/> <cppa:CounterPartyRole name="Seller"/> <cppa:ServiceBinding> <cppa:Service>OrderingBilling</cppa:Service> <cppa:ActionBinding action="AcceptOrder" sendOrReceive="receive" id="BiiTrns003_R"> <cppa:ChannelId>Acpp_ch1_Bcpp_ch5</cppa:ChannelId> </cppa:ActionBinding> <cppa:ActionBinding action="RejectOrder" sendOrReceive="receive" id="BiiTrns002_R"> <cppa:ChannelId>Acpp_ch1_Bcpp_ch5</cppa:ChannelId> </cppa:ActionBinding> <cppa:ActionBinding action="SubmitOrder" sendOrReceive="send" id="BiiTrns001_S"> <cppa:ChannelId>Acpp_ch5_Bcpp_ch1</cppa:ChannelId> </cppa:ActionBinding> </cppa:ServiceBinding> </cppa:ServiceCollaboration> <cppa:ServiceCollaboration> <cppa:PartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/ > <cppa:CounterPartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/ > <cppa:ServiceBinding> <cppa:Service>
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service </cppa:Service> <cppa:ActionBinding action="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test" ; sendOrReceive="receive" id="test_incoming"> <cppa:ChannelId>Acpp_ch1_Bcpp_ch5</cppa:ChannelId> </cppa:ActionBinding> </cppa:ServiceBinding> </cppa:ServiceCollaboration> <cppa:ServiceCollaboration> <cppa:PartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/ > <cppa:CounterPartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/ > <cppa:ServiceBinding> <cppa:Service>
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service </cppa:Service> <cppa:ActionBinding action="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test" ; sendOrReceive="send" id="test_outgoing"> <cppa:ChannelId>Acpp_ch5_Bcpp_ch1</cppa:ChannelId> </cppa:ActionBinding> </cppa:ServiceBinding> </cppa:ServiceCollaboration> </cppa:PartyInfo> <cppa:DeliveryChannel id="Acpp_ch1_Bcpp_ch5" exchange="Acpp_pb1_Bcpp_pb5" transport="Acpp_tr1_Bcpp_tr5"/> <cppa:DeliveryChannel id="Acpp_ch5_Bcpp_ch1" exchange="Acpp_pb5_Bcpp_pb1" transport="Acpp_tr5_Bcpp_tr1"/> <cppa:DeliveryChannel id="Acpp_ch2_Bcpp_ch6" exchange="Acpp_pb2_Bcpp_pb6"/> <cppa:DeliveryChannel id="Acpp_ch6_Bcpp_ch2" exchange="Acpp_pb6_Bcpp_pb2"/> <cppa:ebMS3ProtocolBinding id="Acpp_pb1_Bcpp_pb5"> <cppa:SOAPVersion>1.2</cppa:SOAPVersion> <cppa:WSSecurityBinding> <cppa:WSSVersion>1.1</cppa:WSSVersion> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2001/04/xmlenc#sha256 </cppa:DigestAlgorithm> </cppa:Signature> </cppa:WSSecurityBinding> <cppa:ErrorHandling> <cppa:ReceiverErrorsReportChannelId>Acpp_ch2_Bcpp_ch6</cppa:ReceiverErrorsReportChannelId> </cppa:ErrorHandling> </cppa:ebMS3ProtocolBinding> <cppa:ebMS3ProtocolBinding id="Acpp_pb5_Bcpp_pb1"> <cppa:SOAPVersion>1.2</cppa:SOAPVersion> <cppa:WSSecurityBinding> <cppa:WSSVersion>1.1</cppa:WSSVersion> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2001/04/xmlenc#sha256 </cppa:DigestAlgorithm> </cppa:Signature> </cppa:WSSecurityBinding> <cppa:ErrorHandling> <cppa:ReceiverErrorsReportChannelId>Acpp_ch6_Bcpp_ch2</cppa:ReceiverErrorsReportChannelId> </cppa:ErrorHandling> </cppa:ebMS3ProtocolBinding> <cppa:ebMS3ProtocolBinding id="Acpp_pb2_Bcpp_pb6"> <cppa:SOAPVersion>1.2</cppa:SOAPVersion> <cppa:WSSecurityBinding> <cppa:WSSVersion>1.1</cppa:WSSVersion> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2001/04/xmlenc#sha256 </cppa:DigestAlgorithm> </cppa:Signature> </cppa:WSSecurityBinding> </cppa:ebMS3ProtocolBinding> <cppa:ebMS3ProtocolBinding id="Acpp_pb6_Bcpp_pb2"> <cppa:SOAPVersion>1.2</cppa:SOAPVersion> <cppa:WSSecurityBinding> <cppa:WSSVersion>1.1</cppa:WSSVersion> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2001/04/xmlenc#sha256 </cppa:DigestAlgorithm> </cppa:Signature> </cppa:WSSecurityBinding> </cppa:ebMS3ProtocolBinding> <cppa:HTTPTransport id="Acpp_tr1_Bcpp_tr5"> <cppa:ClientIPv4>127.0.0.1</cppa:ClientIPv4> <cppa:Endpoint>
http://b.example.com:8080/someotherhandler </cppa:Endpoint> </cppa:HTTPTransport> <cppa:HTTPTransport id="Acpp_tr5_Bcpp_tr1"> <cppa:ClientIPv4>127.0.0.1</cppa:ClientIPv4> <cppa:Endpoint>
http://a.example.com:8080/as4handler </cppa:Endpoint> </cppa:HTTPTransport> </cppa:CPA> --- BEGIN PMODE --- PMode.Agreement: Acpp_Bcpp PMode.ID: BiiTrns001_R PMode.MEP:
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/twoWay PMode.Initiator.Party: B PMode.Initiator.Role: Buyer PMode.Responder.Party: A PMode.Responder.Role: Seller PMode[1].BusinessInfo.Service: OrderingBilling PMode[1].BusinessInfo.Action: SubmitOrder PMode[1].Protocol.Address:
http://a.example.com:8080/as4handler PMode[1].Protocol.SOAPVersion: 1.2 --- START LEG 2 --- PMode[2].BusinessInfo.Service: OrderingBilling PMode[2].BusinessInfo.Action: AcceptOrder PMode[2].Protocol.Address:
http://b.example.com:8080/someotherhandler PMode[2].Protocol.SOAPVersion: 1.2 --- END LEG 2 --- --- START LEG 2 --- PMode[2].BusinessInfo.Service: OrderingBilling PMode[2].BusinessInfo.Action: RejectOrder PMode[2].Protocol.Address:
http://b.example.com:8080/someotherhandler PMode[2].Protocol.SOAPVersion: 1.2 --- END LEG 2 --- --- END PMODE --- --- BEGIN PMODE --- PMode.Agreement: Acpp_Bcpp PMode.ID: test_outgoing_a PMode.MEP:
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/oneWay PMode.Initiator.Party: A PMode.Initiator.Role:
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator PMode.Responder.Party: B PMode.Responder.Role:
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder PMode[1].BusinessInfo.Service:
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service PMode[1].BusinessInfo.Action:
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test PMode[1].Protocol.Address:
http://b.example.com:8080/someotherhandler PMode[1].Protocol.SOAPVersion: 1.2 --- END PMODE --- --- BEGIN PMODE --- PMode.Agreement: Acpp_Bcpp PMode.ID: test_incoming_a PMode.MEP:
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/oneWay PMode.Initiator.Party: B PMode.Initiator.Role:
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator PMode.Responder.Party: A PMode.Responder.Role:
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder PMode[1].BusinessInfo.Service:
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service PMode[1].BusinessInfo.Action:
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test PMode[1].Protocol.Address:
http://a.example.com:8080/as4handler PMode[1].Protocol.SOAPVersion: 1.2 --- END PMODE --- <?xml version="1.0" encoding="UTF-8"?> <cppa:CPP xmlns:cppa="
http://docs.oasis-open.org/ebcore/ns/cppa-3.0" ; xmlns:ds="
http://www.w3.org/2000/09/xmldsig#" ; xmlns:dsig11="
http://www.w3.org/2009/xmldsig11#" ; xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" ; xsi:schemaLocation="
http://docs.oasis-open.org/ebxmlcppa/cppa-3.0 file:/home/pvde/Documents/Projects/CPA/cppa-ng/cppa3.xsd"> <cppa:ProfileInfo> <cppa:ProfileIdentifier>Acpp</cppa:ProfileIdentifier> <cppa:Description xml:lang="en">Collaboration Protocol Profile of Party A</cppa:Description> <cppa:ActivationDate>2015-01-01T00:00:00</cppa:ActivationDate> <cppa:ExpirationDate>2016-01-01T00:00:00</cppa:ExpirationDate> <cppa:PhaseIn>P7D</cppa:PhaseIn> </cppa:ProfileInfo> <cppa:PartyInfo> <cppa:PartyName xml:lang="en">Party A</cppa:PartyName> <cppa:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0000">A</cppa:PartyId> <!-- Certificates for A --> <cppa:Certificate id="asigningcert"> <ds:KeyInfo> <!-- Incomplete .. --> <ds:KeyName>A's signing cert</ds:KeyName> <ds:X509Data> <ds:X509SubjectName>A</ds:X509SubjectName> <!-- certificates in chain --> <ds:X509Certificate><!-- ... --></ds:X509Certificate> <ds:X509Certificate><!-- ... --></ds:X509Certificate> <ds:X509Certificate><!-- ... --></ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </cppa:Certificate> <cppa:Certificate id="atlsclientcert"> <ds:KeyInfo> <!-- Incomplete .. --> <ds:KeyName>A's TLS client cert</ds:KeyName> <ds:X509Data> <ds:X509SubjectName>A</ds:X509SubjectName> </ds:X509Data> </ds:KeyInfo> </cppa:Certificate> <cppa:Certificate id="atlsservercert"> <ds:KeyInfo> <!-- Incomplete .. --> <ds:KeyName>A's TLS server cert</ds:KeyName> </ds:KeyInfo> </cppa:Certificate> <!-- A certificate that A trusts. --> <cppa:Certificate id="btrustedroot"> <ds:KeyInfo> <!-- Incomplete .. --> <ds:KeyName>B root</ds:KeyName> <ds:X509Data> <ds:X509SubjectName>B Root</ds:X509SubjectName> </ds:X509Data> </ds:KeyInfo> </cppa:Certificate> <cppa:TrustAnchors> <cppa:AnchorCertificateRef certId="btrustedroot"/> </cppa:TrustAnchors> <cppa:ServiceCollaboration> <cppa:PartyRole name="Seller"/> <cppa:CounterPartyRole name="Buyer"/> <cppa:ServiceBinding> <cppa:Service>OrderingBilling</cppa:Service> <cppa:ActionBinding id="BiiTrns001_R" action="SubmitOrder" sendOrReceive="receive" payloadProfileId="pp1"> <cppa:ChannelId>ch5</cppa:ChannelId> </cppa:ActionBinding> <!-- The "AcceptOrder" and "RejectOrder" use the same UBL XSD and same channels, maximum reuse --> <cppa:ActionBinding id="BiiTrns003_S" action="AcceptOrder" sendOrReceive="send" payloadProfileId="pp2"> <cppa:ChannelId>ch1</cppa:ChannelId> <cppa:ChannelId>ch3</cppa:ChannelId> </cppa:ActionBinding> <cppa:ActionBinding id="BiiTrns002_S" action="RejectOrder" sendOrReceive="send" payloadProfileId="pp2"> <cppa:ChannelId>ch1</cppa:ChannelId> <cppa:ChannelId>ch3</cppa:ChannelId> </cppa:ActionBinding> </cppa:ServiceBinding> </cppa:ServiceCollaboration> <!-- Here the ebMS3 test service, defined in EBMS3CORE section 5.2.2, is configured to use the same channel as SubmitOrder, so exchange of multiple compressed payload parts are tested both in incoming and outgoing direction with the configured protocol binding. --> <cppa:ServiceCollaboration> <cppa:Description xml:lang="en">The ebMS3 test service, in initiating mode Note that this Service reuses channel "ch1", so it can be used to test the correct firewall, certificate, URL etc. for the SubmitOrder action. </cppa:Description> <cppa:PartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/ > <cppa:CounterPartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/ > <cppa:ServiceBinding> <cppa:Service>
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service </cppa:Service> <cppa:ActionBinding id="test_outgoing_a" action="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test" ; sendOrReceive="send" payloadProfileId="pp1" > <cppa:ChannelId>ch1</cppa:ChannelId> </cppa:ActionBinding> </cppa:ServiceBinding> </cppa:ServiceCollaboration> <cppa:ServiceCollaboration> <cppa:Description xml:lang="en">The ebMS3 test service, in responding mode. Note that this Service reuses channel "ch5", so it can be used to test the correct firewall, certificate, URL etc. for the AcceptOrder action. </cppa:Description> <cppa:PartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/ > <cppa:CounterPartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/ > <cppa:ServiceBinding> <cppa:Service>
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service </cppa:Service> <cppa:ActionBinding id="test_incoming_a" action="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test" ; sendOrReceive="receive" payloadProfileId="pp1"> <cppa:ChannelId>ch5</cppa:ChannelId> </cppa:ActionBinding> </cppa:ServiceBinding> </cppa:ServiceCollaboration> </cppa:PartyInfo> <cppa:DeliveryChannel id="ch1" exchange="pb1" transport="tr1" package="swa1" > <cppa:Description xml:lang="en">Channel used for outgoing ebMS3 business messages</cppa:Description> </cppa:DeliveryChannel> <cppa:DeliveryChannel id="ch2" exchange="pb2" > <cppa:Description xml:lang="en">Channel used for returned ebMS3 receipts and errors</cppa:Description> </cppa:DeliveryChannel> <cppa:DeliveryChannel id="ch3" exchange="pb3" transport="tr3" package="swa2" > <cppa:Description xml:lang="en">Channel used for outgoing ebMS2 business messages with legacy TLS</cppa:Description> </cppa:DeliveryChannel> <cppa:DeliveryChannel id="ch4" exchange="pb4" > <cppa:Description xml:lang="en">Channel used for returned ebMS2 receipts and errors</cppa:Description> </cppa:DeliveryChannel> <cppa:DeliveryChannel id="ch5" exchange="pb5" transport="tr5" package="swa1" > <cppa:Description xml:lang="en">Channel used for incoming ebMS3 business messages</cppa:Description> </cppa:DeliveryChannel> <cppa:DeliveryChannel id="ch6" exchange="pb6" > <cppa:Description xml:lang="en">Channel used for returned ebMS3 receipts and errors</cppa:Description> </cppa:DeliveryChannel> <!-- for simplicity, there is no ebMS2 incoming channel for the AcceptOrder and RejectOrder actions, though realistically there would be --> <cppa:ebMS3ProtocolBinding id="pb1"> <cppa:Description xml:lang="en">Channel used to send UserMessages</cppa:Description> <cppa:SOAPVersion>1.2</cppa:SOAPVersion> <cppa:WSSecurityBinding> <cppa:WSSVersion>1.1</cppa:WSSVersion> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2001/04/xmlenc#sha256 </cppa:DigestAlgorithm> <cppa:SigningCertificateRef certId="asigningcert"/> </cppa:Signature> </cppa:WSSecurityBinding> <cppa:AS4ReceptionAwareness> <cppa:DuplicateHandling> <cppa:DuplicateElimination>true</cppa:DuplicateElimination> </cppa:DuplicateHandling> <cppa:BaseRetransmissionHandling> <cppa:Retries>2</cppa:Retries> <cppa:RetryInterval>PT2H</cppa:RetryInterval> </cppa:BaseRetransmissionHandling> </cppa:AS4ReceptionAwareness> <cppa:ErrorHandling> <cppa:DeliveryFailuresNotifyProducer>true</cppa:DeliveryFailuresNotifyProducer> <cppa:ProcessErrorNotifyProducer>true</cppa:ProcessErrorNotifyProducer> <cppa:ReceiverErrorsReportChannelId>ch2</cppa:ReceiverErrorsReportChannelId> </cppa:ErrorHandling> <cppa:ReceiptHandling> <cppa:ReceiptChannelId>ch2</cppa:ReceiptChannelId> </cppa:ReceiptHandling> </cppa:ebMS3ProtocolBinding> <cppa:ebMS3ProtocolBinding id="pb2"> <cppa:Description xml:lang="en">Channel used to receive synchronous ebMS3 Errors and Receipts</cppa:Description> <cppa:SOAPVersion>1.2</cppa:SOAPVersion> <cppa:WSSecurityBinding> <cppa:WSSVersion>1.1</cppa:WSSVersion> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2001/04/xmlenc#sha256 </cppa:DigestAlgorithm> </cppa:Signature> </cppa:WSSecurityBinding> <!-- No receipt handling channels, because there are no receipts for receipts or errors --> <!-- No error handling channels, because there are no errors for errors or receipts --> <cppa:SyncRequestChannelId>ch1</cppa:SyncRequestChannelId> </cppa:ebMS3ProtocolBinding> <cppa:ebMS2ProtocolBinding id="pb3"> <cppa:Description xml:lang="en">ebMS2 channel for user messages</cppa:Description> <cppa:ReceiptHandling> <cppa:ReceiptChannelId>ch4</cppa:ReceiptChannelId> </cppa:ReceiptHandling> <cppa:ebMS2ReliableMessaging actor="urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH" ordered="false"> <cppa:BaseRetransmissionHandling> <cppa:Retries>2</cppa:Retries> <cppa:RetryInterval>PT2H</cppa:RetryInterval> </cppa:BaseRetransmissionHandling> </cppa:ebMS2ReliableMessaging> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2000/09/xmldsig#rsa-sha1 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2000/09/xmldsig#sha1 </cppa:DigestAlgorithm> </cppa:Signature> </cppa:ebMS2ProtocolBinding> <cppa:ebMS2ProtocolBinding id="pb4"> <cppa:Description xml:lang="en">ebMS2 synchronous error and receipt channel</cppa:Description> <!-- No ebMS2ReliableMessaging for errors and receipts --> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2000/09/xmldsig#rsa-sha1 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2000/09/xmldsig#sha1 </cppa:DigestAlgorithm> </cppa:Signature> <!-- No receipt handling channels, because there are no receipts for receipts or errors --> <!-- No error handling channels, because there are no errors for errors or receipts --> <cppa:SyncRequestChannelId>ch3</cppa:SyncRequestChannelId> </cppa:ebMS2ProtocolBinding> <cppa:ebMS3ProtocolBinding id="pb5"> <cppa:Description xml:lang="en">Channel used to receive ebMS3 business messages</cppa:Description> <cppa:SOAPVersion>1.2</cppa:SOAPVersion> <cppa:WSSecurityBinding> <cppa:WSSVersion>1.1</cppa:WSSVersion> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2001/04/xmlenc#sha256 </cppa:DigestAlgorithm> </cppa:Signature> </cppa:WSSecurityBinding> <cppa:AS4ReceptionAwareness> <!-- We omit the BaseRetransmissionHandling as it is handled by the sender --> <cppa:DuplicateHandling> <cppa:DuplicateElimination>true</cppa:DuplicateElimination> </cppa:DuplicateHandling> </cppa:AS4ReceptionAwareness> <cppa:ErrorHandling> <cppa:ProcessErrorNotifyConsumer>false</cppa:ProcessErrorNotifyConsumer> <cppa:ReceiverErrorsReportChannelId>ch6</cppa:ReceiverErrorsReportChannelId> </cppa:ErrorHandling> <cppa:ReceiptHandling> <cppa:ReceiptChannelId>ch6</cppa:ReceiptChannelId> </cppa:ReceiptHandling> </cppa:ebMS3ProtocolBinding> <cppa:ebMS3ProtocolBinding id="pb6"> <cppa:Description xml:lang="en">Channel used to send synchronous ebMS3 Errors and Receipts</cppa:Description> <cppa:SOAPVersion>1.2</cppa:SOAPVersion> <cppa:WSSecurityBinding> <cppa:WSSVersion>1.1</cppa:WSSVersion> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2001/04/xmlenc#sha256 </cppa:DigestAlgorithm> </cppa:Signature> </cppa:WSSecurityBinding> <!-- No AS4ReceptionAwareness as we don't send receipts or errors reliably --> <!-- No receipt handling channels, because there are no receipts for receipts or errors --> <!-- No error handling channels, because there are no errors for errors or receipts --> <cppa:SyncRequestChannelId>ch5</cppa:SyncRequestChannelId> </cppa:ebMS3ProtocolBinding> <cppa:HTTPTransport id="tr1"> <cppa:Description xml:lang="en">Party A in sender/client mode with state-of-the-art security</cppa:Description> <cppa:ClientIPv4>127.0.0.1</cppa:ClientIPv4> <cppa:TransportLayerSecurity> <cppa:TLSProtocol>1.2</cppa:TLSProtocol> <!-- For this example just one cipher suite is provided, should be a set --> <cppa:CipherSuite>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</cppa:CipherSuite> <cppa:ClientCertificateRef certId="atlsclientcert"/> </cppa:TransportLayerSecurity> </cppa:HTTPTransport> <cppa:HTTPTransport id="tr3"> <cppa:Description xml:lang="en">Party A in legacy sender/client mode</cppa:Description> <cppa:ClientIPv4>127.0.0.1</cppa:ClientIPv4> <cppa:TransportLayerSecurity> <cppa:TLSProtocol>1.1</cppa:TLSProtocol> <cppa:CipherSuite>TLS_RSA_WITH_3DES_EDE_CBC_SHA</cppa:CipherSuite> <cppa:ClientCertificateRef certId="atlsclientcert"/> </cppa:TransportLayerSecurity> </cppa:HTTPTransport> <cppa:HTTPTransport id="tr5"> <cppa:Description xml:lang="en">Party A in AS4 receiver/server mode</cppa:Description> <cppa:Endpoint>
http://a.example.com:8080/as4handler </cppa:Endpoint> <cppa:TransportLayerSecurity> <cppa:TLSProtocol>1.2</cppa:TLSProtocol> <cppa:CipherSuite>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</cppa:CipherSuite> <cppa:ServerCertificateRef certId="atlsservercert"/> </cppa:TransportLayerSecurity> </cppa:HTTPTransport> <cppa:PayloadProfile id="pp1"> <cppa:Description xml:lang="en">A UBL Order XML document and any number of PDF attachments</cppa:Description> <cppa:PayloadPart minOccurs="1" maxOccurs="1" > <cppa:PartName>businessdocument</cppa:PartName> <cppa:MimeContentType>application/xml</cppa:MimeContentType> <cppa:Schema location="
http://docs.oasis-open.org/ubl/os-UBL-2.1/xsd/maindoc/UBL-Order-2.1.xsd" ; /> </cppa:PayloadPart> <cppa:PayloadPart minOccurs="0" maxOccurs="unbounded"> <cppa:PartName>attachment</cppa:PartName> <cppa:MimeContentType>application/pdf</cppa:MimeContentType> </cppa:PayloadPart> </cppa:PayloadProfile> <cppa:PayloadProfile id="pp2"> <cppa:PayloadPart minOccurs="1" maxOccurs="1"> <cppa:PartName>businessdocument</cppa:PartName> <cppa:MimeContentType>application/xml</cppa:MimeContentType> <cppa:Schema location="
http://docs.oasis-open.org/ubl/os-UBL-2.1/xsd/maindoc/UBL-OrderResponse-2.1.xsd" ; /> </cppa:PayloadPart> </cppa:PayloadProfile> <cppa:SOAPWithAttachmentsEnvelope id="swa1" > <cppa:Description xml:lang="en">An ebMS3 SWA envelope, empty body all payload parts as separate compressed MIME parts.</cppa:Description> <cppa:CompressedMimePart CompressionType="application.gzip" > <cppa:SimpleMIMEPart PartName="businessdocument"/> </cppa:CompressedMimePart> <cppa:CompressedMimePart CompressionType="application.gzip" > <cppa:SimpleMIMEPart PartName="attachment"/> </cppa:CompressedMimePart> </cppa:SOAPWithAttachmentsEnvelope> <cppa:SOAPWithAttachmentsEnvelope id="swa2" > <cppa:Description xml:lang="en">An ebMS2 SWA envelope, all payload parts as separate MIME parts.</cppa:Description> <cppa:SimpleMIMEPart PartName="businessdocument"/> <cppa:SimpleMIMEPart PartName="attachment"/> </cppa:SOAPWithAttachmentsEnvelope> </cppa:CPP> <?xml version="1.0" encoding="UTF-8"?> <cppa:CPP xmlns:cppa="
http://docs.oasis-open.org/ebcore/ns/cppa-3.0" ; xmlns:ds="
http://www.w3.org/2000/09/xmldsig#" ; xmlns:dsig11="
http://www.w3.org/2009/xmldsig11#" ; xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" ; xsi:schemaLocation="
http://docs.oasis-open.org/ebxmlcppa/cppa-3.0 file:/home/pvde/Documents/Projects/CPA/cppa-ng/cppa3.xsd"> <cppa:ProfileInfo> <cppa:ProfileIdentifier>Bcpp</cppa:ProfileIdentifier> <cppa:Description xml:lang="en">Collaboration Protocol Profile of Party B</cppa:Description> <cppa:ActivationDate>2015-01-01T00:00:00</cppa:ActivationDate> <cppa:ExpirationDate>2016-01-01T00:00:00</cppa:ExpirationDate> <cppa:PhaseIn>P7D</cppa:PhaseIn> </cppa:ProfileInfo> <cppa:PartyInfo> <cppa:PartyName xml:lang="en">Party B</cppa:PartyName> <cppa:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0000">B</cppa:PartyId> <!-- Certificates for B --> <cppa:Certificate id="bsigningcert"> <ds:KeyInfo> <!-- Incomplete .. --> <ds:KeyName>B's signing cert</ds:KeyName> <ds:X509Data> <ds:X509SubjectName>B</ds:X509SubjectName> <!-- certificates in chain --> <ds:X509Certificate><!-- ... --></ds:X509Certificate> <ds:X509Certificate><!-- ... --></ds:X509Certificate> <ds:X509Certificate><!-- ... --></ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </cppa:Certificate> <cppa:Certificate id="btlsclientcert"> <ds:KeyInfo> <!-- Incomplete .. --> <ds:KeyName>B's TLS client cert</ds:KeyName> <ds:X509Data> <ds:X509SubjectName>B</ds:X509SubjectName> </ds:X509Data> </ds:KeyInfo> </cppa:Certificate> <cppa:Certificate id="btlsservercert"> <ds:KeyInfo> <!-- Incomplete .. --> <ds:KeyName>B's TLS server cert</ds:KeyName> </ds:KeyInfo> </cppa:Certificate> <!-- A certificate that B trusts. --> <cppa:Certificate id="atrustedroot"> <ds:KeyInfo> <!-- Incomplete .. --> <ds:KeyName>A root</ds:KeyName> <ds:X509Data> <ds:X509SubjectName>A Root</ds:X509SubjectName> </ds:X509Data> </ds:KeyInfo> </cppa:Certificate> <cppa:TrustAnchors> <cppa:AnchorCertificateRef certId="atrustedroot"/> </cppa:TrustAnchors> <cppa:ServiceCollaboration> <cppa:PartyRole name="Buyer"/> <cppa:CounterPartyRole name="Seller"/> <cppa:ServiceBinding> <cppa:Service>OrderingBilling</cppa:Service> <cppa:ActionBinding id="BiiTrns001_S" action="SubmitOrder" sendOrReceive="send" payloadProfileId="pp1"> <!-- Preferred channel is ch1, alternative is ch3 --> <cppa:ChannelId>ch1</cppa:ChannelId> <cppa:ChannelId>ch3</cppa:ChannelId> </cppa:ActionBinding> <!-- The "AcceptOrder" and "RejectOrder" use the same UBL XSD and same channels, maximum reuse --> <cppa:ActionBinding id="BiiTrns003_R" action="AcceptOrder" sendOrReceive="receive" payloadProfileId="pp2"> <cppa:ChannelId>ch5</cppa:ChannelId> </cppa:ActionBinding> <cppa:ActionBinding id="BiiTrns002_R" action="RejectOrder" sendOrReceive="receive" payloadProfileId="pp2"> <cppa:ChannelId>ch5</cppa:ChannelId> </cppa:ActionBinding> </cppa:ServiceBinding> </cppa:ServiceCollaboration> <!-- Here the ebMS3 test service, defined in EBMS3CORE section 5.2.2, is configured to use the same channel as SubmitOrder, so exchange of multiple compressed payload parts are tested both in incoming and outgoing direction with the configured protocol binding. --> <cppa:ServiceCollaboration> <cppa:Description xml:lang="en">The ebMS3 test service, in initiating mode Note that this Service reuses channel "ch1", so it can be used to test the correct firewall, certificate, URL etc. for the SubmitOrder action. </cppa:Description> <cppa:PartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/ > <cppa:CounterPartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/ > <cppa:ServiceBinding> <cppa:Service>
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service </cppa:Service> <cppa:ActionBinding id="test_outgoing" action="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test" ; sendOrReceive="send" payloadProfileId="pp1" > <cppa:ChannelId>ch1</cppa:ChannelId> </cppa:ActionBinding> </cppa:ServiceBinding> </cppa:ServiceCollaboration> <cppa:ServiceCollaboration> <cppa:Description xml:lang="en">The ebMS3 test service, in responding mode. Note that this Service reuses channel "ch5", so it can be used to test the correct firewall, certificate, URL etc. for the AcceptOrder action. </cppa:Description> <cppa:PartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/ > <cppa:CounterPartyRole name="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/ > <cppa:ServiceBinding> <cppa:Service>
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service </cppa:Service> <cppa:ActionBinding id="test_incoming" action="
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test" ; sendOrReceive="receive" payloadProfileId="pp1"> <cppa:ChannelId>ch5</cppa:ChannelId> </cppa:ActionBinding> </cppa:ServiceBinding> </cppa:ServiceCollaboration> </cppa:PartyInfo> <cppa:DeliveryChannel id="ch1" exchange="pb1" transport="tr1" package="swa1" > <cppa:Description xml:lang="en">Channel used for outgoing ebMS3 business messages</cppa:Description> </cppa:DeliveryChannel> <cppa:DeliveryChannel id="ch2" exchange="pb2" > <cppa:Description xml:lang="en">Channel used for returned ebMS3 receipts and errors</cppa:Description> </cppa:DeliveryChannel> <cppa:DeliveryChannel id="ch3" exchange="pb3" transport="tr3" package="swa2" > <cppa:Description xml:lang="en">Channel used for outgoing ebMS2 business messages with legacy TLS</cppa:Description> </cppa:DeliveryChannel> <cppa:DeliveryChannel id="ch4" exchange="pb4" > <cppa:Description xml:lang="en">Channel used for returned ebMS2 receipts and errors</cppa:Description> </cppa:DeliveryChannel> <cppa:DeliveryChannel id="ch5" exchange="pb5" transport="tr5" package="swa1" > <cppa:Description xml:lang="en">Channel used for incoming ebMS3 business messages</cppa:Description> </cppa:DeliveryChannel> <cppa:DeliveryChannel id="ch6" exchange="pb6" > <cppa:Description xml:lang="en">Channel used for returned ebMS3 receipts and errors</cppa:Description> </cppa:DeliveryChannel> <!-- for simplicity, there is no ebMS2 incoming channel for the AcceptOrder and RejectOrder actions, though realistically there would be --> <cppa:ebMS3ProtocolBinding id="pb1"> <cppa:Description xml:lang="en">Channel used to send UserMessages</cppa:Description> <cppa:SOAPVersion>1.2</cppa:SOAPVersion> <cppa:WSSecurityBinding> <cppa:WSSVersion>1.1</cppa:WSSVersion> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2001/04/xmlenc#sha256 </cppa:DigestAlgorithm> <cppa:SigningCertificateRef certId="bsigningcert"/> </cppa:Signature> </cppa:WSSecurityBinding> <cppa:AS4ReceptionAwareness> <cppa:DuplicateHandling> <cppa:DuplicateElimination>true</cppa:DuplicateElimination> </cppa:DuplicateHandling> <cppa:BaseRetransmissionHandling> <cppa:Retries>2</cppa:Retries> <cppa:RetryInterval>PT2H</cppa:RetryInterval> </cppa:BaseRetransmissionHandling> </cppa:AS4ReceptionAwareness> <cppa:ErrorHandling> <cppa:DeliveryFailuresNotifyProducer>true</cppa:DeliveryFailuresNotifyProducer> <cppa:ProcessErrorNotifyProducer>true</cppa:ProcessErrorNotifyProducer> <cppa:ReceiverErrorsReportChannelId>ch2</cppa:ReceiverErrorsReportChannelId> </cppa:ErrorHandling> <cppa:ReceiptHandling> <cppa:ReceiptChannelId>ch2</cppa:ReceiptChannelId> </cppa:ReceiptHandling> </cppa:ebMS3ProtocolBinding> <cppa:ebMS3ProtocolBinding id="pb2"> <cppa:Description xml:lang="en">Channel used to receive synchronous ebMS3 Errors and Receipts</cppa:Description> <cppa:SOAPVersion>1.2</cppa:SOAPVersion> <cppa:WSSecurityBinding> <cppa:WSSVersion>1.1</cppa:WSSVersion> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2001/04/xmlenc#sha256 </cppa:DigestAlgorithm> </cppa:Signature> </cppa:WSSecurityBinding> <!-- No receipt handling channels, because there are no receipts for receipts or errors --> <!-- No error handling channels, because there are no errors for errors or receipts --> <cppa:SyncRequestChannelId>ch1</cppa:SyncRequestChannelId> </cppa:ebMS3ProtocolBinding> <cppa:ebMS2ProtocolBinding id="pb3"> <cppa:Description xml:lang="en">ebMS2 channel for user messages</cppa:Description> <cppa:ReceiptHandling> <cppa:ReceiptChannelId>ch4</cppa:ReceiptChannelId> </cppa:ReceiptHandling> <cppa:ebMS2ReliableMessaging actor="urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH" ordered="false"> <cppa:BaseRetransmissionHandling> <cppa:Retries>2</cppa:Retries> <cppa:RetryInterval>PT2H</cppa:RetryInterval> </cppa:BaseRetransmissionHandling> </cppa:ebMS2ReliableMessaging> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2000/09/xmldsig#rsa-sha1 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2000/09/xmldsig#sha1 </cppa:DigestAlgorithm> </cppa:Signature> </cppa:ebMS2ProtocolBinding> <cppa:ebMS2ProtocolBinding id="pb4"> <cppa:Description xml:lang="en">ebMS2 synchronous error and receipt channel</cppa:Description> <!-- No ebMS2ReliableMessaging for errors and receipts --> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2000/09/xmldsig#rsa-sha1 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2000/09/xmldsig#sha1 </cppa:DigestAlgorithm> </cppa:Signature> <!-- No receipt handling channels, because there are no receipts for receipts or errors --> <!-- No error handling channels, because there are no errors for errors or receipts --> <cppa:SyncRequestChannelId>ch3</cppa:SyncRequestChannelId> </cppa:ebMS2ProtocolBinding> <cppa:ebMS3ProtocolBinding id="pb5"> <cppa:Description xml:lang="en">Channel used to receive ebMS3 business messages</cppa:Description> <cppa:SOAPVersion>1.2</cppa:SOAPVersion> <cppa:WSSecurityBinding> <cppa:WSSVersion>1.1</cppa:WSSVersion> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2001/04/xmlenc#sha256 </cppa:DigestAlgorithm> </cppa:Signature> </cppa:WSSecurityBinding> <cppa:AS4ReceptionAwareness> <!-- We omit the BaseRetransmissionHandling as it is handled by the sender --> <cppa:DuplicateHandling> <cppa:DuplicateElimination>true</cppa:DuplicateElimination> </cppa:DuplicateHandling> </cppa:AS4ReceptionAwareness> <cppa:ErrorHandling> <cppa:ProcessErrorNotifyConsumer>false</cppa:ProcessErrorNotifyConsumer> <cppa:ReceiverErrorsReportChannelId>ch6</cppa:ReceiverErrorsReportChannelId> </cppa:ErrorHandling> <cppa:ReceiptHandling> <cppa:ReceiptChannelId>ch6</cppa:ReceiptChannelId> </cppa:ReceiptHandling> </cppa:ebMS3ProtocolBinding> <cppa:ebMS3ProtocolBinding id="pb6"> <cppa:Description xml:lang="en">Channel used to send synchronous ebMS3 Errors and Receipts</cppa:Description> <cppa:SOAPVersion>1.2</cppa:SOAPVersion> <cppa:WSSecurityBinding> <cppa:WSSVersion>1.1</cppa:WSSVersion> <cppa:Signature> <cppa:SignatureAlgorithm>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 </cppa:SignatureAlgorithm> <cppa:DigestAlgorithm>
http://www.w3.org/2001/04/xmlenc#sha256 </cppa:DigestAlgorithm> </cppa:Signature> </cppa:WSSecurityBinding> <!-- No AS4ReceptionAwareness as we don't send receipts or errors reliably --> <!-- No receipt handling channels, because there are no receipts for receipts or errors --> <!-- No error handling channels, because there are no errors for errors or receipts --> <cppa:SyncRequestChannelId>ch5</cppa:SyncRequestChannelId> </cppa:ebMS3ProtocolBinding> <cppa:HTTPTransport id="tr1"> <cppa:Description xml:lang="en">Party B in sender/client mode with state-of-the-art security</cppa:Description> <cppa:ClientIPv4>127.0.0.1</cppa:ClientIPv4> <cppa:TransportLayerSecurity> <cppa:TLSProtocol>1.2</cppa:TLSProtocol> <!-- For this example just one cipher suite is provided, should be a set --> <cppa:CipherSuite>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</cppa:CipherSuite> <cppa:ClientCertificateRef certId="btlsclientcert"/> </cppa:TransportLayerSecurity> </cppa:HTTPTransport> <cppa:HTTPTransport id="tr3"> <cppa:Description xml:lang="en">Party B in legacy sender/client mode</cppa:Description> <cppa:ClientIPv4>127.0.0.1</cppa:ClientIPv4> <cppa:TransportLayerSecurity> <cppa:TLSProtocol>1.1</cppa:TLSProtocol> <cppa:CipherSuite>TLS_RSA_WITH_3DES_EDE_CBC_SHA</cppa:CipherSuite> <cppa:ClientCertificateRef certId="btlsclientcert"/> </cppa:TransportLayerSecurity> </cppa:HTTPTransport> <cppa:HTTPTransport id="tr5"> <cppa:Description xml:lang="en">Party B in AS4 receiver/server mode</cppa:Description> <cppa:Endpoint>
http://b.example.com:8080/someotherhandler </cppa:Endpoint> <cppa:TransportLayerSecurity> <cppa:TLSProtocol>1.2</cppa:TLSProtocol> <cppa:CipherSuite>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</cppa:CipherSuite> <cppa:ServerCertificateRef certId="btlsservercert"/> </cppa:TransportLayerSecurity> </cppa:HTTPTransport> <cppa:PayloadProfile id="pp1"> <cppa:Description xml:lang="en">A UBL Order XML document and any number of PDF attachments</cppa:Description> <cppa:PayloadPart minOccurs="1" maxOccurs="1" > <cppa:PartName>businessdocument</cppa:PartName> <cppa:MimeContentType>application/xml</cppa:MimeContentType> <cppa:Schema location="
http://docs.oasis-open.org/ubl/os-UBL-2.1/xsd/maindoc/UBL-Order-2.1.xsd" ; /> </cppa:PayloadPart> <cppa:PayloadPart minOccurs="0" maxOccurs="unbounded"> <cppa:PartName>attachment</cppa:PartName> <cppa:MimeContentType>application/pdf</cppa:MimeContentType> </cppa:PayloadPart> </cppa:PayloadProfile> <cppa:PayloadProfile id="pp2"> <cppa:PayloadPart minOccurs="1" maxOccurs="1"> <cppa:PartName>businessdocument</cppa:PartName> <cppa:MimeContentType>application/xml</cppa:MimeContentType> <cppa:Schema location="
http://docs.oasis-open.org/ubl/os-UBL-2.1/xsd/maindoc/UBL-OrderResponse-2.1.xsd" ; /> </cppa:PayloadPart> </cppa:PayloadProfile> <cppa:SOAPWithAttachmentsEnvelope id="swa1" > <cppa:Description xml:lang="en">An ebMS3 SWA envelope, empty body all payload parts as separate compressed MIME parts.</cppa:Description> <cppa:CompressedMimePart CompressionType="application.gzip" > <cppa:SimpleMIMEPart PartName="businessdocument"/> </cppa:CompressedMimePart> <cppa:CompressedMimePart CompressionType="application.gzip" > <cppa:SimpleMIMEPart PartName="attachment"/> </cppa:CompressedMimePart> </cppa:SOAPWithAttachmentsEnvelope> <cppa:SOAPWithAttachmentsEnvelope id="swa2" > <cppa:Description xml:lang="en">An ebMS2 SWA envelope, all payload parts as separate MIME parts.</cppa:Description> <cppa:SimpleMIMEPart PartName="businessdocument"/> <cppa:SimpleMIMEPart PartName="attachment"/> </cppa:SOAPWithAttachmentsEnvelope> </cppa:CPP>