<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.imsglobal.org/xsd/imsrdceo_rootv1p0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.imsglobal.org/xsd/imsrdceo_rootv1p0" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:group name="extelement">
		<xs:annotation>
			<xs:documentation>extension mechanism for elements</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:any namespace="##other" processContents="strict" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:group>
	<xs:element name="rdceo">
		<xs:annotation>
			<xs:documentation>A single definition of a competence, educational objective etc</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="identifier" minOccurs="1" maxOccurs="1"/>
				<xs:element ref="title"/>
				<xs:element ref="description" minOccurs="0"/>
				<xs:element ref="definition" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="metadata" minOccurs="0"/>
				<xs:sequence minOccurs="0">
					<xs:group ref="extelement"/>
				</xs:sequence>
			</xs:sequence>
			<xs:anyAttribute namespace="##other" processContents="strict"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="langstring">
		<xs:annotation>
			<xs:documentation>A string in a human language</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:anyAttribute namespace="##other" processContents="lax"/>
<!-- original version has <xs:anyAttribute namespace="##other" processContents="strict"/> -->
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="title">
		<xs:annotation>
			<xs:documentation>A title for the definition</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="langstring" maxOccurs="unbounded"/>
				<xs:sequence minOccurs="0">
					<xs:group ref="extelement"/>
				</xs:sequence>
			</xs:sequence>
			<xs:anyAttribute namespace="##other" processContents="strict"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="identifier">
		<xs:annotation>
			<xs:documentation>Catenated form of the identifier of a RDCEO</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:anyURI">
					<xs:anyAttribute namespace="##other" processContents="strict"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="description">
		<xs:annotation>
			<xs:documentation>A description for the definition</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="langstring" maxOccurs="unbounded"/>
				<xs:sequence minOccurs="0">
					<xs:group ref="extelement"/>
				</xs:sequence>
			</xs:sequence>
			<xs:anyAttribute namespace="##other" processContents="strict"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="definition">
		<xs:annotation>
			<xs:documentation>A structured form of the definition</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="model" minOccurs="0"/>
				<xs:element ref="statement" maxOccurs="unbounded"/>
				<xs:sequence minOccurs="0">
					<xs:group ref="extelement"/>
				</xs:sequence>
			</xs:sequence>
			<xs:anyAttribute namespace="##other" processContents="strict"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="model">
		<xs:annotation>
			<xs:documentation>The model identification for the structured definition</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:anyAttribute namespace="##other" processContents="strict"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="statement">
		<xs:annotation>
			<xs:documentation>A component part of a structured definition</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:choice>
					<xs:element ref="statementtext"/>
					<xs:element ref="statementtoken"/>
				</xs:choice>
				<xs:sequence minOccurs="0">
					<xs:group ref="extelement"/>
				</xs:sequence>
			</xs:sequence>
			<xs:attribute name="statementid" type="xs:ID"/>
			<xs:attribute name="statementname" type="xs:string"/>
			<xs:anyAttribute namespace="##other" processContents="strict"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="statementtext">
		<xs:annotation>
			<xs:documentation>Used for statements with free-form text</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="langstring" maxOccurs="unbounded"/>
				<xs:sequence minOccurs="0">
					<xs:group ref="extelement"/>
				</xs:sequence>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="source">
		<xs:annotation>
			<xs:documentation>Source identification for a vocabulary token</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:anyAttribute namespace="##other" processContents="strict"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="value">
		<xs:annotation>
			<xs:documentation>A vocabulary token</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:anyAttribute namespace="##other" processContents="strict"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="metadata">
		<xs:annotation>
			<xs:documentation>A container for metadata</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="rdceoschema" minOccurs="0"/>
				<xs:element ref="rdceoschemaversion" minOccurs="0"/>
				<xs:sequence minOccurs="0">
					<xs:group ref="extelement"/>
				</xs:sequence>
			</xs:sequence>
			<xs:anyAttribute namespace="##other" processContents="strict"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="statementtoken">
		<xs:annotation>
			<xs:documentation>Used for statements with token values (vocabulary use)</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="source"/>
				<xs:element ref="value"/>
				<xs:sequence minOccurs="0">
					<xs:group ref="extelement"/>
				</xs:sequence>
			</xs:sequence>
			<xs:anyAttribute namespace="##other" processContents="strict"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="rdceoschema">
		<xs:annotation>
			<xs:documentation>The identity of the RDCEO schema - assumed to be IMS RDCEO if absent.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:anyAttribute namespace="##other" processContents="strict"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="rdceoschemaversion">
		<xs:annotation>
			<xs:documentation>The version of the RDCEO schema - assumed to be 1.0 if absent</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:anyAttribute namespace="##other" processContents="strict"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
</xs:schema>
