MEX format documentation
27.1.2022
This exam describes the MEX XML format.
For more information about using this format, see https://github.com/digabi/exam-engine
Osa 1: Exam structure
1. XML structure 0 p.
<e:exam>
          
          1 element
          Root element of the exam. All other elements are its descendants.
<e:languages>
            
            1 element
            <e:language>
              
              1-n elements
            <e:exam-title>
            
            1 element
          <e:exam-instruction>
            
            1 element
          <e:exam-instruction-ref>
            
            1 element
          <e:table-of-contents>
            
            1 element
          <e:external-material>
            
            0-1 elements
            
              External material page is constructed based on
              e:external-material
              elements
              defined within
              e:exam
              and
              e:question
              elements.
              Contains
              e:attachment
              elements.
            
<e:section>
            
            1-n elements
            Section groups questions
<e:section-title>
              
              1 element
              Section title can contain HTML elements. Section number is added automatically.
<e:section-instruction>
              
              0-n elements
              Section instructions can contain HTML elements.
<e:question>
              
              0-n elements
              
                Questions can contain sub-
                e:question
                s
              
<e:question-title>
                
                1 element
                Question title can contain HTML elements. Question number is added automatically.
<e:question-instruction>
                
                0-1 elements
                Question instructions can contain HTML elements.
<e:external-material>
                
                0-1 elements
                
                  External material page is constructed based on
                  e:external-material
                  elements
                  defined within
                  e:exam
                  and
                  e:question
                  elements.
                  Contains
                  e:attachment
                  elements.
                
<e:attachment>
                
                0-n elements
                
                  Internal material is displayed directly on exam page. Use
                  e:external-material
                  to
                  display material on separate external material page.
                
<e:attachment-title>
                  
                  1 element
                <e:audio>
                  
                  0-1 elements
                <e:image>
                  
                  0-1 elements
                <e:video>
                  
                  0-1 elements
                <e:reference>
                  
                  1 element. See section Material below for details.
                <e:text-answer>
                
                0-n elements
                See section Answer types below for details.
<e:question-number>
                
                0-n elements
                To show parent question number as a prefix and fixed number as a suffix.
<e:question>
                
                0-n elements
              <e:references>
            
            0-1 elements
          <e:exam-footer>
            
            0-1 elements
          1.1 Special characters as entities 0 p.
Certain characters requires escaping as entities in exam XML documents
| Character | Notation | 
|---|---|
| NBSP (non-breaking-space) |   | 
| SHY  (soft-hyphen) | ­ | 
| > | > | 
| < | < | 
| & | & | 
Notice, that e.g.   and ­ does not work.
2. Exam 0 p.
Top-level exam element.
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| exam-schema-version | Version string | No | — | Schema version, only 0.1 for now | 
| date | YYYY-MM-DD | No | — | Exam date | 
| exam-code | exam code string | No | — | Exam code used for exam specific translations | 
| day-code | exam day code string | No | — | Exam day code used for exam specific translations | 
| exam-stylesheet | custom CSS stylesheet file name | No | — | CSS file with this name must exist in attachments directory | 
| max-answers | Integer | No | No limit | Maximum number of questions student should answer | 
| meta | String | No | – | Metadata about element | 
        exam-code
        and
        day-code
        attributes control exam-specific
        translations, e.g. the heading text of table of contents, and the exam title if specific
        e:exam-title
        element is missing. Currently supported exam and day
        code pairs can be found in
        https://github.com/digabi/exam-engine/blob/master/packages/mastering/src/i18n/exam_titles_fi-FI.json
        .
      
2.1 Example 0 p.
<e:exam xmlns:e="http://ylioppilastutkinto.fi/exam.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://ylioppilastutkinto.fi/exam.xsd https://abitti.net/schema/exam.xsd" exam-schema-version="0.1" date="2018-09-29" exam-code="EA" exam-stylesheet="custom.css">
3. Languages and localization 0 p.
Content for multiple language versions of the same exam can be defined using localization elements.
3.1 Example 0 p.
<e:languages>
  <e:language>fi-FI</e:language>
  <e:language>sv-FI</e:language>
</e:languages>
...
<e:localization lang="fi-FI">
  <p>
    Älä jätä mitään merkintöjä sellaisen tehtävän vastaukselle varattuun tilaan,
    jota et halua jättää arvosteltavaksi.
  </p>
</e:localization>
<e:localization lang="sv-FI">
  <p>
    Lämna inga anteckningar i svarsfältet för sådana uppgifter som du inte vill
    lämna in för bedömning.
  </p>
</e:localization>
        
          Älä jätä mitään merkintöjä sellaisen tehtävän vastaukselle varattuun tilaan, jota et halua jättää arvosteltavaksi.
3.2 Pre-defined translations 0 p.
There are some pre-defined translations that can be easily reused with the e:translation tag. For example this code
<e:translation key="audio-test.instructions" />
renders the following text: Koe sisältää kuullunymmärtämisen tehtäviä.
For a full list of available translations, see these files. By default, each exam's translations are first looked up in their corresponding translation files (for example, German exam = GA.ts), and then in the generic Finnish/Swedish translation files (fi-FI.ts and sv-FI.ts)
Osa 2: Sections
Vastaa tehtävään 4.
        Exam consists of sections. Each section is described in
        e:section
        element.
      
        Section can define how many questions should be answered using
        max-answers
        attribute.
      
        Section attribute type can be user to describe how an exam should be packed.
      
        CAS applications can be disabled for a
        section by setting
        cas-forbidden="true"
        attribute.
      
        Metadata can be added with
        meta
        attribute.
      
