<?xml version="1.0" encoding="UTF-8"?>

<grammar ns="http://www.pnml.org/version-2009/grammar/pnml"
	xmlns="http://relaxng.org/ns/structure/1.0"
	xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"> 

	<a:documentation>
		RELAX NG implementation of Petri Net Type Definition for Symmetric nets.
		This PNTD re-defines the value of nettype.uri for Symmetric nets and
		the grammars it needs for defining that type. 

		File name: symmetricnet.rng
		Version: 2009  
		(c) 2007-2009
		Lom Hillah (AFNOR)
		Revision:
		July 2008 - L.H
	</a:documentation>

	<a:documentation>
		Symmetric nets grammar uses the following grammars: HL Core Structure,
		Cyclic Enumerations, Finite Enumerations, Finite Integers, Booleans, Multisets.
		Dots and Partitions.
	</a:documentation>
	
	<include href="http://www.pnml.org/version-2009/grammar/partitions.rng"/>
	<include href="http://www.pnml.org/version-2009/grammar/cyclicenumerations.rng"/>
	<include href="http://www.pnml.org/version-2009/grammar/finiteenumerations.rng"/>
	<include href="http://www.pnml.org/version-2009/grammar/finiteintranges.rng"/>
	<include href="http://www.pnml.org/version-2009/grammar/booleans.rng"/>
	<include href="http://www.pnml.org/version-2009/grammar/multisets.rng"/>
	<include href="http://www.pnml.org/version-2009/grammar/dots.rng"/>
	<!-- We include Integers because they are used at least by Multiset::NumberOf;
	but strictly speaking Integers are not allowed to be used for sorts definition in
	Symmetric Nets !  -->
	<include href="http://www.pnml.org/version-2009/grammar/integers.rng"/>
	<include href="http://www.pnml.org/version-2009/grammar/hlcorestructure.rng"/>
	<include href="http://www.pnml.org/version-2009/grammar/terms.rng"/>
	<include href="http://www.pnml.org/version-2009/grammar/pnmlcoremodel.rng"/>

	
	<define name="nettype.uri" combine="choice">
		<a:documentation>
			We re-define the URI value for the net type attribute, 
			declaring the type of Symmetric nets.
		</a:documentation>
		<attribute name="type">    
			<value>http://www.pnml.org/version-2009/grammar/symmetricnet</value>   
		</attribute>
	</define>


</grammar>

