Співвідношення та відмінності між SGML, XML, HTML та XHTML


16
  1. Мені було цікаво, що означає "профіль" у Вікіпедії :

    XML - це профіль стандарту ISOML, і більшість 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 додали до нього нові теги та атрибути та застаріли деякі існуючі. До 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.