Example of simple section
<e:section max-answers="1">
  <e:section-title>Example section title</e:section-title>
  <e:section-instruction>Section instructions</e:section-instruction>
  ...HTML code, questions...
  <e:question>
    <e:question-title>Example question title</e:question-title>
    <e:question-instruction>Question instructions</e:question-instruction>
    …HTML code, answer types, materials, sub-questions...
  </e:question>
</e:section>
    4. Example question title 0 p.
Osa 3: Questions
        Every section consists of questions defined using
        e:question
        elements.
        Questions are numbered automatically and they can contain HTML code, answer types,
        material or sub-questions. Question can define how many sub-questions should be answered
        using
        max-answers
        attribute.
      
        Maximum score of question is calculated automatically using the answer types, optional
        sub-questions and the limits from
        max-answers
        attributes.
      
        Metadata can be added with
        meta
        attribute.
      
Simple question example
<e:question> <e:question-title>Example question title</e:question-title> <e:question-instruction>Question description</e:question-instruction> …HTML code, answer types, materials, sub-questions, question numbers (e.g. <e:question-number suffix="1" />)... </e:question>
5. Example question title 0 p.
Sub-question example
<e:question max-answers="1">
  <e:question-title>Second example question title</e:question-title>
  <e:question-instruction>Second example question instructions</e:question-instruction>
  <e:question>
    <e:question-title>First sub-question title</e:question-title>
    <e:question-instruction>First sub-question instructions</e:question-instruction>
    …HTML code, answer types, materials, sub-questions...
  </e:question>
  <e:question>
    <e:question-title>Second sub-question title</e:question-title>
    <e:question-instruction>Second sub-question instructions</e:question-instruction>
    …HTML code, answer types, materials, sub-questions...
  </e:question>
</e:question>
    6. Second example question title 0 p.
Vastaa joko kohtaan 6.1 tai 6.2.
6.1 First sub-question title 0 p.
6.2 Second sub-question title 0 p.
Osa 4: Answer types
7. text-answer 7 p.
        There are three types of text answers.
        rich-text
        answer is intended for verbose essay-style answers, whereas
        single-line
        answer is intended for short, at most couple words, answers.
        integer
        answer is intended for integer answers.
      
        Examinee can also attach screenshots to
        rich-text
        answers.
      
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| max-score | Integer | Yes | — | Maximum score | 
| max-length | Integer | Yes | — | Maximum answer length. Works only for rich-text answers. It won't prevent student from entering an answer that is too long but warns the student about it. | 
| use-language-of-instruction | Boolean | No | false | Whether the student should answer the question in the language of instruction (typically the mother tongue) or the subject language. This attribute controls the HTML lang attribute of the input element, so a screen reader will read the answer using the correct language. Used only in secondary language exams. | 
| type | 
              single-line | rich-text | integer
             | No | 
              single-line
             | Type | 
| class | CSS class | No | - | CSS class name | 
| meta | String | No | – | Metadata about element | 
        single-line
        answer example
      
      <e:text-answer max-score="2" />
        rich-text
        answer example
      
      <e:text-answer type="rich-text" max-score="2" />
        rich-text
        answer with maximum length
      
      <e:text-answer type="rich-text" max-score="2" max-length="20" />
Vastauksen pituus on enintään 20 merkkiä. Ylityksestä seuraa pistevähennys.
        integer
        answer example
      
      The answer can only contain digits (0...9), and optionally a minus sign (-) at the beginning
<e:text-answer type="integer" max-score="1" />
8. choice-answer 2 p.
          e:choice-answer
          answer type creates a group of option buttons. Answer options are defined within it
          using
          e:choice-answer-option
          elements.
        
By default options are shuffled.
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| ordering | 
              random | fixed
             | No | random | Ordering of options | 
| direction | 
              vertical | horizontal
             | No | vertical | Direction of options | 
| class | CSS class | No | - | CSS class name | 
| meta | String | No | – | Metadata about element | 
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| score | Integer | No | 0 | Score for option | 
| class | CSS class | No | - | CSS class name | 
| meta | String | No | – | Metadata about element | 
Examples
<e:choice-answer> <e:choice-answer-option score="2">Lorem</e:choice-answer-option> <e:choice-answer-option score="0">Ipsum</e:choice-answer-option> <e:choice-answer-option>Dolor</e:choice-answer-option> <e:choice-answer-option score="-1">Sit</e:choice-answer-option> </e:choice-answer>
Options can contain any HTML code, like images or formulas
<e:choice-answer direction="vertical">
  <e:choice-answer-option>
    <e:formula>f(x) = \sqrt{x^2}</e:formula>
  </e:choice-answer-option>
  <e:choice-answer-option>
    <e:formula>f(x) = x^3</e:formula>
  </e:choice-answer-option>
  <e:choice-answer-option>
    <e:formula>f(x) = x^4 + 3x + 5</e:formula>
  </e:choice-answer-option>
</e:choice-answer>
      Horizontal direction works well for images
<e:choice-answer direction="horizontal">
  <e:choice-answer-option>
    <e:image src="example_small.jpg" />
  </e:choice-answer-option>
  <e:choice-answer-option>
    <e:image src="example.jpg" />
  </e:choice-answer-option>
  <e:choice-answer-option>
    <e:image src="example.jpg" />
  </e:choice-answer-option>
  <e:choice-answer-option>
    <e:image src="example_high.jpg" />
  </e:choice-answer-option>
  <e:choice-answer-option>
    <e:image src="example.jpg" />
  </e:choice-answer-option>
</e:choice-answer>
      9. dropdown-answer 2 p.
          e:dropdown-answer
          creates a dropdown menu.
        Similarly to
          e:choice-answer
          , answer options are defined within it using
          e:dropdown-anser-option
          elements.
        
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| ordering | 
              random | fixed
             | No | random | Ordering of options | 
