<?xml version='1.0' encoding='UTF-8' ?>
<!--
IPR, License and Distribution Notices
This machine readable file is derived from IMS specification IMS Enterprise XML Binding Version 1.1 Final Specification
found at http://www.imsglobal.org/enterprise/ and the original IMS schema binding or code base 
http://www.imsglobal.org/enterprise/entv1p1/imsent_bindv1p1.html.
	
Recipients of this document are requested to submit, with their comments, notification of any relevant patent 
claims or other intellectual property rights of which they may be aware that might be infringed by the schema 
binding contained in this document.

IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be 
claimed to pertain to the implementation or use of the technology described in this document or the extent to 
which any license under such rights might or might not be available; neither does it represent that it has made 
any effort to identify any such rights. Information on IMS’s procedures with respect to rights in IMS specifications 
can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
	
Copyright © IMS Global Learning Consortium 1999-2007. All Rights Reserved.
	
License Notice for Users
Users of products or services that include this document are hereby granted a worldwide, royalty-free, 
non-exclusive license to use this document.
	
Distribution Notice for Developers
Developers of products or services that provide distribution of this document as is or with modifications are 
required to register with the IMS community on the IMS website as described in the following two paragraphs:
	
- If you wish to distribute this document as is, with no modifications, you are hereby granted permission to copy, 
display and distribute the contents of this document in any medium for any purpose without fee or royalty provided 
that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you 
make and you complete a valid license registration with IMS and receive an email from IMS granting the license. 
To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once 
registered you are granted permission to transfer unlimited distribution rights of this document for the purposes 
of third-party or other distribution of your product or service that incorporates this document as long as this IPR, 
License and Distribution notice remains in place in its entirety.
	
- If you wish to create and distribute a derived work from this document, you are hereby granted permission to copy, 
display and distribute the contents of the derived work in any medium for any purpose without fee or royalty provided 
that you include this IPR, License and Distribution notice in its entirety on ALL copies, or portions thereof, that you 
make and you complete a valid profile registration with IMS and receive an email from IMS granting the license. To 
register, follow the instructions on the IMS website: http://www.imsglobal.org/profile/. Once registered you are 
granted permission to transfer unlimited distribution rights of the derived work for the purposes of third-party or 
other distribution of your product or service that incorporates the derived work as long as this IPR, License and 
Distribution notice remains in place in its entirety.
	
The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.
	
THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, 
ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION 
SHALL BE MADE ENTIRELY AT THE IMPLEMENTER’S OWN RISK, AND NEITHER THE CONSORTIUM, NOR 
ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER 
OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING 
FROM THE USE OF THIS SPECIFICATION.
-->

<!--Generated by XML Authority-->

<!-- *************************************************************** -->
<!-- Title       : ims_epv1p1.dtd                                    -->
<!-- Description : IMS Enterprise/LMS Interoperability DTD           -->
<!--                                                                 -->
<!--                                                                 -->
<!-- Revision History                                                -->
<!-- Date        By          Comments                                -->
<!-- *********** *********** *************************************** -->
<!-- 28 Oct,1999 Wayne Veres Initial Release of the XML Binding      -->
<!--                         as approved at the IMS Tech Board       -->
<!--                         Oct 15, 1999. Comments and structure    -->
<!--                         have been aligned to agree with the     -->
<!--                         structure of the Enterprise Information -->
<!--                         model.                                  -->
<!--                                                                 -->
<!-- 1 Sept, 2001 C.Smythe   The various modifications listed under	 -->
<!--                         V1.01 XML Binding have been made.       -->
<!--                         Also, all of the element and attribute  -->
<!--                         names have been converted to lower-case -->
<!--                         as per W3C recommendations.             -->
<!--                                                                 -->
<!--                                                                 	   -->
<!-- 17 Apr, 2002 C.Smythe   The release of the V1.1 DTD. The key	 	   -->
<!--                         Changes are:					         	   -->
<!--                         								         	   -->
<!--                         (a) Addition of partname element	     	   -->
<!--                         (b) Addition of systemrole element      	   -->
<!--                         (c) Addition of institutionrole element 	   -->
<!--                         (d) Addition of interimresult           	   -->
<!--                         (e) Addition of groupmember element 	 	   -->
<!--                         (f) Addition of disability element 	 	   -->
<!--                         (g) Addition of authenticationtype attribute  -->
<!--                         (h) Addition of institutionroletype attribute -->
<!--                         (i) Addition of partnametype attribute 	   -->
<!--                         (j) Addition of primaryrole attribute 		   -->
<!--                         (k) Addition of pwencryptiontype attribute    -->
<!--                         (l) Addition of sourcedidtype attribute 	   -->
<!--                         (m) Addition of useridtype attribute 		   -->
<!--                         								         	   -->
<!-- Document Structure                                              -->
<!-- The elements of this document have been organized to follow     -->
<!-- a similiar structure found in the information model             -->
<!--                                                                 -->
<!-- Comments for the element will proceed the element in the        -->
<!-- following format                                                -->
<!-- Explanation :                                                   -->
<!--    Text for explanation                                         -->
<!-- Type  :                                                         -->
<!--    Text for type                                                -->
<!-- Notes :                                                         -->
<!--    Text for note                                                -->
<!-- When a domain of values is specified for an element it will     -->
<!-- generally be restricted by an attribute for the element as      -->
<!-- defined by an entity. Refer to the entity section for the values-->
<!-- and comments for the domain values.                             -->
<!--                                                                 -->
<!--                                                                 -->
<!-- Please use the following as a index to follow this DTD          -->
<!--                                                                 -->
<!-- Document Root (i.e. enterprise)                                 -->
<!-- Entities                                                        -->
<!-- Elements Common to all major roots                              -->
<!--                                                                 -->
<!--      Main objects and their elements will follow                -->
<!--                                                                 -->
<!-- properties                                                      -->
<!--     properties elements                                         -->
<!-- person root                                                     -->
<!--     person elements                                             -->
<!-- group  root                                                     -->
<!--     group elements                                              -->
<!-- membership root                                                 -->
<!--     membership elements                                         -->
<!--                                                                 -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- ENTITIES                                                        -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- ............................................................... -->
<!-- An enumerated vocabulary for I_Value:                           -->
<!--		0 = List                                                 -->
<!--		1 = Range                                                -->
<!-- ............................................................... -->
<!ENTITY % I_Value " valuetype  (0 | 1 )  #REQUIRED">

