Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
88 lines (76 sloc) 2.29 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 user-defined grammar.
This schema implements the extended signature framework
for user-defined (different from user-declared) sorts and operators
on High-level Petri nets.
File name: arbitrarydeclarations.rng
Version: 2009
(c) 2007-2009
Lom Hillah (AFNOR)
Revision:
July 2008 - L.H
</a:documentation>
<define name="Declaration" combine="choice">
<ref name="Unparsed"/>
</define>
<define name="SortDeclaration" combine="choice">
<a:documentation>
A Sort declaration is a user-declared sort, using built-in sorts.
It defines known concrete sort declarations.
</a:documentation>
<ref name="ArbitrarySort"/>
</define>
<define name="OperatorDeclaration" combine="choice">
<a:documentation>
An Operator declaration is a user-declared operator using built-in.
constructs.
</a:documentation>
<ref name="ArbitraryOperator"/>
</define>
<define name="ArbitrarySort">
<a:documentation>
A user-defined Sort declaration is a SortDeclaration.
Users have the possibility to add
any well-formed XML pattern to complete this definition.
It has an id.
</a:documentation>
<element name="arbitrarysort">
<ref name="SortDeclaration.content"/>
</element>
</define>
<define name="ArbitraryOperator">
<a:documentation>
A user-defined operator declaration is an Operator Declaration.
It refers to its input and output sorts.
</a:documentation>
<element name="arbitraryoperator">
<ref name="OperatorDeclaration.content"/>
<interleave>
<zeroOrMore>
<element name="input">
<ref name="Sort"/>
</element>
</zeroOrMore>
<element name="output">
<ref name="Sort"/>
</element>
</interleave>
</element>
</define>
<define name="Unparsed">
<a:documentation>
A user-defined element which is unparsed.
It is defined with the 'anyElement' construct.
</a:documentation>
<element name="unparsed">
<ref name="Declaration.content"/>
<zeroOrMore>
<ref name="anyElement"/>
</zeroOrMore>
</element>
</define>
</grammar>