[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Update on DocExchange extensibility-- new files for testing backwards compatibility
Hi, I am attaching three files that show how the CPPA version 2.0 sample CPA can remain validated while still allowing the replacement of DocExchange/ebXML[Receiver||Sender]Binding elements by other DocExchange conventions. So, a WSDLBinding or SOAPBinding or SWABinding can be added instead of ebXML[Receiver||Sender]Binding, for example. I put a version attribute on the base complexType but otherwise it is a reasonably open content model with replacements on a substitution head currently called BindingModuleHead. I have not worked out the components for the other BindingModules for WSDL or SOAP or SWA. Hoping to hear from Keith and others on that. I plan to incrementally enhance the extensibility points over the next few weeks while testing to see that old 2.0 CPA instances remain valid. I have so far only tool-tested against XML Spy and will use XSV later. You could help by: 1. testing other CPA samples you have (after modifying the namespace in the instance) and seeing if there are problems 2. testing other of the tools you use to see if they have problems. Tools can differ quite a bit in their reaction to the same XML schema constructs! Send problems to me and/or the list. I am also looking for new ideas about file organization. A currently "empty" file is included in the prototype 2_x schema and I am wondering whether some of the substitution apparatus should be shoved into this file. At the moment I have not hit upon a plan that seems reasonable for encapsulating dreary detail into the included file(s).
<?xml version="1.0"?> <tp:CollaborationProtocolAgreement xmlns:tp="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_x.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_x.xsd cpp-cpa-2_x.xsd" tp:cpaid="uri:companyA-and-companyB-cpa" tp:version="2_x"> <tp:Status tp:value="proposed"/> <tp:Start>2001-05-20T07:21:00Z</tp:Start> <tp:End>2002-05-20T07:21:00Z</tp:End> <tp:ConversationConstraints tp:invocationLimit="100" tp:concurrentConversations="10"/> <!-- Party info for CompanyA --> <tp:PartyInfo tp:partyName="CompanyA" tp:defaultMshChannelId="asyncChannelA1" tp:defaultMshPackageId="CompanyA_MshSignalPackage"> <tp:PartyId tp:type="urn:oasis:names:tc:ebxml-cppa:partyid-type:duns">123456789</tp:PartyId> <tp:PartyRef xlink:href="http://CompanyA.com/about.html"/> <tp:CollaborationRole> <tp:ProcessSpecification tp:version="2.0" tp:name="PIP3A4RequestPurchaseOrder" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml" tp:uuid="urn:icann:rosettanet.org:bpid:3A4$2.0"/> <tp:Role tp:name="Buyer" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml#Buyer"/> <tp:ApplicationCertificateRef tp:certId="CompanyA_AppCert"/> <tp:ServiceBinding> <tp:Service>bpid:icann:rosettanet.org:3A4$2.0</tp:Service> <tp:CanSend> <tp:ThisPartyActionBinding tp:id="companyA_ABID1" tp:action="Purchase Order Request Action" tp:packageId="CompanyA_RequestPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT2H" tp:timeToPerform="P1D"/> <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Request Action"/> <tp:ChannelId>asyncChannelA1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyB_ABID4</tp:OtherPartyActionBinding> </tp:CanSend> <tp:CanSend> <tp:ThisPartyActionBinding tp:id="companyA_ABID2" tp:action="ReceiptAcknowledgement" tp:packageId="CompanyA_ReceiptAcknowledgmentPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/> <tp:ChannelId>asyncChannelA1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyB_ABID5</tp:OtherPartyActionBinding> </tp:CanSend> <!-- The next binding uses a synchronous delivery channel --> <tp:CanSend> <tp:ThisPartyActionBinding tp:id="companyA_ABID6" tp:action="Purchase Order Request Action" tp:packageId="CompanyA_RequestPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT5M" tp:timeToPerform="PT5M"/> <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Request Action"/> <tp:ChannelId>syncChannelA1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyB_ABID6</tp:OtherPartyActionBinding> <tp:CanReceive> <tp:ThisPartyActionBinding tp:id="companyA_ABID7" tp:action="Purchase Order Confirmation Action" tp:packageId="CompanyA_SyncReplyPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT5M"/> <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Confirmation Action"/> <tp:ChannelId>syncChannelA1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyB_ABID7</tp:OtherPartyActionBinding> </tp:CanReceive> <tp:CanReceive> <tp:ThisPartyActionBinding tp:id="companyA_ABID8" tp:action="Exception" tp:packageId="CompanyA_ExceptionPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/> <tp:ChannelId>syncChannelA1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyB_ABID8</tp:OtherPartyActionBinding> </tp:CanReceive> </tp:CanSend> <tp:CanReceive> <tp:ThisPartyActionBinding tp:id="companyA_ABID3" tp:action="Purchase Order Confirmation Action" tp:packageId="CompanyA_ResponsePackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT2H"/> <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Confirmation Action"/> <tp:ChannelId>asyncChannelA1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyB_ABID1</tp:OtherPartyActionBinding> </tp:CanReceive> <tp:CanReceive> <tp:ThisPartyActionBinding tp:id="companyA_ABID4" tp:action="ReceiptAcknowledgment" tp:packageId="CompanyA_ReceiptAcknowledgmentPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/> <tp:ChannelId>asyncChannelA1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyB_ABID2</tp:OtherPartyActionBinding> </tp:CanReceive> <tp:CanReceive> <tp:ThisPartyActionBinding tp:id="companyA_ABID5" tp:action="Exception" tp:packageId="CompanyA_ExceptionPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/> <tp:ChannelId>asyncChannelA1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyB_ABID3</tp:OtherPartyActionBinding> </tp:CanReceive> </tp:ServiceBinding> </tp:CollaborationRole> <!-- Certificates used by the "Buyer" company --> <tp:Certificate tp:certId="CompanyA_AppCert"> <ds:KeyInfo> <ds:KeyName>CompanyA_AppCert_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="CompanyA_SigningCert"> <ds:KeyInfo> <ds:KeyName>CompanyA_SigningCert_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="CompanyA_EncryptionCert"> <ds:KeyInfo> <ds:KeyName>CompanyA_EncryptionCert_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="CompanyA_ServerCert"> <ds:KeyInfo> <ds:KeyName>CompanyA_ServerCert_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="CompanyA_ClientCert"> <ds:KeyInfo> <ds:KeyName>CompanyA_ClientCert_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="TrustedRootCertA1"> <ds:KeyInfo> <ds:KeyName>TrustedRootCertA1_Key </ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="TrustedRootCertA2"> <ds:KeyInfo> <ds:KeyName>TrustedRootCertA2_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="TrustedRootCertA3"> <ds:KeyInfo> <ds:KeyName>TrustedRootCertA3_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="TrustedRootCertA4"> <ds:KeyInfo> <ds:KeyName>TrustedRootCertA4_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="TrustedRootCertA5"> <ds:KeyInfo> <ds:KeyName>TrustedRootCertA5_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:SecurityDetails tp:securityId="CompanyA_TransportSecurity"> <tp:TrustAnchors> <tp:AnchorCertificateRef tp:certId="TrustedRootCertA1"/> <tp:AnchorCertificateRef tp:certId="TrustedRootCertA2"/> <tp:AnchorCertificateRef tp:certId="TrustedRootCertA4"/> </tp:TrustAnchors> </tp:SecurityDetails> <tp:SecurityDetails tp:securityId="CompanyA_MessageSecurity"> <tp:TrustAnchors> <tp:AnchorCertificateRef tp:certId="TrustedRootCertA3"/> <tp:AnchorCertificateRef tp:certId="TrustedRootCertA5"/> </tp:TrustAnchors> </tp:SecurityDetails> <tp:DeliveryChannel tp:channelId="asyncChannelA1" tp:transportId="transportA1" tp:docExchangeId="docExchangeA1"> <tp:MessagingCharacteristics tp:syncReplyMode="none" tp:ackRequested="always" tp:ackSignatureRequested="always" tp:duplicateElimination="always"/> </tp:DeliveryChannel> <tp:DeliveryChannel tp:channelId="syncChannelA1" tp:transportId="transportA2" tp:docExchangeId="docExchangeA1"> <tp:MessagingCharacteristics tp:syncReplyMode="signalsAndResponse" tp:ackRequested="always" tp:ackSignatureRequested="always" tp:duplicateElimination="always"/> </tp:DeliveryChannel> <tp:Transport tp:transportId="transportA1"> <tp:TransportSender> <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol> <tp:AccessAuthentication>basic</tp:AccessAuthentication> <tp:TransportClientSecurity> <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol> <tp:ClientCertificateRef tp:certId="CompanyA_ClientCert"/> <tp:ServerSecurityDetailsRef tp:securityId="CompanyA_TransportSecurity"/> </tp:TransportClientSecurity> </tp:TransportSender> <tp:TransportReceiver> <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol> <tp:AccessAuthentication>basic</tp:AccessAuthentication> <tp:Endpoint tp:uri="https://www.CompanyA.com/servlets/ebxmlhandler/async" tp:type="allPurpose"/> <tp:TransportServerSecurity> <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol> <tp:ServerCertificateRef tp:certId="CompanyA_ServerCert"/> <tp:ClientSecurityDetailsRef tp:securityId="CompanyA_TransportSecurity"/> </tp:TransportServerSecurity> </tp:TransportReceiver> </tp:Transport> <tp:Transport tp:transportId="transportA2"> <tp:TransportSender> <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol> <tp:AccessAuthentication>basic</tp:AccessAuthentication> <tp:TransportClientSecurity> <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol> <tp:ClientCertificateRef tp:certId="CompanyA_ClientCert"/> <tp:ServerSecurityDetailsRef tp:securityId="CompanyA_TransportSecurity"/> </tp:TransportClientSecurity> </tp:TransportSender> <tp:TransportReceiver> <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol> <tp:AccessAuthentication>basic</tp:AccessAuthentication> <tp:Endpoint tp:uri="https://www.CompanyA.com/servlets/ebxmlhandler/sync" tp:type="allPurpose"/> <tp:TransportServerSecurity> <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol> <tp:ServerCertificateRef tp:certId="CompanyA_ServerCert"/> <tp:ClientSecurityDetailsRef tp:securityId="CompanyA_TransportSecurity"/> </tp:TransportServerSecurity> </tp:TransportReceiver> </tp:Transport> <tp:DocExchange tp:docExchangeId="docExchangeA1"> <tp:ebXMLSenderBinding tp:version="2.0"> <tp:ReliableMessaging> <tp:Retries>3</tp:Retries> <tp:RetryInterval>PT2H</tp:RetryInterval> <tp:MessageOrderSemantics>Guaranteed</tp:MessageOrderSemantics> </tp:ReliableMessaging> <tp:PersistDuration>P1D</tp:PersistDuration> <tp:SenderNonRepudiation> <tp:NonRepudiationProtocol>http://www.w3.org/2000/09/xmldsig#</tp:NonRepudiationProtocol> <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction> <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm> <tp:SigningCertificateRef tp:certId="CompanyA_SigningCert"/> </tp:SenderNonRepudiation> <tp:SenderDigitalEnvelope> <tp:DigitalEnvelopeProtocol tp:version="2.0">S/MIME</tp:DigitalEnvelopeProtocol> <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm> <tp:EncryptionSecurityDetailsRef tp:securityId="CompanyA_MessageSecurity"/> </tp:SenderDigitalEnvelope> </tp:ebXMLSenderBinding> <tp:ebXMLReceiverBinding tp:version="2.0"> <tp:ReliableMessaging> <tp:Retries>3</tp:Retries> <tp:RetryInterval>PT2H</tp:RetryInterval> <tp:MessageOrderSemantics>Guaranteed</tp:MessageOrderSemantics> </tp:ReliableMessaging> <tp:PersistDuration>P1D</tp:PersistDuration> <tp:ReceiverNonRepudiation> <tp:NonRepudiationProtocol>http://www.w3.org/2000/09/xmldsig#</tp:NonRepudiationProtocol> <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction> <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm> <tp:SigningSecurityDetailsRef tp:securityId="CompanyA_MessageSecurity"/> </tp:ReceiverNonRepudiation> <tp:ReceiverDigitalEnvelope> <tp:DigitalEnvelopeProtocol tp:version="2.0">S/MIME</tp:DigitalEnvelopeProtocol> <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm> <tp:EncryptionCertificateRef tp:certId="CompanyA_EncryptionCert"/> </tp:ReceiverDigitalEnvelope> </tp:ebXMLReceiverBinding> </tp:DocExchange> </tp:PartyInfo> <!-- Party info for CompanyB --> <tp:PartyInfo tp:partyName="CompanyB" tp:defaultMshChannelId="asyncChannelB1" tp:defaultMshPackageId="CompanyB_MshSignalPackage"> <tp:PartyId tp:type="urn:oasis:names:tc:ebxml-cppa:partyid-type:duns">987654321</tp:PartyId> <tp:PartyRef xlink:type="simple" xlink:href="http://CompanyB.com/about.html"/> <tp:CollaborationRole> <tp:ProcessSpecification tp:version="2.0" tp:name="PIP3A4RequestPurchaseOrder" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml" tp:uuid="urn:icann:rosettanet.org:bpid:3A4$2.0"/> <tp:Role tp:name="Seller" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml#seller"/> <tp:ApplicationCertificateRef tp:certId="CompanyB_AppCert"/> <tp:ServiceBinding> <tp:Service>bpid:icann:rosettanet.org:3A4$2.0</tp:Service> <tp:CanSend> <tp:ThisPartyActionBinding tp:id="companyB_ABID1" tp:action="Purchase Order Confirmation Action" tp:packageId="CompanyB_ResponsePackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT2H"/> <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Confirmation Action"/> <tp:ChannelId>asyncChannelB1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyA_ABID3</tp:OtherPartyActionBinding> </tp:CanSend> <tp:CanSend> <tp:ThisPartyActionBinding tp:id="companyB_ABID2" tp:action="ReceiptAcknowledgement" tp:packageId="CompanyB_ReceiptAcknowledgmentPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/> <tp:ChannelId>asyncChannelB1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyA_ABID4</tp:OtherPartyActionBinding> </tp:CanSend> <tp:CanSend> <tp:ThisPartyActionBinding tp:id="companyB_ABID3" tp:action="Exception" tp:packageId="CompanyB_ExceptionPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/> <tp:ChannelId>asyncChannelB1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyA_ABID5</tp:OtherPartyActionBinding> </tp:CanSend> <tp:CanReceive> <tp:ThisPartyActionBinding tp:id="companyB_ABID4" tp:action="Purchase Order Request Action" tp:packageId="CompanyB_RequestPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT2H" tp:timeToPerform="P1D"/> <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Request Action"/> <tp:ChannelId>asyncChannelB1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyA_ABID1</tp:OtherPartyActionBinding> </tp:CanReceive> <tp:CanReceive> <tp:ThisPartyActionBinding tp:id="companyB_ABID5" tp:action="ReceiptAcknowledgment" tp:packageId="CompanyB_ReceiptAcknowledgmentPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/> <tp:ChannelId>asyncChannelB1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyA_ABID2</tp:OtherPartyActionBinding> </tp:CanReceive> <!-- The next binding uses a synchronous delivery channel --> <tp:CanReceive> <tp:ThisPartyActionBinding tp:id="companyB_ABID6" tp:action="Purchase Order Request Action" tp:packageId="CompanyB_RequestPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT5M" tp:timeToPerform="PT5M"/> <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Request Action"/> <tp:ChannelId>syncChannelB1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyA_ABID6</tp:OtherPartyActionBinding> <tp:CanSend> <tp:ThisPartyActionBinding tp:id="companyB_ABID7" tp:action="Purchase Order Confirmation Action" tp:packageId="CompanyB_SyncReplyPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT5M"/> <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Confirmation Action"/> <tp:ChannelId>syncChannelB1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyA_ABID7</tp:OtherPartyActionBinding> </tp:CanSend> <tp:CanSend> <tp:ThisPartyActionBinding tp:id="companyB_ABID8" tp:action="Exception" tp:packageId="CompanyB_ExceptionPackage"> <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/> <tp:ChannelId>syncChannelB1</tp:ChannelId> </tp:ThisPartyActionBinding> <tp:OtherPartyActionBinding>companyA_ABID8</tp:OtherPartyActionBinding> </tp:CanSend> </tp:CanReceive> </tp:ServiceBinding> </tp:CollaborationRole> <!-- Certificates used by the "Seller" company --> <tp:Certificate tp:certId="CompanyB_AppCert"> <ds:KeyInfo> <ds:KeyName>CompanyB_AppCert_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="CompanyB_SigningCert"> <ds:KeyInfo> <ds:KeyName>CompanyB_Signingcert_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="CompanyB_EncryptionCert"> <ds:KeyInfo> <ds:KeyName>CompanyB_EncryptionCert_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="CompanyB_ServerCert"> <ds:KeyInfo> <ds:KeyName>CompanyB_ServerCert_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="CompanyB_ClientCert"> <ds:KeyInfo> <ds:KeyName>CompanyB_ClientCert_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="TrustedRootCertB4"> <ds:KeyInfo> <ds:KeyName>TrustedRootCertB4_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="TrustedRootCertB5"> <ds:KeyInfo> <ds:KeyName>TrustedRootCertB5_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="TrustedRootCertB6"> <ds:KeyInfo> <ds:KeyName>TrustedRootCertB6_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="TrustedRootCertB7"> <ds:KeyInfo> <ds:KeyName>TrustedRootCertB7_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:Certificate tp:certId="TrustedRootCertB8"> <ds:KeyInfo> <ds:KeyName>TrustedRootCertB8_Key</ds:KeyName> </ds:KeyInfo> </tp:Certificate> <tp:SecurityDetails tp:securityId="CompanyB_TransportSecurity"> <tp:TrustAnchors> <tp:AnchorCertificateRef tp:certId="TrustedRootCertB5"/> <tp:AnchorCertificateRef tp:certId="TrustedRootCertB6"/> <tp:AnchorCertificateRef tp:certId="TrustedRootCertB4"/> </tp:TrustAnchors> </tp:SecurityDetails> <tp:SecurityDetails tp:securityId="CompanyB_MessageSecurity"> <tp:TrustAnchors> <tp:AnchorCertificateRef tp:certId="TrustedRootCertB8"/> <tp:AnchorCertificateRef tp:certId="TrustedRootCertB7"/> </tp:TrustAnchors> </tp:SecurityDetails> <!-- An asynchronous delivery channel --> <tp:DeliveryChannel tp:channelId="asyncChannelB1" tp:transportId="transportB1" tp:docExchangeId="docExchangeB1"> <tp:MessagingCharacteristics tp:syncReplyMode="none" tp:ackRequested="always" tp:ackSignatureRequested="always" tp:duplicateElimination="always"/> </tp:DeliveryChannel> <!-- A synchronous delivery channel --> <tp:DeliveryChannel tp:channelId="syncChannelB1" tp:transportId="transportB2" tp:docExchangeId="docExchangeB1"> <tp:MessagingCharacteristics tp:syncReplyMode="signalsAndResponse" tp:ackRequested="always" tp:ackSignatureRequested="always" tp:duplicateElimination="always"/> </tp:DeliveryChannel> <tp:Transport tp:transportId="transportB1"> <tp:TransportSender> <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol> <tp:AccessAuthentication>basic</tp:AccessAuthentication> <tp:TransportClientSecurity> <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol> <tp:ClientCertificateRef tp:certId="CompanyB_ClientCert"/> <tp:ServerSecurityDetailsRef tp:securityId="CompanyB_TransportSecurity"/> </tp:TransportClientSecurity> </tp:TransportSender> <tp:TransportReceiver> <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol> <tp:AccessAuthentication>basic</tp:AccessAuthentication> <tp:Endpoint tp:uri="https://www.CompanyB.com/servlets/ebxmlhandler/async" tp:type="allPurpose"/> <tp:TransportServerSecurity> <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol> <tp:ServerCertificateRef tp:certId="CompanyB_ServerCert"/> <tp:ClientSecurityDetailsRef tp:securityId="CompanyB_TransportSecurity"/> </tp:TransportServerSecurity> </tp:TransportReceiver> </tp:Transport> <tp:Transport tp:transportId="transportB2"> <tp:TransportSender> <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol> <tp:AccessAuthentication>basic</tp:AccessAuthentication> <tp:TransportClientSecurity> <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol> <tp:ClientCertificateRef tp:certId="CompanyB_ClientCert"/> <tp:ServerSecurityDetailsRef tp:securityId="CompanyB_TransportSecurity"/> </tp:TransportClientSecurity> </tp:TransportSender> <tp:TransportReceiver> <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol> <tp:AccessAuthentication>basic</tp:AccessAuthentication> <tp:Endpoint tp:uri="https://www.CompanyB.com/servlets/ebxmlhandler/sync" tp:type="allPurpose"/> <tp:TransportServerSecurity> <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol> <tp:ServerCertificateRef tp:certId="CompanyB_ServerCert"/> <tp:ClientSecurityDetailsRef tp:securityId="CompanyB_TransportSecurity"/> </tp:TransportServerSecurity> </tp:TransportReceiver> </tp:Transport> <tp:DocExchange tp:docExchangeId="docExchangeB1"> <tp:ebXMLSenderBinding tp:version="2.0"> <tp:ReliableMessaging> <tp:Retries>3</tp:Retries> <tp:RetryInterval>PT2H</tp:RetryInterval> <tp:MessageOrderSemantics>Guaranteed</tp:MessageOrderSemantics> </tp:ReliableMessaging> <tp:PersistDuration>P1D</tp:PersistDuration> <tp:SenderNonRepudiation> <tp:NonRepudiationProtocol>http://www.w3.org/2000/09/xmldsig#</tp:NonRepudiationProtocol> <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction> <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm> <tp:SigningCertificateRef tp:certId="CompanyB_SigningCert"/> </tp:SenderNonRepudiation> <tp:SenderDigitalEnvelope> <tp:DigitalEnvelopeProtocol tp:version="2.0">S/MIME</tp:DigitalEnvelopeProtocol> <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm> <tp:EncryptionSecurityDetailsRef tp:securityId="CompanyB_MessageSecurity"/> </tp:SenderDigitalEnvelope> </tp:ebXMLSenderBinding> <tp:ebXMLReceiverBinding tp:version="2.0"> <tp:ReliableMessaging> <tp:Retries>3</tp:Retries> <tp:RetryInterval>PT2H</tp:RetryInterval> <tp:MessageOrderSemantics>Guaranteed</tp:MessageOrderSemantics> </tp:ReliableMessaging> <tp:PersistDuration>P1D</tp:PersistDuration> <tp:ReceiverNonRepudiation> <tp:NonRepudiationProtocol>http://www.w3.org/2000/09/xmldsig#</tp:NonRepudiationProtocol> <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction> <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm> <tp:SigningSecurityDetailsRef tp:securityId="CompanyB_MessageSecurity"/> </tp:ReceiverNonRepudiation> <tp:ReceiverDigitalEnvelope> <tp:DigitalEnvelopeProtocol tp:version="2.0">S/MIME</tp:DigitalEnvelopeProtocol> <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm> <tp:EncryptionCertificateRef tp:certId="CompanyB_EncryptionCert"/> </tp:ReceiverDigitalEnvelope> </tp:ebXMLReceiverBinding> </tp:DocExchange> </tp:PartyInfo> <!-- SimplePart corresponding to the SOAP Envelope --> <tp:SimplePart tp:id="CompanyA_MsgHdr" tp:mimetype="text/xml"> <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd" tp:version="2.0"> http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd </tp:NamespaceSupported> </tp:SimplePart> <tp:SimplePart tp:id="CompanyB_MsgHdr" tp:mimetype="text/xml"> <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd" tp:version="2.0"> http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd </tp:NamespaceSupported> </tp:SimplePart> <!-- SimplePart corresponding to a Receipt Acknowledgment business signal --> <tp:SimplePart tp:id="CompanyA_ReceiptAcknowledgment" tp:mimetype="application/xml"> <tp:NamespaceSupported tp:location="http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd" tp:version="2.0">http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd </tp:NamespaceSupported> </tp:SimplePart> <tp:SimplePart tp:id="CompanyB_ReceiptAcknowledgment" tp:mimetype="application/xml"> <tp:NamespaceSupported tp:location="http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd" tp:version="2.0"> http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd </tp:NamespaceSupported> </tp:SimplePart> <!-- SimplePart corresponding to an Exception business signal --> <tp:SimplePart tp:id="CompanyA_Exception" tp:mimetype="application/xml"> <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd" tp:version="2.0"> http://www.ebxml.org/bpss/Exception.xsd </tp:NamespaceSupported> </tp:SimplePart> <tp:SimplePart tp:id="CompanyB_Exception" tp:mimetype="application/xml"> <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd" tp:version="2.0"> http://www.ebxml.org/bpss/Exception.xsd </tp:NamespaceSupported> </tp:SimplePart> <!-- SimplePart corresponding to a request action --> <tp:SimplePart tp:id="CompanyA_Request" tp:mimetype="application/xml"> <tp:NamespaceSupported tp:location="http://www.rosettanet.org/schemas/PIP3A4RequestPurchaseOrder.xsd" tp:version="1.0"> http://www.rosettanet.org/schemas/PIP3A4RequestPurchaseOrder.xsd </tp:NamespaceSupported> </tp:SimplePart> <tp:SimplePart tp:id="CompanyB_Request" tp:mimetype="application/xml"> <tp:NamespaceSupported tp:location="http://www.rosettanet.org/schemas/PIP3A4RequestPurchaseOrder.xsd" tp:version="1.0"> http://www.rosettanet.org/schemas/PIP3A4RequestPurchaseOrder.xsd </tp:NamespaceSupported> </tp:SimplePart> <!-- SimplePart corresponding to a response action --> <tp:SimplePart tp:id="CompanyA_Response" tp:mimetype="application/xml"> <tp:NamespaceSupported tp:location="http://www.rosettanet.org/schemas/PurchaseOrderConfirmation.xsd" tp:version="1.0"> http://www.rosettanet.org/schemas/PIP3A4PurchaseOrderConfirmation.xsd </tp:NamespaceSupported> </tp:SimplePart> <tp:SimplePart tp:id="CompanyB_Response" tp:mimetype="application/xml"> <tp:NamespaceSupported tp:location="http://www.rosettanet.org/schemas/PurchaseOrderConfirmation.xsd" tp:version="1.0"> http://www.rosettanet.org/schemas/PIP3A4PurchaseOrderConfirmation.xsd </tp:NamespaceSupported> </tp:SimplePart> <!-- An ebXML message with a SOAP Envelope only --> <tp:Packaging tp:id="CompanyA_MshSignalPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="CompanyA_MshSignal" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml"> <tp:Constituent tp:idref="CompanyA_MsgHdr"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <tp:Packaging tp:id="CompanyB_MshSignalPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="CompanyB_MshSignal" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml"> <tp:Constituent tp:idref="CompanyB_MsgHdr"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <!-- An ebXML message with a SOAP Envelope plus a request action payload --> <tp:Packaging tp:id="CompanyA_RequestPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="CompanyA_RequestMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml"> <tp:Constituent tp:idref="CompanyA_MsgHdr"/> <tp:Constituent tp:idref="CompanyA_Request"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <tp:Packaging tp:id="CompanyB_RequestPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="CompanyB_RequestMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml"> <tp:Constituent tp:idref="CompanyB_MsgHdr"/> <tp:Constituent tp:idref="CompanyB_Request"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <!-- An ebXML message with a SOAP Envelope plus a response action payload --> <tp:Packaging tp:id="CompanyA_ResponsePackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="CompanyA_ResponseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml"> <tp:Constituent tp:idref="CompanyA_MsgHdr"/> <tp:Constituent tp:idref="CompanyA_Response"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <tp:Packaging tp:id="CompanyB_ResponsePackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="CompanyB_ResponseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml"> <tp:Constituent tp:idref="CompanyB_MsgHdr"/> <tp:Constituent tp:idref="CompanyB_Response"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <!-- An ebXML message with a SOAP Envelope plus a Receipt Acknowledgment payload --> <tp:Packaging tp:id="CompanyA_ReceiptAcknowledgmentPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="CompanyA_ReceiptAcknowledgmentMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml"> <tp:Constituent tp:idref="CompanyA_MsgHdr"/> <tp:Constituent tp:idref="CompanyA_ReceiptAcknowledgment"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <tp:Packaging tp:id="CompanyB_ReceiptAcknowledgmentPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="CompanyB_ReceiptAcknowledgmentMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml"> <tp:Constituent tp:idref="CompanyB_MsgHdr"/> <tp:Constituent tp:idref="CompanyB_ReceiptAcknowledgment"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <!-- An ebXML message with a SOAP Envelope plus an Exception payload --> <tp:Packaging tp:id="CompanyA_ExceptionPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="CompanyA_ExceptionMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml"> <tp:Constituent tp:idref="CompanyA_MsgHdr"/> <tp:Constituent tp:idref="CompanyA_Exception"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <tp:Packaging tp:id="CompanyB_ExceptionPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="CompanyB_ExceptionMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml"> <tp:Constituent tp:idref="CompanyB_MsgHdr"/> <tp:Constituent tp:idref="CompanyB_Exception"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <!-- An ebXML message with a Receipt Acknowledgment signal, plus a business response, or an ebXML message with an Exception signal --> <tp:Packaging tp:id="CompanyA_SyncReplyPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="CompanyA_SignalAndResponseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml"> <tp:Constituent tp:idref="CompanyA_MsgHdr"/> <tp:Constituent tp:idref="CompanyA_ReceiptAcknowledgment"/> <tp:Constituent tp:idref="CompanyA_Response"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <tp:Packaging tp:id="CompanyB_SyncReplyPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="CompanyB_SignalAndResponseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml"> <tp:Constituent tp:idref="CompanyB_MsgHdr"/> <tp:Constituent tp:idref="CompanyB_ReceiptAcknowledgment"/> <tp:Constituent tp:idref="CompanyB_Response"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <tp:Comment xml:lang="en-US">buy/sell agreement between CompanyA.com and CompanyB.com</tp:Comment> </tp:CollaborationProtocolAgreement>
cpp-cpa-extension-framework-2_x.xsd
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]