| class | CSS class | No | - | CSS class name | 
| meta | String | No | – | Metadata about element | 
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| score | Integer | No | 0 | Score for option | 
| class | CSS class | No | - | CSS class name | 
| meta | String | No | – | Metadata about element | 
Example
<e:dropdown-answer> <e:dropdown-answer-option score="2">Lorem</e:dropdown-answer-option> <e:dropdown-answer-option score="-1">Ipsum</e:dropdown-answer-option> <e:dropdown-answer-option score="-1">Dolor</e:dropdown-answer-option> <e:dropdown-answer-option>Sit</e:dropdown-answer-option> </e:dropdown-answer>
10. scored-text-answer 8 p.
          e:scored-text-answer
          is like
          e:text-answer
          , but it
          is graded automatically based on a set of correct answers. To display answer hints
          on the right side of the page, group
          e:scored-text-answer
          elements
          within a
          e:hints
          element.
        
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| max-score | Integer | No | 0 | Maximum score | 
| use-language-of-instruction | Boolean | No | false | Whether the student should answer the question in the language of instruction (typically the mother tongue) or the subject language. This attribute controls the HTML lang attribute of the input element, so a screen reader will read the answer using the correct language. Used only in secondary language exams. | 
| class | CSS class | No | - | CSS class name | 
| meta | String | No | – | Metadata about element | 
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| score | Integer | Yes | - | Score for answer | 
| meta | String | No | – | Metadata about element | 
        Example of
        e:scored-text-answer
      
      <e:hints>
  Lorem ipsum,
  <e:scored-text-answer>
    <e:hint>dolor?</e:hint>
    <e:accepted-answer score="1">dolor</e:accepted-answer>
  </e:scored-text-answer>
  dolor sit amet consectetur adipisicing
  <e:scored-text-answer>
    <e:hint>elit?</e:hint>
    <e:accepted-answer score="1">elit</e:accepted-answer>
  </e:scored-text-answer>
  . Aliquam, explicabo. Ut,
  <e:scored-text-answer>
    <e:hint>vero?</e:hint>
    <e:accepted-answer score="1">vero</e:accepted-answer>
  </e:scored-text-answer>
  ? Exercitationem eos unde possimus
  <e:scored-text-answer>
    <e:hint>laboriosam?</e:hint>
    <e:accepted-answer score="1">laboriosam</e:accepted-answer>
  </e:scored-text-answer>
  , consectetur cum perspiciatis aut
  <e:scored-text-answer>
    <e:hint>dolores?</e:hint>
    <e:accepted-answer score="1">dolores</e:accepted-answer>
  </e:scored-text-answer>
  quas autem eaque impedit dolore. Blanditiis, eos doloribus.
</e:hints>
      Example without hints
        e:scored-text-answer
        can also be used without hints, e.g. in
        mathematics exams.
      
<e:formula>\frac{4{\pi}}{2}</e:formula> simplified:
<e:scored-text-answer max-score="3"/>
      11. dnd-answer 8 p.
          e:dnd-answer
          is a connect type of drag-and-drop element. 
          The correct answer is defined by placing a question in the e:dnd-answer-title element and the correct answer option in the e:dnd-answer-option within the e:dnd-answer element. 
          e:dnd-answer elements are placed within the e:dnd-answer-container element.
          Wrong answers are defined by placing e:dnd-answer-option elements within the e:dnd-answer-container element. 
          e:dnd-answer-title and e:dnd-answer-option can contain text, images, formulas and audio.
          e:dnd-answer is automatically graded based on a set of correct answers
        
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| dnd-type | connect | Yes | connect | Drag-and-Drop type | 
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| max-score | Integer | Yes | 3 | Maximum score | 
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| score | Integer | Yes | 3 | Answer score | 
        Example of
        e:dnd-answer
      
      <e:question>
          <e:question-title></e:question-title>
          <e:question-instruction></e:question-instruction>
          <e:audio-group>
            <e:attachment>
              <e:attachment-title>example audio</e:attachment-title>
              <e:audio src="example1.webm" times="1"><e:audio-title>Listen to the text as a whole first.</e:audio-title></e:audio>
            </e:attachment>
          </e:audio-group>
          <e:dnd-answer-container meta='dnd answer container' dnd-type='connect'>
              <e:dnd-answer max-score="2">
                  <e:dnd-answer-title>
                    What time suits Lars best?
                    <e:audio src="example1.webm" times="1"></e:audio>
                  </e:dnd-answer-title>
                  <e:dnd-answer-option score="2">Monday, 3:00 PM</e:dnd-answer-option>
              </e:dnd-answer>
              <e:dnd-answer max-score="2">
                  <e:dnd-answer-title>
                    What time suits Katarina best?
                    <e:audio src="example1.webm" times="1"></e:audio>
                  </e:dnd-answer-title>
                  <e:dnd-answer-option score="2">Tuesday, 1:00 p.m.</e:dnd-answer-option>
              </e:dnd-answer>
              <e:dnd-answer max-score="2">
                  <e:dnd-answer-title>
                    What time suits Marit best?
                    <e:audio src="example1.webm" times="1"></e:audio>
                  </e:dnd-answer-title>
                  <e:dnd-answer-option score="2">Monday, 4:00 PM</e:dnd-answer-option>
              </e:dnd-answer>
              <e:dnd-answer-option>Monday, 1:00 PM</e:dnd-answer-option>
              <e:dnd-answer-option>Monday, 2:00 pm</e:dnd-answer-option>
              <e:dnd-answer-option>Tuesday, 2:00 pm</e:dnd-answer-option>
              <e:dnd-answer-option>Tuesday, 3:00 pm</e:dnd-answer-option>
              <e:dnd-answer-option>Tuesday, 4:00 pm</e:dnd-answer-option>
          </e:dnd-answer-container>
      </e:question>
          <e:question>
        <e:question-title></e:question-title>
        <e:question-instruction></e:question-instruction>
        <e:dnd-answer-container dnd-type='connect'>
            <e:dnd-answer max-score="2">
                <e:dnd-answer-title>
                  <e:attachment>
                    <e:attachment-title>example audio</e:attachment-title>
                    <e:audio src="example1.webm"></e:audio>
                  </e:attachment>
                </e:dnd-answer-title>
                <e:dnd-answer-option score="2">
                  <e:attachment>
                    <e:attachment-title>example.jpg</e:attachment-title>
                    <e:image src="example.jpg"/>
                  </e:attachment>
                </e:dnd-answer-option>
            </e:dnd-answer>
            <e:dnd-answer-option>
              <e:attachment>
                <e:attachment-title>example.jpg</e:attachment-title>
                <e:image src="example.jpg"/>
              </e:attachment>
            </e:dnd-answer-option>
            <e:dnd-answer-option>
              <e:attachment>
                <e:attachment-title>example.jpg</e:attachment-title>
                <e:image src="example.jpg"/>
              </e:attachment>
            </e:dnd-answer-option>
        </e:dnd-answer-container>
      </e:question>
        12. audio-answer 6 p.
        An audio-answer answer type is for answering a question verbally. Microphone is required and browser
        has to have permission to use it. Note that operating system may also deny applications from using the microphone.
      
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| max-score | Integer | Yes | — | Maximum score | 
        Example of
        e:audio-answer
      
      <e:question>
    <e:question-title></e:question-title>
    <e:question-instruction></e:question-instruction>
    <e:audio-answer max-score="5" />
