<?xml version="1.0"?>
<grammar
  xmlns="http://relaxng.org/ns/structure/1.0"
  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
  xmlns:dcr="http://www.isocat.org/ns/dcr"
>
	<start>
		<ref name="any"/>
	</start>

	<define name="any">
		<choice>
			<ref name="dcr_elements"/>
			<element>
				<anyName>
					<except>
						<nsName ns="http://www.isocat.org/ns/dcr"/>
					</except>
				</anyName>
				<ref name="content"/>
			</element>
		</choice>
	</define>
	
	<define name="content">
		<zeroOrMore>
			<choice>
				<ref name="dcr_attributes"/>
				<attribute>
					<anyName>
						<except>
							<nsName ns="http://www.isocat.org/ns/dcr"/>
						</except>
					</anyName>
				</attribute>
				<ref name="any"/>
				<text/>
			</choice>
		</zeroOrMore>
	</define>
	
	<define name="dcr_attributes">
		<choice>
			<ref name="dcr_attribute_datcat"/>
			<ref name="dcr_attribute_value_datcat"/>
			<ref name="dcr_attribute_any"/>
		</choice>
	</define>
	
	<define name="dcr_attribute_datcat">
		<attribute name="datcat" ns="http://www.isocat.org/ns/dcr">
			<data type="anyURI"/>
		</attribute>
	</define>
	
	<define name="dcr_attribute_value_datcat">
		<attribute name="valueDatcat" ns="http://www.isocat.org/ns/dcr">
			<data type="anyURI"/>
		</attribute>
	</define>
	
	<define name="dcr_attribute_any">
		<attribute>
			<nsName ns="http://www.isocat.org/ns/dcr">
				<except>
					<name>datcat</name>
				</except>
			</nsName>
		</attribute>
	</define>

	<define name="dcr_elements">
		<choice>
			<ref name="dcr_element_datcat"/>
			<ref name="dcr_element_value_datcat"/>
			<ref name="dcr_element_any"/>
		</choice>
	</define>
	
	<define name="dcr_element_datcat">
		<element name="datcat" ns="http://www.isocat.org/ns/dcr">
			<attribute name="pid">
				<data type="anyURI"/>
			</attribute>
		</element>
	</define>
	
	<define name="dcr_element_value_datcat">
		<element name="valueDatcat" ns="http://www.isocat.org/ns/dcr">
			<attribute name="pid">
				<data type="anyURI"/>
			</attribute>
		</element>
	</define>
	
	<define name="dcr_element_any">
		<element>
			<nsName ns="http://www.isocat.org/ns/dcr"/>
			<ref name="content"/>
		</element>
	</define>
	
</grammar>

