[This local archive copy mirrored from the canonical site: http://www.manta.ieee.org/p1484/xml/dtdAttrib.htm; links may not have complete integrity, so use the canonical document at this URL if possible.]


Back        XML DTD with Attributes for v2.1 LOM Specification
<?xml version="1.0" encoding='UTF-8'?>

<!-- ************** Experimental DTD for LTSC Metadata *************** 
     
     Initial Draft: July 20, 1998
     Author: Tyde Richards trichards@macromedia.com
     Comments:
     
     This is an XML DTD for the v2.1 Learning Object Metadata
     (LOM) draft under development in the IEEE Learning Technology
     Standards Committee (LTSC). It models the data type, obligation and
     list(occurrence) properties defined in the specificaiton with the
     following attributes.

         1) DType to model data type;
         2) List to model occurrence;
         3) Obligation to model obligation.
     
-->

<!-- ************* Declarations to Support LTSC Data Types ************** 

      NOTATION declarations are used to make known the LOM data types. The
      URL is a hypothetical reference to somewhere on the IEEE LTSC site
      where these data types are defined.

-->     

<!NOTATION DBoolean      SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DBoolean.html">
<!NOTATION DCoverage     SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DCoverage.html">
<!NOTATION DDate         SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DDate.html">
<!NOTATION DDecimal      SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DDecimal.html">
<!NOTATION DEntry        SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DEntry.html">
<!NOTATION DFormat       SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DFormat.html">
<!NOTATION DIdentifier   SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DIdentifier.html">
<!NOTATION DInteger      SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DInteger.html">
<!NOTATION DLangString   SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DLangString.html">
<!NOTATION DLocSpec      SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DLocSpec.html">
<!NOTATION DLocale       SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DLocale.html">
<!NOTATION DOrganization SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DOrganization.html">
<!NOTATION DPerson       SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DPerson.html">
<!NOTATION DSource       SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DSource.html">
<!NOTATION DSourceString SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DSourceString.html">
<!NOTATION DTimespan     SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DTimespan.html">
<!NOTATION DVocabulary   SYSTEM "http://www.x3.ieee.org/somewhere/LOM/DVocabulary.html">

<!-- ********** Parameter entities to simplify DType attribute authoring ********* -->

<!ENTITY % DBoolean       'DType NOTATION (DBoolean)      #FIXED "DBoolean"'>
<!ENTITY % DCoverage      'DType NOTATION (DCoverage)     #FIXED "DCoverage"'>
<!ENTITY % DDate          'DType NOTATION (DDate)         #FIXED "DDate"'>
<!ENTITY % DDecimal       'DType NOTATION (DDecimal)      #FIXED "DDecimal"'>
<!ENTITY % DEntry         'DType NOTATION (DEntry)        #FIXED "DEntry"'>
<!ENTITY % DFormat        'DType NOTATION (DFormat)       #FIXED "DFormat"'>
<!ENTITY % DIdentifier    'DType NOTATION (DIdentifier)   #FIXED "DIdentifier"'>
<!ENTITY % DInteger       'DType NOTATION (DInteger)      #FIXED "DInteger"'>
<!ENTITY % DLangString    'DType NOTATION (DLangString)   #FIXED "DLangString"'>
<!ENTITY % DLocSpec       'DType NOTATION (DLocSpec)      #FIXED "DLocSpec"'>
<!ENTITY % DLocale        'DType NOTATION (DLocale)       #FIXED "DLocale"'>
<!ENTITY % DOrganization  'DType NOTATION (DOrganization) #FIXED "DOrganization"'>
<!ENTITY % DPerson        'DType NOTATION (DPerson)       #FIXED "DPerson"'>
<!ENTITY % DSource        'DType NOTATION (DSource)       #FIXED "DSource"'>
<!ENTITY % DSourceString  'DType NOTATION (DSourceString) #FIXED "DSourceString"'>
<!ENTITY % DTimespan      'DType NOTATION (DTimespan)     #FIXED "DTimespan"'>
<!ENTITY % DVocabulary    'DType NOTATION (DVocabulary)   #FIXED "DVocabulary"'>

<!-- ********** Parameter entities to simplify Obligation attribute authoring ********* -->

<!ENTITY % OMandatory     
          'Obligation (OMandatory|OOptional|OConditional|ONotAllowed) #FIXED "OMandatory"'>

<!ENTITY % OOptional     
          'Obligation (OMandatory|OOptional|OConditional|ONotAllowed) #FIXED "OOptional"'>

<!ENTITY % OConditional     
          'Obligation (OMandatory|OOptional|OConditional|ONotAllowed) #FIXED "OConditional"'>

<!ENTITY % ONotAllowed     
          'Obligation (OMandatory|OOptional|OConditional|ONotAllowed) #FIXED "ONotAllowed"'>