</e:question>
      Osa 5: Material
13. attachment 0 p.
          Questions can contain material like images, videos, HTML or files opened in external application.
          Reference data can be defined within the
          e:attachment
          by using
          e:reference
          element. Reference information is displayed by adding
          e:references
          element, usually at the end of the exam.
        
          If material should be
          displayed on an external material page, the
          e:attachment
          element can be defined
          as a child of an
          e:external-material
          element.
        
          e:external-material
          can be either a child of an
          e:exam
          or
          e:question
          element, depending on whether the material is exam-specific, or specific to a single question.
        
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| name | String | No | – | 
              Name of the material. Used only when material is linked to from
              e:attachment-link
              or
              e:attachment-links
              element.
             | 
| lang | String | No | – | Exam language code. Use when material should be included only in certain language version. | 
| meta | String | No | – | Metadata about element | 
| Element | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| author | String | No | Author of the material | |
| title | String | No | title of the material title | |
| publisher | String | No | Publisher | |
| publication | String | No | Reference to the original source, e.g. "Youtube service" | |
| howpublished | String | No | Release channel, e.g. "Genius web service" | |
| url | String | No | Internet address | |
| publication-date | Date | No | Publication date, e.g. 2019-03-01 or 2019 | |
| reference-date | Date | No | Refernece date, e.g. 2019-05-01 or 2019 | |
| translator | String | No | Name of the translator | |
| modified-by | String | No | Name of the modifier | |
| note | String | No | Free text | 
Example of internal material
<e:attachment>
  <e:attachment-title>Title</e:attachment-title>
  <p>...HTML code...</p>
  <e:image src="example.jpg" />
  <p>...More HTML code...</p>
  <e:reference>
    <e:author>Dolor Tempor</e:author>
    <e:title>Qui ullamco non ut proident sit incididunt adipisicing</e:title>
    <e:publisher>Culpa ex</e:publisher>
    <e:publication>MEB web service</e:publication>
    <e:howpublished>Internet service</e:howpublished>
    <e:url>https://www.ylioppilastutkinto.fi/en/matriculation-examination</e:url>
    <e:publication-date>1983-05-09</e:publication-date>
    <e:reference-date>2019-04-01</e:reference-date>
    <e:translator>Travis Translator</e:translator>
    <e:modified-by>Mary Modifier</e:modified-by>
    <e:note>Free text field</e:note>
  </e:reference>
</e:attachment>
      Example of external material
<e:external-material>
  <e:attachment name="test-material">
    <e:attachment-title>Title 1</e:attachment-title>
    <p>...HTML code...</p>
    <e:image src="example.jpg" />
    <p>...More HTML code...</p>
    <e:reference>
      <e:author>Matriculation examination board</e:author>
    </e:reference>
  </e:attachment>
  <e:attachment name="another-test-material">
    <e:attachment-title>Title 2</e:attachment-title>
    <e:video src="example1.webm" />
    <e:reference>
      <e:author>Dolor Tempor</e:author>
      <e:title>Qui ullamco non ut proident sit incididunt adipisicing</e:title>
      <e:publisher>Culpa ex</e:publisher>
      <e:publication>MEB web service</e:publication>
      <e:howpublished>Internet service</e:howpublished>
      <e:url>https://www.ylioppilastutkinto.fi/en/matriculation-examination</e:url>
      <e:publication-date>1983-05-09</e:publication-date>
      <e:reference-date>2019-04-01</e:reference-date>
      <e:translator>Travis Translator</e:translator>
      <e:modified-by>Mary Modifier</e:modified-by>
      <e:note>Free text field</e:note>
    </e:reference>
  </e:attachment>
</e:external-material>
      
      Example of exam-specific external material
<e:exam ...>
  ...
  <e:table-of-contents />
  <e:external-material>
    <e:attachment>
      <e:attachment-title>Exam-specific external material title</e:attachment-title>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.
          Aspernatur, libero sunt. Eos corporis quam fugiat maiores
          expedita quidem quaerat, quos voluptatem similique quae cum.
          Voluptate iste sed facere cum omnis.</p>
      <e:reference>
        <e:author>YTL</e:author>
      </e:reference>
    </e:attachment>
  </e:external-material>
  <e:section>
    ...
    14. image 0 p.
