• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Learning DITA

Free DITA training

Free DITA training

  • Log in
  • Register
  • Newsletter
  • Profile
  • Privacy
  • Home
  • About
  • Courses
  • News
  • Resources
    • Recordings
  • Questions?
  • Contact

Learning maps

Posted on 09.21.18

The Learning and Training specialization Lesson 5: Learning objects and learning groups Learning maps

There are two learning map types that you use to collect learning objects and learning groups:

  • The learningObject map type contains a single <learningObject> element.
  • The learningGroup map type contains a single <learningGroup> object.

Both the learningObject map and learningGroup map are specializations of the base DITA map type. The content models in the DITA 1.3 Specification indicate you can use many of the map elements in these types, but the intent is that they should contain a single learning group or learning object element. The specification does allow you to use <topicref> elements to reference keymaps and other supporting content.

In practical terms, this means that most output transforms will only expect a single learning group or learning object element. You might be able to add additional map elements, but you cannot expect that they will be handled correctly by all processors.

A learning object map has this structure:

<!DOCTYPE learningObjectMap PUBLIC "-//OASIS//DTD DITA 1.3 Learning Object Map//EN" 
    "learningObjectMap.dtd">
<learningObjectMap>
   <learningObject>
      ...
   </learningObject>
</learningObjectMap>

A learningGroup map has this structure:

<!DOCTYPE learningGroupMap PUBLIC "-//OASIS//DTD DITA 1.3 Learning Group Map//EN" 
    "learningGroupMap.dtd">
<learningGroupMap>
   <learningGroup>
      ...
   </learningGroup>
</learningGroupMap>

Within a learning group element you can embed other learning groups and learning objects. This allows you to reuse topics, lessons, etc. You can also reuse other learning map types by using the <learningObjectMapRef> and <learningGroupMapRef>

Practice
  1. Make a copy of the file learningGroups-practice_start.ditamap and open it in your editor.

    Note: If you are using a DITA-aware text editor, make sure you are in text mode, rather than author or visual mode.

    You should see this:

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE learningGroupMap PUBLIC "-//OASIS//DTD DITA Learning Group Map//EN" 
        "learningGroupMap.rng">
    <learningGroupMap>
        
    </learningGroupMap>

  2. You should give your map a title and place the main learning group.
    <learningGroupMap>
        <<title>Feeding Ducks</title>
        <learningGroup>
        </learningGroup>
    </learningGroupMap>
                            

  3. Next you can reference a learning topic. For this exercise we will add learningPlan and learningOverview references. You can find the collection of files that you can use in the folder lesson5/object_samples. You can reference the Feeding Ducks learning plan (lp_feedingducks.dita) with the <learningPlanRef> element and the href attribute.
    <learningGroupMap>
        <title>Feeding Ducks</title>
        <learningGroup>
            <learningPlanRef href="../lp_feedingducks.dita"/>
        </learningGroup>
    </learningGroupMap>
                            

    Notice how the reference element states the type of topic that it references: <learningPlanRef>.
    Inside of the href attribute, make sure to add “../” to the beginning of a file name. Then if the filepath is changed, your editor can still locate it.
  4. Then you can reference the Feeding Ducks learning overview.
    <learningGroupMap>
        <title>Feeding Ducks</title>
        <learningGroup>
            <learningPlanRef href="../lp_feedingducks.dita"/>
            <learingOverviewRef href="../lo_feedingducks.dita"/>
        </learningGroup>
    </learningGroupMap>
                            

  5. Next you are going to add another learning group element that will contain all of the topics for the first lesson, and give it a title in the map.
    <learningGroupMap>
        <title>Feeding Ducks</title>
        <learningGroup>
            <learningPlanRef href="../lp_feedingducks.dita"/>
            <learingOverviewRef href="../lo_feedingducks.dita"/>
        </learningGroup>
        
        <learningGroup>
            <topicmeta>
                <navtitle>Lesson 1: Feed Quality</navtitle>
            </topicmeta>
        </learningGroup>
    
    </learningGroupMap>
                            

  6. Within this lesson you can create reusable topics. Use a learning object for this. Create a <learningObject> within the Lesson 1 learning group and name it.
    <learningGroupMap>
        <title>Feeding Ducks</title>
        <learningGroup>
            <learningPlanRef href="../lp_feedingducks.dita"/>
            <learingOverviewRef href="../lo_feedingducks.dita"/>
        </learningGroup>
        
        <learningGroup>
            <topicmeta>
                <navtitle>Lesson 1: Feed Quality</navtitle>
            </topicmeta>
            
            <learningObject>
                <topicmeta>
                    <navtitle>Topic 1</navtitle>
                </topicmeta>
            </learningObject>
            
        </learningGroup>
    
    </learningGroupMap>
                            

  7. Now you can add all of the learning topics for the first lesson in feed quality. Include the learning plan, learning overview, all of the learning content topics, learning summary, and the learning assessment by using the appropriate reference topics.
    <learningGroupMap>
      . . .
        <learningGroup>
            <topicmeta>
                <navtitle>Lesson 1: Feed Quality</navtitle>
            </topicmeta>
        
            <learningObject>
                <topicmeta>
                    <navtitle>Topic 1</navtitle>
                </topicmeta>
                 <learningPlanRef href="../lp_l1_t1_feed_quality.dita"/>
                <learningOverviewRef href="../lo_l1_t1_feed_quality.dita"/>
                <learningContentRef href="../lc_l1_t1_where_to_buy.dita"/>
                <learningContentRef href="../lc_l1_t1_storage.dita"/>
                <learningContentRef href="../lc_l1_t1_spoiling.dita"/>
                <learningContentRef href="../lc_l1_t1_ingredient_quality.dita"/>
                <learningSummaryRef href="../ls_l1_t1_summary.dita"/>
                <learningPostAssessmentRef href="../lg_l1_t1_quiz.dita" type="learningGroup"/>
                
         </learningObject>
        
        </learningGroup>
    
    </learningGroupMap>
                            

    You could add the appropriate number of learning objects and groups for the number of topics and lessons that you need to add to the map.
Contributors
  • Simon Bate, Scriptorium
  • Gretyl Kinsey, Scriptorium
  • Kaitlyn Heath, Scriptorium
Previous Topic
Back to Lesson

sidebar

Blog Sidebar

  • Scriptorium logo
    Maximize the value of your content. Read more.
  • Scriptorium logo
    Already in DITA and need support? Contact us.
RSSLinkedin

Want to add content? Join the ditatraining GitHub repository.

  • Home
  • News
  • Contact
  • Privacy
  • Cookie Policy

Maintained by Scriptorium Publishing

Logo and site presentation © 2015–2023 Scriptorium Publishing. Content based on the open-source DITA training project.

Manage Cookie Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage vendors Read more about these purposes
View preferences
{title} {title} {title}
Manage Cookie Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage vendors Read more about these purposes
View preferences
{title} {title} {title}