protoSDC is based on a tool suite that is capable of transforming XML Schemas to protobuf message types and generating pre-compiled packages to be used with different programming languages. The figure below shows the main building blocks of protoSDC and their interaction with each other.
Essentially, there are two tools involved:
Proto Converter transforms XML Schemas to protobuf message types and other target languages (like for example Kotlin, Rust, or Python code). The tool binary is deployed to the Gitlab Package Registry.
Proto Model uses Proto Converter to read the BICEPS participant and message model XML Schema and convert it accordingly. Proto Model also specifies the BICEPS service interface as well as a discovery/metadata model and service interface. All protobuf code fragments are compiled with protoc and deployed to the Gitlab Package Registry.