9.2. The Courseware Structure#

You develop the courseware structure in the course.xml file, in the top- level directory.

For an example of a course.xml file, see The edX-Insider course.xml File.

9.2.1. The course.xml File#

The root element of the course.xml file is course.

An example of the contents of a course.xml file follows.

<course advanced_modules="[&quot;concept&quot;, &quot;done&quot;,
    &quot;profile&quot;, &quot;recommender&quot;]" course="edX_Insider"
    course_image="code.png" display_name="edX Demo"
    enrollment_start="2014-03-01T04:00:00Z" org="edX"
    start="2014-03-03T00:00:00Z" url_name="Ongoing">
    . . .
    . . .

9.2.1.1. course Attributes#

Attribute

Meaning

advanced_modules

The list of advanced modules, or custom XBlocks, used in your course.

url_name

The value in the course URL path directly after the domain, organization, and course name. The url_name must also be the name of the course outline XML file (without the .xml extension).

org

The organization sponsoring the course. This value is in the course URL path, following the domain and /courses/.

course

The name of the course. This value is in the course URL path, following the organization.

course_image

The filename of the image used on the course About page.

enrollment_start

The date and time that students can start enrolling in the course.

9.2.1.2. course Element Attributes and Course URLS#

The attributes of the course element are used to construct URLs in the course. The following course URL shows where these values are used.

http://my-edx-server.org/courses/<@org value>/<@course value>/<@url_name value>/info

For example:

http://my-edx-server.org/courses/edX/DemoX/Demo_Course/info

9.2.2. Course Chapters#

You create a course chapter with the chapter element, as a child of the root course element. Chapter elements are top-level pages in the course. The edX platform renders navigation chrome around them (tab-set on top and accordion on the left). It is possible to disable chrome for specific chapters using the chrome option. It is possible to associate chapters with different elements of the tabset with the default_tab option. It is possible to hide them from the navigation using the hide_from_toc option.

For example, the course outline is defined by elements in the following format.

<course>
  <chapter display_name="Exam Review" url_name="exam_review">
  . . .
</course>

9.2.2.1. chapter Attributes#

Attribute

Meaning

display_name

The value that is displayed to students as the name of the chapter, or section.

start

The date and time, in UTC, that the chapter is released to students. Before this date and time, students do not see the chapter.

9.2.2.2. chapter Children#

The chapter element contains one or more children. Studio uses sequential elements for all children of chapters, and calls these subsections.

The following example shows a chapter with two sequentials, or subsections.

<chapter display_name="Example Week 2: Get Interactive">
    <sequential display_name="Simulations" url_name="simulations">
        . . .
    <sequential display_name="Graded Simulations"
        url_name="graded_simulations">
        . . .
</chapter>

9.2.3. Course Sequentials#

You create a course sequential with the sequential element, for each subsection in the chapter.

For example, the course can contain a sequential in this format.

<course>
    <chapter url_name="exam_review">
        <sequential display_name="Simulations" url_name="simulations">
            . . .
        </sequential>
    </chapter>
    . . .
</course>

9.2.3.1. sequential Attributes#

Attribute

Meaning

display_name

The value that is displayed to students as the name of the sequential, or subsection.

start

The date and time, in UTC, that the sequential is released to students. Before this date and time, students do not see the sequential.

graded

Whether the sequential is a graded subsection; true or false.

format

If the sequential is graded, the assignment type.

graceperiod

If the sequential is graded, the number of seconds in the grace period.

rerandomize

TBD

showanswer

TBD

xqa_key

TBD

9.2.3.2. sequential Children#

The sequential element contains one or more child vertical elements.

The vertical element references a vertical, or unit, in the course.

The following example shows a chapter with a sequential that has three verticals, or units.

<course>
    <chapter url_name="exam_review">
        <sequential display_name="Simulations" url_name="simulations">
            <vertical display_name="Unit 1" url_name="Lesson_1_Unit_1">
                . . . .
            <vertical display_name="Unit 2" url_name="Lesson_1_Unit_2">
                . . . .
        </sequential>
    </chapter>
    . . .
</course>

9.2.4. Course Verticals#

In the course structure, a course vertical serves the following functions.

  • Defines the display name for the vertical, or unit.

  • Organizes components and other verticals in the vertical.

You create a course vertical with the vertical element, for each unit in the subsection.

For example, the course can contain a vertical in this format.

<course>
    <chapter url_name="exam_review">
        <sequential display_name="Simulations" url_name="simulations">
            <vertical display_name="Unit 1" url_name="Lesson_1_Unit_1"/>
                . . .
        </sequential>
    </chapter>
    . . .
</course>

9.2.4.1. vertical Attributes#

Attribute

Meaning

display_name

The value that is displayed to students as the name of the sequential, or subsection.

9.2.4.2. vertical Children#

The vertical element contains one or more child elements for each component in the vertical, or unit.

Note

You can embed the content of components in the course.xml file, as child elements of the vertical element. However, you might want to store components in separate files, to better enable content reuse across courses.

A vertical element can also contain a vertical element. You can nest verticals, or units, recursively.

Child elements of vertical refer to components in your course. The edX Platform supports a wide range of components, including custom XBlocks.

The following example shows a vertical with two components.

<vertical display_name="Lesson_1_Unit_1">
    <html url_name="Introduction"/>
    <video url_name="Unit_1_Video"/>
</vertical>