<?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>
		File name: resetinhibitorptnet.pntd
		Version  : 2009
		author   : Jan Martijn van der Werf
		e-mail   : j.m.e.m.v.d.werf@tue.nl
		revision : 2
		by       : L. Hillah, Afnor

		(c) 2009 Technische Universiteit Eindhoven
	</a:documentation>

	<include href="http://www.pnml.org/version-2009/grammar/ptnet.pntd">
		<a:documentation>
			We override the ptnet definition of net type, since we only allow
			for inhibitor and reset nets in this definition
		</a:documentation>

		<define name="nettype.uri" combine="choice">
			<a:documentation>
				The URI value for the net type attribute,
				declaring the type of P/T nets.
			</a:documentation>
			<attribute name="type">
				<value>http://www.pnml.org/version-2009/extensions/resetinhibitorptnet</value>
			</attribute>
		</define>
	</include>

	<include href="http://www.pnml.org/version-2009/extensions/specialarcs.rng">
		<a:documentation>
			We override the enumeration definition "specialarc.value" to
			only allow normal, inhibitor and reset arcs.
		</a:documentation>
		<define name="specialarc.value">
			<a:documentation>
				Enumeration for the values of this special PT net
				arcs, allowing normal, inhibitor and reset arcs.
			</a:documentation>
			<choice>
				<value>normal</value>
				<value>inhibitor</value>
				<value>reset</value>
			</choice>
		</define>
	</include>


	<define name="arc.labels" combine="interleave">
		<a:documentation>
			An arc of a P/T net may be either a normal, or inhibitor, or 
			a reset arc.
		</a:documentation>
		<ref name="ArcType"/>
	</define>

</grammar>
