stringtranslate.com

Язык разметки

Скриншот XML-файла.
Пример RecipeML — простого языка разметки на основе XML для создания рецептов. Разметку можно преобразовать программно для отображения, например, в HTML , PDF или Rich Text Format .

Язык разметки — это система кодирования текста , которая определяет структуру и форматирование документа и, возможно, отношения между его частями . [1] Разметка часто используется для управления отображением документа или для обогащения его содержимого для облегчения автоматической обработки.

Язык разметки — это набор правил, определяющих, какая информация разметки может быть включена в документ и как она сочетается с содержимым документа таким образом, чтобы облегчить его использование людьми и компьютерными программами. Идея и терминология возникли из «разметки» бумажных рукописей (т. е. инструкций редактора по доработке), которая традиционно пишется на рукописях авторов красной ручкой или синим карандашом . [2]

Старые языки разметки, которые обычно ориентированы на типографику и представление, включают Troff , TeX и LaTeX .Scribe и большинство современных языков разметки, таких как XML , идентифицируют компоненты документа (например, заголовки, абзацы и таблицы) с ожиданием, что для применения форматирования или другой обработки будут использоваться такие технологии, как таблицы стилей .

Некоторые языки разметки, такие как широко используемый HTML , имеют заранее определенную семантику представления , то есть их спецификации предписывают некоторые аспекты представления структурированных данных на конкретном носителе. HTML, как DocBook , Open eBook , JATS и многие другие, основан на мета-языках разметки SGML и XML . То есть SGML и XML позволяют дизайнерам указывать конкретные схемы , которые определяют, какие элементы, атрибуты и другие функции разрешены и где.

Одной из чрезвычайно важных характеристик большинства языков разметки является то, что они позволяют смешивать разметку с содержимым документа, таким как текст и изображения. Например, если несколько слов в предложении необходимо подчеркнуть или идентифицировать как имя собственное, определенный термин или другой специальный элемент, разметка может быть вставлена ​​между символами предложения. Это структурно сильно отличается от традиционных баз данных , где по определению невозможно иметь данные, находящиеся внутри записи, но не в каком-либо поле. Более того, разметка удобочитаемых текстов должна поддерживать порядок - недостаточно превратить каждый абзац книги в запись «абзаца», если эти записи не поддерживают порядок.

Этимология

Разметка существительного происходит от традиционной издательской практики, называемой «разметкой» рукописи [ 3 ] , которая предполагает добавление рукописных аннотаций в форме обычных символических инструкций для принтера — на полях и в тексте статьи или печатной рукописи. .

На протяжении веков эту задачу выполняли в основном опытные типографы, известные как «разметчики» [4] или «маркеры» [5] , которые размечали текст, указывая, какой шрифт , стиль и размер следует применить к каждой части, а затем передавали рукопись другим лицам для набора вручную или на машине.

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

Типы языка разметки

Существует три основные общие категории электронной разметки, сформулированные в работах Кумбса, Ренира и ДеРоуза (1987), [6] и Брея (2003). [7]

Презентационная разметка

Вид разметки, используемый традиционными системами обработки текста : двоичные коды, встроенные в текст документа, которые создают эффект WYSIWYGчто видишь, то и получаешь »). Такая разметка обычно скрыта от пользователей, даже от авторов и редакторов. Собственно говоря, такие системы используют процедурную и/или описательную разметку, но преобразуют ее так, чтобы она «представлялась» пользователю в виде геометрических компоновок типа.

Процедурная разметка

Разметка встроена в текст и содержит инструкции для программ по обработке текста. Хорошо известные примеры включают troff , TeX и Markdown . Предполагается, что программное обеспечение обрабатывает текст последовательно от начала до конца, следуя инструкциям по мере поступления. Такой текст часто редактируется с видимой разметкой, которой автор непосредственно манипулирует. Популярные системы процедурной разметки обычно включают в себя программные конструкции , особенно макросы , позволяющие вызывать сложные наборы инструкций по простому имени (и, возможно, нескольким параметрам). Это намного быстрее, менее подвержено ошибкам и более удобно в обслуживании, чем повторение одних и тех же или похожих инструкций во многих местах.

Описательная разметка