<!ENTITY % ORequired     
          'Obligation (OMandatory|OOptional|OConditional|ONotAllowed) #REQUIRED'>

<!-- ********** Parameter entities to simplify List attribute authoring ********* -->

<!ENTITY % LSingle 'List (LSingle|LOrdered|LUnordered) #FIXED "LSingle"'>

<!ENTITY % LOrdered 'List (LSingle|LOrdered|LUnordered) #FIXED "LOrdered"'>

<!ENTITY % LUnordered 'List (LSingle|LOrdered|LUnordered) #FIXED "LUnordered"'>

<!ENTITY % LRequired 'List (LSingle|LOrdered|LUnordered) #REQUIRED'>

<!-- ******************** Common Element Types ********************* 
     The following element types occur in multiple contexts within the
     metadata structure. They often have different obligation and occurence
     values depending on context. They are declared once because contextual
     differences can be represented by attribute values. The exception is 
     the "Create" data element. It this case, contextual usage differences
     have to do with the the element types it can contain and not merely
     differences in attribute values. Create has been split into two
     element types: 

     LifeCycle.Create named LCCreate
     Meta-metadata.Create named MMCreate
-->

<!-- Date
       used in:
         LifeCycle.Create.Date
           (LSingle, OMandatory)
         LifeCycle.Publish.Date
           (LSingle, OOptional)
         LifeCycle.Terminate.Date
           (LSingle, OOptional)
         Meta-metadata.Create.Date
           (LSingle, OMandatory)
         Meta-metadata.Validate.Date
           (LUnordered, OOptional)
         Annotation.Date 
           (LSingle, OMandatory)
-->