<!-- ............................................................... -->
<!-- An enumerated vocabulary  for I_Relation                        -->
<!--    Read as This is my child, This is my parent                  -->
<!--           It is describing the thing it is pointing too         -->
<!--		1 = Parent                                               -->
<!--		2 = Child                                                -->
<!--		3 = also known as                                        -->
<!-- ............................................................... -->
<!ENTITY % I_Relation " relation  (1 | 2 | 3 )  '1'">

<!-- ............................................................... -->
<!-- An enumerated vocabulary for I_Role                             -->
<!--		01 = Learner                                             -->
<!--		02 = Instructor                                          -->
<!--		03 = Content Developer                                   -->
<!--		04 = Member                                              -->
<!--		05 = Manager                                             -->
<!--		06 = Mentor                                              -->
<!--		07 = Adminstrator                                        -->
<!-- ............................................................... -->
<!ENTITY % I_Role " roletype  (01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | Learner | Instructor | ContentDeveloper | Member | Manager | Mentor | Administrator | TeachingAssistant )  '01'">

<!-- ............................................................... -->
<!-- An enumerated vocabulary I_Recstatus :                          -->
<!--			1 = Add                                            	 -->
<!--			2 = Update                                         	 -->
<!--            3 = Delete                                         	 -->
<!-- ............................................................... -->
<!ENTITY % I_Recstatus " recstatus  (1 | 2 | 3 )  #IMPLIED">

<!-- V1.1 REVISION													 -->
<!-- ............................................................... -->
<!-- An enumerated vocabulary:                                       -->
<!--		1 = Preferred Voice                                      -->
<!--		2 = FAX                                                  -->
<!--		3 = Mobile                                               -->
<!--		4 = Pager                                                -->
<!-- ............................................................... -->
<!ENTITY % I_Tel " teltype  (1 | 2 | 3 | 4 | Voice | Fax | Mobile | Pager )  '1'">

<!-- ............................................................... -->
<!--  I_Img value is an IANA registered image type                   -->
<!-- ............................................................... -->
<!ENTITY % I_Img " imgtype CDATA  #IMPLIED">

<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!--                #### This is the Root element. ####              -->
<!--                                                                 -->
<!ELEMENT enterprise (comments? , properties , person* , group* , membership*)>

