![]() |
1EdTech Enterprise XML Binding Version 1.1 Final Specification |
Copyright © 2002 1EdTech Consortium, Inc. All Rights Reserved. The 1EdTech Logo is a trademark of 1EdTech Consortium, Inc. Document Name: 1EdTech Enterprise XML Binding Date: 01 July 2002
|
IPR and Distribution Notices
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.
1EdTech takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on 1EdTech's procedures with respect to rights in 1EdTech specifications can be found at the 1EdTech Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
Copyright © 2002 1EdTech Consortium. All Rights Reserved.
Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.
Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: http://www.imsglobal.org/license.html.
The limited permissions granted above are perpetual and will not be revoked by 1EdTech or its successors or assigns.
THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
Table of Contents
1. Introduction
1.1 Enterprise Specification Overview
1.2 Scope and Context
1.3 Structure of this Document
1.4 Nomenclature
1.5 References
2. XML Basics
2.1 Elements
2.1.1 Element Contents
2.1.2 Element Attributes
2.1.3 Element Names
2.2 XML Schema Definition (XSD)
2.3 Document Type Definitions (DTD)
2.3.1 Declaring Element Contents
2.3.2 Declaring Element Attributes
2.3.3 Use of Attributes
2.4 Special Handling Requirements
2.4.1 XML Reserved Characters
2.4.2 White Space Handling
2.5 Extensibility
3. Normative Description of the XML Binding
3.1 <enterprise> Elements
3.1.1 <comments>
3.1.2 <properties>
3.1.3 <person>
3.1.4 <group>
3.1.5 <membership>
3.2 <properties> Elements
3.2.1 <comments>
3.2.2 <datasource>
3.2.3 <target>
3.2.4 <type>
3.2.5 <datetime>
3.2.6 <extension>
3.3 <person> Elements
3.3.1 <comments>
3.3.2 <sourcedid>
3.3.3 <userid>
3.3.4 <name>
3.3.5 <n>
3.3.6 <demographics>
3.3.7 <email>
3.3.8 <url>
3.3.9 <tel>
3.3.10 <adr>
3.3.11 <photo>
3.3.12 <systemrole>
3.3.13 <institutionrole>
3.3.14 <datasource>
3.3.15 <extension>
3.4 <group> Elements
3.4.1 <comments> Elements
3.4.2 <sourcedid>
3.4.3 <grouptype> Elements
3.4.4 <description> Elements
3.4.5 <org> Elements
3.4.6 <timeframe>
3.4.7 <enrollcontrol> Elements
3.4.8 <email>
3.4.9 <relationship> Elements
3.4.10 <datasource>
3.4.11 <extension>
3.5 <membership> Elements
3.5.1 <comments>
3.5.2 <sourcedid>
3.5.3 <member> Elements
3.5.4 <role> Elements
3.5.5 <interimresult> Elements
3.5.6 <finalresult> Elements
3.6 Common Data Elements
3.6.1 <comments> Element
3.6.2 <sourcedid> Element
3.6.3 <userid> Element
3.6.4 <timeframe> Element
4. Examples in Enterprise XML Instance
4.1 Person Instance
4.2 Group Instance
4.3 Membership Instance
Appendix A - Listing of the V1.1 DTD
Appendix B - Summary of Changes in this Document
About This Document
List of Contributors
Revision History
Index
1. Introduction
1.1 Enterprise Specification Overview
The original 1EdTech Enterprise V1.0 Specification was released in September 1999 with the errata V1.01 release following in December 1999 [Ent, 99a], [Ent, 99b], [Ent, 99c]. In August 2001 there was an 1EdTech Enterprise Specification Validation meeting hosted by WebCT and held in Vancouver, Canada. At this meeting a review was held of the many successfully installed interoperable Enterprise systems based upon the 1EdTech Enterprise Specification. The result of this meeting was the development and acceptance of the 1EdTech Enterprise V1.1/V2.0 Scoping document [Ent, 01].
The V1.1 1EdTech Enterprise Specification is fully backwards compatible with the V1.01 specification1. The core amendments for this version are:
- Support for a number of the proprietary extensions used to extend interoperability for the v1.01 release. These extensions cover the <person>, <group> and <membership> data objects;
- Support for multiple <sourcedid> and <userid> structures. Password support has been added to the <userid> structure;
- Provision of enumerated non-numeric vocabularies. V1.0 uses numeric-based vocabularies. Wherever possible the vocabularies are to be extended to reflect common usage;
- 'Internationalization' of the core data objects including:
1.2 Scope and Context
This document is the 1EdTech Enterprise XML Binding V1.1 Final Specification document and is derived from the corresponding Information Model [Ent, 2a]. As such it will be used as the basis for the development of the following documents:
This requirement has been derived from the agreed 1EdTech Enterprise V1.1/2.0 Scoping document [Ent, 01].
1.3 Structure of this Document
The structure of this document is:
1.4 Nomenclature
1.5 References
2. XML Basics
The Enterprise data model can be defined as a hierarchy. Hierarchical models are convenient for representing data consisting of many elements and sub-elements. XML is perfectly suited for representing hierarchical models. An XML document is a hierarchy comprised of elements that have contents and attributes.
2.1 Elements
An element is a component of a document that has been identified in a way a computer can understand. Each element has a tag name. When a tag name is shown as "<TAGNAME>", with less-than and greater-than symbols before and after the tag name, it serves as the start-tag to mark the beginning of an element. When that same tag name has a forward slash "/" added, it serves as an end-tag such as "</TAGNAME>". An element may have contents between its start and end-tags and may have one or more attributes. When an XML element has a start and end-tag (also called an opening and closing tag) with a common name, it is considered to be "well-formed" XML. The contents of an element are placed between the start and end-tags as shown below:
<TAGNAME>contents</TAGNAME>
2.1.1 Element Contents
An element may contain other elements, Parsed Character Data (PCDATA), Character Data (CDATA), or a mixture of PCDATA and elements. The allowable contents of an element are its content model. PCDATA really means any character string that does not contain elements. PCDATA is what the bulk of elements will use between their start and end-tags. CDATA is different in that it is a method for adding any character data that should not be processed. For example, you could add some Java script code instructions using a CDATA section. A CDATA section tells the parser not to look for any markup until after it locates the end of the CDATA section.
2.1.2 Element Attributes
An attribute provides additional information about an element. Attributes are a way of attaching characteristics or properties to the elements of a document. An element may have more than one attribute and they are contained within the start tag of an element. Attributes are represented by an attribute name followed by an equal sign and the attribute value in quotation marks:
<timeframe> <begin restrict="1">1999-07-23</begin> </timeframe>
In this example the <timeframe> element contains another element, the <begin> element. The <begin> element has one attribute "restrict", with the value 1. The value for the element <begin> is "1999-07-23". These two elements then make up a 'timeframe begin' date.
2.1.3 Element Names
Each element has a unique name, referred to as the tag name. XML is case-sensitive in its processing of tag names. The 1EdTech Enterprise XML Binding Specification adheres to the following tag name rules:
- All tag names will conform to the rules for element naming as given within the XML Version 1.0 specification;
- Names beginning in "xml" in any case or mix of cases are not permitted;
- All element and attribute names in the 1EdTech XML binding are aligned with the W3C XHTML standard and as such will be lower-case;
- Element names may not include words reserved by the XML specification. These include:
DOCTYPE
ELEMENT
ATTLIST
ENTITY - Tag names defined within the 1EdTech Enterprise XML Binding may not be redefined, with the exception of those that are used for extensions.
2.2 XML Schema Definition (XSD)
XML Schema Definition (XSD) is the primary XML binding control document format of 1EdTech (at present these bindings are working to the May 2001 version of XML Schema). The XSD defines elements, their content models, and attributes. It also defines the standard 1EdTech vocabularies. The XSD defines the element types and attribute groups separately from the elements. This serves three purposes:
- The element names are declared before the type definitions to prevent any declaration confusions by XML-Schema validators. This is analogous to declaring sub-routine and function names separately at the top of a program unit;
- The complexTypes may be managed more effectively, including support for derived types in the near future. Derivation will be used for harmonization and extension;
- The attributes may be managed more effectively, particularly when the same attributes are used by several elements' complexTypes.
2.3 Document Type Definitions (DTD)
The tag name, content model, and attributes of elements are defined in a Document Type Definition (DTD) statement. These may exist as an external file or a block of text internal to an XML document. Internal DTDs should be used with care. The DTD defines the elements that may be used, and may define the contents of the elements.
This specification defines the external DTD with the file name (for version 1.1): ims_epv1p1.dtd
Some XML editors may make use of a DTD to help guide the developer in creating the proper elements at the proper locations in an XML file. Other developers will make use of the DTDs to validate their XML documents to ensure their document is consistent with all of the element names and locations defined in the DTD. An XML document is valid if it has an associated document type declaration and if the document complies with the constraints expressed in it. Details of the construction of DTDs are outside the scope of this document, but links to the XML Version 1.0 specification are included in the References section of this document.
2.3.1 Declaring Element Contents
The information specifying the order and usage of allowable contents for an element are its content model. The content model is declared in a DTD (see below). The declaration of the content model is of the general form:
<!ELEMENT tagname (Content Model)>
The SHORT element can again serve as an example of how an element is declared with its content model:
<!ELEMENT short (#PCDATA)>
This element will contain character data (#PCDATA) that can be processed. The XML Specification provides more information about the details for creating and interpreting content models.
2.3.1.1 Lists
A list is a repetition of the contents of an element. In XML, this is accomplished by repeating the containing element: for example, the person element contains an element tel. Described in the DTD as:
<!ELEMENT person (tel*, extension?)>
When instantiated in XML a repeating list of ITEM elements would appear:
<person> <tel>First tel number</tel> <tel>Second tel number</tel> </person>
In this example, the element tel is repeated. Thus tel is the containing element for the repeated contents descriptions. The notation for repetitions of an element in a content model follows the XML specification. An asterisk (*) specifies that none or more repetitions of the element may be included in the XML instantiation whereas a plus (+) specifies that one or more repetitions of the element may be included in the XML instantiation. The extension element is not used - a question mark (?) specifies that none or one repetitions of the element may be included.
2.3.2 Declaring Element Attributes
An example of how the attributes for the element person is declared in a DTD is found below:
<!ELEMENT person (sourcedid, name, adr?, extension?)> <!ATTLIST person recstatus CDATA #IMPLIED>
The first line declares that there is an element named person that must have the sourcedid and name elements and is additionally allowed to have adr and/or extension elements as its contents. The second line begins with "!ATTLIST" to start an attribute list declaration for the person element. The word recstatus will serve as the attribute's name. The allowable value for this attribute must be of type CDATA.
At the end of the example above is the term IMPLIED. It is at this location in the attribute declaration, where a default value for an attribute may be specified. It is also possible to use the keyword REQUIRED which would force a TYPE value to be supplied and there would be no default value. In the example above, the IMPLIED designation means that the designer wants to allow users to omit the value for the attribute without forcing a particular default value.
2.3.3 Use of Attributes
Within the 1EdTech XML binding, the use of attributes is reserved for information about the structure of the relevant data object. This means that an attribute is used to create a specific type of element e.g., the element could be the date and its attribute could be used to define the date as the date of birth.
2.4 Special Handling Requirements
2.4.1 XML Reserved Characters
Some characters used in XML must be escaped when used outside of their XML defined usage as found in Section 2.4 of the XML 1.0 Specification. These characters are ampersand (&), less than (<), greater than (>), apostrophe(') and the double-quotes character("). These characters may be represented using either numeric character references or the strings ",&", "<", ">", "'", and """. Below is a more complete quote from the W3C XML specification:
Quote from Extensible Markup Language (XML) 1.0
W3C Recommendation 10-February-1998
2.4 Character Data and Markup
Text consists of intermingled character data and markup. Markup takes the form of start-tags, end-tags, empty-element tags, entity references, character references, comments, CDATA section delimiters, document type declarations, and processing instructions.
All text that is not markup constitutes the character data of the document.
The ampersand character (&) and the left angle bracket(<) may appear in their literal form only when used as markup delimiters or within a comment, a processing instruction or a CDATA section. They are also legal within the literal entity value of an internal entity declaration; see "4.3.2 Well-Formed Parsed Entities". If they are needed elsewhere, they must be escaped using either numeric character references or the strings "&" and "<" respectively. The right angle bracket (>) may be represented using the string ">" and must, for compatibility, be escaped using ">" or a character reference when it appears in the string "]]>" in content, when that string is not marking the end of a CDATA section.
In the content of elements, character data is any string of characters which does not contain the start delimiter of any markup. In a CDATA section, character data is any string of characters not including the CDATA-section-close delimiter, "]]>".
To allow attribute values to contain both single and double quotes, the apostrophe or single-quote character (') may be represented as "'", and the double-quote character (") as """.
2.4.2 White Space Handling
Questions arise as to whether Web-based data transmission tools might inadvertently strip-off or transform some of the white space characters embedded in the Enterprise data transmitted between systems using XML. To eliminate concern about this issue, refer to the following quote from the W3C XML standards, which indicate that all white space must be preserved where it is part of the data.
Quote from Extensible Markup Language (XML) 1.0
W3C Recommendation 10-February-1998
2.10 White Space Handling
In editing XML documents, it is often convenient to use "white space" (spaces, tabs, and blank lines, denoted by the non-terminal S in this specification) to set apart the markup for greater readability. Such white space is typically not intended for inclusion in the delivered version of the document. On the other hand, "significant" white space that should be preserved in the delivered version is common, for example in poetry and source code.
An XML processor must always pass all characters in a document that are not markup through to the application. A validating XML processor must also inform the application which of these characters constitute white space appearing in element content.
A special attribute named xml:space may be attached to an element to signal an intention that in that element, white space should be preserved by applications. In valid documents, this attribute, like any other, must be declared if it is used. When declared, it must be given as an enumerated type whose only possible values are "default" and "preserve". For example:
<!ATTLIST poem xml:space (default | preserve)'preserve'>
The value "default" signals that applications' default white-space processing modes are acceptable for this element; the value "preserve" indicates the intent that applications preserve all the white space. This declared intent is considered to apply to all elements within the content of the element where it is specified, unless overridden with another instance of the xml:space attribute.
2.5 Extensibility
Some providers will find the current element set defined in the Enterprise Specification too restrictive to accomplish their purposes. To ensure extensibility, the specification requires that there be no limit on potential extensions to major elements. An extension is the addition of information to an existing XML structure.
<!ELEMENT extension ANY>
An example of the inclusion of extension in the content model of element person is:
<!ELEMENT person (name, adr, extension?)>
The use of the person element is illustrated as follows:
<person> <name> ... Name data ... </name> <adr> ... Address data ... </adr> <extension> <comment>This is a test to demo extensions</comment> </extension> </person>
The contents, but not a content model, of an extension must be declared in an internal or external DTD. Many extensions can be created through the use of existing elements. Care must be used with internal DTDs, as they over-ride external DTD declarations. The content of an extension must obey the attribute and content models of the elements employed. New elements that duplicate the definitions of existing elements should not be introduced.
Prefacing the extension element with an appropriate namespace may reference descriptions of extensions. For example, a group such as the Advanced Distributed Learning (ADL) initiative may wish to add the "adl" prefix to an extension element to uniquely identify ADL extensions (the prefix must be declared in the head of the XML instance). The following is an example of this:
<person> ... mandatory elements of person elements here ... <adl:extension adl:classification="Not classified"> <adl:comment>Discusses how the people are assigned to defence posts.</adl:comment> </adl:extension> </person>
This serves to note the entire extension structure. Extensions should always be added at the lowest point (farthest from the root element) in the hierarchy possible, to the degree that the structure defines the meaning of the extension.
3. Normative Description of the XML Binding
3.1 <enterprise> Elements
Description: This is the root element for the entire 1EdTech Enterprise Specification. All of the corresponding Enterprise XML instances must include this element as their root.

Multiplicity: The root element for the 1EdTech Enterprise XML binding.
<enterprise> <comments>The basic structure for an 1EdTech Enterprise XML instance.</comments> <properties> ... </properties> <person> ... </person> <person> ... </person> <group> ... </group> <group> ... </group> <membership> ... </membership> <membership> ... </membership> </enterprise>
3.1.1 <comments>
Description: This is the container for comments that are relevant to the <enterprise> structure as a whole. This comment will be passed through the XML parser and is available to the host system.
Data type: String of characters [1-2048]
Multiplicity: Occurs zero or once within the <enterprise> element.
Attributes: See structure 3.6.1.
3.1.2 <properties>
Description: The container of the basic packaging information that is used to manage the exchange of data between source and target systems. This element is in effect the 'header' construct for the Enterprise message with the corresponding <person>, <group> and/or <membership> structures acting as the body of the message.
Multiplicity: Occurs once within the <enterprise> element.
Attributes: See structure 3.2.
3.1.3 <person>
Description: The container for information about a particular learner undertaking the learning experience. This information is not intended to be a definitive description of the individual but is intended to supply only the core information relevant to a learning management system.
Multiplicity: Occurs zero or more times within the <enterprise> element.
Attributes: See structure 3.3.
3.1.4 <group>
Description: The container for all of the information about a group and its relationship to other groups. A group can be a collection of individuals, a set of curriculum definitions, or any other collection of relevant objects. The group structure is a convenient abstract container for any collection of common objects.
Multiplicity: Occurs zero or more times within the <enterprise> element.
Attributes: See structure 3.4.
3.1.5 <membership>
Description: The container for all of the information about the members (as defined in the <person> and/or <group> structures) for a particular Group. This structure is used to establish the membership relations between Groups and Groups/Persons.
Multiplicity: Occurs zero or more times within the <enterprise> element.
Attributes: See structure 3.5.
3.2 <properties> Elements
Description: The container for the basic packaging information that is used to manage the exchange of the data between the source and target systems.

Multiplicity: Occurs once within the <enterprise> structure.
- lang (optional). Identifies the language in which the properties information is supplied. The vocabulary is based upon the ISO639 standard.
Data type= String [1-128].
<enterprise> <properties lang="en-US"> <comments>A relevant comment about this structure.</comments> <datasource>Cal State SIS</datasource> <target>Cal State LMS-1</target> <target>Cal State LMS-2</target> <type>Initial Group Creation</group> <datetime>2002-04-01T15:00:00</datetime> </properties> ... </enterprise>
3.2.1 <comments>
Description: This is the container for comments that are relevant to the <properties> structure as a whole. This comment will be passed through the XML parser and is available to the host system.
Data type: String of characters [1-2048]
Multiplicity: Occurs zero or once within the <properties> element.
Attributes: See structure 3.6.1.
3.2.2 <datasource>
Description: This is the source address/identifier of the Enterprise system that is initiating the data transfer. This must uniquely identify the source system thereby enabling communication between the source and target Enterprise systems.
Data type= String of characters [1-256].
Multiplicity: Occurs once within the <properties> structure.
3.2.3 <target>
Description: An identifier for the target Enterprise System. This identifier should be capable of uniquely identifying the appropriate Enterprise System.
Data type= String of characters [1-256].
Multiplicity: Occurs zero or more times in the <properties> structure.
3.2.4 <type>
Description: Describes the type of event that caused the source system to generate the data objects. The set of codes that could be used must be agreed as part of the business mapping rules between the communicating Enterprise Systems.
Data type= String of characters [1-32].
Multiplicity: Occurs zero or once in the <properties> structure.
3.2.5 <datetime>
Description: The date and time the data objects were generated by the data source. The format is as defined by ISO8601.
Data type= String of characters [YYYY-MM-DDTHH:MM:SS].
Multiplicity: Occurs once within the <properties> structure.
3.2.6 <extension>
Description: This is the container for any proprietary extensions features that are to be added to the <properties> element. These extensions can make use of any of the elements already defined within the DTD or can support new elements that are introduced within the DTD.
Multiplicity: Occurs zero or once within the <properties> structure.
3.3 <person> Elements
Description: The container for all of the information about a particular individual. This information is not a complete description of the person as only the data immediately relevant to learning is required.

Multiplicity: Occurs zero or more times within the <enterprise> structure.
- recstatus (optional and enumerated as: 1=Add, 2=Update, 3=Delete). Identifies the type of transaction being attempted.
Data type= Integer [1-3].
- comments
- sourcedid
- userid
- name
- demographics
- url
- tel
- adr
- photo
- systemrole
- institutionrole
- datasource
- extension
<person> <comments>An useful comment, hopefully.</comments> <sourcedid> <source>1EdTech-LMS</source> <id>student_123456</id> </sourcedid> <userid>ColinS</userid> <name> <fn>Colin Smythe</fn> <prefix>Dr</prefix> </name> <demographics> <gender>2</gender> <bday>1958-03-31T00:00</bday> <disability>Blind</disability> </demographics> <email>colin@imsglobal.org</email> <url>http://www.imsglobal.org</url> <tel telnum="1">+44-114-2335007</tel> <adr> <pobox>345</pobox> <extadd>Region Court</extadd> <street>56 Grange Road</street> <locality>Guildford</locality> <pcode>GU12 5XH</pcode> <country>United Kingdom</country> </adr> <photo imgtype="image/jpg"> <extref>http://www.imsglobal.org/staff/photo.jpg</extref> </photo> <systemrole systemroletype="SysAdmin"/> <institutionrole primaryrole="Yes" institutionroletype="Administrator"/> <datasource>CSU-LMS</datasource> </person>
3.3.1 <comments>
Description: This is the container for comments that are relevant to the <person> structure as a whole. This comment will be passed through the XML parser and is available to the host system.
Data type: String of characters [1-2048]
Multiplicity: Occurs zero or once within the <person> element.
Attributes: See structure 3.6.1.
3.3.2 <sourcedid>
Description: This is the unique identifier assigned to the <person> structure. This must be a persistent identifier as it is used to co-ordinate the different operations on the same data structure.
Multiplicity: Occurs one or more times within the <person> structure.
Attributes: See structure 3.6.2.
3.3.3 <userid>
Description: The Person's user ID to access the learning management environment.
Data type = String of characters [1-256].
Multiplicity: Occurs zero or more times in the <person> structure.
Attributes: See structure 3.6.3.
3.3.4 <name>
Description: The name of the Person. The name parts specified are used to support interoperability and not to maintain a full record of a person's name and all their alternative names.

Multiplicity: Occurs once in the <person> structure.
3.3.4.1 <fn>
Description: The formatted name. Examples include: 'Robert Lawdon Jones', 'Dr Basten Holter', etc.
Data type = String of characters [256].
Multiplicity: Occurs zero or once in the <name> structure.
3.3.4.2 <sort>
Description: Name 'parsed' and re-ordered so it will sort appropriately on an alphabetized report or outline panel (this name is never displayed, it is only used for sorting). The parsing schemes will be vendor specific.
Data type = String of characters [256].
Multiplicity: Occurs zero or once in the <name> structure.
3.3.4.3 <nickname>
Description: Full name formatted in the way that the Person prefers to be addressed.
Data type = String of characters [256].
Multiplicity: Occurs zero or once in the <name> structure.
3.3.5 <n>
Description: The name with all parts distinguished.
Multiplicity: Occurs zero or once within the <name> structure.
3.3.5.1 <family>
Description: This is the family name and not necessarily the last name.
Data type = String of characters [256].
Multiplicity: Occurs zero or once within the <n> structure.
3.3.5.2 <given>
Description: The given name and not necessarily the first name.
Data type = String of characters [256].
Multiplicity: Occurs zero or once within the <n> structure.
3.3.5.3 <other>
Description: Other name parts. This field is to be deprecated in favour of the <partname> field.
Data type = String of characters [256].
Multiplicity: Occurs zero or more times within the <n> structure.
3.3.5.4 <prefix>
Description: Name prefix e.g., 'Mr', 'Mrs', 'Dr', etc.
Data type = String of characters [32].
Multiplicity: Occurs zero or once within the <n> structure.
3.3.5.5 <suffix>
Description: Name suffix e.g., 'Jr', 'Snr', etc.
Data type = String of characters [32].
Multiplicity: Occurs zero or once within the <n> structure.
3.3.5.6 <partname>
Description: The name supplied in its typed component parts.
Data -type = String of characters [256].
Multiplicity: Occurs zero or more times within the <n> structure.
- lang (optional). Identifies the language in which the name component is written. The vocabulary is based upon the ISO639 standard.
Data type= String [1-128]. - partnametype (mandatory). The type component of the name. Examples of this include 'Last', 'First', 'Paternal', 'Initials', etc.
Data type= String [1-64].
3.3.6 <demographics>
Description: The container for all of the demographic information about the Person. This is not an exhaustive set of information but instead is a small subset relevant to the learning experience.

Multiplicity: Occurs zero or once within the <person> structure.
3.3.6.1 <gender>
Description: The gender of the Person. This is enumerated as 0=Unknown, 1=Female and 2=Male.
Data -type = String of characters [1].
Multiplicity: Occurs zero or once in the <demographics> structure.
3.3.6.2 <bday>
Description: The birth date of the Person. The format is based upon the ISO8601.
Data -type = DateTime as a String of characters [YYYY-MM-DDTHH:MM:SS].
Multiplicity: Occurs zero or once in the <demographics> structure.
3.3.6.3 <disability>
Description: An indication of the disability category of the individual. This information is NOT to be used to define the computer-based preferences of the Person.
Data -type = String of characters [1-32].
Multiplicity: Occurs zero or more times in the <demographics> structure.
3.3.7 <email>
Description: The e-mail address used to contact the Person.
Data type = String of characters [1-256].
Multiplicity: Occurs zero or once in the <person> structure.
3.3.8 <url>
Description: The Web address for the Person.
Data type = Absolute URL string of characters [1-1024].
Multiplicity: Occurs zero or once in the <person> structure.
3.3.9 <tel>
Description: The telephone numbers that can be used to contact the person. This is not an exhaustive set of contact numbers. There is no predefined format for the numbers.
Data type = String of characters [1-32].
Multiplicity: Occurs zero or more times within the <person> structure.
- teltype (optional enumerated as: 1=Voice, 2=Fax, 3=Mobile, 4=Pager, Voice, Fax, Mobile, Pager). Identifies the type of telephone number.
Data type= String [1-8].
3.3.10 <adr>
Description: The address used to deliver physical objects to a person. Only one address is usually supplied for the Person.

Multiplicity: Occurs zero or once within the <person> structure.
3.3.10.1 <pobox>
Description: The post office box number component of the address.
Data type = String of characters [1-32].
Multiplicity: Occurs zero or once within the <adr> structure.
3.3.10.2 <extadd>
Description: Extra address space. Any non-street components of the address e.g., suite number, etc.
Data type = String of characters [1-128].
Multiplicity: Occurs zero or once within the <adr> structure.
3.3.10.3 <street>
Description: The actual street address.
Data type = String of characters [1-128].
Multiplicity: No more than three occurrences within the <adr> structure.
3.3.10.4 <locality>
Description: The locality component of the address e.g., the City.
Data type = String of characters [1-64].
Multiplicity: Occurs zero or once within the <adr> structure.
3.3.10.5 <region>
Description: The region component of the address. State and Province are examples of Region.
Data type = String of characters [1-64].
Multiplicity: Occurs zero or once within the <adr> structure.
3.3.10.6 <pcode>
Description: The postal code component of the address. This format varies from country to country.
Data type = String of characters [1-32].
Multiplicity: Occurs zero or once within the <adr> structure.
3.3.10.7 <country>
Description: The country component of the address. The format is based upon ISO3166.
Data type = String of characters [1-64].
Multiplicity: Occurs zero or once within the <adr> structure.
3.3.11 <photo>
Description: Reference to an external location containing a photo of the Person.

Multiplicity: Occurs zero or once with the <person> structure.
- imgtype (optional). Identifies the type of image as described using the MIME notation.
Data type= String [1-32].
3.3.11.1 <extref>
Description: The reference to an external location. This could take the form of a URL.
Data type= String [1-1024].
Multiplicity: Occurs once within the <photo> structure.
3.3.12 <systemrole>
Description: The role of the Person within the software environment.
Data type= This element has no content.
Multiplicity: Occurs zero or once within the <person> structure.
- systemroletype (mandatory enumerated as: SysAdmin, SysSupport, Creator, AccountAdmin, User, Administrator, None). Identifies the type of role that the Person is permitted within the software environment.
Data type= String [1-32].
3.3.13 <institutionrole>
Description: The role of the Person within the institution. Each separate occurrence is used to define each role.
Data type= This element has no content.
Multiplicity: Occurs zero or more times within the <person> structure.
- primaryrole (optional enumerated as: Yes, No). Identifies if the associated role is the primary one for the Person in the institution.
Data type= String [1-4]. - institutionroletype (mandatory enumerated as: Student, Faculty, Member, Learner, Instructor, Mentor, Staff, Alumni, ProspectiveStudent, Guest, Other, Administrator, Observer). Identifies the type of role that the Person has within the institution.
Data type= String [1-32].
3.3.14 <datasource>
Description: This is the source address/identifier of the original Enterprise system that originally created the data.
Data type= String of characters [1-256].
Multiplicity: Occurs once within the <person> structure.
3.3.15 <extension>
Description: This is the container for any proprietary extensions features that are to be added to the <person> element. These extensions can make use of any of the elements already defined within the DTD or can support new elements that are introduced within the DTD.
Multiplicity: Occurs zero or once within the <person> structure.
3.4 <group> Elements
Description: The container for all of the information about a Group and its relationship(s) to other Group(s). The definition of what is or is not a group is open to interpretation i.e. the Group structure is an abstract representation of many forms of collections of common educational activities and/or objects.

Multiplicity: Occurs zero or more times within the <enterprise> structure.
- recstatus (optional and enumerated as: 1=Add, 2=Update, 3=Delete). Identifies the type of transaction being attempted.
Data type= Integer [1-3].
- comments
- sourcedid
- grouptype
- description
- org
- timeframe
- enrollcontrol
- url
- relationship
- groupmembers
- datasource
- extension
<group> <comments>An useful comment, hopefully.</comments> <sourcedid> <source>1EdTech-LMS</source> <id>student_123456</id> </sourcedid> <grouptype> <scheme>HEFCE</scheme> <typevalue level="1">Course</typevalue> </grouptype> <description> <short>Applied Physics</short> <long>Three year BSc in Applied Physics & Electronics Engineering Degree</long> </description> <org> <orgname>Standford College of Technology</orgname> <orgunit>Department of Applied Physics</orgunit> <type>Academic Unit</type> <id>Dept_SCT_125</id> </org> <timeframe> <begin restrict="0">2002-03-01</begin> <end restrict="0">2002-03-31</begin> <adminperiod>End of Q1 2002</adminperiod> </timeframe> <enrollcontrol> <enrollaccept>1</enrollaccept> <enrollallowed>0</enrollallowed> </enrollcontrol> <email>group@imsglobal.org</email> <url>http://www.imsglobal.org</url> <relationship relation="1"> <sourcedid> <source>SIS</source> <id>12</id> </sourcedid> <label>Year 1 lectures</label> </relationship> <datasource>CSU-LMS</datasource> </group>
3.4.1 <comments> Elements
Description: This is the container for comments that are relevant to the <group> structure as a whole. This comment will be passed through the XML parser and is available to the host system.
Data type: String of characters [1-2048]
Multiplicity: Occurs zero or once within the <group> element.
Attributes: See structure 3.6.1.
3.4.2 <sourcedid>
Description: This is the unique identifier assigned to the <group> structure. This must be a persistent identifier as it is used to co-ordinate the different operations on the same data structure.
Multiplicity: Occurs one or more times within the <group> structure.
Attributes: See structure 3.6.2.
3.4.3 <grouptype> Elements
Description: Defines the type of Group. This structure allows a Group to be categorized into one or more coding schemes with any number of levels supported within each scheme.

Multiplicity: Occurs zero or more times within the <group> structure.
3.4.3.1 <scheme>
Description: Group type coding scheme. Identifies which Group categorization scheme is being used. This could be a proprietary vendor taxonomy, etc.
Data type = String of characters [1-256].
Multiplicity: Occurs zero or once within the <grouptype> structure.
3.4.3.2 <typevalue>
Description: The container for the type classification being assigned to the Group.
Data type = String of characters [1-256].
Multiplicity: Occurs zero or more times within the <grouptype> structure.
- level (mandatory). The code level assigned to the Group. Level 1 is the highest, level 2 the next, etc.
Data type = String of characters [1-2].
3.4.4 <description> Elements
Description: Description/name of the Group.
Multiplicity: Occurs once within the <group> structure.

3.4.4.1 <short>
Description: Intended to be displayed on screen on less than one line.
Data type = String of characters [1-60]
Multiplicity: Occurs once within the <description> structure.
3.4.4.2 <long>
Description: Longer descriptive name for the Group.
Data type = String of characters [1-256]
Multiplicity: Occurs zero or once within the <description> structure.
3.4.4.3 <full>
Description: A longer description of the Group.
Data type = String of characters [1-2048]
Multiplicity: Occurs zero or once within the <description> structure.
3.4.5 <org> Elements
Description: The organization administering or sponsoring the Group.

Multiplicity: Occurs zero or once within the <group> structure.
3.4.5.1 <orgname>
Description: The name of the organization.
Data type = String of characters [1-256].
Multiplicity: Occurs zero or once within the <org> structure.
3.4.5.2 <orgunit>
Description: Name of the sponsoring or administering unit within the organization.
Data type = String of characters [1-256].
Multiplicity: Occurs zero or more times within the <org> structure.
3.4.5.3 <type>
Description: Used to distinguish general categories of the organization. Examples include 'Academic Unit', etc.
Data type = String of characters [1-32].
Multiplicity: Occurs zero or once within the <org> structure.
3.4.5.4 <id>
Description: Permanently unique identifier of the organization.
Data type = String of characters [1-256].
Multiplicity: Occurs zero or once within the <orgname> element.
3.4.6 <timeframe>
Description: The timeframe when the Group is active.
Multiplicity: Occurs zero or once within the <group> structure.
Attributes: See structure 3.6.4.
3.4.7 <enrollcontrol> Elements
Description: Contains the information that indicates the enrolment activity permitted for this Group.

Multiplicity: Occurs zero or once in the <group> structure.
3.4.7.1 <enrollaccept>
Description: Indicates if the Group is accepting enrolments. This is enumerated as '0=No' and '1=Yes'. There can be different reasons for a Group being closed e.g., it may be full.
Data type = Integer [0 or 1].
Multiplicity: Occurs zero or once within the <enrollcontrol> structure.
3.4.7.2 <enrollallowed>
Description: Determines if the target system can enrol people. This is enumerated as '0=No' and '1=Yes'. If 'No' then only the source system can enrol people.
Data type = Integer [0 or 1].
Multiplicity: Occurs zero or once within the <enrollcontrol> structure.
3.4.8 <email>
Description: The e-mail address used to contact the Group.
Data type = String of characters [1-256].
Multiplicity: Occurs zero or once in the <group> structure.
3.4.8.1 <url>
Description: The Web address for the Group.
Data type = Absolute URL string of characters [1-1024].
Multiplicity: Occurs zero or once in the <group> structure.
3.4.9 <relationship> Elements
Description: Used to describe the relationship between this containing Group and other groups.

Multiplicity: Occurs zero or more times within the <group> structure.
- relation (optional and enumerated as: 1=Parent, 2=Child, 3=Also known as, Parent, Child, KnownAs). Defines the nature of the relationship. The field is used to define the relationship of this group to the object Group. The relationship is defined as 'A' is the 'relation' of 'B' where 'A' is the Group whose sourcedid is defined in the <relationship> structure and 'B' is the Group containing the <relationship> element.
Data type= String of characters [1-8].
3.4.9.1 <sourcedid>
Description: This is the unique identifier of the Group whose relationship to the containing Group is being defined.
Multiplicity: Occurs once within the <relationship> structure.
Attributes: See structure 3.6.2.
3.4.9.2 <label>
Description: Describes the nature of the relationship between this Group and the containing Group. Examples are 'Course sub-group' etc.
Data type = String of characters [1-32].
Multiplicity: Occurs once within the <relationship> structure.
3.4.10 <datasource>
Description: This is the source address/identifier of the original Enterprise system that originally created the data.
Data type= String of characters [1-256].
Multiplicity: Occurs once within the <group> structure.
3.4.11 <extension>
Description: This is the container for any proprietary extensions features that are to be added to the <group> element. These extensions can make use of any of the elements already defined within the DTD or can support new elements that are introduced within the DTD.
Multiplicity: Occurs zero or once within the <group> structure.
3.5 <membership> Elements
Description: The container for all of the information about the members (as defined in a Person and/or Group structure) in a particular Group.

Multiplicity: Occurs zero or more times within the <enterprise> structure.
<membership> <comments>A useful comment!</comments> <sourcedid> <source>LMS</source> <id>1456_Group</id> <sourcedid> <member> <comments>About the member</comments> <sourcedid> <source>Profile</source> <id>Student_563</id> <sourcedid> <idtype>1</idtype> <role recstatus="1" roletype="01"> <status>1</status> <datetime>2002-03-13</datetime> <finalresult> <mode>Letter Grade</mode> <values valuetype="0"> <list>A</list> <list>B</list> <list>C</list> <list>D</list> <list>E</list> </values> <result>B</result> <comments>The student has passed this part of the course.</comments> </finalresult> </role> </member> </membership>
3.5.1 <comments>
Description: This is the container for comments that are relevant to the <membership> structure as a whole. This comment will be passed through the XML parser and is available to the host system.
Data type: String of characters [1-2048]
Multiplicity: Occurs zero or once within the <membership> element.
Attributes: See structure 3.6.1.
3.5.2 <sourcedid>
Description: This is the unique identifier assigned to the <group> structure for which the memberships are being defined. This must be a persistent identifier as it is used to co-ordinate the different operations on the same data structure.
Multiplicity: Occurs once within the <membership> structure.
Attributes: See structure 3.6.2.
3.5.3 <member> Elements
Description: Information about a particular member of the Group.

Multiplicity: Occurs once or more times within the <membership> structure.
3.5.3.1 <comments>
Description: This is the container for comments that are relevant to the <member> structure as a whole. This comment will be passed through the XML parser and is available to the host system.
Data type: String of characters [1-2048]
Multiplicity: Occurs zero or once within the <member> element.
Attributes: See structure 3.6.1.
3.5.3.2 <sourcedid>
Description: This is the unique identifier assigned to the <group> or <person> structure which is the member of the host group. This must be a persistent identifier as it is used to co-ordinate the different operations on the same data structure.
Multiplicity: Occurs once within the <member> structure.
Attributes: See structure 3.6.2.
3.5.3.3 <idtype>
Description: Indicates if the Member is a Person or another Group. Enumerated as either 1=Person or 2=Group.
Data type = Integer [1 or 2].
Multiplicity: Occurs once within the <member> structure.
3.5.4 <role> Elements
Description: The role of the member in the Group. A member can have more that one role or the role can be divided into several sub-roles.

Multiplicity: Occurs one or more times within the <member> structure.
- recstatus (optional and enumerated as: 1=Add, 2=Update, 3=Delete). Identifies the type of transaction being attempted.
Data type = Integer [1-3]. - roletype (optional). The member's function within a Group. The content is enumerated as: 01=Learner, 02=Instructor, 03=Content Developer, 04=Member, 05=Manager, 06=Mentor, 07=Administrator, 08=Teaching Assistant, Learner, Instructor, ContentDeveloper, Member, Manager, Mentor, Administrator, TeachingAssistant.
Data type = String of characters [1-32].
- subrole
- status
- userid
- comments
- datetime
- timeframe
- interimresult
- finalresult
- datasource
- extension
3.5.4.1 <subrole>
Description: Further qualifies a member's role in the Group.
Data type = String of characters [1-32].
Multiplicity: Occurs zero or once in the <role> structure.
3.5.4.2 <status>
Description: Indicates if a member is active or inactive in the Group. Enumerated as '0=Inactive' or '1=Active'.
Data type = Integer [0 or 1].
Multiplicity: Occurs once in the <role> structure.
3.5.4.3 <userid>
Description: The Person's user ID to access the Group for this role.
Data type = String of characters [1-256].
Multiplicity: Occurs zero or more times in the <role> structure.
Attributes: See structure 3.6.3.
3.5.4.4 <comments>
Description: The description of the current status. This comment will be passed through the XML parser and is available to the host system.
Data type: String of characters [1-2048]
Multiplicity: Occurs zero or once within the <role> element.
Attributes: See structure 3.6.1.
3.5.4.5 <datetime>
Description: The date the current membership was established. The format is as defined by ISO8601.
Data type= String of characters [YYYY-MM-DD].
Multiplicity: Occurs once within the <properties> structure.
3.5.4.6 <timeframe>
Description: The timeframe when the Membership is active.
Multiplicity: Occurs zero or once within the <group> structure.
Attributes: See structure 3.6.4.
3.5.4.7 <email>
Description: The e-mail address used to contact a member for information related to a specific Group membership.
Data type = String of characters [1-256].
Multiplicity: Occurs zero or once in the <role> structure.
3.5.4.8 <datasource>
Description: This is the source address/identifier of the original Enterprise system that originally created the data.
Data type= String of characters [1-256].
Multiplicity: Occurs once within the <role> structure.
3.5.4.9 <extension>
Description: This is the container for any proprietary extensions features that are to be added to the <role> element. These extensions can make use of any of the elements already defined within the DTD or can support new elements that are introduced within the DTD.
Multiplicity: Occurs zero or once within the <role> structure.
3.5.5 <interimresult> Elements
Description: Interim result codes and value. Both the actual score and a description of the score can be supplied. This structure is to be deprecated in v2.0.

Multiplicity: Occurs zero or more times within the <role> structure.
- resulttype (optional). Indicates the type of interim result e.g., 'Mid-term', 'Part I', etc.
Data type= String of characters [1-32].
3.5.5.1 <mode>
Description: Short descriptive name for final result grading mode. Examples are 'Letter Grade', 'Pass/Fail', etc.
Multiplicity: Occurs once within the <interimresult> structure.
3.5.5.2 <values>
Description: Valid result values.
Data type= String of characters [1-2048].
Multiplicity: Occurs once within the <interimresult> structure.
- valuetype (mandatory). Indicates if the values are a list of specific codes or a numeric range. Enumerated as '0=List' and '1=Range'.
Data type= Integer [0 or 1].
3.5.5.3 <list>
Description: A specific result value. This list contains the valid grade if 'valuetype=0'.
Data type= String of characters [1-32].
Multiplicity: Occurs zero or more times within the <interimresult> structure.
3.5.5.4 <min>
Description: This minimum numeric value allowed for a result.
Data type= Number in the range 0 to 9999.9999. This is used if 'valuetype=1'.
Multiplicity: Occurs zero or once within the <interimresult> structure.
3.5.5.5 <max>
Description: This maximum numeric value allowed for a result.
Data type= Number in the range 0 to 9999.9999. This is used if 'valuetype=1'.
Multiplicity: Occurs zero or once within the <interimresult> structure.
3.5.5.6 <result>
Description: Value of the final result assigned to the member for participation in the Group.
Data type= String of characters [1-32].
Multiplicity: Occurs zero or once within the <interimresult> structure.
3.5.5.7 <comments>
Description: Comments about the final result.
Data type: String of characters [1-2048]
Multiplicity: Occurs zero or once within the <interimresult> element.
Attributes: See structure 3.6.1.
3.5.6 <finalresult> Elements
Description: Final result codes and value. Both the actual score and a description of the score can be supplied. This structure is to be deprecated in v2.0.

Multiplicity: Occurs zero or more times within the <role> structure.
3.5.6.1 <mode>
Description: Short descriptive name for final result grading mode. Examples are 'Letter Grade', 'Pass/Fail', etc.
Multiplicity: Occurs once within the <finalresult> structure.
3.5.6.2 <values>
Description: Valid result values.
Data type= String of characters [1-2048].
Multiplicity: Occurs once within the <finalresult> structure.
- valuetype (mandatory). Indicates if the values are a list of specific codes or a numeric range. Enumerated as '0=List' and '1=Range'.
Data type= Integer [0 or 1].
3.5.6.3 <list>
Description: A specific result value. This list contains the valid grade if 'valuetype=0'.
Data type= String of characters [1-32].
Multiplicity: Occurs zero or more times within the <finalresult> structure.
3.5.6.4 <min>
Description: This minimum numeric value allowed for a result.
Data type= Number in the range 0 to 9999.9999. This is used if 'valuetype=1'.
Multiplicity: Occurs zero or once within the <finalresult> structure.
3.5.6.5 <max>
Description: This maximum numeric value allowed for a result.
Data type= Number in the range 0 to 9999.9999. This is used if 'valuetype=1'.
Multiplicity: Occurs zero or once within the <finalresult> structure.
3.5.6.6 <result>
Description: Value of the final result assigned to the member for participation in the Group.
Data type= String of characters [1-32].
Multiplicity: Occurs zero or once within the <finalresult> structure.
3.5.6.7 <comments>
Description: Comments about the final result.
Data type: String of characters [1-2048]
Multiplicity: Occurs zero or once within the <finalresult> element.
Attributes: See structure 3.6.1.
3.6 Common Data Elements
The common elements that are defined in this sub-section are:
- <comments> - comments describing the associated data object;
- <sourcedid> - the unique sourcedid allocation to a data object;
- <userid> - the user identification information;
- <timeframe> - beginning and end dates allocation to an activity.
3.6.1 <comments> Element
Description: This is the container for comments that are relevant to the containing data structure as a whole. This comment will be passed through the XML parser and is available to the host system.
Data type: String of characters [1-2048]

- lang (optional). Identifies the language in which the comment string is written. The vocabulary is based upon the ISO639 standard.
Data type= String [1-128].
<comments lang="en-US">A comment that is written in US English.</comments>
3.6.2 <sourcedid> Element
Description: The sourcedid is the unique identifier for the associated data object. This identifier should be persistent but its scope is limited to the exchange of information between the Enterprise systems.

- sourcedidtype (optional with selection from enumerated list of: New, Old, Duplicate). Identifies the type of sourcedid. This is used to enable objects to have their sourcedid changed. The combination of 'New' and 'Old' is used to change a sourcedid and 'Duplicate' is used to identify the redundant object.
Data type= String [1-16].
<sourcedid sourcedidtype="New"> <source>SIS</source> <id>student_23456AWRYG678</id> </sourcedid>
3.6.2.1 <source>
Description: Identifier of the organization or system that assigned the identifier.
Data type = String of characters [1-32].
Multiplicity: Occurs once within the <sourcedid> element.
3.6.2.2 <id>
Description: Permanently unique identifier of the object as defined by the system where the object was created.
Data type = String of characters [1-256].
Multiplicity: Occurs once within the <sourcedid> element.
3.6.3 <userid> Element
Description: The person's user identifier to access the learning management environment.

- useridtype (optional). The type of user identification. Some examples are 'NationalId', 'InstitutionId', etc.
Data type = String of characters [1-32]. - password (optional). The password that is assigned to the user for accessing a system.
Data type = String of characters [1-1024]. - pwencryptiontype (optional). The type of encryption that has been applied to the password. Examples include 'PKC', 'MD5', etc.
Data type = String of characters [1-32]. - authenticationtype (optional). The type of authentication that is to be applied to control access to the system.
Data type = String of characters [1-32].
<userid useridtype="" password="qts7893n" pwencryptiontype="PKC" authenticationtype="Kerberos">ColinS32 </userid>
3.6.4 <timeframe> Element
Description: The time period for which the Group is active.

<timeframe> <begin restrict="0">2002-03-01</begin> <end restrict="0">2002-03-31</begin> <adminperiod>End of Q1 2002</adminperiod> </timeframe>
3.6.4.1 <begin>
Description: Defines when a Group is intended to be available for participation. The format is based upon ISO8601.
Data type = Date [YYYY-MM-DD].
Multiplicity: Occurs zero or once within the <timeframe> element.
- restrict (optional with selection from enumerated list of: 0=No, 1=Yes). Defines if learner participation is permitted before the start date.
Data type = Integer [0 or 1]
3.6.4.2 <end>
Description: Defines when Group participation is intended to end. The format is based upon ISO8601.
Data type = Date [YYYY-MM-DD].
Multiplicity: Occurs zero or once within the <timeframe> element.
- restrict (optional with selection from enumerated list of: 0=No, 1=Yes). Defines if learner participation is permitted after the end date.
Data type = Integer [0 or 1]
3.6.4.3 <adminperiod>
Description: Short descriptive name in human readable form for the administrative or academic period within which the group exists.
Data type = String of characters [1-32].
Multiplicity: Occurs zero or once within the <timeframe> element.
4. Examples in Enterprise XML Instance
4.1 Person Instance
The following example consists of record of a single Person using all of the available elements.
<enterprise> <properties> <datasource>Dunelm Services Limited</datasource> <target>Telecommunications LMS</target> <type>CREATE</type> <datetime>2001-08-08</datetime> </properties> <person recstatus = "1"> <comments>This an imaginary set of personal details.</comments> <sourcedid> <source>Dunelm Services Limited</source> <id>CS1</id> </sourcedid> <userid password="encryptpword" pwencryptiontype="PKC" authenticationtype= "Kerberos">ColinS34 </userid> <name> <fn>Colin Smythe</fn> <sort>Smythe, C</sort> <nickname>Colin</nickname> <n> <family>Smythe</family> <given>Colin</given> <other>Manfred</other> <other>Wingarde</other> <prefix>Dr.</prefix> <suffix>C.Eng</suffix> <partname partnametype = "Initials">C.M.W.</partname> </n> </name> <demographics> <gender>2</gender> <bday>1958-02-18</bday> <disability>None.</disability> </demographics> <email>colin@dunelm.com</email> <url>http://www.dunelm.com</url> <tel teltype = "1">441142335019</tel> <tel teltype = "2">441142335019</tel> <adr> <pobox>PO Box 24</pobox> <extadd>Dunelm Services Limited</extadd> <street>34 Acorn Drive</street> <street>Stannington</street> <locality>Sheffield</locality> <region>S.Yorks</region> <pcode>S7 6WA</pcode> <country>UK</country> </adr> <photo imgtype = "gif"> <extref>http://www.dunelm.com/staff/colin.gif</extref> </photo> <system_role systemroletype = "User"/> <institutionrole primaryrole = "Yes" institutionroletype = "Faculty"/> <institutionrole primaryrole = "No" institutionroletype = "Student"/> <datasource>dunelm:colinsmythe:1</datasource> </person> </enterprise>
4.2 Group Instance
The following example consists of record of a single Group.
<enterprise> <properties> <datasource>University of Durham: SIS</datasource> <target>University of Durham: LMS</target> <type>CREATE</type> <datetime>2001-08-08</datetime> </properties> <group recstatus = "1"> <comments>A comment about the Group.</comments> <sourcedid> <source>University of Durham: SIS</source> <id>1976_APE</id> </sourcedid> <grouptype> <scheme>University of Durham</scheme> <typevalue level = "2"/> </grouptype> <description> <short>Applied Physics 1976 Cohort</short> </description> <org> <orgname>University of Durham</orgname> <orgunit>Applied Physics</orgunit> <type>Academic Unit</type> <id>Electronics_101</id> </org> <timeframe> <begin restrict = "1">1976:10:01</begin> <end restrict = "1">1979:07:01</end> <adminperiod>Three year degree cohort of: Oct, 1976 to July 1979.</adminperiod> </timeframe> <enrollcontrol> <enrollaccept>0</enrollaccept> <enrollallowed>0</enrollallowed> </enrollcontrol> <email>cohort76@appliedphysics.dur.ac.uk</email> <url>http://www.dur.ac.uk/appiedphysics</url> <datasource>University of Durham: SIS</datasource> </group> </enterprise>
4.3 Membership Instance
The following example consists of record of a single Membership.
<enterprise> <properties> <datasource>University of Durham: LMS</datasource> <target>University of Durham: SIS</target> <type>CREATE</type> <datetime>2002-03-31</datetime> </properties> <membership> <sourcedid> <source>University of Durham: SIS</source> <id>2000_APE</id> </sourcedid> <member> <sourcedid> <source>University of Durham: SIS</source> <id>2000_APE_001</id> </sourcedid> <idtype>1</idtype> <role> <status>1</status> <datetime>2001-10-01</datetime> <timeframe> <begin restrict = "0">2000-10-01</begin> <end restrict = "0">2001-07-01</end> <adminperiod>2000-01 Academic Year</adminperiod> </timeframe> <finalresult> <mode>Percentage</mode> <values valuetype = "1"> <min>0</min> <max>100</max> </values> <result>65</result> <comments>Examination Result: Passed</comments> </finalresult> <finalresult> <mode>Percentage</mode> <values valuetype = "1"> <min>0</min> <max>100</max> </values> <result>60</result> <comments>Practical Result: Passed</comments> </finalresult> </role> </member> <member> <sourcedid> <source>University of Durham: SIS</source> <id>2000_APE_004</id> </sourcedid> <idtype>1</idtype> <role> <status>1</status> <datetime>2001-10-01</datetime> <timeframe> <begin restrict = "0">2000-10-01</begin> <end restrict = "0">2001-07-01</end> <adminperiod>2000-01 Academic Year</adminperiod> </timeframe> <finalresult> <mode>Percentage</mode> <values valuetype = "1"> <min>0</min> <max>100</max> </values> <result>60</result> <comments>Examination Result: Passed</comments> </finalresult> <finalresult> <mode>Percentage</mode> <values valuetype = "1"> <min>0</min> <max>100</max> </values> <result>30</result> <comments>Practical Result: Failed</comments> </finalresult> </role> </member> </membership> </enterprise>
Appendix A - Listing of the V1.1 DTD
<?xml version='1.0' encoding='UTF-8' ?>
<!ENTITY % I_Value " valuetype (0 | 1 ) #REQUIRED">
<!ENTITY % I_Relation " relation (1 | 2 | 3 ) '1'">
<!ENTITY % I_Role " roletype (01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | Learner | Instructor |
ContentDeveloper | Member | Manager | Mentor | Administrator | TeachingAssistant ) '01'">
<!ENTITY % I_Recstatus " recstatus (1 | 2 | 3 ) #IMPLIED">
<!ENTITY % I_Tel " teltype (1 | 2 | 3 | 4 | Voice | Fax | Mobile | Pager ) '1'">
<!ENTITY % I_Img " imgtype CDATA #IMPLIED">
<!ELEMENT enterprise (comments? , properties , person* , group* , membership*)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT sourcedid (source , id)>
<!ATTLIST sourcedid sourcedidtype (New | Old | Duplicate ) #IMPLIED >
<!ELEMENT source (#PCDATA)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT userid (#PCDATA)>
<!ATTLIST userid useridtype CDATA #IMPLIED
password CDATA #IMPLIED
pwencryptiontype CDATA #IMPLIED
authenticationtype CDATA #IMPLIED >
<!ELEMENT email (#PCDATA)>
<!ELEMENT extension ANY>
<!ELEMENT properties (comments? , datasource , target* , type? , datetime , extension?)>
<!ATTLIST properties lang CDATA #IMPLIED >
<!ELEMENT datasource (#PCDATA)>
<!ELEMENT target (#PCDATA)>
<!ELEMENT datetime (#PCDATA)>
<!ELEMENT person (comments? , sourcedid+ , userid* , name , demographics? , email? , url? , tel* , adr? , photo? , systemrole? , institutionrole* , datasource? , extension?)>
<!ATTLIST person %I_Recstatus; >
<!ELEMENT name (fn , sort? , nickname? , n?)>
<!ELEMENT fn (#PCDATA)>
<!ELEMENT sort (#PCDATA)>
<!ELEMENT nickname (#PCDATA)>
<!ELEMENT n (family? , given? , other* , prefix? , suffix? , partname*)>
<!ELEMENT family (#PCDATA)>
<!ELEMENT given (#PCDATA)>
<!ELEMENT other (#PCDATA)>
<!ELEMENT prefix (#PCDATA)>
<!ELEMENT suffix (#PCDATA)>
<!ELEMENT partname (#PCDATA)>
<!ATTLIST partname lang CDATA #IMPLIED
partnametype CDATA #REQUIRED >
<!ELEMENT demographics (gender? , bday? , disability*)>
<!ELEMENT gender (#PCDATA)>
<!ELEMENT bday (#PCDATA)>
<!ELEMENT disability (#PCDATA)>
<!ELEMENT tel (#PCDATA)>
<!ATTLIST tel %I_Tel; >
<!ELEMENT adr (pobox? , extadd? , street* , locality? , region? , pcode? , country?)>
<!ELEMENT pobox (#PCDATA)>
<!ELEMENT extadd (#PCDATA)>
<!ELEMENT street (#PCDATA)>
<!ELEMENT locality (#PCDATA)>
<!ELEMENT region (#PCDATA)>
<!ELEMENT pcode (#PCDATA)>
<!ELEMENT country (#PCDATA)>
<!ELEMENT photo (extref)>
<!ATTLIST photo %I_Img; >
<!ELEMENT systemrole EMPTY>
<!ATTLIST systemrole systemroletype (SysAdmin | SysSupport | Creator | AccountAdmin | User | None ) #REQUIRED >
<!ELEMENT institutionrole EMPTY>
<!ATTLIST institutionrole primaryrole (Yes | No ) #REQUIRED
institutionroletype (Student | Faculty | Staff | Alumni |
ProspectiveStudent | Guest | Other | Administrator | Observer )
#REQUIRED >
<!ELEMENT extref (#PCDATA)>
<!ELEMENT group (comments? , sourcedid+ , grouptype* , description , org? , timeframe? , enrollcontrol? , email? , url? , relationship* , datasource? , extension?)>
<!ATTLIST group %I_Recstatus; >
<!ELEMENT grouptype (scheme? , typevalue+)>
<!ELEMENT scheme (#PCDATA)>
<!ELEMENT typevalue (#PCDATA)>
<!ATTLIST typevalue level CDATA #REQUIRED >
<!ELEMENT description (short , long? , full?)>
<!ELEMENT short (#PCDATA)>
<!ELEMENT long (#PCDATA)>
<!ELEMENT full (#PCDATA)>
<!ELEMENT org (orgname? , orgunit* , type? , id?)>
<!ELEMENT orgname (#PCDATA)>
<!ELEMENT orgunit (#PCDATA)>
<!ELEMENT timeframe (begin? , end? , adminperiod?)>
<!ELEMENT begin (#PCDATA)>
<!ATTLIST begin restrict CDATA #IMPLIED >
<!ELEMENT end (#PCDATA)>
<!ATTLIST end restrict CDATA #IMPLIED >
<!ELEMENT adminperiod (#PCDATA)>
<!ELEMENT enrollcontrol (enrollaccept? , enrollallowed?)>
<!ELEMENT enrollaccept (#PCDATA)>
<!ELEMENT enrollallowed (#PCDATA)>
<!ELEMENT url (#PCDATA)>
<!ELEMENT relationship (sourcedid , label)>
<!ATTLIST relationship %I_Relation; >
<!ELEMENT label (#PCDATA)>
<!ELEMENT membership (comments? , sourcedid , member+)>
<!ELEMENT member (comments? , sourcedid , idtype , role+)>
<!ELEMENT idtype (#PCDATA)>
<!ELEMENT role (subrole? , status , userid? , comments? , datetime? , timeframe? , interimresult* , finalresult* , email? , datasource? , extension?)>
<!ATTLIST role %I_Recstatus;
%I_Role; >
<!ELEMENT subrole (#PCDATA)>
<!ELEMENT status (#PCDATA)>
<!ELEMENT comments (#PCDATA)>
<!ATTLIST comments lang CDATA #IMPLIED >
<!ELEMENT finalresult (mode? , values? , result? , comments?)>
<!ELEMENT interimresult (mode? , values? , result? , comments?)>
<!ATTLIST interimresult resulttype CDATA #IMPLIED >
<!ELEMENT mode (#PCDATA)>
<!ELEMENT values (list* , min? , max?)>
<!ATTLIST values %I_Value; >
<!ELEMENT list (#PCDATA)>
<!ELEMENT max (#PCDATA)>
<!ELEMENT min (#PCDATA)>
<!ELEMENT result (#PCDATA)>
Appendix B - Summary of Changes in this Document
The detailed list of changes are summarized below:
About This Document
Title: | 1EdTech Enterprise XML Binding |
Authors: | Colin Smythe, Geoff Collier, Chris Etesse, and Wayne Veres |
Version: | 1.1 |
Version Date: | 01 July 2002 |
Status: | Final Specification |
Summary: | This document presents the 1EdTech Enterprise XML Binding. This specification describes the manner in which the data model for the exchange between Enterprise systems and sub-systems is mapped to XML. |
Revision Information: | 11 June 2002 |
Purpose: | This is the third formal release of the 1EdTech Enterprise Specification. It is made available as a Public Draft for implementation evaluation. |
Document Location: | http://www.imsglobal.org/enterprise/entv1p1/imsent_bindv1p1.html |
List of Contributors
The following individuals contributed to the development of this document:
Revision History
Index
A
Attributes
authenticationtype 1, 2, 3
imgtype 1, 2, 3, 4
institutionroletype 1, 2, 3, 4
lang 1, 2, 3, 4, 5, 6
level 1, 2, 3, 4
partnametype 1, 2, 3
password 1, 2, 3
primaryrole 1, 2, 3, 4
pwencryptiontype 1, 2, 3
recstatus 1, 2, 3, 4, 5, 6, 7, 8
relation 1, 2, 3
restrict 1, 2, 3, 4, 5, 6
resulttype 1, 2
roletype 1, 2, 3, 4
sourcedidtype 1, 2
systemroletype 1, 2, 3, 4
teltype 1, 2, 3, 4
useridtype 1, 2
valuetype 1, 2, 3, 4, 5, 6, 7
C
Core data objects
Group 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
Membership 1, 2
Person 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
E
Elements
adminperiod 1, 2, 3, 4, 5, 6
adr 1, 2, 3, 4, 5, 6, 7, 8, 9
bday 1, 2, 3, 4, 5
begin 1, 2, 3, 4, 5, 6
comments 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24
country 1, 2, 3, 4
datasource 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
datetime 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
demographics 1, 2, 3, 4, 5, 6
description 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
disability 1, 2, 3, 4, 5, 6
email 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
end 1, 2, 3, 4, 5, 6, 7, 8
enrollaccept 1, 2, 3, 4
enrollallowed 1, 2, 3, 4
enrollcontrol 1, 2, 3, 4, 5, 6, 7
enterprise 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
extadd 1, 2, 3, 4
extension 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
extref 1, 2, 3, 4
family 1, 2, 3, 4
finalresult 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
fn 1, 2, 3, 4
full 1, 2, 3, 4, 5
gender 1, 2, 3, 4
given 1, 2, 3, 4, 5, 6
group 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
grouptype 1, 2, 3, 4, 5
id 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
idtype 1, 2, 3, 4, 5
institutionrole 1, 2, 3, 4, 5, 6
interimresult 1, 2, 3, 4, 5, 6, 7
label 1, 2, 3
list 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
locality 1, 2, 3, 4
long 1, 2, 3, 4
max 1, 2, 3, 4, 5, 6, 7
member 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
membership 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
min 1, 2, 3, 4, 5, 6, 7
mode 1, 2, 3, 4, 5, 6
n 1, 2, 3, 4, 5
name 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
nickname 1, 2, 3
org 1, 2, 3, 4, 5, 6, 7, 8, 9
orgname 1, 2, 3, 4
orgunit 1, 2, 3, 4
other 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
partname 1, 2, 3, 4, 5, 6
pcode 1, 2, 3, 4
person 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
photo 1, 2, 3, 4, 5
prefix 1, 2, 3, 4, 5, 6
properties 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
region 1, 2, 3
relationship 1, 2, 3, 4, 5, 6, 7, 8
result 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
role 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
scheme 1, 2, 3, 4, 5
short 1, 2, 3, 4, 5, 6, 7
sort 1, 2, 3
source 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
sourcedid 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
status 1, 2, 3, 4
street 1, 2, 3, 4
subrole 1, 2
suffix 1, 2, 3, 4
systemrole 1, 2, 3, 4, 5
target 1, 2, 3, 4, 5, 6, 7, 8
tel 1, 2, 3, 4, 5, 6, 7
timeframe 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
type 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
typevalue 1, 2, 3, 4, 5
url 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
userid 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
values 1, 2, 3, 4, 5, 6, 7, 8, 9
G
Group 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
P
Person 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
V
Version 1.1 Additions
Attributes
institutionroletype 1, 2, 3, 4
institutionrole 1, 2, 3, 4, 5, 6
interimresult 1, 2, 3, 4, 5, 6, 7
X
XML
DTD 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
XSD 1, 2
1EdTech Consortium, Inc. ("1EdTech") is publishing the information contained in this 1EdTech Enterprise XML Binding ("Specification") for purposes of scientific, experimental, and scholarly collaboration only.
1EdTech makes no warranty or representation regarding the accuracy or completeness of the Specification.
This material is provided on an "As Is" and "As Available" basis.
The Specification is at all times subject to change and revision without notice.
It is your sole responsibility to evaluate the usefulness, accuracy, and completeness of the Specification as it relates to you.
1EdTech would appreciate receiving your comments and suggestions.
Please contact 1EdTech through our website at http://www.imsglobal.org
Please refer to Document Name: 1EdTech Enterprise XML Binding Date: 01 July 2002