The PoCSpec tooling project provides applications for translating our custom XML specifications into
artifacts for the upcoming standard.
pocspec2html HF-Device.xml
– will produce HF-Device.html to visualize the DevSpec.pocspec2reqif -o HF-Device-filled.reqif HF-Device.reqif HF-Device.xml
– will fill HF-Device-filled.reqif with information from the DevSpec.pocspec2schematron HF-Device.xml
– will produce a Schematron file for validating a device model against the DevSpec.The project requires a C++17 compliant compiler, CMake and the following libraries:
To compile the project run the following commands (replacing the parameters in <>
with appropriate values for your system):
mkdir -p pocspec-tooling/build
cd pocspec-tooling
git clone https://<username>@git.code.sf.net/p/pocspec/tooling pocspec-tooling
cd build
cmake -DPOCSPEC_NOMENCLATURE_DIR=<path/to/nomenclature> -DPOCSPEC_SPEC_DIR=<path/to/dev-and-mod-specs> ../pocspec-tooling
make -j<number-of-CPU-threads>
The resulting applications can be found in the subdirectory pocspec/apps
inside the build directory.
See Examples. All applications except pocspec2schematron
print generic usage options/parameters when called without any arguments.
The tool pocspec2reqif
is the most complicated one, here is a more detailed tutorial to use it:
Given the example files inside the tutorial directory of this project, you may run:
pocspec2reqif -o tutorial.reqif sdc-ieee-requirements-model-plain.reqif tutorial.xml
for producing a tutorial.reqif that contains some of the information from tutorial.xml in the specified place.
You may then use the external ieee-converter tool to produce a standard .docm document the following way:
java -jar /path/to/ieee-converter.jar -f ./tutorial.reqif
Choosing what information from the tutorial.xml is placed into the generated tutorial.reqif happens via
the include-spec(...)
mechanism. Have a look at sdc-ieee-requirements-model-plain.reqif
, you will
notice an element containing include-spec(GasSupplyVMD)
. This selects the information from tutorial.xml
using the string GasSupplyVMD
. Open tutorial.xml
, you will notice the following XML element:
<pm:Vmd Handle="vmd_gas_supply" PoCSpecCardinalityMin="0" PoCSpecCardinalityMax="INF" EntryPointId="GasSupplyVMD">
This is the way to specify an entrypoint into our Dev- or ModSpec. Entrypoints may be defined for MDS, VMD and Channel
elements and be referenced from anywhere inside a .reqif file using the include-spec(...)
mechanism described above.