Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
144 lines (127 sloc) 3.65 KB
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<a:documentation>
RELAX NG implementation of High-level Petri nets Core Structure grammar.
This schema implements the core structure shared by High-level Petri nets types.
File name: hlcorestructure.rng
Version: 2009
(c) 2007-2009
Lom Hillah (AFNOR)
Revision:
July 2008 - L.H
</a:documentation>
<!-- Definition of additional labels for high-level nets -->
<define name="net.labels" combine="interleave">
<a:documentation>
A high-level net may have a Declaration.
</a:documentation>
<zeroOrMore><ref name="HLDeclaration"/></zeroOrMore>
</define>
<define name="page.labels" combine="interleave">
<a:documentation>
A page of a high-level net may also have a Declaration.
</a:documentation>
<zeroOrMore><ref name="HLDeclaration"/></zeroOrMore>
</define>
<define name="place.labels" combine="interleave">
<a:documentation>
A place of a high-level net may have a Type and an HLMarking.
</a:documentation>
<interleave>
<optional><ref name="Type"/></optional>
<optional><ref name="HLMarking"/></optional>
</interleave>
</define>
<define name="transition.labels" combine="interleave">
<a:documentation>
A transition of a high-level net may have a Condition.
</a:documentation>
<optional><ref name="Condition"/></optional>
</define>
<define name="arc.labels" combine="interleave">
<a:documentation>
An arc of a high-level net may have a high-level inscription.
</a:documentation>
<optional><ref name="HLAnnotation"/></optional>
</define>
<!-- Complex labels definition for high-level nets. -->
<define name="HLDeclaration">
<a:documentation>
The 'Declaration' label definition for a net node or a page.
</a:documentation>
<element name="declaration">
<interleave>
<ref name="simpletextlabel.content"/>
<optional>
<element name="structure">
<ref name="Declarations"/>
</element>
</optional>
</interleave>
</element>
</define>
<define name="Type">
<a:documentation>
The 'Type' label definition for a place.
</a:documentation>
<element name="type">
<interleave>
<ref name="simpletextlabel.content"/>
<optional>
<element name="structure">
<ref name="Sort"/>
</element>
</optional>
</interleave>
</element>
</define>
<define name="HLMarking">
<a:documentation>
The 'high-level initial marking' label definition for a place.
The same reasoning applies as for the definitions above.
</a:documentation>
<element name="hlinitialMarking">
<interleave>
<ref name="simpletextlabel.content"/>
<optional>
<element name="structure">
<ref name="Term"/>
</element>
</optional>
</interleave>
</element>
</define>
<define name="Condition">
<a:documentation>
The 'Condition' label definition expressing the guard of a transition.
The same reasoning applies as for the above definitions.
</a:documentation>
<element name="condition">
<interleave>
<ref name="simpletextlabel.content"/>
<optional>
<element name="structure">
<ref name="Term"/>
</element>
</optional>
</interleave>
</element>
</define>
<define name="HLAnnotation">
<a:documentation>
The 'HLAnnotation' label definition for an arc.
</a:documentation>
<element name="hlinscription">
<interleave>
<ref name="simpletextlabel.content"/>
<optional>
<element name="structure">
<ref name="Term"/>
</element>
</optional>
</interleave>
</element>
</define>
</grammar>