<!-- *************************************************************** -->
<!-- Title       : IMS-EP01.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.                                  -->
<!--                                                                 --> 
<!--                                                                 --> 
<!-- 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                                         --> 
<!--                                                                 --> 
<!-- *************************************************************** -->


<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!--                #### This is the Root element. ####              -->
<!--                                                                 --> 
<!ELEMENT ENTERPRISE  (PROPERTIES,PERSON*,GROUP*,MEMBERSHIP*) >
<!--                                                                 --> 
<!--                    ############################                 -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->



<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- ENTITIES                                                        -->
<!-- *************************************************************** -->
<!-- *************************************************************** -->


<!-- ............................................................... --> 
<!-- An enumerated vocabulary for I_Value:                           -->
<!--		0 = List                                                 --> 
<!--		1 = Range                                                -->
<!-- ............................................................... --> 
<!ENTITY % I_Value  '
	listrange (0|1) "0"'>


<!-- ............................................................... --> 
<!-- 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  '
	myrelationship (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) "01"'>

<!-- ............................................................... --> 
<!-- An enumerated vocabulary I_Recstatus :                          -->
<!--			1 = Add                                            -->
<!--			2 = Update                                         -->
<!--              3 = Delete                                         -->
<!-- ............................................................... --> 
<!ENTITY % I_Recstatus  '
	transaction (1|2|3) "1"'>

<!-- ............................................................... --> 
<!-- An enumerated vocabulary:                                       -->
<!--		1 = Preferred Voice                                      -->
<!--		2 = FAX                                                  -->
<!-- ............................................................... --> 
 <!ENTITY % I_Tel '
	teltype (1|2) "1"'>

<!-- ............................................................... --> 
<!-- An enumerated vocabulary:                                       -->
<!--		1 = PERSON object                                        -->
<!--		2 = GROUP object 		                                 -->
<!-- ............................................................... --> 
 <!ENTITY % I_IDtype '
	idtype (1|2) "1"'>

<!-- ............................................................... --> 
<!--  I_Img value is an IANA registered image type                   -->
<!-- ............................................................... --> 
 <!ENTITY % I_Img "
        imgtype CDATA #REQUIRED ">



<!-- *************************************************************** -->
<!-- *************************************************************** -->
<!-- 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) >
<!ELEMENT SOURCE  (#PCDATA) >
<!ELEMENT ID  (#PCDATA) >


<!-- ............................................................... --> 
<!-- Explanation :                                                   --> 
<!--                                                                 --> 
<!-- Type  :                                                         --> 
<!--    String 256                                                   --> 
<!-- Notes :                                                         -->
<!--   Person's user ID as defined for the object                    -->
<!-- ............................................................... --> 
<!ELEMENT USERID  (#PCDATA) >


<!-- ............................................................... --> 
<!-- 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  (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 (SOURCEDID,USERID?,NAME,DEMOGRAPHICS?,EMAIL?,TEL*,ADR?,PHOTO?,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?) >

<!-- ............................................................... --> 
<!-- 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 :                                                   --> 
<!--                                                                 -->
<!-- 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) >


<!-- ............................................................... --> 
<!-- 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?) >


<!-- ............................................................... --> 
<!-- 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) >

<!-- ............................................................... --> 
<!-- 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                               -->
<!-- ............................................................... --> 
<!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;>


<!-- ............................................................... --> 
<!-- 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)>
<!ATTLIST EXTREF
        value (URI|TEXT) "URI">

<!-- ............................................................... --> 
<!-- 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 (SOURCEDID,GROUPTYPE*,DESCRIPTION+,ORG?,TIMEFRAME?,
               ENROLLCONTROL?,EMAIL?,URL?,RELATIONSHIP*,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?) >
<!ATTLIST DESCRIPTION
               lang CDATA #IMPLIED  >

<!-- ............................................................... --> 
<!-- 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 (ORGNAM?, ORGUNIT*,TYPE?,ID?)>

<!-- ............................................................... --> 
<!-- Explanation :                                                   --> 
<!--    The name of the organization.	                           -->
<!-- Type  :                                                         --> 
<!--    String 256                                                   -->
<!-- Notes :                                                         --> 
<!--     'Cal State San Marcos'                                      -->
<!-- ............................................................... --> 
<!ELEMENT ORGNAM (#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    #REQUIRED  >

<!-- ............................................................... --> 
<!-- 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    #REQUIRED  >

<!-- ............................................................... --> 
<!-- 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) >
<!ATTLIST URL
        value (URI|TEXT) "URI">

<!-- ............................................................... --> 
<!-- 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 CDATA #IMPLIED  >

<!-- ............................................................... --> 
<!-- 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 (SOURCEDID,MEMBER*) >

<!-- ............................................................... --> 
<!-- SOURCEDID is defined in the common elements section             -->
<!-- ............................................................... --> 

<!-- ............................................................... --> 
<!-- Explanation :                                                   --> 
<!--     Group Member                                                -->
<!-- ............................................................... --> 
<!ELEMENT MEMBER (SOURCEDID,IDTYPE,ROLE+) >

<!-- ............................................................... --> 
<!-- Explanation :                                                   --> 
<!--    Indicates if the member is a person, or another group.       -->
<!-- Type  :                                                         --> 
<!--     1 = Person,  2 = Group                                      -->
<!-- Notes :                                                         --> 
<!--                                                                 -->
<!-- ............................................................... --> 
<!ELEMENT IDTYPE (#PCDATA)>
<!ATTLIST IDTYPE
	%I_IDtype;>

<!-- ............................................................... --> 
<!-- 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                           -->
<!-- ............................................................... --> 
<!ELEMENT ROLE  (SUBROLE?,STATUS,USERID?,COMMENTS?,TIMEFRAME?,FINALRESULT?,EMAIL?,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) >

<!-- ............................................................... --> 
<!-- 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?) >

<!-- ............................................................... --> 
<!-- Explanation :                                                   --> 
<!--    Short descriptive name for final 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 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 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) >

<!-- ............................................................... --> 
<!-- COMMENTS is defined above.This is a comment for the final result-->
<!-- ............................................................... --> 

<!-- ............................................................... --> 
<!-- EMAIL is defined in the common elements section                 -->
<!-- ............................................................... --> 


