Связь и различия между SGML, XML, HTML и XHTML


16
  1. Мне было интересно, что означает "профиль" в Википедии :

    XML является профилем стандарта ISO SGML, и большая часть XML поступает из SGML без изменений.

  2. Согласно http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html :

    HTML является подмножеством SGML.

    XML является высоко функциональным подмножеством SGML.

    XHTML расширяет и размещает HTML.

    Означает ли «одно подмножество другого», что код в первом также синтаксически корректен и семантически такой же, как во втором?

    Как и в смысле теории элементарных множеств,

    • HTML, XML и XHTML все разные подмножества SGML?
    • XML и HTML почти не пересекаются друг с другом?
    • XHTML является надмножеством как XML, так и HTML?
  3. Могу ли я ожидать более краткого и ясного суммирования различий в целях четырех и / или когда использовать какой, чем ссылка выше? Я действительно смущен четкой границей между их намеченными целями.
  4. Согласно http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html :

    XML не является единственным языком разметки. Это метаязык, позволяющий пользователям создавать свой собственный язык разметки.

    Мне было интересно, как понять, что XML и HTML являются подмножествами SGML, но HTML - это язык разметки, а XML - это не язык разметки, а метаязык для разработки языков разметки?

    Являются ли SGML и XHTML одновременно метаязыком для разработки языка разметки?

  5. Как в обеих ссылках упоминается, что HTML является приложением SGML, а также подмножеством SGML, а XHTML является приложением XML. Интересно, в чем разница между утверждением, что один язык является приложением другого, и один язык является подмножеством другого?

Ответы:


8

HTML и XML оба являются языками разметки (отсюда и * ML). XML - это общий язык разметки, подходящий для представления произвольных данных, в то время как HTML - это специальный язык разметки, подходящий только для представления веб-страниц.

HTML и XHTML являются подмножествами только SGML, за исключением того, что XHTML имеет дополнительные спецификации, так что он также проверяется как XML. Думайте о XML как о влиятельном крестном отце XHTML.

Из-за этой связи с SGML во всех трех этих языках есть много общего, но все они считаются разными языками. Однако многое из того, что определяет эти языки, это их ограничения на SGML.

  • HTML ограничивает SGML, определяя список тегов, которые разрешено использовать.
  • XML ограничивает SGML тем, что не допускает использование закрытых или пустых начальных и конечных тегов, и заставляет атрибуты быть явными. XML также имеет большое количество дополнительных ограничений, которых нет в SGML.
  • XHTML ограничивает SGML тегами из HTML (с некоторыми исключениями, такими как frameset и др.), А также ограничениями тегов и сущностей из XML.

Этот документ может оказаться полезным, хотя технические термины могут быть трудно усваиваемыми. http://www.w3.org/TR/NOTE-sgml-xml-971215

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

цели

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

Например, если вам нужно было передать заказ на продажу со своего веб-сайта в биллинговую систему, вы можете создать такую ​​полезную нагрузку XML:

<order id="12345">
    <name>John Doe</name>
    <item id="443">Adult Diapers</item>
</order>

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

XHTML и HTML, очевидно, предназначены только для веб-страниц. Основной целью XHTML является устранение той неоднозначности, которая была у нас в предыдущие годы (десятилетия) веб-разработки. Еще в конце 90-х, когда я начинал, мы использовали HTML 3.2, который допускал серьезный неаккуратный код. HTML 4+ и XHTML пытаются исправить это, настоятельно предлагая или применяя явные закрывающие теги, явные атрибуты и запрещенные теги, что облегчает работу как в браузерах, так и в людях, и позволяет избежать неожиданных различий в поведении кросс-браузер.


Благодарность! (1) Являются ли HTML и XML подмножествами XHTML? (2) Верно ли, что ни HTML не является подмножеством XML, ни XML не является подмножеством HTML? HTML и XML имеют непустое пересечение или полностью отделены друг от друга?
StackExchange для всех