Разметка специально используется для обозначения частей документа по тому, что они собой представляют, а не по тому, как их следует обрабатывать. Хорошо известные системы, предоставляющие множество таких меток, включают LaTeX , HTML и XML . Цель состоит в том, чтобы отделить структуру документа от какой-либо конкретной его обработки или представления. Такую разметку часто называют « семантической ». Примером описательной разметки может служить <cite>тег HTML, который используется для обозначения цитат. Описательная разметка — иногда называемая логической разметкой или концептуальной разметкой — побуждает авторов писать так, чтобы описывать материал концептуально, а не визуально. [8]

Границы между типами разметки существенно размыты. В современных системах обработки текстов презентационная разметка часто сохраняется в системах, ориентированных на описательную разметку, таких как XML , а затем процедурно обрабатывается реализациями . Программирование в системах процедурной разметки, таких как TeX , может использоваться для создания систем разметки более высокого уровня, которые имеют более описательный характер, таких как LaTeX .

В последние годы было разработано несколько языков разметки, основной целью которых является простота использования и без участия организаций по стандартизации, целью которых является предоставление авторам возможности создавать форматированный текст через веб-браузеры , например, в вики и на веб-форумах . Их иногда называют облегченными языками разметки . Markdown , BBCode и язык разметки , используемый Википедией, являются примерами таких языков.

История языков разметки

Генкод

Первую широко известную публичную презентацию языков разметки в компьютерной обработке текста сделал Уильям Танниклифф на конференции в 1967 году, хотя он предпочитал называть это общим кодированием. Это можно рассматривать как ответ на появление таких программ, как RUNOFF , каждая из которых использовала свои собственные управляющие обозначения, часто специфичные для целевого наборного устройства. В 1970-х годах Танниклифф руководил разработкой стандарта GenCode для издательской индустрии, а позже стал первым председателем комитета Международной организации по стандартизации , создавшего SGML , первый стандарт описательного языка разметки. Книжный дизайнер Стэнли Райс опубликовал аналогичные предположения в 1970 году. [9]

Брайан Рид в своей диссертации 1980 года в Университете Карнеги-Меллон разработал теорию и рабочую реализацию описательной разметки в реальном использовании. Однако исследователя IBM Чарльза Гольдфарба сегодня чаще называют «отцом» языков разметки. Гольдфарб пришел к основной идее, работая над примитивной системой управления документами, предназначенной для юридических фирм, в 1969 году, а позже в том же году помог изобрести IBM GML . Впервые GML был публично раскрыт в 1973 году.

В 1975 году Гольдфарб переехал из Кембриджа, штат Массачусетс, в Силиконовую долину и стал специалистом по планированию продуктов в Исследовательском центре IBM в Альмадене . Там он убедил руководителей IBM в 1978 году развернуть GML на коммерческой основе как часть продукта IBM Document Composition Facility, и в течение нескольких лет он широко использовался в бизнесе.

SGML, основанный как на GML, так и на GenCode, представлял собой проект ISO , над которым Гольдфарб работал начиная с 1974 года. [10] В конечном итоге Гольдфарб стал председателем комитета SGML. SGML был впервые выпущен ISO как стандарт ISO 8879 в октябре 1986 года.

Трофф и Нрофф

Некоторые ранние примеры языков компьютерной разметки, доступных за пределами издательской индустрии, можно найти в инструментах набора текста в системах Unix , таких как troff и nroff . В этих системах команды форматирования были вставлены в текст документа, чтобы программное обеспечение для набора текста могло форматировать текст в соответствии со спецификациями редактора. Правильная печать документа была методом проб и ошибок . [11] Доступность программного обеспечения для публикации WYSIWYG («что видишь, то и получаешь») вытеснило широкое использование этих языков среди обычных пользователей, хотя в серьезных издательских работах по-прежнему используется разметка для определения невизуальной структуры текста, и теперь есть редакторы WYSIWYG. обычно сохраняют документы в формате на основе языка разметки.

ТеХ

Еще один крупный издательский стандарт — TeX , созданный и усовершенствованный Дональдом Кнутом в 1970-х и 80-х годах. TeX сосредоточился на детальной компоновке текста и описаний шрифтов для набора математических книг. Это потребовало от Кнута потратить значительное время на изучение искусства набора текста . TeX в основном используется в академических кругах , где он является фактическим стандартом во многих научных дисциплинах. Пакет макросов TeX, известный как LaTeX , предоставляет систему описательной разметки поверх TeX и широко используется как в научном сообществе, так и в издательской индустрии.

