<?xml version="1.0"?>

<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">
			Description RuleML elements module.
			This is the XML Schema description elements module for RuleML.
			File: desc_module.xsd
			Version: 0.87
			Last Modification: 2004-07-23
			
			This module declares the following description RuleML elements:
			* rbaselab
			* rlab
			
			The approach is modelled after that used in "Modularization of XHTML in XML Schema"
			WD [http://www.w3.org/TR/xhtml-m12n-schema/], which will soon be integrated with
			"Modularization of XHTML" (REC-xhtml-modularization-20010410)
			[http://www.w3.org/TR/xhtml-modularization/].
		</xs:documentation>
	</xs:annotation>

	<!--
		*** rbaselab ***
		content model: (Ind)
		
		A Rulebase label.
	
		Rulebases may have an optional label, 'rbaselab', allowing the naming of an entire
		individual rulebase in a fashion that is accessible within the knowledge representation.
		These labels use individual constants (or, in hornlog, complex terms).

		For example, this can help for representing prioritization between rulebases, or perhaps
		to enable forward inferencing of selected rulebase(s).
	-->
	<xs:attributeGroup name="rbaselab.attlist"/>
	<xs:group name="rbaselab.content">
		<xs:choice>
			<xs:element ref="Ind"/>
		</xs:choice>
	</xs:group>
	<xs:complexType name="rbaselab.type">
		<xs:group ref="rbaselab.content"/>
		<xs:attributeGroup ref="rbaselab.attlist"/>
	</xs:complexType>
	<xs:element name="rbaselab" type="rbaselab.type"/>
	
	<!--
		*** rlab ***
		content model: (Ind)

		A rule label.

		A rule (an Imp, Fact, or Query) may have an optional label, 'rlab', creating accessibility
		within the knowledge representation. This can help for representing prioritization between
		rules, for example. These labels use individual constants (or, in hornlog, complex terms).
		
		NOTE: rule labels are not required to be unique within a rulebase.
	-->
	<xs:attributeGroup name="rlab.attlist"/>
	<xs:group name="rlab.content">
		<xs:choice>
			<xs:element ref="Ind"/>
		</xs:choice>
	</xs:group>
	<xs:complexType name="rlab.type">
		<xs:group ref="rlab.content"/>
		<xs:attributeGroup ref="rlab.attlist"/>
	</xs:complexType>
	<xs:element name="rlab" type="rlab.type"/>
	
</xs:schema>
