Когда использовать SGML и XML?

Этот вопрос эквивалентен: "Каковы преимущества и недостатки использования SGML над XML и XML над SGML?".

Я уже знаю несколько сходств и различий между SGML и XML, но они не отвечают на этот вопрос.

СХОДСТВА

  1. SGML и XML позволяют нам описывать документы (структуру, данные, метаданные);
  2. Оба отделяют внешний вид (цвета и т. Д.) От данных / структуры / метаданных;
  3. Как SGML, так и XML могут использоваться на веб-страницах / в Интернете (даже если XML более специализирован в веб, чем SGML)
  4. Документы SGML и XML должны содержать DTD, чтобы быть "VALID"

РАЗЛИЧИЯ

  1. SGML предоставляет несколько способов записи вещей (например: мы можем писать пустые и не закрытые теги, мы можем писать <foo>d</>, так далее.)
  2. Документы SGML могут быть очень трудными для написания
  3. Таким образом, синтаксический анализ документов SGML может быть очень низким и сложным
  4. XML - это подмножество SGML, которое проще в освоении, использовании
  5. XML не позволяет писать вещи несколькими способами, противоречащими SGML (например, пустые и незамкнутые теги НЕ допускаются)
  6. Таким образом, разбор XML проще и быстрее, чем разбор SGML
  7. Документы SGML не имеют статуса "WELL FORMED", а документы XML. (и имеют этот статус, если синтаксис правильный)
  8. Документы SGML должны содержать DTD: не XML.

НО ВОПРОС ОСТАЕТСЯ

Каковы преимущества и недостатки SGML/XML (то есть: когда использовать один из них, а не другой?)?

2 ответа

Разница в том, что во всем мире используется XML, и для него существует огромное количество программного обеспечения, тогда как SGML используется только небольшим высокопоставленным священством и имеет очень мало доступного программного обеспечения.

Технические различия в такой ситуации в значительной степени не имеют значения.

Позвольте мне присоединиться к вам как к человеку, который недавно приложил немало усилий на SGML.

Я думаю, что ваш пункт 3 (XML более специализированный для Интернета, чем SGML) не верен, потому что синтаксический анализ HTML выходит за рамки возможностей XML; напротив, я утверждаю, что мы увидим более широкое использование SGML в современных основанных на HTML рабочих процессах, где HTML используется и как формат разработки, и как формат доставки.

Ваш пункт 4 (SGML должен иметь DTD) сохраняется только для традиционного SGML, но уже в 1998 году, наряду со спецификацией XML, в редакции Приложения K SGML, также называемой "WebSGML", было отменено это требование, чтобы сделать XML без DTD правильным подмножество SGML. Конечно, без деклараций DTD у вас нет пропусков / выводов тегов, пустых элементов (HTML-элементов void), синтаксисов Wiki и всех других мощных функций, которые SGML имеет по сравнению с XML.

Также позвольте мне отметить, что обсуждение "SGML vs. XML" я считаю бессмысленным. SGML является надлежащим расширенным набором XML и может быть преобразован в XML, так что вы ничего не оставляете при использовании SGML. Я лично использую как XML, так и SGML; SGML, когда мне нужны его дополнительные функции.

Для современной учетной записи об использовании SGML я хотел бы указать вам на мой доклад / статью по адресу http://www.xmlprague.cz/day2-2017/ ("HTML 5.1 DTD").

Другие вопросы по тегам