Писец, GML и SGML

Первым языком, который провел четкое различие между структурой и представлением, был Scribe , разработанный Брайаном Ридом и описанный в его докторской диссертации в 1980 году . up документа и грамматику , которая контролировала использование описательных элементов. Scribe повлиял на развитие обобщенного языка разметки (позже SGML) [13] и является прямым предком HTML и LaTeX . [14]

В начале 1980-х годов идея о том, что разметка должна фокусироваться на структурных аспектах документа и оставлять визуальное представление этой структуры интерпретатору, привела к созданию SGML . Язык был разработан комитетом под председательством Гольдфарба. В него вошли идеи из разных источников, включая проект Танниклиффа GenCode. Шэрон Адлер, Андерс Берглунд и Джеймс А. Марк также были ключевыми членами комитета SGML.

SGML определил синтаксис для включения разметки в документы, а также синтаксис для отдельного описания того , какие теги разрешены и где (Определение типа документа ( DTD ), позже известное как схема ). Это позволило авторам создавать и использовать любую разметку по своему желанию, выбирая теги, которые имели для них наибольший смысл и назывались на их родном языке, а также позволяло осуществлять автоматическую проверку. Таким образом, SGML по сути является метаязыком , и на его основе произошли многие языки разметки. С конца 80-х годов большинство новых языков разметки базировались на системе SGML, включая, например, TEI и DocBook . SGML был обнародован в качестве международного стандарта Международной организацией по стандартизации ISO 8879 в 1986 году. [15]

SGML нашел широкое признание и применение в областях с очень большими требованиями к документации. Однако многие сочли его громоздким и трудным в освоении — это побочный эффект того, что его конструкция пыталась делать слишком много и была слишком гибкой. Например, SGML сделал конечные теги (или начальные теги, или даже оба) необязательными в определенных контекстах, поскольку его разработчики думали , что разметка будет выполняться вручную перегруженным работой персоналом службы поддержки, который был бы признателен за экономию нажатий клавиш .

HTML

В 1989 году ученый-компьютерщик сэр Тим Бернерс-Ли написал записку, в которой предлагал использовать гипертекстовую систему на базе Интернета , [16] затем определил HTML и написал браузер и серверное программное обеспечение в конце 1990 года. Первым общедоступным описанием HTML было документ под названием «Теги HTML», впервые упомянутый в Интернете Бернерсом-Ли в конце 1991 года. [17] [18] Он описывает 18 элементов, составляющих первоначальный, относительно простой дизайн HTML. За исключением тега гиперссылки, на них сильно повлиял SGMLguid , собственный формат документации на основе SGML в CERN , который очень похож на образец схемы в стандарте SGML. Одиннадцать из этих элементов все еще существуют в HTML 4. [19]

Бернерс-Ли считал HTML приложением SGML. Инженерная группа Интернета (IETF) официально определила его как таковой после публикации в середине 1993 года первого предложения по спецификации HTML: «Язык гипертекстовой разметки (HTML)», разработанный Бернерсом-Ли и Дэном Коннолли . Определение типа документа SGML для определения грамматики. [20] Многие текстовые элементы HTML можно найти в техническом отчете ISO 1988 года TR 9537 « Методы использования SGML» , который, в свою очередь, охватывает особенности ранних языков форматирования текста, таких как тот, который использовался командой RUNOFF , разработанной в начале 1960-х годов для Операционная система CTSS (совместимая система разделения времени). Эти команды форматирования были созданы на основе тех, которые используются наборщиками для ручного форматирования документов. Стивен ДеРоуз [21] утверждает, что использование в HTML описательной разметки (и, в частности, влияние SGML) стало основным фактором успеха Интернета из-за гибкости и расширяемости, которые оно обеспечивало. HTML стал основным языком разметки для создания веб-страниц и другой информации, которая может отображаться в веб-браузере, и, вероятно, сегодня является наиболее используемым языком разметки в мире.

XML

