2017-01-05 4 views
0

Этот вопрос эквивалентен: «В чем преимущества и недостатки использования SGML над XML и XML над SGML?».Когда использовать SGML и XML?

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

СХОДСТВА

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

РАЗЛИЧИЕ

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

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

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

+1

Ваш пятый пункт - это нонсенс, на мой взгляд, я могу написать '' в формате XML или '' или ''. Или '', а также '', чтобы дать только два примера, где XML позволит вам использовать разные обозначения для выражения той же семантики. Что касается седьмой точки, документ XML, который должен быть действительным, должен придерживаться DTD или схемы, см. Https://www.w3.org/TR/xml/#dt-valid, говорящий: «Документ XML действителен, если он имеет ассоциированное объявление типа документа и если документ соответствует ограничениям, выраженным в нем ». –

+0

Извините, я хотел сказать, что пустые и не закрытые теги не разрешены в XML, я редактировал OP. Более того, вы правы: документ XML действителен только в том случае, если он имеет DTD. Однако, вопреки SGML, существует еще один «статус» для XML-документов: «WELL FORMED» (и XML WELL FORMED, если он имеет правильный синтаксис). –

+0

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

ответ

2

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

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

1

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

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

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

Кроме того, позвольте мне отметить, что я считаю обсуждение «SGML против XML» бессмысленным. SGML является надлежащим надмножеством XML и может быть преобразован вниз в XML, поэтому вы не отказываетесь от чего-либо вообще при использовании SGML. Я лично использую как XML, так и SGML; SGML, когда мне нужны его дополнительные функции.

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