xPDK File formats

The file formats are based on XML as this is a very mature definition. This allows to use all kinds of tooling to be used according to each preference.

The typical structure of the xPDK files is a header like below followed by the content. This common header allows to include documents via
xs:include
This is very handy to split up larger files as well as avoid duplication of data that is needed in multiple places.


The XML files have a XSD defined schema that provides for:

Programming languages

See also platform setup.
Many tools exist like xsltproc which allow direct XML processing without using full programming languages. Such tools use the XML specifications for getting data like XQuery and XSLT. This is widely available.

C++

The xerces and libxml2 are the advanced libraries that are commonly used, also in xmllint (libxml2) and xsdcxx (xerces). These parsers provide extensive support for XML and have the schema validators and so on build in.
In addition to this, we generate a C++ API that is uses TinyXML; this does not contain XML validation, but provides for smaller footprint.

Python

xml.etree.ElementTree is a python library to work with xml. The Python library that we generate uses this for read/write access on the XML.
We assume Python3.6 or higher, but do not test on all kinds of platforms / versions.