XML (расширяемый язык разметки) — это мета-язык разметки, который очень широко используется. XML был разработан Консорциумом Всемирной паутины в комитете, созданном и возглавляемым Джоном Босаком . Основная цель XML заключалась в том, чтобы упростить SGML, сосредоточив внимание на конкретной проблеме — документах в Интернете. [22] XML остается мета-языком, подобным SGML, позволяя пользователям создавать любые необходимые теги (следовательно, «расширяемые»), а затем описывая эти теги и их разрешенное использование.

Внедрению XML способствовало то, что каждый XML-документ может быть написан таким образом, что он также является документом SGML, и существующие пользователи и программное обеспечение SGML могли довольно легко переключиться на XML. Однако XML устранил многие из более сложных функций SGML, чтобы упростить среды реализации, такие как документы и публикации. Казалось, что он представляет собой золотую середину между простотой и гибкостью, а также поддерживает очень надежные инструменты определения и проверки схемы и был быстро принят для многих других целей. В настоящее время XML широко используется для передачи данных между приложениями, для сериализации программных данных, для протоколов аппаратной связи, векторной графики и многих других целей, а также для документов.

XHTML

С января 2000 года и до выпуска HTML 5 все рекомендации W3C по HTML основывались на XML с использованием аббревиатуры XHTML ( расширяемый язык гипертекстовой разметки ) . Спецификация языка требует, чтобы веб-документы XHTML были правильно сформированными XML-документами. Это позволяет создавать более строгие и надежные документы, избегая многих синтаксических ошибок, которые исторически приводили к несовместимому поведению браузера, при этом используя компоненты документа, знакомые с HTML.

Одним из наиболее заметных различий между HTML и XHTML является правило, согласно которому все теги должны быть закрыты : пустые HTML-теги, например, <br>должны быть либо закрыты обычным закрывающим тегом, либо заменены специальной формой: <br />(пробел перед ' /' в конечном теге является необязательным, но часто используется, поскольку он позволяет некоторым веб-браузерам, поддерживающим XML, и анализаторам SGML принимать этот тег). Еще одно отличие состоит в том, что все значения атрибутов в тегах должны быть заключены в кавычки. Оба эти различия обычно критикуются как многословные, но их также хвалят, поскольку они значительно упрощают обнаружение, локализацию и исправление ошибок. Наконец, чтобы быть действительными, все имена тегов и атрибутов в пространстве имен XHTML должны быть написаны строчными буквами. HTML, с другой стороны, был нечувствителен к регистру.

Другие приложения на основе XML

В настоящее время существует множество приложений на основе XML, включая структуру описания ресурсов ( RDF/XML) , XForms , DocBook , SOAP и язык веб-онтологий (OWL). Неполный их список см. в разделе Список языков разметки XML .

Особенности языков разметки

Общей особенностью многих языков разметки является то, что они смешивают текст документа с инструкциями разметки в одном потоке данных или файле. В этом нет необходимости; можно изолировать разметку от текстового содержимого, используя указатели, смещения, идентификаторы или другие методы для их координации. Такая «отдельная разметка» типична для внутренних представлений, которые программы используют для работы с размеченными документами. Однако встроенная или «встроенная» разметка гораздо более распространена в других местах. Вот, например, небольшой фрагмент текста, размеченный в HTML:

<!DOCTYPE html>< html > < голова > < мета-  кодировка = "utf-8" > <title> Моя тестовая страница < / title > </ голова > < тело > < h1 > Mozilla — это круто </ h1 > < img  src = "images/firefox-icon.png"  alt = "Логотип Firefox: пылающая лиса, окружающая Землю." > <p> Мы в Mozilla — глобальное сообщество </p> < ul >  <!-- изменено на список в руководстве --> <li> технологи </li> _ _ _ _ <li> мыслители </li> _ _ _ _ <li> строители </li> _ _ _ _ </ ул > < p > работать вместе, чтобы поддерживать жизнь и доступность Интернета, чтобы люди во всем мире могли быть информированными участниками и создателями Интернета. Мы считаем, что этот акт человеческого сотрудничества на открытой платформе имеет важное значение для индивидуального роста и нашего коллективного будущего. </ р > < p > Прочтите <a href = "https://www.mozilla.org/en-US/about/manifesto/" > Манифест Mozilla </ a > ,  чтобы узнать еще больше о ценностях и принципах, которыми руководствуются в достижении Наша миссия. </ р > </ тело ></ html >