e:image
        element adds an image to the exam. It can be used anywhere where
        HTML is allowed.
      | Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| src | String | Yes | – | Filename of the image | 
| lang | String | No | – | Exam language code. Use when image should be included only in certain language version. | 
| class | CSS class | No | - | CSS class name | 
Example
<e:image src="example.jpg"> <e:image-title>Optional image title text</e:image-title> </e:image>
15. image-overlay 0 p.
          e:image-overlay
          element can contain one or more image elements. It can be used anywhere where
        HTML is allowed. The images are rendered on top of each other, and an input slider
        is added for each image to allow for the adjustment of the opacity (transparency) of
        the image. The label for each input slider is taken from the text
        inside each
          e:image
          element. The text can be localized.
        
Make sure that all the images have the same width and height in pixels. Differently sized images will cause unwanted layout effects.
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| lang | String | No | – | Exam language code. Use when image-overlay should be included only in a certain language version. | 
| meta | String | No | – | Metadata about element | 
Example
<e:image-overlay>
  <e:image src="map-example-1.jpg">
    <e:image-title>Topographic Map</e:image-title>
  </e:image>
  <e:image src="map-example-2.jpg">
    <e:image-title>Public Transport Map
  </e:image>
  <e:image src="map-example-3.jpg">
    <e:image-title>Bike Lanes Map<e:image-title>
  </e:image>
</e:image-overlay>
      Example maps © OpenStreetMap contributors
16. audio 0 p.
e:audio
        element adds an audio to the exam. It can be used anywhere where
          HTML is allowed.
      | Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| src | String | Yes | – | Audio file name | 
| times | Integer | No | ∞ | Maximum number of times the audio can be played by the examinee | 
| lang | String | No | – | Exam language code. Use when audio should be included only in certain language version. | 
| class | CSS class | No | - | CSS class name | 
Examples
<e:audio src="example1.webm" times="2"> <e:audio-title>Optional description</e:audio-title> </e:audio>
<e:audio src="example1.webm"> <e:audio-title>Optional description</e:audio-title> </e:audio>
17. audio-group 6 p.
e:audio-group
        element can be used to group audio elements by adding
        a separator before the group.
      Example
<e:audio-group>
  <e:audio src="example1.webm" times="2">
    <e:audio-title>The whole recording<e:audio-title>
  </e:audio>
</e:audio-group>
<e:audio-group>
  <e:question>
    <e:question-title>Kuuntelumonivalinta</e:question-title>
    <e:choice-answer>
      <e:choice-answer-option score="2">Lorem</e:choice-answer-option>
      <e:choice-answer-option score="0">Ipsum</e:choice-answer-option>
      <e:choice-answer-option>Dolor</e:choice-answer-option>
      <e:choice-answer-option score="-1">Sit</e:choice-answer-option>
    </e:choice-answer>
  </e:question>
  <e:question>
    <e:question-title>Kuuntelumonivalinta</e:question-title>
    <e:choice-answer>
      <e:choice-answer-option score="2">Lorem</e:choice-answer-option>
      <e:choice-answer-option score="0">Ipsum</e:choice-answer-option>
      <e:choice-answer-option>Dolor</e:choice-answer-option>
      <e:choice-answer-option score="-1">Sit</e:choice-answer-option>
    </e:choice-answer>
  </e:question>
  <e:audio src="example2.webm" times="2">
    <e:audio-title>The passage related to questions 11.1. and 11.2.</e:audio-title>
  </e:audio>
</e:audio-group>
<e:audio-group>
  <e:question>
    <e:question-title>Kuuntelumonivalinta</e:question-title>
    <e:choice-answer>
      <e:choice-answer-option score="2">Lorem</e:choice-answer-option>
      <e:choice-answer-option score="0">Ipsum</e:choice-answer-option>
      <e:choice-answer-option>Dolor</e:choice-answer-option>
      <e:choice-answer-option score="-1">Sit</e:choice-answer-option>
    </e:choice-answer>
  </e:question>
  <e:audio src="example3.webm" times="2">
    <e:audio-title>The passage related to question 11.3.<e:audio-title>
  </e:audio>
</e:audio-group>
      17.1 Listening comprehension choice question 2 p.
17.2 Listening comprehension choice question 2 p.
17.3 Listening comprehension 2 p.
18. video 0 p.
e:video
        element adds an video to the exam. It can be used anywhere where
          HTML is allowed.
      | Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| src | String | Yes | – | Video file name | 
| lang | String | No | – | Exam language code. Use when video should be included only in certain language version. | 
| class | CSS class | No | - | CSS class name | 
Example
<e:video src="example1.webm" />
19. file 0 p.
e:file
        element adds an external file to the exam. It can be used anywhere where
        HTML is allowed.
      | Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| src | String | Yes | – | Filename | 
| lang | String | No | – | Exam language code. Use when file should be included only in certain language version. | 
| class | CSS class | No | - | CSS class name | 
Exmaple
<e:file src="example1.webm">Text of the file link</e:file>
Osa 6: Links to material
20. attachment-link 0 p.
e:attachment-link
        element.
      | Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| ref | String | Yes | – | 
              Value of the linked
              e:attachment
              's
              name
              attribute.
             | 
| type | 
              long | short
             | No | 
              long
             | Type of the reference, see example below. | 
| meta | String | No | – | Metadata about element | 
Example
<e:attachment-link ref="test-material" /> <e:attachment-link ref="another-test-material" type="short" />
21. attachment-links 0 p.
e:attachment-links
        element to refere to multiple materials.
      Example
