<xs:schema targetNamespace="http://www.imsglobal.org/xsd/imsld_v1p0" xmlns="http://www.imsglobal.org/xsd/imsld_v1p0" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="IMS LD Level A version 1.0 Final Draft">
	<!-- ******************** -->
	<!-- ** Change History ** -->
	<!-- ******************** -->
	<xs:annotation>
		<xs:documentation xml:lang="en">Last update 17 December 2002
		</xs:documentation>
		<xs:documentation xml:lang="en">24 October 2002
		Restructured the schemas that were submitted as public draft.
		Created attribute groups for those attributes that are used in multiple element definitions.
		Created re-usable attribute groups.
		Defined groups for those content models that need to be extended in levels B and C.
		Designed modules for those elements and attributes that are re-used in levels B and C or in the global elements.
		Changed the namespace.
		</xs:documentation>
	</xs:annotation>
	<!-- ********************* -->
	<!-- ** Include modules ** -->
	<!-- ********************* -->
	<xs:include schemaLocation="IMS_LD_Level_A_reusables.xsd">
		<xs:annotation>
			<xs:documentation xml:lang="en">This module contains elements and attributes that are used in the other levels and in the global elements.</xs:documentation>
		</xs:annotation>
	</xs:include>
	<xs:include schemaLocation="IMS_LD_Level_A_emaildata.xsd">
		<xs:annotation>
			<xs:documentation xml:lang="en">This module contains the email-data model.</xs:documentation>
		</xs:annotation>
	</xs:include>
	<!-- **************************** -->
	<!-- ** Attribute declarations ** -->
	<!-- **************************** -->
	<xs:annotation>
		<xs:documentation xml:lang="en">The attributes are declared here as reusable attribute groups, because most are re-used in several elements.
		Additional attributes are declared in the modules.</xs:documentation>
	</xs:annotation>
	<xs:attributeGroup name="attr.create-new">
		<xs:attribute name="create-new" default="allowed">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="not-allowed"/>
					<xs:enumeration value="allowed"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.conference-type">
		<xs:attribute name="conference-type" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="synchronous"/>
					<xs:enumeration value="asynchronous"/>
					<xs:enumeration value="announcement"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.identifier">
		<xs:attribute name="identifier" type="xs:ID"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.identifierref">
		<xs:attribute name="identifierref" type="xs:IDREF"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.index.req">
		<xs:attribute name="index" type="xs:IDREF" use="required"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.isvisible">
		<xs:attribute name="isvisible" type="xs:boolean" default="true"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.level">
		<xs:annotation>
			<xs:documentation xml:lang="en">Implementations should provide a default value (a, b or c) for each of the schema levels.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="level" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="A"/>
					<xs:enumeration value="B"/>
					<xs:enumeration value="C"/>
					<xs:enumeration value="a"/>
					<xs:enumeration value="b"/>
					<xs:enumeration value="c"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.match-persons">
		<xs:attribute name="match-persons">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="exclusively-in-roles"/>
					<xs:enumeration value="not-exclusively"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.max-persons">
		<xs:attribute name="max-persons" type="xs:nonNegativeInteger"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.min-persons">
		<xs:attribute name="min-persons" type="xs:nonNegativeInteger"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.number-to-select">
		<xs:attribute name="number-to-select" type="xs:nonNegativeInteger"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.parameters">
		<xs:attribute name="parameters" type="xs:string"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.role-ref.req">
		<xs:attribute name="role-ref" type="xs:IDREF" use="required"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.search-type.req">
		<xs:attribute name="search-type" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="free-text-search"/>
					<xs:enumeration value="index-with-reference"/>
					<xs:enumeration value="index-without-reference"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.select.req">
		<xs:attribute name="select" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="all-persons-in-role"/>
					<xs:enumeration value="persons-in-role"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.sequence-used">
		<xs:attribute name="sequence-used" type="xs:boolean" default="false"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.sort">
		<xs:attribute name="sort" default="as-is">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="as-is"/>
					<xs:enumeration value="visibility-order"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.structure-type">
		<xs:attribute name="structure-type">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="sequence"/>
					<xs:enumeration value="selection"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.type">
		<xs:attribute name="type" type="xs:string"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.version">
		<xs:attribute name="version" type="xs:string"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.role">
		<xs:attributeGroup ref="attr.create-new"/>
		<xs:attributeGroup ref="attr.href"/>
		<xs:attributeGroup ref="attr.identifier.req"/>
		<xs:attributeGroup ref="attr.match-persons"/>
		<xs:attributeGroup ref="attr.min-persons"/>
		<xs:attributeGroup ref="attr.max-persons"/>
	</xs:attributeGroup>
	<!-- The following attributes are also used in level B. -->
	<xs:attributeGroup name="attr.class">
		<xs:attribute name="class" type="xs:NMTOKENS">
			<xs:annotation>
				<xs:documentation xml:lang="en">This attribute is also used in level B.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.href.req">
		<xs:attribute name="href" type="xs:anyURI" use="required"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.identifier.req">
		<xs:attribute name="identifier" type="xs:ID" use="required">
			<xs:annotation>
				<xs:documentation xml:lang="en">This attribute is also used in level B.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="attr.uri.req">
		<xs:attribute name="uri" type="xs:anyURI" use="required">
			<xs:annotation>
				<xs:documentation xml:lang="en">This attribute is also used in level B.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<!-- The following attributes are also used in global elements. -->
	<xs:attributeGroup name="attr.href">
		<xs:attribute name="href" type="xs:anyURI">
			<xs:annotation>
				<xs:documentation xml:lang="en">Also used in global elements</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<!-- ****************************** -->
	<!-- ** Re-usable content models ** -->
	<!-- ****************************** -->
	<xs:group name="grp.itemmodel">
		<xs:annotation>
			<xs:documentation xml:lang="en">This content model is used in several elements that refer to resources.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="item" maxOccurs="unbounded"/>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="grp.any">
		<xs:sequence>
			<xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="grp.extend">
		<xs:annotation>
			<xs:documentation xml:lang="en">This group is used to indicate the metadata schema. The schema to be used and its version must be indicated and the schema must be imported.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="schema" minOccurs="0"/>
			<xs:element ref="schemaversion" minOccurs="0"/>
			<xs:group ref="grp.any"/>
		</xs:sequence>
	</xs:group>
	<!-- ************************** -->
	<!-- ** Groups for extension ** -->
	<!-- ************************** -->
	<xs:annotation>
		<xs:documentation xml:lang="en">These groups are needed for extension in level B.</xs:documentation>
	</xs:annotation>
	<xs:group name="grp.roles">
		<xs:sequence>
			<xs:element ref="roles"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="grp.complete-act">
		<xs:choice>
			<xs:element ref="when-role-part-completed" maxOccurs="unbounded"/>
			<xs:element ref="time-limit"/>
		</xs:choice>
	</xs:group>
	<xs:group name="grp.complete-activity">
		<xs:choice>
			<xs:element ref="user-choice"/>
			<xs:element ref="time-limit"/>
		</xs:choice>
	</xs:group>
	<xs:group name="grp.complete-play">
		<xs:choice>
			<xs:element ref="when-last-act-completed"/>
			<xs:element ref="time-limit"/>
		</xs:choice>
	</xs:group>
	<xs:group name="grp.complete-unit-of-learning">
		<xs:choice>
			<xs:element ref="when-play-completed" maxOccurs="unbounded"/>
			<xs:element ref="time-limit"/>
		</xs:choice>
	</xs:group>
	<xs:group name="grp.on-completion">
		<xs:sequence>
			<xs:element ref="feedback-description" minOccurs="0"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="grp.method">
		<xs:sequence>
			<xs:element ref="play" maxOccurs="unbounded"/>
			<xs:element ref="complete-unit-of-learning" minOccurs="0"/>
			<xs:element ref="on-completion" minOccurs="0"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="grp.service">
		<xs:choice>
			<xs:element ref="send-mail"/>
			<xs:element ref="conference"/>
			<xs:element ref="index-search"/>
		</xs:choice>
	</xs:group>
	<!-- ************************** -->
	<!-- ** Element declarations ** -->
	<!-- ************************** -->
	<xs:element name="act" type="actType"/>
	<xs:element name="activities" type="activitiesType"/>
	<xs:element name="activity-description" type="itemmodelType"/>
	<xs:element name="activity-structure" type="activity-structureType"/>
	<xs:element name="complete-act" type="complete-actType"/>
	<xs:element name="complete-activity" type="complete-activityType"/>
	<xs:element name="complete-play" type="complete-playType"/>
	<xs:element name="complete-unit-of-learning" type="complete-unit-of-learningType"/>
	<xs:element name="components" type="componentsType"/>
	<xs:element name="conference" type="conferenceType"/>
	<xs:element name="environment" type="environmentType"/>
	<xs:element name="environments" type="environmentsType"/>
	<xs:element name="feedback-description" type="itemmodelType"/>
	<xs:element name="index" type="indexType"/>
	<xs:element name="index-search" type="index-searchType"/>
	<xs:element name="information" type="itemmodelType"/>
	<xs:element name="item" type="itemType"/>
	<xs:element name="learner" type="learnerType"/>
	<xs:element name="learning-activity" type="learning-activityType"/>
	<xs:element name="learning-design" type="learning-designType"/>
	<xs:element name="learning-object" type="learning-objectType"/>
	<xs:element name="learning-objectives" type="itemmodelType"/>
	<xs:element name="metadata" type="extendType">
		<xs:annotation>
			<xs:documentation>Include IMS Metadata here, using the correct namespace</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="method" type="methodType"/>
	<xs:element name="on-completion" type="on-completionType"/>
	<xs:element name="play" type="playType"/>
	<xs:element name="prerequisites" type="itemmodelType"/>
	<xs:element name="role-part" type="role-partType"/>
	<xs:element name="roles" type="rolesType"/>
	<xs:element name="send-mail" type="send-mailType"/>
	<xs:element name="service" type="serviceType"/>
	<xs:element name="staff" type="staffType"/>
	<xs:element name="support-activity" type="support-activityType"/>
	<!-- *************** -->
	<!-- ** Text only ** -->
	<!-- *************** -->
	<xs:element name="index-class" type="xs:string"/>
	<xs:element name="index-type-of-element" type="xs:string"/>
	<xs:element name="time-limit" type="time-limitType">
		<xs:annotation>
			<xs:documentation xml:lang="en">A named complex type is needed because this element is redefined in level B. Format is duration datatype (PnYnMnDTnHnMnS) </xs:documentation>
			<xs:appinfo>Format is duration datatype: PnYnMnDTnHnMnS</xs:appinfo>
		</xs:annotation>
	</xs:element>
	<xs:element name="title" type="xs:string"/>
	<xs:element name="schema" type="xs:string"/>
	<xs:element name="schemaversion" type="xs:string"/>
	<!-- *********** -->
	<!-- ** Empty ** -->
	<!-- *********** -->
	<xs:element name="user-choice">
		<xs:complexType/>
	</xs:element>
	<xs:element name="when-last-act-completed">
		<xs:complexType/>
	</xs:element>
	<!-- ************************************ -->
	<!-- ** Empty elements with attributes ** -->
	<!-- ************************************ -->
	<xs:element name="activity-structure-ref">
		<xs:complexType>
			<xs:attributeGroup ref="attr.ref.req"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="conference-manager">
		<xs:complexType>
			<xs:attributeGroup ref="attr.role-ref.req"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="environment-ref">
		<xs:complexType>
			<xs:attributeGroup ref="attr.ref.req"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="index-element">
		<xs:complexType>
			<xs:attributeGroup ref="attr.index.req"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="moderator">
		<xs:complexType>
			<xs:attributeGroup ref="attr.role-ref.req"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="observer">
		<xs:complexType>
			<xs:attributeGroup ref="attr.role-ref.req"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="participant">
		<xs:complexType>
			<xs:attributeGroup ref="attr.role-ref.req"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="search">
		<xs:complexType>
			<xs:attributeGroup ref="attr.search-type.req"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="unit-of-learning-href">
		<xs:complexType>
			<xs:attributeGroup ref="attr.href.req"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="when-play-completed">
		<xs:complexType>
			<xs:attributeGroup ref="attr.ref.req"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="when-role-part-completed">
		<xs:complexType>
			<xs:attributeGroup ref="attr.ref.req"/>
		</xs:complexType>
	</xs:element>
	<!-- ******************* -->
	<!-- ** Complex types ** -->
	<!-- ******************* -->
	<xs:complexType name="actType">
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="role-part" maxOccurs="unbounded"/>
			<xs:element ref="complete-act" minOccurs="0"/>
			<xs:element ref="on-completion" minOccurs="0"/>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
		<xs:attributeGroup ref="attr.identifier"/>
	</xs:complexType>
	<xs:complexType name="activitiesType">
		<xs:choice maxOccurs="unbounded">
			<xs:element ref="learning-activity"/>
			<xs:element ref="support-activity"/>
			<xs:element ref="activity-structure"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="activity-structureType">
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="information" minOccurs="0"/>
			<xs:element ref="environment-ref" minOccurs="0" maxOccurs="unbounded"/>
			<xs:choice maxOccurs="unbounded">
				<xs:element ref="learning-activity-ref"/>
				<xs:element ref="support-activity-ref"/>
				<xs:element ref="unit-of-learning-href"/>
				<xs:element ref="activity-structure-ref"/>
			</xs:choice>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
		<xs:attributeGroup ref="attr.identifier.req"/>
		<xs:attributeGroup ref="attr.number-to-select"/>
		<xs:attributeGroup ref="attr.sort"/>
		<xs:attributeGroup ref="attr.structure-type"/>
	</xs:complexType>
	<xs:complexType name="complete-actType">
		<xs:choice>
			<xs:group ref="grp.complete-act"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="complete-activityType">
		<xs:choice>
			<xs:group ref="grp.complete-activity"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="complete-playType">
		<xs:choice>
			<xs:group ref="grp.complete-play"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="complete-unit-of-learningType">
		<xs:choice>
			<xs:group ref="grp.complete-unit-of-learning"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="componentsType">
		<xs:sequence>
			<xs:group ref="grp.roles"/>
			<xs:element ref="activities" minOccurs="0"/>
			<xs:element ref="environments" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="conferenceType">
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="participant" maxOccurs="unbounded"/>
			<xs:element ref="observer" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="conference-manager" minOccurs="0"/>
			<xs:element ref="moderator" minOccurs="0"/>
			<xs:element ref="item"/>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
		<xs:attributeGroup ref="attr.conference-type"/>
	</xs:complexType>
	<xs:complexType name="environmentType">
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element ref="learning-object"/>
				<xs:element ref="service"/>
				<xs:element ref="environment-ref"/>
			</xs:choice>
			<xs:element ref="metadata" minOccurs="0"/>
			<xs:group ref="grp.any">
				<xs:annotation>
					<xs:documentation xml:lang="en">Simple Sequencing can be included here, using its namespace.  The namespace must be defined in the instance, and the schema must be imported.</xs:documentation>
				</xs:annotation>
			</xs:group>
		</xs:sequence>
		<xs:attributeGroup ref="attr.identifier.req"/>
	</xs:complexType>
	<xs:complexType name="environmentsType">
		<xs:sequence>
			<xs:element ref="environment" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="extendType">
		<xs:annotation>
			<xs:documentation>Used to provide the relevant schema.</xs:documentation>
		</xs:annotation>
		<xs:group ref="grp.extend"/>
	</xs:complexType>
	<xs:complexType name="indexType">
		<xs:choice maxOccurs="unbounded">
			<xs:element ref="index-class"/>
			<xs:element ref="index-element"/>
			<xs:element ref="index-type-of-element"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="index-searchType">
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="index"/>
			<xs:element ref="search"/>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="itemType">
		<xs:sequence minOccurs="0" maxOccurs="unbounded">
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="item" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
		<xs:attributeGroup ref="attr.identifier"/>
		<xs:attributeGroup ref="attr.identifierref"/>
		<xs:attributeGroup ref="attr.isvisible"/>
		<xs:attributeGroup ref="attr.parameters"/>
	</xs:complexType>
	<xs:complexType name="itemmodelType">
		<xs:annotation>
			<xs:documentation>Used for those elements that refer to resources.
			 </xs:documentation>
		</xs:annotation>
		<xs:group ref="grp.itemmodel"/>
	</xs:complexType>
	<xs:complexType name="learnerType">
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="information" minOccurs="0"/>
			<xs:element ref="learner" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
		<xs:attributeGroup ref="attr.role"/>
	</xs:complexType>
	<xs:complexType name="learning-activityType">
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="learning-objectives" minOccurs="0"/>
			<xs:element ref="prerequisites" minOccurs="0"/>
			<xs:element ref="environment-ref" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="activity-description"/>
			<xs:element ref="complete-activity" minOccurs="0"/>
			<xs:element ref="on-completion" minOccurs="0"/>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
		<xs:attributeGroup ref="attr.identifier.req"/>
		<xs:attributeGroup ref="attr.isvisible"/>
		<xs:attributeGroup ref="attr.parameters"/>
	</xs:complexType>
	<xs:complexType name="learning-designType">
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="learning-objectives" minOccurs="0"/>
			<xs:element ref="prerequisites" minOccurs="0"/>
			<xs:element ref="components"/>
			<xs:element ref="method"/>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
		<xs:attributeGroup ref="attr.identifier.req"/>
		<xs:attributeGroup ref="attr.level"/>
		<xs:attributeGroup ref="attr.sequence-used"/>
		<xs:attributeGroup ref="attr.uri.req"/>
		<xs:attributeGroup ref="attr.version"/>
	</xs:complexType>
	<xs:complexType name="learning-objectType">
		<xs:sequence>
			<xs:group ref="grp.itemmodel"/>
			<xs:group ref="grp.any">
				<xs:annotation>
					<xs:documentation xml:lang="en">This placeholder can be used to import elements from another namespace.  The namespace for the imported element must be defined in the instance, and the schema must be imported.</xs:documentation>
				</xs:annotation>
			</xs:group>
		</xs:sequence>
		<xs:attributeGroup ref="attr.class"/>
		<xs:attributeGroup ref="attr.identifier.req"/>
		<xs:attributeGroup ref="attr.isvisible"/>
		<xs:attributeGroup ref="attr.parameters"/>
		<xs:attributeGroup ref="attr.type"/>
	</xs:complexType>
	<xs:complexType name="methodType">
		<xs:group ref="grp.method"/>
	</xs:complexType>
	<xs:complexType name="on-completionType">
		<xs:group ref="grp.on-completion"/>
	</xs:complexType>
	<xs:complexType name="playType">
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="act" maxOccurs="unbounded"/>
			<xs:element ref="complete-play" minOccurs="0"/>
			<xs:element ref="on-completion" minOccurs="0"/>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
		<xs:attributeGroup ref="attr.identifier"/>
		<xs:attributeGroup ref="attr.isvisible"/>
	</xs:complexType>
	<xs:complexType name="role-partType">
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="role-ref"/>
			<xs:choice>
				<xs:element ref="learning-activity-ref"/>
				<xs:element ref="support-activity-ref"/>
				<xs:element ref="unit-of-learning-href"/>
				<xs:element ref="activity-structure-ref"/>
				<xs:element ref="environment-ref"/>
			</xs:choice>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
		<xs:attributeGroup ref="attr.identifier"/>
	</xs:complexType>
	<xs:complexType name="rolesType">
		<xs:sequence>
			<xs:element ref="learner" maxOccurs="unbounded"/>
			<xs:element ref="staff" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attributeGroup ref="attr.identifier"/>
	</xs:complexType>
	<xs:complexType name="send-mailType">
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="email-data" maxOccurs="unbounded"/>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
		<xs:attributeGroup ref="attr.select.req"/>
	</xs:complexType>
	<xs:complexType name="serviceType">
		<xs:choice>
			<xs:group ref="grp.service"/>
			<xs:group ref="grp.any">
				<xs:annotation>
					<xs:documentation xml:lang="en">This placeholder can be used to import elements from another namespace.  The namespace for the imported element must be defined in the instance, and the schema must be imported.</xs:documentation>
				</xs:annotation>
			</xs:group>
		</xs:choice>
		<xs:attributeGroup ref="attr.class"/>
		<xs:attributeGroup ref="attr.identifier.req"/>
		<xs:attributeGroup ref="attr.isvisible"/>
		<xs:attributeGroup ref="attr.parameters"/>
	</xs:complexType>
	<xs:complexType name="staffType">
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="information" minOccurs="0"/>
			<xs:element ref="staff" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
		<xs:attributeGroup ref="attr.role"/>
	</xs:complexType>
	<xs:complexType name="support-activityType">
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="role-ref" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="environment-ref" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="activity-description"/>
			<xs:element ref="complete-activity" minOccurs="0"/>
			<xs:element ref="on-completion" minOccurs="0"/>
			<xs:element ref="metadata" minOccurs="0"/>
		</xs:sequence>
		<xs:attributeGroup ref="attr.identifier.req"/>
		<xs:attributeGroup ref="attr.isvisible"/>
		<xs:attributeGroup ref="attr.parameters"/>
	</xs:complexType>
	<!-- ******************** -->
	<!-- ** Simple content ** -->
	<!-- ******************** -->
	<xs:complexType name="time-limitType">
		<xs:annotation>
			<xs:documentation xml:lang="en">This simple type is defined as simple content because it needs to be extended with an attribute in level B. 

			Format is duration datatype: PnYnMnDTnHnMnS
			</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:duration"/>
		</xs:simpleContent>
	</xs:complexType>
</xs:schema>
