<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.wsmo.org/wsml/wrl-syntax#"
xmlns="http://www.wsmo.org/wsml/wrl-syntax#"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:annotation>
		<xs:documentation>
			version: $Revision: 1.1 $
			date: $Date: 2005/09/09 19:51:00 $
			author: Jos de Bruijn
		
			this schema is a module, which belongs to the WRL/XML schema specification.
			This schema provides the necessary definitions for the identifiers in WRL/XML. 
		</xs:documentation>
	</xs:annotation>
	<xs:simpleType name="wrlIRI">
		<xs:annotation>
			<xs:documentation>
				The basic kind of identifier in WRL: an IRI. 
				As an URI is more restrictive then an IRI, we are forced to use xs:string instead of xs:anyURI as type!
				Note that when translating the standard WRL syntax to XML, Qualified names are resolved to full IRIs.
				
				When using the reserved IRI http://www.wsmo.org/wsml/wrl-syntax#anonymousID, it is interpreted as an anonymous ID.
			</xs:documentation>
		</xs:annotation>
		<xs:union memberTypes="xs:anyURI"/>
	</xs:simpleType>
	<xs:complexType name="wrlAnyValue" mixed="true">
		<xs:annotation>
			<xs:documentation>
				A data value in WRL.
				The type is required. Because we allow complex constructed data values, a data value can have multiple arguments. The arguments are strictly ordered.
				The content is mixed; it is thus possible to use both regular text and tags which represent the arguments. Regular text is interpreted as the first argument.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="argument" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="type" type="wrlIRI" use="required"/>
	</xs:complexType>
	<xs:complexType name="wrlID">
		<xs:annotation>
			<xs:documentation>wrlID corresponds with
			either an IRI, a string, an integer, a
			decimal, a variable or an anonymous
			identifier. The type of the identifier is
			indicated in the attribute 'type'. The IRIs
			identifying the types IRI, string, integer and
			decimal correspond with the IRIs of the
			datatypes as defined in Appendix C of the WRL
			specification. The type variable is identified
			with the IRI
			http://www.wsmo.org/wsml/wrl-syntax#variable,
			the type anonymousID is identified with
			http://www.wsmo.org/wsml/wrl-syntax#anonymousID.</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="type" type="wrlIRI" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="wrlVariable">
		<xs:annotation>
			<xs:documentation>A variables in a WRL logical expression.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
		</xs:restriction>
	</xs:simpleType>
	<!-- end of the helper types for identifiers -->
</xs:schema>
