Petri Net Markup Language schema
RELAX NG implementation of modular PNML (bases on structured PNML)
version: 1.3.2b
according to the paper by Billington et al
(c) 2001-2004, Michael Weber (mweber@informatik.hu-berlin.de)
Here, we redefine the reference to a node. Now, a reference may refer
to an export node of an instantiated module. Thus, it refers to the
identifier of the instance within this net (instance) and to the identfier
of the export node as defined in the module (ref).
Validating instruction:
- If _instance_ is not present _ref_ MUST refer to an _id_ within the same
XML document.
- Otherwise, _ref_ MUST refer to an _id_ within that XML document to
which the _ref_ attribute of that element refers to which is referred
by _instance_.
- _instance_ MUST refer to an _id_ within the same XML document.
Now, a PNML file may contain modules.
A module has a unique identifier (id) and consists of
an interface (interface) and several net objects (net.object).
A module hides its net objects. Only the objects within its
interface are visible outside the module. In general, a module
is defined in an own file.
Now, a net object is additionally a module instance.
The module interface consists of import/export places/transitions.
An import node is a node which is defined outside the module. Thus,
that node is visible inside the module only if it is imported.
Whereas an export node is a node which is defined inside the module.
Thus, that node is visible outside the module only if it is exported.
Import nodes behave like normal nodes (without labels). Export nodes
behave like reference nodes.
An instance of a module has a unique identifier (id) and refers to the
URL of the module definition (ref). It consists of several import nodes.
Each of them connects an import node of the module instance with a node
within the net.
An import node of an instance connects a import node definition within
the instantiated module (parameter) with a reference to a node. Thus,
it has a attribute parameter and behaves like a reference node.