Overview
ISO/IEC 24703:2004 defines the datatype and encoding conventions for participant identifiers used in learning, education and training systems. A participant can be a user, teacher, agent, group, organization or institution. The standard specifies how identifiers are formed, what character repertoires are permitted, and how identifiers are encoded and bound in common programming languages - but does not cover security, naming policy, registration or authentication.
Key topics and technical requirements
- Datatype: Defined as characterstring(ISO/IEC-10646-1) (per ISO/IEC 11404) - i.e., an abstract character string drawn from the Universal Character Set (UCS/Unicode).
- Minimum length: The smallest permitted maximum length is 50 abstract characters.
- Conceptual model: Identifiers are strings of abstract characters and are conceptually opaque (may or may not convey semantic meaning). Multiple identifiers per participant are allowed.
- Structure: Identifiers are built from identifier segments separated by a segment separator (implementation-defined; the period "." is recommended).
- Allowed characters: A broad subset of UCS is allowed, including many Latin, Greek, Cyrillic, Arabic, Indic scripts, CJK ideographs, Hangul, Hiragana/Katakana, and digit and special characters as listed in the standard.
- Encoding characters: A restricted set (letters A–Z/a–z, digits 0–9, underscore, hyphen, etc.) may represent themselves; other abstract characters must use percent-encoding conventions.
- Percent-encoding conventions:
- %hh for U+0000..U+00FF
- %uhhhh for U+0000..U+FFFF (lowercase u)
- %Uhhhhhhhh for U+00000000..U+FFFFFFFF (uppercase U)
- The percent character (%) is used in encoding but is not part of the encoding character set.
- Bindings:
- C/C++: use char arrays/pointers (store as array of octets)
- Java: use String type
- ECMAScript/JavaScript: use String type
- Data instances are encoded as arrays of octets.
- Interoperability note: Encoding rules are harmonized with existing C/C++, Java and IETF practices (RFC 2396).
Applications and who uses this standard
- Developers and architects of Learning Management Systems (LMS), Learning Record Stores (LRS), student information systems, e‑learning platforms and identity/identity‑management components for education.
- Vendors and integrators implementing interoperable user identifiers across repositories, URLs, filenames, APIs and email addresses.
- Standards implementers ensuring multilingual, Unicode‑aware identifier handling and safe interchange across programming languages and 7‑bit environments.
Practical considerations and cautions
- The standard deliberately excludes privacy, authentication and naming governance - implementers must design security, registration and access controls themselves.
- Use recommended separators (.) and consistent encoding to avoid ambiguities when embedding identifiers in URLs, filenames or addresses.
Related standards
- ISO/IEC 10646‑1 (UCS/Unicode)
- ISO/IEC 11404 (language‑independent datatypes)
- ISO/IEC TR 10176 (guidelines for programming language standards)
- RFC 2396 (URI syntax; for harmonization guidance)