(3) Какие различия существуют между утверждением, что один язык является применением другого, и один язык является подмножеством другого?
StackExchange для всех

Есть документы, которые соответствуют как XML, так и HTML; Есть документы, которые соответствуют XML, а не HTML, и есть документы, которые соответствуют HTML, а не XML. Таким образом, ни один не является подмножеством другого, но у них есть непустое пересечение.
Майкл Кей

@Tim: (1) HTML, XML и XHTML не являются подмножествами чего-либо, кроме SGML. Они все разные. XML на самом деле не имеет ничего общего с HTML или XHTML ... он служит другой цели. XHTML можно анализировать как HTML, так и XML, но он используется только браузерами в качестве разметки HTML. HTML и XML имеют общего предка SGML, но в остальном не связаны. Для каждого намерения они являются отдельными, потому что SGML настолько универсален.
Джордан,

Честно говоря, я думаю, что вы слишком углубляетесь в терминологию с применением против подмножества. Я не думаю, что есть различие между этими условиями, или, если есть, я сомневаюсь, что они широко согласованы. Достаточно сказать, что XHTML заимствует понятия из XML и используется как строгое подмножество HTML. HTML пришел первым. XHTML пришел позже.
Джордан,

6

Я начну с того, что XML - это подмножество SGML, а затем XHTML - это подмножество XML.

HTML основан на SGML, но с некоторыми другими правилами. XHTML - это, по сути, обновленная версия HTML, но с некоторыми правилами она должна быть правильной и XML.

Некоторые заметки о том, как стандарт HTML 5 работает с другими спецификациями. http://dev.w3.org/html5/spec/Overview.html#compliance-with-other-specifications

Я не уверен в различиях между SGML и XML или когда вы будете использовать один над другим. Хотя XML, кажется, обычно используется один.

Для XHTML и HTML вам, вероятно, лучше всегда использовать XHTML. Ошибки легче найти, и в качестве бонуса это будет действительный XML.


Благодарность! (1) Мне было интересно, как понять два, казалось бы, противоречивых факта: XML и HTML являются подмножествами SGML, а HTML является языком разметки, а XML не является языком разметки, а метаязыком для разработки языков разметки? (2) Согласно вашему ответу, XHTML является подмножеством XML. XHTML - это расширенный набор HTML, который называется «подмножества XHTML HTML» по одной ссылке в моем сообщении. Таким образом, HTML является подмножеством XML? Я не уверен, что это правда.
StackExchange для всех

HTML нарушает слишком много правил, чтобы быть XML. Я считаю, что HTML ближе к SGML. HTML не содержит тегов, и существует множество различных типов тегов. XHTML просто XML-версия HTML.
WalterJ89

Благодарность! Как в обеих ссылках упоминается, что HTML является приложением SGML, а также подмножеством SGML, а XHTML является приложением XML. Интересно, в чем разница между утверждением, что один язык является приложением другого, и один язык является подмножеством другого?
StackExchange для всех

2

История этого может просветить вас здесь. Просто говорить о мета-языках, профилях, подмножествах и экземплярах немного сухо! Я постараюсь сделать это коротким и простым.

SGML развился из GML (Generalized Markup Language), который был разработан 3 инженерами IBM в 1960-х годах как средство хранения сложных юридических, правительственных, промышленных и военных документов. GML постепенно совершенствовался до тех пор, пока не был стандартизирован как SGML в 1986 году.

GML / SGML не является языком как таковым . Это скорее метаязык , то есть язык для определения соответствующих языков или «правил», с помощью которых форматирование множества сложных документов может быть разработано в целом согласованным образом. Таким образом, каждый отдельный тип документа будет определять свой собственный соответствующий SGML набор имен тегов плюс связанные атрибуты, а также любые определенные формальные общедоступные идентификаторы / пространства имен, схемы и т. Д. Таким образом, каждый подобный формат стал отдельным языком хранения данных для документа. Тип обеспокоен. Из-за согласованности между всеми документами, соответствующими правилам SGML, можно написать код для сопоставления / обработки данных в этих документах и ​​передачи данных между документами, использующими общий формат.