<!ELEMENT Date (#PCDATA)>
<!ATTLIST Date %DDate; %LRequired; %ORequired;>

<!-- Description
       used in:
         Characteristics.Description 
           (LUnordered, OOptional)
         Characteristics.Discipline.Description 
           (LUnordered, OOptional)
         EducationalUseDependent.Description 
           (LUnordered, OOptional)
         EducationalUseDependent.Prerequisite.Description 
           (LUnodered, OMandatory)
         RightsManagement.Description 
           (LUnordered, OOptional)
         Relation.Resource.Description 
           (LUordered, OOptional)
         Annotation.Description 
           (LUnordered, OMandatory)
-->

<!ELEMENT Description (#PCDATA)>
<!ATTLIST Description %DLangString; %LUnordered; %ORequired;>

<!-- Duration
       used in:
         Technical.Duration 
           (LSingle, OOptional)
         EducationalUseDependent.Duration 
           (LSingle, OOptional)
-->

<!ELEMENT Duration (#PCDATA)>
<!ATTLIST Duration %DTimespan; %LSingle; %OOptional;>

<!-- Identifier
       used in:
         General.Identifier
           (LSingle, OMandatory)
         EducationalUseDependent.Prerequisite.Identifier
           (LSingle, OOptional)
         EducationalUseDependent.EducationalObjective.Identifier
           (LSingle, OOptional)
         Relation.Resource.Identifier
           (LSingle, OOptional)
-->
     
<!ELEMENT Identifier (#PCDATA)>
<!ATTLIST Identifier %DIdentifier; %LSingle; %ORequired;>   

<!-- Organization
       used in:
         LifeCycle.Publish.Organization
           (LSingle, OOptional)
         LifeCycle.InitiatedBy.Organization
           (LSingle, OOptional)
         Meta-metadata.Create.Organization
           (LSingle, OMandatory)
         Meta-metadata.Validate.Organization
           (LSingle, OOptional)
-->

<!ELEMENT Organization (#PCDATA)>
<!ATTLIST Organization %DOrganization; %LSingle; %ORequired;>

<!-- Person
       used in:
         LifeCycle.Create.Contribute.Person
           (LOrdered, OMandatory)
         LifeCycle.InitiatedBy.Person
           (LSingle, OOptional)
         Meta-metadata.Create.Person
           (LUnordered, OMandatory)
         Meta-metadata.Validate.Person
           (LUnordered, OOptional)
         Annotation.Person
           (LSingle, OMandatory)
-->

<!ELEMENT Person (#PCDATA)>
<!ATTLIST Person %DPerson; %LRequired; %ORequired;>

<!-- Role
       used in:
         LifeCycle.Create.Contribute.Role
           (LSingle, OMandatory)
         EducationalUseDependent.Role
           (LSingle, OConditional)
         RightsManagement.Role
           (LSingle, OMandatory)
-->

<!ELEMENT Role (#PCDATA)>
<!ATTLIST Role %DVocabulary; %LSingle; %ORequired;>

<!-- Source
       used in:
           Characteristics.TaxonPath.Source
             (LSingle, OMandatory)
           EducationalUseDependent.Prerequisite.Source
             (LSingle, OOptional)
           EducationalUseDependent.EducationalObjective.Source
             (LSingle, OOptional)
-->

<!ELEMENT Source (#PCDATA)>
<!ATTLIST Source %DSource; %LSingle; %ORequired;>

<!-- ***************** LTSCMetadata Document Type ******************* 
     This is the top level container for the document. It contains
     element types representing the categories into which LTSC
     metadata is divided
-->

<!ELEMENT LTSCMetadata 
         (General, Characteristics, LifeCycle, Meta-metadata, Technical,
          EducationalUseDependent*, RightsManagement+, Relation*, Annotation*)>

<!-- ***************** General Category Element Types ****************** -->
 
<!ELEMENT General (Identifier, Title+, CatalogEntry*)>

<!ELEMENT Title (#PCDATA)>
<!ATTLIST Title %DLangString; %LSingle; %OMandatory;>

<!ELEMENT CatalogEntry (#PCDATA)>
<!ATTLIST CatalogEntry %DSourceString; %LUnordered; %OMandatory;>

<!-- *************** Characteristics Category Element Types **************** -->

<!ELEMENT Characteristics 
         (Language+, Description*, Discipline+, Coverage*, Concept*, Type+, 
          Approach*, Granularity?, Structure?, InteractionQuality?,
          SemanticDensity?)>

<!ELEMENT Language (#PCDATA)>
<!ATTLIST Language %DLocale; %LUnordered; %OMandatory;>

<!ELEMENT Discipline (TaxonPath+, Description*, Keywords*)>
<!ATTLIST Discipline %LOrdered; %OMandatory;>

<!ELEMENT TaxonPath (Source, Taxon+)>
<!ATTLIST TaxonPath %LUnordered; %OMandatory;>

<!ELEMENT Taxon (#PCDATA)>
<!ATTLIST Taxon %DEntry; %LOrdered; %OMandatory;>

<!ELEMENT Keywords (#PCDATA)>
<!ATTLIST Keywords %DLangString; %LOrdered; %OOptional;>

<!ELEMENT Coverage (#PCDATA)>
<!ATTLIST Coverage %DCoverage; %LUnordered; %OOptional;>

<!-- Data type for concept not clear in draft, DLangString assumed -->
<!ELEMENT Concept (#PCDATA)>
<!ATTLIST Concept %DLangString; %LOrdered; %OOptional;>

<!ELEMENT Type (#PCDATA)>
<!ATTLIST Type %DVocabulary; %LOrdered; %OMandatory;>

<!ELEMENT Approach (#PCDATA)>
<!ATTLIST Approach %DVocabulary; %LOrdered; %OOptional;>

<!ELEMENT Granularity (#PCDATA)>
<!ATTLIST Granularity %DVocabulary; %LSingle; %OOptional;>

<!ELEMENT Structure (#PCDATA)>
<!ATTLIST Strucuture %DVocabulary; %LSingle; %OOptional;>

<!ELEMENT InteractionQuality (#PCDATA)>
<!ATTLIST InteractionQuality %DVocabulary; %LSingle; %OOptional;>

<!ELEMENT SemanticDensity (#PCDATA)>
<!ATTLIST SemanticDensity %DSourceString; %LSingle; %OOptional;>

<!-- ***************** LifeCycle Category Element Types ****************** -->

<!ELEMENT LifeCycle (Version?, Status?, LCCreate+, Publish*, Terminate?, InitiatedBy?)>

<!ELEMENT Version (#PCDATA)>
<!ATTLIST Version %DDecimal; %LSingle; %OOptional;>

<!ELEMENT Status (#PCDATA)>
<!ATTLIST Status %DVocabulary; %LSingle; %OOptional;>

<!ELEMENT LCCreate (Date, Contribute+)>
<!ATTLIST LCCreate %LUnordered; %OMandatory;>

<!ELEMENT Contribute (Role, Person+)>
<!ATTLIST Contribute %LUnordered; %OMandatory;>

<!ELEMENT Publish (Organization?, Date?)>
<!ATTLIST Publish %LUnordered; %OOptional;>

<!ELEMENT Terminate (Date?)>
<!ATTLIST Terminate %LSingle; %OOptional;>

<!ELEMENT InitiatedBy (Person?, Organization?)>
<!ATTLIST InitiatedBy %LSingle; %OOptional;>

<!-- **************** Meta-metadata Category Element Types ***************** -->

<!ELEMENT Meta-metadata (MMCreate+, Scheme, Validate*)>

<!ELEMENT MMCreate (Date, Person+, Organization)>
<!ATTLIST MMCreate %LOrdered; %OMandatory;>

<!ELEMENT Scheme (#PCDATA)>
<!ATTLIST Scheme %DVocabulary; %LSingle; %OMandatory;>

<!ELEMENT Validate (Date?, Person*, Organization?)>
<!ATTLIST Validate %LUnordered; %OOptional;>

<!-- ***************** Technical Category Element Types ****************** -->

<!ELEMENT Technical (Format, Size?, LocSpec+, OSRequirements,
                     OtherPlatformRequirements*, InstallationRemarks*,
                     Duration?)>

<!ELEMENT Format (#PCDATA)>
<!ATTLIST Format %DFormat; %LSingle; %OMandatory;>

<!ELEMENT Size (#PCDATA)>
<!ATTLIST Size %DInteger; %LSingle; %OOptional;>

<!ELEMENT LocSpec (#PCDATA)>
<!ATTLIST LocSpec %DLocSpec; %LOrdered; %OMandatory;>

<!ELEMENT OSRequirements (OperatingSystem+, MinimumVersion?, MaximumVersion?)>
<!ATTLIST OSRequirements %LSingle; %OMandatory;>

<!ELEMENT OperatingSystem (#PCDATA)>
<!ATTLIST OperatingSystem %DVocabulary; %LUnordered; %OMandatory;>

<!ELEMENT MinimumVersion (#PCDATA)>
<!ATTLIST MinimumVersion %DDecimal; %LSingle; %OOptional;>

<!ELEMENT MaximumVersion (#PCDATA)>
<!ATTLIST MaximumVersion %DDecimal; %LSingle; %OOptional;>

<!ELEMENT OtherPlatformRequirements (#PCDATA)>
<!ATTLIST OtherPlatformRequirements %DLangString; %LUnordered; %OOptional;>

<!ELEMENT InstallationRemarks (#PCDATA)>
<!ATTLIST InstallationRemarks %DLangString; %LUnordered; %OOptional;>

<!-- ************ EducationalUseDependent Category Element Types ************* -->

<!ELEMENT EducationalUseDependent (Role?, Description*, Prerequisite*,
                                   EducationalObjective*, Level?,
                                   Difficulty?, Duration?)>

<!ELEMENT Prerequisite (Description+, Source?, Identifier?)>
<!ATTLIST Prerequisite %LUnordered; %OOptional;>

<!ELEMENT EducationalObjective (Description+, Source?, Identifier?)>
<!ATTLIST EducationalObjective %LUnordered; %OOptional;>

<!ELEMENT Level (#PCDATA)>
<!ATTLIST Level %DVocabulary; %LSingle; %OConditional;>

<!ELEMENT Difficulty (#PCDATA)>
<!ATTLIST Difficulty %DVocabulary; %LSingle; %OOptional;>

<!-- *************** RightsManagement Category Element Types **************** -->

<!ELEMENT RightsManagement (Role, Description*, Contact?, Support?, Conditions)>

<!ELEMENT Contact (#PCDATA)>
<!ATTLIST Contact %DLocSpec; %LSingle; %OOptional;>

<!ELEMENT Support (#PCDATA)>
<!ATTLIST Support %DBoolean; %LSingle; %OOptional;>

<!-- Note: the obligation of Price not given in spec, optional assumed -->
<!ELEMENT Conditions (Reciprocity?, Attribution?, Price?)>
<!ATTLIST Conditions %LSingle; %OMandatory;>

<!ELEMENT Reciprocity (#PCDATA)>
<!ATTLIST Reciprocity %DBoolean; %LSingle; %OOptional;>

<!ELEMENT Attribution (#PCDATA)>
<!ATTLIST Attribution %DBoolean; %LSingle; %OOptional;>

<!-- Obligation not specified in draft, optional assumed -->
<!ELEMENT Price (MonetaryUnit?, Amount, UnitOfPricing?)>
<!ATTLIST Price %LUnordered; %OOptional;>

<!ELEMENT MonetaryUnit (#PCDATA)>
<!ATTLIST MonetaryUnit %DVocabulary; %LSingle; %OConditional;>

<!ELEMENT Amount (#PCDATA)>
<!ATTLIST Amount %DDecimal; %LSingle; %OMandatory;>

<!ELEMENT UnitOfPricing (#PCDATA)>
<!ATTLIST UnitOfPricing %DVocabulary; %LSingle; %OOptional;>

<!-- ***************** Relation Category Element Types ****************** -->

<!ELEMENT Relation (Kind, Resource)>

<!ELEMENT Kind (#PCDATA)>
<!ATTLIST Kind %DVocabulary; %LSingle; %OMandatory;>

<!ELEMENT Resource (Identifier?, Description*)>
<!ATTLIST Resource %LSingle; %OMandatory;>

<!-- ***************** Annotation Category Element Types ****************** -->

<!ELEMENT Annotation (Person, Date, Description+)>