We are providing tool developers with the metamodels of PNML specification, as Eclipse Modeling Framework (EMF) models. You may download them from the list items below and use them to whatever purpose suits your need. They are also provided in single archive using the following link.
However, we are providing these metamodels with the following disclaimer.
Here are the metamodels:
- PNML Core Model
- Place/Transition nets
- Arbitrary declarations
- Cyclic Enumerations
- Finite Enumerations
- Finite Integer Ranges
- High-level Core Structure
Constraints on PNML models as ISO Schematron rules
Some constraints on PNML models could not be captured in the native PNML schema. In the standard document, they are mostly expressed in OCL on the PNML metamodels. They are embedded in the EMF models above. Using PNML Framework or PNML DoC, PNML Documents will be transparently validated against these constraints for you.
However, depending on your tool kit, you may find more convenient to have an alternative based on XSLT transformations to validate your PNML Document. To this end, we provide the implementation of those constraints in Schematron (cf. the section below).
You may use an XSLT engine such as Saxon to perform the validation. We also provide for your convenience a simple Shell script you can slightly configure to handle the validation process.
Another XSLT engine, which is free, is AltovaXML. It works only on Windows. It is schema-aware, whereas Saxon HE and PE are not (but Saxon EE, which costs some money, is.) This means that you can use the schema-version of the constraints we provide with AltovaXML instead of the default one to check your documents (PT nets up to now).
With a schema-aware rule, we can check for instance that the marking of a place is a non-negative integer, using some XPATH 2.0 functions, understood by schema-aware XLST engines.
Constraints documents in Schematron
- Constraints on Core models
- Contraints on P/T nets
- Schema-aware version of the contraints on P/T Nets
- Contraints on Symmetric nets
- Linux/Unix Shell script to handle the validation process.
- Windows Shell script to handle the validation process. Same invocation style as for the Linux one. It asssumes the AltovaXML executable is in the parent directory of your working directory. It also assumes that Schematron stylesheets are in iso-schematron-xslt2 directory, under your working directory. Of course, you can change all to your specific settings.