To build and run BPMNspector from checked out sources simply run the start script:
$ BPMNspector fileToValidate.bpmn
Or alternatively: Run a precompiled jar file:
$ java -jar BPMNspector.jar fileToValidate.bpmn
After completion a HTML report will be opened automatically - all reports are stored in
Available options are listed by calling:
$ BPMNspector -h
[-c <[opt1[,opt2]...>] [-d] [-h] [-o] [-r ] Options: -c,--checks <[opt1[,opt2]...> defines which checks should be performed. Allowed values: EXT - checks conformance to EXT rules ALL - performs all checks (default) REF - checks the correctness of references XSD - performs an XML schema validation -d,--debug run BPMNspector in debug mode -h,--help prints this usage information -o,--open open the report file upon completion -r defines which report type should be generated. Allowed values: ALL - create all report types XML - create XML reports HTML - create HTML reports (default) NONE - No report files should be created Examples: BPMNspector myfile.bpmn BPMNspector c:\absolute\path\to\folder -c REF -d BPMNspector c:\absolute\path\to\file.bpmn -o -r HTML
BPMNspector is able to perfom various checks on BPMN models stored in the XSD-based serialization format of BPMN. Thus, an important prerequisite to use BPMNspector is that the models to be checked are stored in the correct format.
The following aspects can be checked using BPMNspector
SequenceFlowhas to reference a source and a target element). Technically
xs:idattributes are references either using
xs:QNameattributes/elements. Using this technique potential problems may arise:
messageRefattribute of a
SendTaskelement does not reference a
message(as stated in the spec) but another type of a BPMN element.
StartEventis used to start a process,
EndEventsmust be used, too.
errorEventDefinition) is only allowed as an
BoundaryEvent, or an interrupting
SubProcessmust be started with a 'none'
StartEvent- other types are not allowed.