Коды, заключенные в угловые скобки, < like this>представляют собой инструкции разметки (известные как теги), а текст между этими инструкциями — это фактический текст документа. Коды h1, pи emявляются примерами семантической разметки, поскольку они описывают предполагаемую цель или значение включаемого в них текста. В частности, h1означает «это заголовок первого уровня», pозначает «это абзац» и emозначает «это выделенное слово или фраза». Программа, интерпретирующая такую ​​структурную разметку, может применять свои собственные правила или стили для представления различных фрагментов текста, используя разные гарнитуры, жирность, размер шрифта, отступ, цвет или другие стили по желанию. Например, такой тег, как «h1» (уровень заголовка 1), может быть представлен в статье крупным жирным шрифтом без засечек или может быть подчеркнут в моноширинном документе (в стиле пишущей машинки), а может просто не отображаться. вообще изменить презентацию.

Напротив, iтег в HTML 4 является примером презентационной разметки, которая обычно используется для указания конкретной характеристики текста без указания причины такого появления. В этом случае iэлемент требует использования курсива. Однако в HTML 5 этот элемент был перепрофилирован для более семантического использования: для обозначения фрагмента текста с альтернативным тоном или настроением или иным образом смещения от обычной прозы таким образом, чтобы указать другое качество текста . Например, уместно использовать iэлемент для обозначения таксономического обозначения или фразы на другом языке. [23] Изменение было сделано для того, чтобы максимально облегчить переход от HTML 4 к HTML 5, чтобы устаревшее использование презентационных элементов сохраняло наиболее вероятную предполагаемую семантику.

Инициатива по кодированию текста (TEI) опубликовала обширные рекомендации [24] по кодированию текстов, представляющих интерес в гуманитарных и социальных науках, разработанные в результате многолетней международной совместной работы. Эти рекомендации используются проектами, кодирующими исторические документы, произведения отдельных ученых, периодов, жанров и т. д.

Язык

Хотя идея языка разметки зародилась в текстовых документах, языки разметки все чаще используются при представлении других типов информации, включая списки воспроизведения , векторную графику , веб-сервисы , распространение контента и пользовательские интерфейсы . Большинство из них представляют собой XML-приложения, поскольку XML — это четко определенный и расширяемый язык. [ по мнению кого? ]

Использование XML также привело к возможности объединения нескольких языков разметки в один профиль, например XHTML+SMIL и XHTML+MathML+SVG . [25]

Смотрите также