<e:attachment-links> <e:attachment-link ref="test-material" /> <e:attachment-link ref="another-test-material" /> </e:attachment-links> <e:attachment-links type="short"> <e:attachment-link ref="test-material" /> <e:attachment-link ref="another-test-material" /> </e:attachment-links>
Osa 7: Formulas
22. Adding formulas 0 p.
          You can add
          \LaTeX
          formulas by using
          e:formula
          element. Formulas can be placed both
          within text (
          inline
          ) and on their own line (
          display
          ).
        
          By default, the
          \LaTeX
          source code of the
          formula is displayed for screen readers. If you want to provide an
          alternative screen reader representation of the formula, use the
          assistive-title
          attribute.
        
| Attribute | Type | Mandatory | Default value | Description | 
|---|---|---|---|---|
| mode | 
              inline | display
             | No | 
              inline
             | Formula type | 
| assistive-title | String | No | The \LaTeX source code of the formula | An alternative assistive title that describes the equation for screen readers, perhaps using AsciiMath or Unicode notation | 
| meta | String | No | – | Metadata about element | 
Notice that certain characters in formulas require special notation.
| Character | Notation | 
|---|---|
| > | 
              >
             | 
| < | 
              <
             | 
| & | 
              &
             | 
        For longer formulas also
        
          <e:formula>
          <![CDATA[ latex-code ]]>
          </e:formula>
        
        may also be used. Inside a CDATA-block escaping is not required.
      
        Example of an
        inline
        formula
      
      <e:formula>\int_0^\infty e^{-x^2} dx=\frac{\sqrt{\pi}}{2}</e:formula>
      \int_0^\infty e^{-x^2} dx=\frac{\sqrt{\pi}}{2}
        Example of a
        display
        formula
      
      <e:formula mode="display">\int_0^\infty e^{-x^2} dx=\frac{\sqrt{\pi}}{2}</e:formula>
      \int_0^\infty e^{-x^2} dx=\frac{\sqrt{\pi}}{2}
        Example of a
        assistive-title
      
      <e:formula assistive-title="10/36 > 9/36 =1/4">\frac{10}{36}>\frac{9}{36}=\frac{1}{4}</e:formula>
      10/36 > 9/36 =1/4
Osa 8: CSS styles
23. Typography 0 p.
Title
All common header levels are in use.
<h1>h1. Title (40px, light)</h1> <h2>h2. Title (30px, normal)</h2> <h3>h3. Title (21px, semibold)</h3> <h4>h4. Title (18px, semibold)</h4> <h5>h5. Title (16px, semibold)</h5> <h6>h6. Title (16px, semibold)</h6>
h1. Title (40px, light)
h2. Title (30px, normal)
h3. Title (21px, semibold)
h4. Title (18px, semibold)
h5. Title (16px, semibold)
h6. Title (16px, semibold)
Text size
        Text size can be modified using
        e-font-size-*
        classes.
      
<p class="e-font-size-xxxl">.e-font-size-xxxl: (40px)</p> <p class="e-font-size-xxl">.e-font-size-xxl: (30px)</p> <p class="e-font-size-xl">.e-font-size-xl: (21px)</p> <p class="e-font-size-l">.e-font-size-l: (18px)</p> <p class="e-font-size-m">.e-font-size-m: (16px, tekstin oletuskoko)</p> <p class="e-font-size-s">.e-font-size-s: (14px)</p> <p class="e-font-size-xs">.e-font-size-xs: (12px)</p>
.e-font-size-xxxl: (40px)
.e-font-size-xxl: (30px)
.e-font-size-xl: (21px)
.e-font-size-l: (18px)
.e-font-size-m: (16px, tekstin oletuskoko)
.e-font-size-s: (14px)
.e-font-size-xs: (12px)
Typefaces
        Typeface can be modified using
        e-semibold
        ,
        e-light
        ,
        e-italic
        , and
        e-normal
        classes.
      
<p class="e-semibold">.e-semibold: Lorem ipsum dolor sit amet</p> <p class="e-light">.e-light: Lorem ipsum dolor sit amet</p> <p class="e-italic">.e-italic: Lorem ipsum dolor sit amet</p> <p class="e-normal">.e-normal: Lorem ipsum dolor sit amet</p> <p class="e-underline">.e-underline: Lorem ipsum dolor sit amet</p>
.e-semibold: Lorem ipsum dolor sit amet
.e-light: Lorem ipsum dolor sit amet
.e-italic: Lorem ipsum dolor sit amet
.e-normal: Lorem ipsum dolor sit amet
.e-underline: Lorem ipsum dolor sit amet
Text positioning
        Text can be positioned both horizontally and vertically by using
        e-text-*
        classes.
      
| Class | Description | 
|---|---|
              e-text-center
             | Centers text | 
              e-text-left
             | Aligns text to the left | 
              e-text-right
             | Aligns text to the right | 
              e-text-justify
             | Justifies text | 
              e-text-top
             | Aligns text to the top | 
              e-text-bottom
             | Aligns text to the bottom | 
Text helper classes
| Class | Description | 
|---|---|
              e-nowrap
             | Prevent line wrapping | 
              e-text-gap
             | Create underlined gap within 1. text. | 
Quotes
        Short quotes can be defined using
        blockquote
        element.
      
<blockquote>
  <p>
    Consectetur quis ad fugiat ad. Do consequat sunt sit non commodo. Fugiat
    laborum Lorem sint laboris cupidatat ipsum eiusmod. Incididunt
    exercitation nostrud duis nulla deserunt consectetur aliquip aliquip
    cupidatat. In reprehenderit aliquip velit anim pariatur. Lorem cillum
    irure cupidatat veniam non incididunt enim commodo. Cillum pariatur
    tempor excepteur laboris tempor exercitation consequat laboris
    adipisicing duis proident proident amet.
  </p>
  <p>—https://www.ylioppilastutkinto.fi</p>
