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 Almaden . Там он убедил руководителей 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-х и 1980-х годах. TeX был сосредоточен на детальной компоновке текста и описаний шрифтов для набора математических книг. Это потребовало от Кнута потратить значительное время на изучение искусства набора . TeX в основном используется в академической среде , где он является фактическим стандартом во многих научных дисциплинах. Пакет макросов TeX, известный как LaTeX, предоставляет описательную систему разметки поверх TeX и широко используется как в научном сообществе, так и в издательской индустрии.

Scribe, GML и SGML

Первым языком, который четко различал структуру и представление, был Scribe , разработанный Брайаном Ридом и описанный в его докторской диссертации в 1980 году. [12] Scribe был революционным во многих отношениях, представив идею стилей, отделенных от размеченного документа, и грамматику , которая контролировала использование описательных элементов. Scribe повлиял на разработку Generalized Markup Language (позже 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 Tags», впервые упомянутый в Интернете Бернерсом-Ли в конце 1991 года. [17] [18] Он описывает 18 элементов, составляющих первоначальный, относительно простой дизайн HTML. За исключением тега гиперссылки, они были сильно вдохновлены SGMLguid , внутренним форматом документации на основе SGML в ЦЕРНе , и очень похожи на пример схемы в стандарте SGML. Одиннадцать из этих элементов все еще существуют в HTML 4. [19]

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

XML

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

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

XHTML

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

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

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

Сейчас существует множество приложений на основе XML, включая Resource Description Framework как RDF/XML , XForms , DocBook , SOAP и Web Ontology Language (OWL). Частичный список этих приложений см. в разделе Список языков разметки XML .

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

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

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

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

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

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

Язык

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

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

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

Ссылки

  1. ^ "язык разметки | Определение, примеры и факты". Encyclopedia Britannica . Архивировано из оригинала 2020-10-26 . Получено 2022-08-17 .
  2. ^ Зихерт, Карл; Ботт, Эд (2013). Microsoft Office Inside Out: издание 2013 года. Pearson Education. стр. 305. ISBN 978-0735669062. Некоторые рецензенты предпочитают следовать старой школе и использовать красную ручку на распечатанных документах.
  3. ^ ЧЭНЬ, СиньИн (2011). «Центральные узлы китайских синтаксических сетей». Chinese Science Bulletin . 56 (10): 735–740. doi : 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. ^ Coombs, James H.; Renear, Allen H.; DeRose, Steven J. (ноябрь 1987 г.). «Системы разметки и будущее обработки научных текстов». Communications of the ACM . 30 (11): 933–947. CiteSeerX 10.1.1.515.5618 . doi :10.1145/32206.32209. S2CID  59941802. Архивировано из оригинала 12.05.2019 . Получено 19.04.2005 . 
  7. ^ Брей, Тим (9 апреля 2003 г.). «О семантике и разметке, таксономия разметки». www.tbray.org . Архивировано из оригинала 2021-02-27 . Получено 2021-08-16 .
  8. ^ Майкл Даунс. «TEX и LATEX 2e». Архивировано 24.05.2021 на Wayback Machine
  9. Райс, Стэнли. «Структуры редакционного текста (с некоторыми связями с информационными структурами и контролем формата в компьютеризированной компоновке)». Американский национальный институт стандартов, 17 марта 1970 г.
  10. ^ "Интервью 2009 года с создателем SGML Чарльзом Ф. Голдфарбом". Журнал доктора Добба . Получено 18 июля 2010 г.[ постоянная мертвая ссылка ]
  11. ^ Дэниел Джилли. Unix в двух словах: Глава 12. Грофф и Трофф. Архивировано 05.01.2016 в Wayback Machine . O'Reilly Books, 1992. ISBN 1-56592-001-5 
  12. ^ Рид, Брайан. «Scribe: язык спецификации документов и его компилятор». Кандидатская диссертация, Университет Карнеги-Меллона, Питтсбург, Пенсильвания. Также доступен как технический отчет CMU-CS-81-100.
  13. ^ Рид, Брайан . «20 лет абстрактной разметки — есть ли прогресс?». xml.coverpages.org . Архивировано из оригинала 2019-05-01 . Получено 2021-08-16 .
  14. ^ HTML — это частный случай SGML, тогда как LaTeX разработан с учетом философии Scribe, разделяющей содержание и дизайн.
  15. ^ "ISO 8879:1986". ISO . Архивировано из оригинала 2021-08-17 . Получено 2021-08-15 .
  16. ^ Тим Бернерс-Ли, «Управление информацией: предложение». ЦЕРН (март 1989, май 1990). W3C. Архивировано 01.04.2010 на Wayback Machine
  17. ^ «Теги, используемые в HTML». Консорциум Всемирной паутины. 3 ноября 1992 г. Архивировано из оригинала 2010-01-31 . Получено 2021-08-16 .
  18. ^ «Первое упоминание HTML-тегов в списке рассылки www-talk». World Wide Web Consortium. 29 октября 1991 г. Архивировано из оригинала 8 августа 2021 г. Получено 16 августа 2021 г.
  19. ^ "Индекс элементов в HTML 4". World Wide Web Consortium. 24 декабря 1999 г. Архивировано из оригинала 2007-05-05 . Получено 2021-08-16 .
  20. ^ Тим Бернерс-Ли (9 декабря 1991 г.). "Re: SGML/HTML docs, X Browser (архивная запись в списке рассылки www-talk)". Архивировано из оригинала 3 июля 2021 г. . Получено 16 августа 2021 г. . SGML очень общий. HTML — это конкретное применение базового синтаксиса SGML, применяемое к гипертекстовым документам с простой структурой.
  21. ^ ДеРоуз, Стивен Дж. «Часто задаваемые вопросы по SGML». Бостон: Kluwer Academic Publishers, 1997. ISBN 0-7923-9943-9 
  22. ^ "Extensible Markup Language (XML) 1.1 (Второе издание)". W3C. 16 августа 2006 г. Архивировано из оригинала 2021-08-11 . Получено 2021-08-16 .
  23. ^ Хиксон, Ян. «HTML Living Standard». WHATWG — HTML . Архивировано из оригинала 8 марта 2018 г. Получено 13 сентября 2020 г.
  24. ^ "TEI Guidelines for Electronic Text Encoding and Interchange". Tei-c.org. Архивировано из оригинала 2014-07-03 . Получено 2021-08-16 .
  25. ^ Профиль XHTML + MathML + SVG. Архивировано 19 июля 2021 г. на Wayback Machine . W3C. 9 августа 2002 г. Получено 16 августа 2021 г.

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

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