<?xml version='1.0' encoding='UTF-8' ?>

<!--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.             -->
<!--                                                                 -->
<!--                                                                 	   -->
<!-- 1 Jul, 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 disability element 	 	   -->
<!--                         (f) Addition of authenticationtype attribute  -->
<!--                         (g) Addition of institutionroletype attribute -->
<!--                         (h) Addition of partnametype attribute 	   -->
<!--                         (i) Addition of primaryrole attribute 		   -->
<!--                         (j) Addition of pwencryptiontype attribute    -->
<!--                         (k) Addition of sourcedidtype attribute 	   -->
<!--                         (l) 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* , 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)>

<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!--                #### 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)>