</blockquote>
      Consectetur quis ad fugiat ad. Do consequat sunt sit non commodo. Fugiat laborum Lorem sint laboris cupidatat ipsum eiusmod. Incididunt exercitation nostrud duis nulla deserunt consectetur aliquip aliquip cupidatat. In reprehenderit aliquip velit anim pariatur. Lorem cillum irure cupidatat veniam non incididunt enim commodo. Cillum pariatur tempor excepteur laboris tempor exercitation consequat laboris adipisicing duis proident proident amet.
—https://www.ylioppilastutkinto.fi
        Contents can also be highlighted using
        e-box
        class.
      
<div class="e-box"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Libero repudiandae sequi sapiente cumque necessitatibus ex voluptates ullam eveniet consequuntur nulla suscipit laboriosam fugiat, soluta repellat dolor quibusdam incidunt tempora. Suscipit. </div>
24. Lists 0 p.
<ol class="e-list-lower-alpha"> <li>Eka</li> <li>Toka</li> <li>Kolmas</li> </ol>
- First
 - Second
 - Third
 
<ol class="e-list-upper-alpha"> <li>Eka</li> <li>Toka</li> <li>Kolmas</li> </ol>
- First
 - Second
 - Third
 
<ol class="e-list-lower-roman"> <li>Eka</li> <li>Toka</li> <li>Kolmas</li> </ol>
- First
 - Second
 - Third
 
<ol class="e-list-upper-roman"> <li>Eka</li> <li>Toka</li> <li>Kolmas</li> </ol>
- First
 - Second
 - Third
 
Unordered list of words
<ul class="e-list-wordcloud"> <li>Sana</li> <li>Moniosainen ilmaisu</li> <li>Kolmas sana</li> <li>Neljäs</li> <li>Viides</li> <li>Kuudes</li> <li>Seitsemäs ilmaisu</li> <li>Kahdeksas</li> <li>Yhdeksäs</li> <li>Kymmenes pidempi muoto</li> <li>Yhdestoista</li> </ul>
- Word
 - Multiword content
 - Third word
 - Fourth
 - Fifth
 - Sixth
 - Seventh word
 - Eighth
 - Ninth
 - Tenth longer word
 - Eleventh
 
25. Floating 0 p.
| Class | Description | 
|---|---|
              e-float-left
             | Floats element to the left | 
              e-float-right
             | Floats element to the right | 
              e-clearfix
             | Stops floating | 
              e-width-full
             | Sets element width to 100% | 
              e-width-threequarters
             | Sets element width to 75% | 
              e-width-half
             | Sets element width to 50% | 
              e-width-third
             | Sets element width to 33% | 
              e-width-quarter
             | Sets element width to 25% | 
Example
<div class="e-clearfix"> <e:image src="example.jpg" class="e-width-half e-mrg-r-2 e-float-left" /> <p>Lorem ipsum dolor sit amet.</p> </div> <div class="e-clearfix"> <e:image src="example.jpg" class="e-width-third e-mrg-l-2 e-float-right" /> <p>Lorem ipsum dolor sit amet.</p> </div>
Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet.
26. Illustration images 0 p.
e-illustration-right
        .
        In addition to right alignment, it adds proper margins. The class does not restrict
        image size, therefore
        e-width-*
        classes can be used simultaneously.
      Example
<e:image src="example.jpg" class="e-illustration-right e-width-third" /> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Quos dolores quam facere vel cum eos enim eaque soluta? Ullam doloribus explicabo commodi numquam suscipit iste recusandae illum laboriosam dolorum ducimus? </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Ea officiis adipisci odit neque quam corporis voluptatibus iste veritatis libero tempora eius nihil facilis tempore, sit sunt enim exercitationem. Suscipit, fugit? </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Sed rerum necessitatibus vero illo porro voluptatum fuga et quibusdam voluptates adipisci veniam, quas natus exercitationem atque voluptas tempora accusamus voluptate culpa! </p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quos dolores quam facere vel cum eos enim eaque soluta? Ullam doloribus explicabo commodi numquam suscipit iste recusandae illum laboriosam dolorum ducimus?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Ea officiis adipisci odit neque quam corporis voluptatibus iste veritatis libero tempora eius nihil facilis tempore, sit sunt enim exercitationem. Suscipit, fugit?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Sed rerum necessitatibus vero illo porro voluptatum fuga et quibusdam voluptates adipisci veniam, quas natus exercitationem atque voluptas tempora accusamus voluptate culpa!
27. Margins and paddings 0 p.
          For setting margin and padding there are own helper classes. The size set using
          numbers, e.g. in
          e-pad-8
          the padding is 8 times larger than in
          e-pad-1
          .
        
You can use numbers 1 to 8.
| Class | Description | 
|---|---|
              e-pad-*
             | Padding to every direction | 
              e-pad-l-*
             | Padding to the left | 
              e-pad-r-*
             | Padding to the right | 
              e-pad-l-*
             | Padding to the top | 
              e-pad-b-*
             | Padding to the bottom | 
              e-pad-x-*
             | Padding to the left and right | 
              e-pad-y-*
             | Padding to the top and bottom | 
              e-mrg-*
             | Margin to every direction | 
              e-mrg-l-*
             | Margin to the left | 
              e-mrg-r-*
             | Margin to the right | 
              e-mrg-t-*
             | Margin to the top | 
              e-mrg-b-*
             | Margin to the bottom | 
              e-mrg-x-*
             | Margin to the left and right | 
              e-mrg-y-*
             | Margin to the top and bottom | 
