<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2005 sp2 U (http://www.altova.com) by any (Ru-Board) -->
<xs:schema xmlns="http://www.ruleml.org/0.86/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ruleml.org/0.86/xsd">
	<xs:include schemaLocation="http://www.ruleml.org/0.86/xsd/modules/ur_module.xsd"/>
	<xs:redefine schemaLocation="http://www.ruleml.org/0.86/xsd/nafnegdatalog.xsd">
		<xs:attributeGroup name="_rlab.attlist">
			<xs:attributeGroup ref="ruleID.attrib"/>
			<xs:attributeGroup ref="ruletype.attrib"/>
			<xs:attributeGroup ref="superior.attrib"/>
		</xs:attributeGroup>
		<xs:group name="_head.content">
			<xs:sequence>
				<xs:element ref="calc" minOccurs="0" maxOccurs="unbounded"/>
				<xs:group ref="_head.content"/>
			</xs:sequence>
		</xs:group>
		<xs:group name="naf.content">
			<xs:choice>
				<xs:group ref="naf.content"/>
				<xs:element ref="and"/>
			</xs:choice>
		</xs:group>
		<xs:group name="_slot.content">
			<xs:choice>
				<xs:group ref="_slot.content"/>
				<xs:group ref="constraint"/>
			</xs:choice>
		</xs:group>
		<xs:group name="rulebase.content">
			<xs:sequence>
				<xs:group ref="rulebase.content"/>
				<xs:element ref="competing_rules" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:group>
		<xs:attributeGroup name="rulebase.attlist">
			<xs:attributeGroup ref="rulebase.attlist"/>
			<xs:attribute name="rdf_import" type="xs:anyURI" use="optional"/>
			<xs:attribute name="rdf_export" type="xs:string" use="optional"/>
			<xs:attribute name="rdf_export_classes" type="xs:NMTOKENS" use="optional"/>
		</xs:attributeGroup>
		<!--
			'href' is added to rel's list of attributes
		-->
		<xs:attributeGroup name="rel.attlist">
			<xs:attributeGroup ref="rel.attlist"/>
			<xs:attributeGroup ref="href.attrib"/>
		</xs:attributeGroup>
		<!--
			'href' is added to ind's list of attributes
		-->
		<xs:attributeGroup name="ind.attlist">
			<xs:attributeGroup ref="ind.attlist"/>
			<xs:attributeGroup ref="href.attrib"/>
		</xs:attributeGroup>
	</xs:redefine>
	<xs:attributeGroup name="ruleID.attrib">
		<xs:attribute name="ruleID" type="xs:ID" use="required"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="ruletype.attrib">
		<xs:attribute name="ruletype" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="strictrule"/>
					<xs:enumeration value="defeasiblerule"/>
					<xs:enumeration value="defeater"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="superior.attrib">
		<xs:attribute name="superior" type="xs:IDREFS" use="optional"/>
	</xs:attributeGroup>
	<xs:group name="pos_term">
		<xs:choice>
			<xs:element ref="ind"/>
			<xs:element ref="var"/>
			<xs:element ref="_function_call"/>
		</xs:choice>
	</xs:group>
	<xs:group name="term">
		<xs:choice>
			<xs:group ref="pos_term"/>
			<xs:element ref="_not"/>
		</xs:choice>
	</xs:group>
	<xs:attributeGroup name="_function_call.attlist">
		<xs:attribute name="name" type="xs:string" use="required"/>
	</xs:attributeGroup>
	<xs:group name="_function_call.content">
		<xs:sequence>
			<xs:group ref="pos_term" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:group>
	<xs:complexType name="_function_call.type">
		<xs:group ref="_function_call.content"/>
		<xs:attributeGroup ref="_function_call.attlist"/>
	</xs:complexType>
	<xs:element name="_function_call" type="_function_call.type"/>
	<xs:attributeGroup name="calc.attlist"/>
	<xs:group name="calc.content">
		<xs:sequence>
			<xs:element ref="_function_call" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:group>
	<xs:complexType name="calc.type">
		<xs:group ref="calc.content"/>
		<xs:attributeGroup ref="calc.attlist"/>
	</xs:complexType>
	<xs:element name="calc" type="calc.type"/>
	<xs:group name="constraint">
		<xs:choice>
			<xs:element ref="_not"/>
			<xs:element ref="_or"/>
			<xs:element ref="_and"/>
		</xs:choice>
	</xs:group>
	<xs:complexType name="_not.type">
		<xs:choice>
			<xs:element ref="ind"/>
			<xs:element ref="var"/>
		</xs:choice>
	</xs:complexType>
	<xs:element name="_not" type="_not.type"/>
	<xs:complexType name="_and.type">
		<xs:sequence>
			<xs:group ref="term"/>
			<xs:group ref="term" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="_or.type">
		<xs:sequence>
			<xs:group ref="term"/>
			<xs:group ref="term" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="_and" type="_and.type"/>
	<xs:element name="_or" type="_or.type"/>
	<xs:attributeGroup name="competing_rules.attlist">
		<xs:attribute name="c_rules" type="xs:IDREFS" use="required"/>
		<xs:attribute name="slotnames" type="xs:NMTOKENS" use="optional"/>
	</xs:attributeGroup>
	<xs:group name="competing_rules.content">
		<xs:sequence>
			<xs:element ref="_crlab"/>
		</xs:sequence>
	</xs:group>
	<xs:complexType name="competing_rules.type">
		<xs:group ref="competing_rules.content"/>
		<xs:attributeGroup ref="competing_rules.attlist"/>
	</xs:complexType>
	<xs:element name="competing_rules" type="competing_rules.type"/>
	<xs:attributeGroup name="_crlab.attlist"/>
	<xs:group name="_crlab.content">
		<xs:choice>
			<xs:element ref="ind"/>
		</xs:choice>
	</xs:group>
	<xs:complexType name="_crlab.type">
		<xs:group ref="_crlab.content"/>
		<xs:attributeGroup ref="_crlab.attlist"/>
	</xs:complexType>
	<xs:element name="_crlab" type="_crlab.type"/>
</xs:schema>
