<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	targetNamespace="http://www.semwebtech.org/lang/2006/logic"
	xmlns:log="http://www.semwebtech.org/lang/2006/logic"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	elementFormDefault="qualified"
	attributeFormDefault="unqualified"
	version="0.12">

	<xsd:import
		namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
		schemaLocation="rdf.xsd" />

	<xsd:group name="Response">
		<xsd:choice>
			<xsd:element ref="log:answers" />
			<xsd:element ref="log:answer" />
			<xsd:element ref="log:variable-bindings" />
			<xsd:element ref="log:result" />
			<xsd:any
				namespace="##other"
				processContents="lax" />
		</xsd:choice>
	</xsd:group>

	<xsd:element name="answers">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element
					ref="log:answer"
					minOccurs="0"
					maxOccurs="unbounded" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="answer">
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref="log:variable-bindings" />
				<xsd:sequence>
					<xsd:element ref="log:result" />
					<xsd:element
						ref="log:variable-bindings"
						minOccurs="0" />
				</xsd:sequence>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>

	<xsd:element
		name="result"
		type="rdf:XMLLiteral" />

	<xsd:element name="variable-bindings">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element
					name="tuple"
					minOccurs="1"
					maxOccurs="unbounded">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element
								name="variable"
								minOccurs="1"
								maxOccurs="unbounded">
								<xsd:complexType>
									<xsd:complexContent>
										<xsd:extension
											base="rdf:XMLLiteral">
											<xsd:attribute
												name="name"
												type="xsd:string"
												use="required" />
										</xsd:extension>
									</xsd:complexContent>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

</xsd:schema>