<!--                                                                 -->
<!--                    ############################                 -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- ELEMENTS used by more then one object                           -->
<!-- Refer to the information model for specific information on      -->
<!-- common elements                                                 -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--                                                                 -->
<!-- Type  :                                                         -->
<!--    String 32                                                    -->
<!-- Notes :                                                         -->
<!--                                                                 -->
<!-- ............................................................... -->
<!ELEMENT type (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    An identifier for the source system.                         -->
<!-- Type  :                                                         -->
<!--    Source String 32                                             -->
<!--    ID     String 256                                            -->
<!-- Notes :                                                         -->
<!--    SOURCE Identifier of the organization or system that created -->
<!--           the group object.                                     -->
<!--    ID Permanently unique identifier for as defined by the system-->
<!--       where the object was created.                             -->
<!-- ............................................................... -->
<!ELEMENT sourcedid (source , id)>

<!ATTLIST sourcedid  sourcedidtype  (New | Old | Duplicate )  #IMPLIED >
<!ELEMENT source (#PCDATA)>

<!ELEMENT id (#PCDATA)>

<!-- V1.1 REVISION													 -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--                                                                 -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--   Person's user ID as defined for the object                    -->
<!-- ............................................................... -->
<!ELEMENT userid (#PCDATA)>
<!ATTLIST userid  useridtype         CDATA  #IMPLIED
                   password           CDATA  #IMPLIED
                   pwencryptiontype   CDATA  #IMPLIED
                   authenticationtype CDATA  #IMPLIED >
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--                                                                 -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--   Email address used to contact a member for information related-->
<!--   to a specific object                                          -->
<!-- ............................................................... -->
<!ELEMENT email (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--                                                                 -->
<!-- Type  :                                                         -->
<!--    Any valid element, PCDATA                                    -->
<!-- Notes :                                                         -->
<!--   Acts as the high level element for any extensions to the data -->
<!--   object.                                                       -->
<!-- ............................................................... -->
<!ELEMENT extension ANY>

<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- Main Objects                                                    -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!--                #### This is the PROPERTY object ####            -->
<!--                                                                 -->
<!--                    ############################                 -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- When a source system generates one or more data objects, it must-->
<!-- include some basic packaging and control data that the target   -->
<!-- system or systems use to determine the source, timing and type  -->
<!-- of event that has caused the generation of a data package.      -->
<!-- This information is used to manage the interchange of data      -->
<!-- between systems.                                                -->
<!-- The lang attribute would imply this is the language for the     -->
<!-- entire contents of this file                                    -->
<!ELEMENT properties (comments? , datasource , target* , type? , datetime , extension?)>

<!ATTLIST properties  lang CDATA  #IMPLIED >
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    An identifier for the source system.                         -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--     Allows the target system(s) to identify the system that     -->
<!--     generated the data objects.                                 -->
<!--     Value must be unique for each source.                       -->
<!-- ............................................................... -->
<!ELEMENT datasource (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Identifier for a target system.                              -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--     If the data objects are intended for one or more specific   -->
<!--     target systems, this element identifies those systems.      -->
<!--     Must use the same system naming scheme as is used for data  -->
<!--     source.                                                     -->
<!-- ............................................................... -->
<!ELEMENT target (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Describes the type of event that caused the source system to -->
<!--    generate the data objects.                                   -->
<!-- Type  :                                                         -->
<!--    String 32                                                    -->
<!-- Notes :                                                         -->
<!--     A standard set of codes must be agreed upon for any         -->
<!--     specific implementation.                                    -->
<!-- ............................................................... -->
<!-- TYPE is defined in the common elements section                  -->
<!-- ............................................................... -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Date and time the data objects were generated by the data    -->
<!--    source.                                                      -->
<!-- Type  :                                                         -->
<!--    ISO8601                                                      -->
<!-- ............................................................... -->
<!ELEMENT datetime (#PCDATA)>

<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!--                #### This is the PERSON object ####              -->
<!--                                                                 -->
<!--                    ############################                 -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- When a person data object is passed, the target system will     -->
<!-- update its files with the data in the object.  If a person is   -->
<!-- new, they will be added to the system.  If a person's data has  -->
<!-- changed, the new data should be used to update the target       -->
<!-- system.  If a person is flagged for deletion, it is up to the   -->
<!-- target system to determine what action to take with that        -->
<!-- deletion information.                                           -->
<!--                                                                 -->
<!-- Note that the target system needs to be capable of storing the  -->
<!-- source system's 'Sourced ID', which is used to uniquely         -->
<!-- identify a person within the implementation environment.  This  -->
<!-- is required  to support future updates of person information    -->
<!-- from the source system.                                         -->
<!-- ............................................................... -->
<!ELEMENT person (comments? , sourcedid+ , userid* , name , demographics? , email? , url? , tel* , adr? , photo? , systemrole? , institutionrole* , datasource? , extension?)>

<!ATTLIST person  %I_Recstatus; >
<!-- ............................................................... -->
<!-- SOURCEDID,USERID?  are defined in the common elements section   -->
<!-- ............................................................... -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    The name of the person.                                      -->
<!-- Notes :                                                         -->
<!--     Note that the name parts specified below are to support     -->
<!--     interoperability, not to maintain a full record of a        -->
<!--     person's names.                                             -->
<!-- ............................................................... -->
<!ELEMENT name (fn , sort? , nickname? , n?)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Formatted name                                               -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--                                                                 -->
<!-- ............................................................... -->
<!ELEMENT fn (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Name 'parsed' and re-ordered so it will sort appropriately on-->
<!--    an alphabetized report or online panel.  This name is never  -->
<!--    displayed, it is only used to sort.                          -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--     'Parsing' schemes will be vendor specific.  The examples at -->
<!--     right use a scheme that concatenates the first five letters -->
<!--     of family name followed by the first five of Given name.    -->
<!-- ............................................................... -->
<!ELEMENT sort (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Full name formatted in the way that the person prefers to be -->
<!--    addressed.                                                   -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--                                                                 -->
<!-- ............................................................... -->
<!ELEMENT nickname (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Name with all parts distinguished                            -->
<!-- ............................................................... -->
<!ELEMENT n (family? , given? , other* , prefix? , suffix? , partname*)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Note that this is the Family name, not the Last name.  The   -->
<!--    order of name parts varies by culture.                       -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--                                                                 -->
<!-- ............................................................... -->
<!ELEMENT family (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Given name, not necessarily first name.  The order of name   -->
<!--    parts varies by culture.                                     -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--                                                                 -->
<!-- ............................................................... -->
<!ELEMENT given (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Other name parts	                                       	 -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--                                                                 -->
<!-- ............................................................... -->
<!ELEMENT other (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    DEPRECATED TO THE partname ELEMENT.                          -->
<!-- Type  :                                                         -->
<!--    String 32                                                    -->
<!-- Notes :                                                         -->
<!--     Mr, Mrs, Ms, Mssr, Dr, etc.                                 -->
<!-- ............................................................... -->
<!ELEMENT prefix (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--                                                                 -->
<!-- Type  :                                                         -->
<!--    String 32                                                    -->
<!-- Notes :                                                         -->
<!--     Jr, III, Sr, etc                                            -->
<!-- ............................................................... -->
<!ELEMENT suffix (#PCDATA)>

<!-- V1.1 ADDITION													 -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    A partial name element.                                      -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--     The types are 'Maternal', 'Paterna', 'Initial', etc.        -->
<!-- ............................................................... -->
<!ELEMENT partname (#PCDATA)>
<!ATTLIST partname  lang         CDATA  #IMPLIED
                     partnametype CDATA  #REQUIRED >

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Demographic information about the person                     -->
<!-- Notes :                                                         -->
<!--     Minimal demographic information is specified.  What is here -->
<!--     is useful for the confirmation of identity.  Other data     -->
<!--     elements such as citizenship, ethnicity and place of birth  -->
<!--     have been considered for the standard specification, but no -->
<!--     specific interoperability need has been found for these     -->
<!--     elements as yet.                                            -->
<!-- ............................................................... -->
<!ELEMENT demographics (gender? , bday? , disability*)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Gender of the person.                                        -->
<!-- Type  :                                                         -->
<!--    String 1                                                     -->
<!-- Notes :                                                         -->
<!--     0 = unknown, 1 = female, 2 = male                           -->
<!-- ............................................................... -->
<!ELEMENT gender (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Date the person was born.	                                 -->
<!-- Type  :                                                         -->
<!--    Date in ISO8601 standard format                              -->
<!-- Notes :                                                         -->
<!--                                                                 -->
<!-- ............................................................... -->
<!ELEMENT bday (#PCDATA)>

<!-- V1.1 ADDITION													 -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Disability codes.			                                 -->
<!-- Type  :                                                         -->
<!--    String 32                              						 -->
<!-- Notes :                                                         -->
<!--    Not to be used for computer-based preferences.               -->
<!--                                                                 -->
<!ELEMENT disability (#PCDATA)>

<!-- ............................................................... -->
<!-- EMAIL is defined in the common elements section                 -->
<!-- ............................................................... -->

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Telephone number used to contact a person.                   -->
<!-- Type  :                                                         -->
<!--    String 32                                                    -->
<!-- Notes :                                                         -->
<!--     Attribute 1 = Voice,  2 = Fax, 3 = Mobile, 4 = Pager        -->
<!-- ............................................................... -->
<!ELEMENT tel (#PCDATA)>

<!ATTLIST tel  %I_Tel; >
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Address used to deliver physical objects to a person.        -->
<!-- Notes :                                                         -->
<!--     No repeatability is supported in the spec because no        -->
<!--     specific interoperability need has been identified for more -->
<!--     than one Address.                                           -->
<!-- ............................................................... -->
<!ELEMENT adr (pobox? , extadd? , street* , locality? , region? , pcode? , country?)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Post Office Box	                                             -->
<!-- Type  :                                                         -->
<!--    String 32                                                    -->
<!-- Notes :                                                         -->
<!--                                                                 -->
<!-- ............................................................... -->
<!ELEMENT pobox (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Extra address data                                           -->
<!-- Type  :                                                         -->
<!--    String 128                                                   -->
<!-- Notes :                                                         -->
<!--     Any 'non street' components of the address, Suite number,   -->
<!--     company name, care of, etc,                                 -->
<!-- ............................................................... -->
<!ELEMENT extadd (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Street address	                                             -->
<!-- Type  :                                                         -->
<!--    String 128                                                   -->
<!-- Notes :                                                         -->
<!--     Ordered list.  Should be used in the order presented        -->
<!-- ............................................................... -->
<!ELEMENT street (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Locality                                                     -->
<!-- Type  :                                                         -->
<!--    String 64                                                    -->
<!-- Notes :                                                         -->
<!--     City is one example of Locality	                           -->
<!-- ............................................................... -->
<!ELEMENT locality (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Region                                                       -->
<!-- Type  :                                                         -->
<!--    String 64                                                    -->
<!-- Notes :                                                         -->
<!--     State and Province are examples of Region                   -->
<!-- ............................................................... -->
<!ELEMENT region (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Postal Code	                                             -->
<!-- Type  :                                                         -->
<!--    String 32                                                    -->
<!-- Notes :                                                         -->
<!--     Format of postal code varies by country.                    -->
<!-- ............................................................... -->
<!ELEMENT pcode (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Country                                                      -->
<!-- Type  :                                                         -->
<!--    String 64                                                    -->
<!-- Notes :                                                         -->
<!--     Codes specified in ISO 3166                                 -->
<!-- ............................................................... -->
<!ELEMENT country (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Reference to an external location containing a photo of the  -->
<!--    person.                                                      -->
<!-- Notes :                                                         -->
<!--     I_Img - The type of image referred to                       -->
<!-- ............................................................... -->
<!ELEMENT photo (extref)>

<!ATTLIST photo  %I_Img; >

<!-- V1.1 ADDITION													 -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    The role of the Person within the LMS computer system.       -->
<!-- Type  :                                                         -->
<!--                                                      			 -->
<!-- Notes :                                                         -->
<!--     There is no data content.								     -->
<!--                                                      			 -->
<!-- ............................................................... -->
<!ELEMENT systemrole EMPTY>
<!ATTLIST systemrole  systemroletype  ( SysAdmin | 
                                        SysSupport | 
                                        Creator | 
                                        AccountAdmin | 
                                        User | 
                                        None )  #REQUIRED >
                                        
<!-- V1.1 ADDITION													 -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    The role of the Person within the Institution.       		 -->
<!-- Type  :                                                         -->
<!--                                                      			 -->
<!-- Notes :                                                         -->
<!--     There is no data content.  A Person may have more than		 -->
<!--     role in the institution.									 -->
<!--                                                      			 -->
<!-- ............................................................... -->
<!ELEMENT institutionrole EMPTY>
<!ATTLIST institutionrole  primaryrole          (Yes | No )  #REQUIRED
                            institutionroletype  (Student | 
                                                  Faculty | 
                                                  Staff | 
                                                  Alumni | 
                                                  ProspectiveStudent | 
                                                  Guest | 
                                                  Other | 
                                                  Administrator | 
                                                  Observer )  #REQUIRED >

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    The reference to an external location.                       -->
<!-- Type  :                                                         -->
<!--    String 1024                                                  -->
<!-- Notes :                                                         -->
<!--     Could be a URL.  Web standards for location references are  -->
<!--     not finalized.  When they are, this spec will incorporate   -->
<!--     them.                                                       -->
<!-- ............................................................... -->
<!ELEMENT extref (#PCDATA)>

<!-- ............................................................... -->
<!-- EXTENSION is defined in the common elements section             -->
<!-- ............................................................... -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!--                #### This is the GROUP object ####               -->
<!--                                                                 -->
<!--                    ############################                 -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- When a group data object is passed, the target system will      -->
<!-- update its files with the data in the object.  If a group is    -->
<!-- new, it will be added to the system.  If a group's data has     -->
<!-- changed, the new data should be used to update the target       -->
<!-- system. .  If a group is flagged for deletion, it is up to the  -->
<!-- target system to determine what action to take with that        -->
<!-- deletion information.                                           -->
<!-- Note that the target system needs to be capable of storing the  -->
<!-- source system's 'Sourced ID', which is used to uniquely         -->
<!-- identify a group within the implementation environment.  This   -->
<!-- is required  to support future updates of group information     -->
<!-- from the source system.                                         -->
<!-- It is possible to have a viable interface without automatically -->
<!-- exchanging Group data, but this then means that one or the other-->
<!-- of the systems involved in an interface must first store the    -->
<!-- other system's Group Identifier in order to support the passing -->
<!-- of Group membership data.                                       -->
<!-- ............................................................... -->
<!ELEMENT group (comments? , sourcedid+ , grouptype* , description , org? , timeframe? , enrollcontrol? , email? , url? , relationship* , groupmembers? , datasource? , extension?)>

<!ATTLIST group  %I_Recstatus; >
<!-- ............................................................... -->
<!-- SOURCEDID is defined in the common elements section             -->
<!-- ............................................................... -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Defines what type of group this is.                          -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--     This element provides a structure that allows a Group to be -->
<!--     categorized into one or more coding schemes, with any number-->
<!--     of levels supported within each scheme.                     -->
<!-- ............................................................... -->
<!ELEMENT grouptype (scheme? , typevalue+)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Group Type coding scheme                                     -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--     Identifies which Group categorization scheme is being used. -->
<!--     This could be a proprietary vendor taxonomy, a national     -->
<!--     subject area taxonomy, etc.                                 -->
<!-- ............................................................... -->
<!ELEMENT scheme (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Value of the for the group type as allowed by the scheme     -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--     Repeats to allow more than one level of code to be stored.  -->
<!--     Level attribute should be used to indicate an order of      -->
<!--     values                                                      -->
<!-- ............................................................... -->
<!ELEMENT typevalue (#PCDATA)>

<!ATTLIST typevalue  level CDATA  #REQUIRED >
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Description / Name of the Group.                             -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--                                                                 -->
<!-- ............................................................... -->
<!ELEMENT description (short , long? , full?)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Intended to be displayed on screen on less than one line.    -->
<!-- Type  :                                                         -->
<!--    String 60                                                    -->
<!-- Notes :                                                         -->
<!--     Usually something brief such as 'ENGLISH 101A  SECTION 4'.  -->
<!-- ............................................................... -->
<!ELEMENT short (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Longer descriptive name for the group.	                     -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--     English 101A - Great Authors of the 19th and 20th Century   -->
<!-- ............................................................... -->
<!ELEMENT long (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    A longer description of the group.                           -->
<!-- Type  :                                                         -->
<!--    String 2048                                                  -->
<!-- Notes :                                                         -->
<!--     For example, the 'catalog' description of a course.         -->
<!-- ............................................................... -->
<!ELEMENT full (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    The organization administering or 'sponsoring' the Group.    -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--     For example, Cal State San Marcos would be the administrator-->
<!--    of a course section offered on their campus.                 -->
<!-- ............................................................... -->
<!ELEMENT org (orgname? , orgunit* , type? , id?)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    The name of the organization.	                           -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--     'Cal State San Marcos'                                      -->
<!-- ............................................................... -->
<!ELEMENT orgname (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Name of sponsoring or administering unit within the          -->
<!--    organization                                                 -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--     One or more departments or units can sponsor the group.     -->
<!--     0158 - Math Department                                      -->
<!-- ............................................................... -->
<!ELEMENT orgunit (#PCDATA)>

<!-- ............................................................... -->
<!-- TYPE is defined in the common elements section                  -->
<!-- ............................................................... -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    ID of  the organization                                      -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--     If there is a code for the organization, it can be specified-->
<!--     separately in this field.                                   -->
<!-- ............................................................... -->
<!-- ............................................................... -->
<!-- ID is defined in the common elements section                    -->
<!-- ............................................................... -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Time frame when the group is active.                         -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--                                                                 -->
<!-- ............................................................... -->
<!ELEMENT timeframe (begin? , end? , adminperiod?)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Date of availability.                                        -->
<!-- Type  :                                                         -->
<!--    ISO8601                                                      -->
<!-- Notes :                                                         -->
<!--     restrict attribute Do not allow learner participation until -->
<!--     the begin date	                                             -->
<!-- ............................................................... -->
<!ELEMENT begin (#PCDATA)>

<!ATTLIST begin  restrict CDATA  #IMPLIED >
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Defines when group participation is intended to end.         -->
<!-- Type  :                                                         -->
<!--    ISO8601                                                      -->
<!-- Notes :                                                         -->
<!--     restrict attribute Do not allow learner participation until -->
<!--     the begin date	                                             -->
<!-- ............................................................... -->
<!ELEMENT end (#PCDATA)>

<!ATTLIST end  restrict CDATA  #IMPLIED >
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Short descriptive name in human readable form for the        -->
<!--    administrative or academic period within which the group     -->
<!--    exists                                                       -->
<!-- Type  :                                                         -->
<!--    String 32                                                    -->
<!-- Notes :                                                         -->
<!--                                                                 -->
<!-- ............................................................... -->
<!ELEMENT adminperiod (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--                                                                 -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--                                                                 -->
<!-- ............................................................... -->
<!ELEMENT enrollcontrol (enrollaccept? , enrollallowed?)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Indicates if the Group is accepting enrollments              -->
<!-- Type  :                                                         -->
<!--    0 = no , 1 = yes                                             -->
<!-- Notes :                                                         -->
<!--     There can be different reasons for a group being closed.    -->
<!--     It may be full, it may be cancelled.                        -->
<!-- ............................................................... -->
<!ELEMENT enrollaccept (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--   Can the target system enroll people?                          -->
<!-- Type  :                                                         -->
<!--    0 = no , 1 = yes                                             -->
<!-- Notes :                                                         -->
<!--     If No, then only the source system can enroll people.       -->
<!-- ............................................................... -->
<!ELEMENT enrollallowed (#PCDATA)>

<!-- ............................................................... -->
<!-- EMAIL is defined in the common elements section                 -->
<!-- ............................................................... -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    URL for a group                                              -->
<!-- Type  :                                                         -->
<!--    String 256                                                   -->
<!-- Notes :                                                         -->
<!--     For a course, this would be the course home page.           -->
<!-- ............................................................... -->
<!ELEMENT url (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    If the group is related to another group, then this Element  -->
<!--    can be used to describe that relationship                    -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--     The relationship described is the relationship of the group -->
<!--     in the relationship to the Group defined in the Group       -->
<!--     object.  For example, if the Label element says 'Subgroup'  -->
<!--     and the Relation element is '2' (child), then the group in  -->
<!--     this element is a subgroup and a child of the group defined -->
<!--     in the group object.                                        -->
<!--                                                                 -->
<!--     Note that this relationship segment should not be used to   -->
<!--     store 'membership' in other groups.  The Group membership   -->
<!--     construct is used for that type of role based membership.   -->
<!--                                                                 -->
<!--     Relation attribute  1=parent, 2=child, 3 =also known as	   -->
<!-- ............................................................... -->
<!ELEMENT relationship (sourcedid , label)>

<!ATTLIST relationship  %I_Relation; >
<!-- ............................................................... -->
<!-- SOURCEDID is defined in the common elements section             -->
<!-- ............................................................... -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Describes the nature of the relationship between this group  -->
<!--    and the related group.                                       -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--       "Course Subgroup", "Cross Listed Course Section"          -->
<!-- ............................................................... -->
<!ELEMENT label (#PCDATA)>

<!-- V1.1 ADDITION													 -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    The set of Groups that will be members of the host Group.    -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--    Used to construict course catalogues.			             -->
<!-- ............................................................... -->
<!ELEMENT groupmembers (sourcedid+)>

<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!--                #### This is the MEMBERSHIP object ####          -->
<!--                                                                 -->
<!--                    ############################                 -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- This object is primarily intended to pass group membership      -->
<!-- information from systems that manage various types of group     -->
<!-- enrollment processes to the systems that provide learning       -->
<!-- management services to those group members.  Note that the      -->
<!-- enrollment processes referred to here include a wide range of   -->
<!-- specific functionality, including but not limited to examples   -->
<!-- such as:                                                        -->
<!-- enrollment in a course,                                         -->
<!-- employment in a particular company division, or                 -->
<!-- membership in a club.                                           -->
<!-- In addition, it allows final result data to be exchanged        -->
<!-- (typically final grade or a completion indicator) so it can also-->
<!-- be used to pass the final result data back from the learning    -->
<!-- system to the enterprise systems.                               -->
<!-- When a membership data object is passed, the target system will -->
<!-- update its files with the data in the object.  If a membership  -->
<!-- is new, it will be added to the system.  If a membership        -->
<!-- record's data has changed, the new data should be used to update-->
<!-- the target system. .  If a membership is flagged for deletion,  -->
<!-- it is up to the target system to determine what action to take  -->
<!-- with that deletion information.                                 -->
<!-- ............................................................... -->
<!ELEMENT membership (comments? , sourcedid , member+)>

<!-- ............................................................... -->
<!-- SOURCEDID is defined in the common elements section             -->
<!-- ............................................................... -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--     Group Member                                                -->
<!-- ............................................................... -->
<!ELEMENT member (comments? , sourcedid , idtype , role+)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Indicates if the member is a person, or another group.       -->
<!-- Type  :                                                         -->
<!--     1 = Person,  2 = Group                                      -->
<!-- Notes :                                                         -->
<!--                                                                 -->
<!-- ............................................................... -->
<!ELEMENT idtype (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--                                                                 -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--     A member can have multiple roles in a group (for example    -->
<!--     Learner and Instructor).  These would be reflected in       -->
<!--     separate occurrences of the Role element.                   -->
<!--     attribute I_role 01=Learner                                 -->
<!--                      02=Instructor                              -->
<!--                      03=Content Developer                       -->
<!--                      04=Member                                  -->
<!--                      05=Manager                                 -->
<!--                      06=Mentor                                  -->
<!--                      07=Administrator                           -->
<!--                      08=Teaching Assistant                      -->
<!-- ............................................................... -->
<!ELEMENT role (subrole? , status , userid? , comments? , datetime? , timeframe? , interimresult* , finalresult* , email? , datasource? , extension?)>

<!ATTLIST role  %I_Recstatus;
                 %I_Role; >
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Further qualifies a member's role in the group               -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--      For an Instructor RoleType,                                -->
<!--           examples are:                                         -->
<!--             Primary Instructor, Teaching Assistant,Tutor        -->
<!-- ............................................................... -->
<!ELEMENT subrole (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Indicates if a member is active or inactive in the group.    -->
<!-- Type  :                                                         -->
<!--    0 = Inactive,1 = Active                                      -->
<!-- Notes :                                                         -->
<!--     This allows the source system to specifically tell the      -->
<!--     target system that a member is now active or inactive.      -->
<!--     Another view is that the absence of a membership record when-->
<!--     membership data is passed implies inactivity, and the       -->
<!--     existence of a record implies active membership.  This will -->
<!--     logically work for a 'snapshot' interface where all members -->
<!--     are passed every time objects are passed from one system to -->
<!--     another, but it will not support an interface where         -->
<!--     individual membership records are passed.                   -->
<!-- ............................................................... -->
<!ELEMENT status (#PCDATA)>

<!-- ............................................................... -->
<!-- USERID is defined in the common elements section                -->
<!-- ............................................................... -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--      Description of the current status.                         -->
<!-- Type  :                                                         -->
<!--      String 2048                                                -->
<!-- Notes :                                                         -->
<!--     May be used to describe why a member's status changed, or   -->
<!--     simply to record more detail about a member's status in the -->
<!--     group.                                                      -->
<!-- ............................................................... -->
<!ELEMENT comments (#PCDATA)>

<!ATTLIST comments  lang CDATA  #IMPLIED >
<!-- ............................................................... -->
<!-- TIMEFRAME is defined in the group object section                -->
<!-- ............................................................... -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--     Final result codes and value.                               -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--      The specification allows for the passing of a group        -->
<!--      member's final result mode and all valid result values     -->
<!--      from the source system to the target system.  It is        -->
<!--      provided at the Group member level because it can vary for -->
<!--      different members of a group ( one learner could be        -->
<!--      on a graded basis, another pass/fail, and another auditing,-->
<!--      with no valid result codes.                                -->
<!--      The specification also allows for the passing of a group   -->
<!--      member's final result, both a result code and result       -->
<!--      description.                                               -->
<!-- ............................................................... -->
<!ELEMENT finalresult (mode? , values? , result? , comments?)>

<!-- V1.1 ADDITION													 -->
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--     Interim result codes and value.                             -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--      The specification allows for the passing of a group        -->
<!--      member's interim result mode and all valid result values   -->
<!--      from the source system to the target system.  It is        -->
<!--      provided at the Group member level because it can vary for -->
<!--      different members of a group ( one learner could be        -->
<!--      on a graded basis, another pass/fail, and another auditing,-->
<!--      with no valid result codes.                                -->
<!--      The specification also allows for the passing of a group   -->
<!--      member's final result, both a result code and result       -->
<!--      description.  This structure complements the finalresult   -->
<!--      element.												     -->
<!-- ............................................................... -->
<!ELEMENT interimresult (mode? , values? , result? , comments?)>
<!ATTLIST interimresult  resulttype CDATA  #IMPLIED >

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Short descriptive name for final/interim result grading mode.-->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--     'Letter Grade','Pass/Fail','Percentage','Attendance'        -->
<!-- ............................................................... -->
<!ELEMENT mode (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--       Valid result values.                                      -->
<!-- Type  :                                                         -->
<!--     String 2048                                                 -->
<!-- Notes :                                                         -->
<!--       Used to tell the target system what final/interim result  -->
<!--       values are valid to assign to a learner.                  -->
<!-- ............................................................... -->
<!ELEMENT values (list* , min? , max?)>

<!ATTLIST values  %I_Value; >
<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    A specific result value                                      -->
<!-- Type  :                                                         -->
<!--    String 32                                                    -->
<!-- Notes :                                                         -->
<!--   The list contains the valid grades if Value Type = 0          -->
<!-- ............................................................... -->
<!ELEMENT list (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Maximum value                                                -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--   Used if I_Value = 1                                           -->
<!-- ............................................................... -->
<!ELEMENT max (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Minimum value                                                -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--   Used if I_Value = 1                                           -->
<!-- ............................................................... -->
<!ELEMENT min (#PCDATA)>

<!-- ............................................................... -->
<!-- Explanation :                                                   -->
<!--    Value of final/interim result assigned to the member for     -->
<!--    participation in the group. 	                           	 -->
<!-- Type  :                                                         -->
<!--                                                                 -->
<!-- Notes :                                                         -->
<!--   Ideally, this would be one of the values from the Result      -->
<!--   values list                                                   -->
<!-- ............................................................... -->
<!ELEMENT result (#PCDATA)>