<div> <span class="e-pad-1">e-pad-1</span> <span class="e-pad-2">e-pad-2</span> <span class="e-pad-4">e-pad-4</span> <span class="e-pad-8">e-pad-8</span> </div> <div> <span class="e-pad-l-1">e-pad-l-1</span> <span class="e-pad-l-2">e-pad-l-2</span> <span class="e-pad-l-4">e-pad-l-4</span> <span class="e-pad-l-8">e-pad-l-8</span> </div> <div> <span class="e-pad-r-1">e-pad-r-1</span> <span class="e-pad-r-2">e-pad-r-2</span> <span class="e-pad-r-4">e-pad-r-4</span> <span class="e-pad-r-8">e-pad-r-8</span> </div> <div> <span class="e-pad-x-1">e-pad-x-1</span> <span class="e-pad-x-2">e-pad-x-2</span> <span class="e-pad-x-4">e-pad-x-4</span> <span class="e-pad-x-8">e-pad-x-8</span> </div> <div> <span class="e-pad-y-1">e-pad-y-1</span> <span class="e-pad-y-2">e-pad-y-2</span> <span class="e-pad-y-4">e-pad-y-4</span> <span class="e-pad-y-8">e-pad-y-8</span> </div>
28. Tables 0 p.
e-table
        ,
        e-table--borderless
        , and
        e-table--zebra
        .
      <table class="e-table e-width-full">
  <caption>Table title</caption>
  <thead>
    <tr>
      <th>First column</th>
      <th>Second column</th>
      <th>Third column</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Lorem</td>
      <td>Ipsum</td>
      <td>Dolor</td>
    </tr>
  </tbody>
</table>
      | First column | Second column | Third column | 
|---|---|---|
| Lorem | Ipsum | Dolor | 
<table class="e-table e-table--borderless e-width-full">
  <caption>Table title</caption>
  <thead>
  <tr>
      <th>First column</th>
      <th>Second column</th>
      <th>Third column</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Lorem</td>
      <td>Ipsum</td>
      <td>Dolor</td>
    </tr>
  </tbody>
</table>
      | First column | Second column | Third column | 
|---|---|---|
| Lorem | Ipsum | Dolor | 
<table class="e-table e-table--borderless e-table--zebra e-width-full">
  <caption>Table title</caption>
  <thead>
  <tr>
      <th>First column</th>
      <th>Second column</th>
      <th>Third column</th>
  </tr>
  </thead>
  <tbody>
    <tr>
      <td>Lorem</td>
      <td>Ipsum</td>
      <td>Dolor</td>
    </tr>
    <tr>
      <td>Ipsum</td>
      <td>Dolor</td>
      <td>Lorem</td>
    </tr>
    <tr>
      <td>Dolor</td>
      <td>Lorem</td>
      <td>Ipsum</td>
    </tr>
    <tr>
      <td>Lorem</td>
      <td>Ipsum</td>
      <td>Dolor</td>
    </tr>
  </tbody>
</table>
      | First column | Second column | Third column | 
|---|---|---|
| Lorem | Ipsum | Dolor | 
| Ipsum | Dolor | Lorem | 
| Dolor | Lorem | Ipsum | 
| Lorem | Ipsum | Dolor | 
        Cells can be formatted using e.g.
        e-pad-*
        or
        e-text-*
        classes.
      
<table class="e-table e-width-full">
  <caption>Table title</caption>
  <thead>
    <tr>
      <th class="e-pad-l-8">First column (padding to the left)</th>
      <th class="e-text-center">Second column (centered)</th>
      <th class="e-text-right">Third column (aligned to the right)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="e-pad-l-8">Lorem</td>
      <td class="e-text-center">Ipsum</td>
      <td class="e-text-right">Dolor</td>
    </tr>
  </tbody>
</table>
      | First column (padding to the left) | Second column (centered) | Third column (aligned to the right) | 
|---|---|---|
| Lorem | Ipsum | Dolor | 
        If a table is very wide, you can prevent it from overflowing and make
        it scrollable by wrapping it in an
        .e-scrollable-x
        element.
      
<div class="e-scrollable-x">
  <table class="e-table">
    …
  </table>
</div>
      | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | 
| Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | 
| Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | 
29. Text columns 0 p.
          Text columns can be added using
          e-columns
          class. Ever child element within it must have
          
          e-column
          class
        
There is some empty space between columns.
Example
By default columns have equal width
<div class="e-columns"> <div class="e-column">e-column</div> <div class="e-column">e-column</div> <div class="e-column">e-column</div> <div class="e-column">e-column</div> </div>
You can also use a 12 column system
<div class="e-columns"> <div class="e-column e-column--6">e-column--6</div> <div class="e-column e-column--3">e-column--3</div> <div class="e-column e-column--3">e-column--3</div> </div> <div class="e-columns"> <div class="e-column e-column--8">e-column--8</div> <div class="e-column e-column--2">e-column--2</div> <div class="e-column e-column--2">e-column--2</div> </div> <div class="e-columns"> <div class="e-column e-column--2">e-column--2</div> <div class="e-column e-column--8">e-column--8</div> <div class="e-column e-column--2">e-column--2</div> </div>
        To make column as narrow as possible, use
        e-column--narrow
        class.
      
<div class="e-columns"> <div class="e-column">e-column</div> <div class="e-column e-column--narrow">e-column--narrow</div> </div>
Kokeen tehtävät loppuvat tähän.
Lähteet
- Lähde: YTL.
 - Lähde: YTL.
 - Lähde: Dolor Tempor. Qui ullamco non ut proident sit incididunt adipisicing. Culpa ex. MEB web service. Internet service. https://www.ylioppilastutkinto.fi/en/matriculation-examination. Julkaistu: 9.5.1983. Viitattu: 1.4.2019. Käännös: Travis Translator. Muokkaus: Mary Modifier. Free text field
 