Рекомендации

  1. ^ «Язык разметки | Определение, примеры и факты» . Британская энциклопедия . Архивировано из оригинала 26 октября 2020 г. Проверено 17 августа 2022 г.
  2. ^ Зихерт, Карл; Ботт, Эд (2013). Microsoft Office наизнанку: издание 2013 г. Пирсон Образование. п. 305. ИСБН 978-0735669062. Некоторые рецензенты предпочитают придерживаться старой школы, используя красную ручку при написании печатных материалов.
  3. ^ ЧЕН, Синьин (2011). «Центральные узлы китайских синтаксических сетей». Китайский научный бюллетень . 56 (10): 735–740. дои : 10.1360/972010-2369. ISSN  0023-074X.
  4. ^ Аллан Вудс, Современное газетное производство (Нью-Йорк: Harper & Row, 1963), 85; Стюарт Харрал, «Прибыльные связи с общественностью для газет» (Анн-Арбор: JW Edwards, 1957), 76; и Кьярелла против Соединенных Штатов , 445 U.S. 222 (1980).
  5. ^ Из записных книжек HJH и DHAn по композиции , Kingsport Press Inc., без даты (1960-е).
  6. ^ Кумбс, Джеймс Х.; Ренер, Аллен Х.; ДеРоуз, Стивен Дж. (ноябрь 1987 г.). «Системы разметки и будущее научной обработки текста». Коммуникации АКМ . 30 (11): 933–947. CiteSeerX 10.1.1.515.5618 . дои : 10.1145/32206.32209. S2CID  59941802. Архивировано из оригинала 12 мая 2019 г. Проверено 19 апреля 2005 г. 
  7. ^ Брэй, Тим (9 апреля 2003 г.). «О семантике и разметке, таксономии разметки». www.tbray.org . Архивировано из оригинала 27 февраля 2021 г. Проверено 16 августа 2021 г.
  8. ^ Майкл Даунс. "TEX и LATEX 2e". Архивировано 24 мая 2021 г. в Wayback Machine.
  9. ^ Райс, Стэнли. «Редакционные текстовые структуры (с некоторыми связями с информационными структурами и элементами управления форматом в компьютеризированной композиции)». Американский национальный институт стандартов, 17 марта 1970 г.
  10. ^ "Интервью 2009 года с создателем SGML Чарльзом Ф. Гольдфарбом" . Журнал доктора Добба . Проверено 18 июля 2010 г.[ постоянная мертвая ссылка ]
  11. ^ Дэниел Гилли. Коротко о Unix: Глава 12. Грофф и Трофф. Архивировано 5 января 2016 г. в Wayback Machine . Книги О'Рейли, 1992. ISBN 1-56592-001-5. 
  12. ^ Рид, Брайан. «Писец: язык спецификации документов и его компилятор». Кандидат наук. диссертация, Университет Карнеги-Меллон, Питтсбург, Пенсильвания. Также доступен технический отчет CMU-CS-81-100.
  13. ^ Рид, Брайан . «20 лет абстрактной разметки – есть прогресс?». xml.coverpages.org . Архивировано из оригинала 01 мая 2019 г. Проверено 16 августа 2021 г.
  14. ^ HTML — это частный случай SGML, тогда как LaTeX разработан с учетом философии разделения между контентом и дизайном Scribe.
  15. ^ «ISO 8879:1986». ИСО . Архивировано из оригинала 17 августа 2021 г. Проверено 15 августа 2021 г.
  16. ^ Тим Бернерс-Ли, «Управление информацией: предложение». ЦЕРН (март 1989 г., май 1990 г.). W3.org. Архивировано 1 апреля 2010 г. на Wayback Machine.
  17. ^ «Теги, используемые в HTML». Консорциум Всемирной паутины. 3 ноября 1992 г. Архивировано из оригинала 31 января 2010 г. Проверено 16 августа 2021 г.
  18. ^ «Первое упоминание HTML-тегов в списке рассылки www-talk» . Консорциум Всемирной паутины. 29 октября 1991 года. Архивировано из оригинала 8 августа 2021 года . Проверено 16 августа 2021 г.
  19. ^ «Указатель элементов в HTML 4» . Консорциум Всемирной паутины. 24 декабря 1999 г. Архивировано из оригинала 5 мая 2007 г. Проверено 16 августа 2021 г.
  20. Тим Бернерс-Ли (9 декабря 1991 г.). «Re: Документы SGML/HTML, X Browser (архив сообщения списка рассылки www-talk)» . Архивировано из оригинала 3 июля 2021 года . Проверено 16 августа 2021 г. SGML является очень общим. HTML — это специфическое применение базового синтаксиса SGML, применяемое к гипертекстовым документам с простой структурой.
  21. ^ ДеРоуз, Стивен Дж. «Книга часто задаваемых вопросов по SGML». Бостон: Kluwer Academic Publishers, 1997. ISBN 0-7923-9943-9. 
  22. ^ «Расширяемый язык разметки (XML)» . W3.org. Архивировано из оригинала 11 августа 2021 г. Проверено 16 августа 2021 г.
  23. ^ Хиксон, Ян. «Уровень жизни HTML». ЧТОРГ — HTML . Архивировано из оригинала 8 марта 2018 года . Проверено 13 сентября 2020 г.
  24. ^ «Руководство TEI по электронному кодированию и обмену текстом» . Tei-c.org. Архивировано из оригинала 3 июля 2014 г. Проверено 16 августа 2021 г.
  25. ^ Профиль XHTML + MathML + SVG, заархивированный 19 июля 2021 г. на Wayback Machine . W3C. 9 августа 2002 г. Проверено 16 августа 2021 г.

Внешние ссылки

Послушайте эту статью ( 20 минут )
Разговорная иконка Википедии
Этот аудиофайл был создан на основе редакции этой статьи от 6 мая 2006 г. и не отражает последующие изменения. ( 06.05.2006 )