<?xml version="1.0" encoding="UTF-8"?>
<xs:schema 
targetNamespace="http://www.ruleml.org/0.87/xsd" 
xmlns="http://www.ruleml.org/0.87/xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>

	<xs:annotation>
		<xs:documentation xml:lang="en">
			XML Schema for a 'UR'-Centered Binary Ground-Datalog RuleML sublanguage
			File: urcbindatagroundlog.xsd
			Version: 0.87
			Last Modification: 2004-08-09
		</xs:documentation>
	</xs:annotation>
	
	<xs:redefine schemaLocation="urcbindatalog.xsd">
		<!--
			remove Vars so that arg's content model is: (Ind)
		-->
		<xs:group name="arg.content">
			<xs:choice>
				<xs:element ref="Ind"/>
			</xs:choice>
		</xs:group>

		<!--
			remove Vars so that Atom's content model is:
			(
        	            ( (opr | Rel), (role | Slot)*, (arg | Ind), (arg | Ind), (role | Slot)* ) |
                	    ( (role | Slot)*, (arg | Ind), (arg | Ind), (role | Slot)*, opr )
			)
		-->
		<xs:group name="Atom.extend">
			<xs:sequence>
				<xs:choice minOccurs="2" maxOccurs="2">
					<xs:element ref="arg"/>
					<xs:element ref="Ind"/>
				</xs:choice>
			</xs:sequence>
		</xs:group>

		<!--
			remove Vars so that name's content model is just:
			( Ind )
		-->
		<xs:group name="name.content">
			<xs:choice>
				<xs:element ref="Ind"/>
			</xs:choice>
		</xs:group>

		<!--
			remove Vars so that filler's content model is just:
			( Ind )
		-->
		<xs:group name="filler.content">
			<xs:choice>
				<xs:element ref="Ind"/>
			</xs:choice>
		</xs:group>

		<!--
			remove Vars so that Slot's content model is:
			(
			    (name, filler) | (filler, name) |
                	    
	                    ( Ind, Ind )
			)
		-->
		<xs:group name="Slot.extend">
			<xs:choice>
				<xs:element ref="Ind"/>
			</xs:choice>
		</xs:group>

	</xs:redefine>

</xs:schema>