SGML был найден слишком сложным для многочисленных, но меньшего размера документа. Таким образом, XML был разработан между 1996 и 2006 годами как подмножество ( профиль слова фактически означает то же самое, что и подмножество) SGML, которое может обрабатывать как небольшие, так и большие документы. Будучи подмножеством метаязыка, XML сам по себе является метаязыком, хотя и более простым. Можно сказать, что XML обеспечивает основу для разработки форматов документов, подходящих как для простого хранения, так и для передачи между системами в сети.

После стандартизации SGML, но до того, как он был упрощен до XML, возник Интернет, и с ним возникла необходимость в формате документов, который позволял бы легко передавать и отображать как документы, так и потерянные данные. Результатом стал язык HTML, экземпляр (иногда называемый приложением ) SGML с 18 предопределенными тегами, обеспечивающими стандартизированный способ отображения различных типов данных, например текста, изображений, аудио и т. Д. HTML использовал разрешение SGML некоторые элементы для пропуска начальных или конечных тегов. Последующие версии HTML добавляли новые теги и атрибуты и делали устаревшими некоторые существующие. До HTML 5 изменения в HTML были сделаны так, чтобы он всегда оставался дочерним языком SGML.

После стандартизации XML появился его экземпляр под названием XHTML, который объединил существующие имена тегов HTML со строгостью XML в отношении закрытия тегов, пространств имен, схем и т. Д. Изначально XHTML обещал быть полезным для хранения, передачи и отображения данных. Казалось, что он собирается заменить HTML как наиболее распространенный способ отображения веб-материалов - до выхода HTML 5. HTML 5 имеет некоторые синтаксические функции, которые выходят за рамки определенных в SGML, чтобы обеспечить более богатое отображение данных, особенно для мультимедийных веб-сайтов. Со временем в HTML 5 были добавлены дополнительные функции, которые еще больше расширили его использование для отображения / использования данных до такой степени, что вряд ли когда-нибудь будут заменены новыми версиями XHTML, по крайней мере, в части отображения данных. Хотя стандарты для HTML и XHTML разрабатываются рабочими группами W3C, Фактическое распространение этих языков «на местах» осуществляется прогрессивными веб-дизайнерами, и нет ничего более прогрессивного, чем те, кто работает в секторе медиа (реклама / PR / маркетинг): просто посмотрите на креативность сайтов рекламных агентств по сравнению с другими сайтами. Этот сектор действительно взял на себя новый язык HTML 5, радуясь использованию его возможностей для SVG, аудио, видео иновые API . Их готовое принятие HTML 5 быстро привело к его популярности среди веб-дизайнеров в целом, и этот процесс ускорился благодаря онлайн-обмену навыками и трюками на YouTube и других сайтах. Появилась обновленная версия XHTML, XHTML5, но на самом деле это не строгая производная от XML, а скорее версия HTML5, сериализованная в формате XML. Похоже, что только небольшая часть сайтов имеет для этого какое-либо применение.

Это история этих языков данных. Я надеюсь, что это поможет вам понять смысл и цель их всех. С точки зрения философии, эта история показывает, как основной инструмент поддержки (SGML) для новой технологии (Интернет) может в новой среде с постоянно меняющимися требованиями выходить за пределы своих первоначальных ограничений, но при этом становиться концептуально более простым, значительно более универсальным и действенно действенным.


1

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


Благодарность! (1) Как насчет значения и различия между «приложением», «подмножеством» и «профилем», как в части 5 моих вопросов? (2) В «XHTML является основой для семейства будущих типов документов, которые расширяют и устанавливают подмножество HTML», означает ли это, что XHTML является подмножеством HTML или HTML является подмножеством XHTML?
StackExchange для всех
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.