Алик Кириллович

Два типа языков разметки: языки в стиле XML и языки в стиле YAML

07 июля 2008 г.

Существует два типа языков разметки: языки в стиле XML и языки в стиле YAML.

Языки в стиле XML

В XML-языках все элементы, вне зависимости от их смысла оформляются с помощью общих синтаксических конструкций.

Примеры XML-языков:

xHTML:

В xHTML синтаксис:

            
               Содержимое
              
            !!!]]>
          

имеют все элементы, вне зависимости от их семантики: заголовки, ссылки, списки, таблицы и т.д.

Языки в стиле YAML

В YAML-языках каждый тип элемента имеет свой синтаксис, обусловленный семантикой этого элемента.

Например, в Wiki-разметке для задания горизонтальной линии используют ----, т.к. эта конструкция внешне напоминает линию; для задания списка перед каждым пунктом ставят *, т.к. она внешне напоминает маркер списка.

Примеры YAML-языков:

Wiki-разметка:

В Wiki-разметке каждый тип элемента имеет свой синтаксис:

Для выделения текста жирным шрифтом, текст обрамляется тремя одинарными кавычками: '''жирный текст'''.

Названия разделов статьи обрамляются двумя (или тремя для подразделов) знаками равенства: === Заголовок ===.

Для горизонтальной линии используется четыре дефиса: ----.

Списки делаются так: на каждой отдельной строке ставится символ # и затем следует пункт списка. Для ненумерованных списков используется *, например:

            * Пункт 1;
            * Пункт 2;
            * Пункт 3.
          

Ссылки обрамляются конструкцией вида: [[Название целевой статьи|видимый текст ссылки]

Для картинок используется следующая конструкция: [[Image:имя_файла.png]]

Для таблиц такая:

            {|  
             |Ячейка 1-1  
             |Ячейка 2-1  
             |-  
             |Ячейка 1-2  
             |Ячейка 2-2  
             |}
           

И т.д.

YAML:
 
Textile:
 
Математическая нотация:

В математической нотации для каждого действия используется своя запись. Даже арифметические действия записываются по-разному:

Сложение, вычитание и умножение имеет следующий синтаксис: операнд1 оператор операнд2, например: 2+2, 5-3, 4*6.

Для записи деления, делимое размещают над делителем, и отделяется горизонтальной чертой, например: ¾. А для записи возведения в степень, вообще, обходятся без оператора, размещая показатель степени над основанием, например: 210

Каждый из этих типов языков имеет свои преимущества и недостатки:

Преимущества XML-языков:

Недостатки XML-языков:

Преимущества YAML-языков:

Недостатки YAML-языков:

Примеры использования

В нашей системе тестирования знаний «СИнТеЗ» для экспорта/импорта тестов используются языки обоих типов.

XML

Любой тест может быть экспортирован/импортирован в XML-формат.

Этот формат имеет все преимущества XML-языков: удобен для разбора стандартным XML-парсером, может содержать SVG или MathML-разметку, с помощью XSLT может быть преобразован в любой другой формат, например в международный стандарт дистанционного обучения SCORM.

Однако, ему присущи и недостатки XML-языков: большой размер и неудобность для человека.

Пример простейшего файла тестов:

Файл теста в формате XML:
            
              
                
                  
                    
                      
                        
                        
                        
                      
                    
                    
                      
                        
                        
                        
                        
                      
                    
                  
                
                
                  
                    
                      
                        
                      
                    
                    
                      
                        
                        
                        
                      
                    
                    
                      
                        
                        
                        
                      
                    
                  
                
              
            
            !!!]]>
          

YAML

Также тест может быть импортирован в YAML-формат. Этот формат настолько прост, что преподаватель может составлять тест даже в отсутствии редактора тестов, просто в «Блокноте».

Файл теста в формате YAML:
            ***Тема 1
            
            ? Текст вопроса типа "выбор одного правильного варианта"
            +Правильный вариант
            -Неправильный вариант
            -Неправильный вариант

            ? Текст вопроса типа "выбор нескольких правильных вариантов"
            +Правильный вариант
            +Правильный вариант
            -Неправильный вариант
            -Неправильный вариант

            
            ***Тема 2

            ? Текст вопроса типа "прямой ввод"
            =Правильный ответ

            ? Текст вопроса типа "соответствие"
            Левая часть 1 <-> Правая часть 1
            Левая часть 2 <-> Правая часть 2
            Левая часть 3 <-> Правая часть 3

            ? Текст вопроса типа "упорядочивание"
            1. Первый пункт упорядочивания
            2. Второй пункт упорядочивания
            3. Третий пункт упорядочивания
          

Вывод:

XML-языки понятны человеку, но больше предназначены для компьютера. YAML-языки понятны компьютеру, но больше предназначены для человека.

Если Вы хотите, чтобы файлы вашего приложения были удобны как для человека, так и для компьютера, используйте оба этих формата.

Примечания

Библиотека подсветки синтаксиса в этой статье основана на «highlight.js» от Ивана Сагалаева.

Статьи

About

Подписка

  • RSS
Valid XHTML 1.0 Strict © Алик Кириллович, 2008—2015