Open Source software for ebCore CPPA3

The CPPA3 package provides a collection of open source Python modules to process OASIS ebCore CPPA3 documents and related functionality. CPPA3 is the version 3 of the ebXML Collaboration Protocol Profile and Agreement specification, currently under development.

A CPP is an XML document representing a party’s sending and receiving technical and business collaboration capabilities. A CPA is an XML document representing the agreed collaboration parameters of two parties. A CPA can be used to configure B2B messaging systems to exchange messages between two parties using the agreed settings.

The OASIS ebCore Technical Committee (ebXML Core) is maintaining and enhancing the CPPA3 specification. The development of this package tracks the development of the draft ebCore CPPA3 schema and specification. This release of the package is compatible with the draft version 2016_02_17. That version supports various B2B messaging protocols:
  • ebMS 3.0 Core,
  • AS4,  
  • parts of the ebMS 3.0 Part 2 Advanced Features specification,  
  • ebMS 2.0,
  • and the AS1, AS2 and AS3 IETF EDIINT specifications.  
Currently, two modules are provided:
  1. provides functionality to fully automatically form a CPA from two CPPs. 
  2. provides functionality to generate a (set of) P-Modes from a CPA in a JSON notation that follows (as closely as possible) the dotted string notation used in the OASIS specification.
As the CPPA3 schema is still a draft under development, it may change in backward-incompatible ways, and this library will be updated accordingly. The library is distributed via PyPi, the Python Package index, where it lives at  If you have a fairly recent installation of Python, you can install it using PIP, the package manager that is bundled with Python, from a command line as follows:
pip install cppa3
This will also install any required packages you may not yet have on your system.
The full package from PyPi also includes a growing number (currently 146) of tests, including sample CPPs, derived CPAs and derived PModes. You can run the tests using the command:   python test 
The main purpose of the library is to support the development of the CPPA3 schema and specification, and to support some user communities.  On top of the library a lot of interesting functionality can be implemented quite easily.  More on some of that work is to follow in future posts.  In the mean time, any questions or comments are welcome ...  

A minor update of the library has been published, some schema fixes and a reorganization of the test suite (in preparation for a new set of enhancements). Focus Areas: BPEL | DITA | ebXML | IDtrust | OpenDocument | SAML | UBL | UDDI
OASIS sites: OASIS | Cover Pages | | AMQP | CGM Open | eGov | Emergency | IDtrust | LegalXML | Open CSA | OSLC | WS-I