2016-03-16 5 views
2

XML - это подмножество SGML. Правильный документ XML также является допустимым документом SGML, но наоборот не соответствует действительности.Является ли XML-схема подмножеством SGML DTD?

Сохраняется ли это, даже если я использую XML-схему вместо DTD?

Уверенность связана с тем фактом, что XML DTD является подмножеством DTML SGML, но XML-схема допускает то, что не может быть определено в XML DTD.

Так что XML-схема еще является подмножеством? Могу ли я сделать с SGML DTD все, что я могу сделать с помощью XML-схемы?

+0

Существующие вопросы с подробным сравнением выразительной способности XSD и DTD включают http://stackoverflow.com/questions/1544200, http://stackoverflow.com/questions/2389760 и http://stackoverflow.com/ вопросы/19683429. Приведенные сравнения не зависят от различий между DTML SGML и XML DTD. –

ответ

1

Является ли XML-схема подмножеством SGML DTD?

Нет, XML Schema далеко не является подмножеством DTD. XML Schema использует совершенно другой синтаксис, чем DTD, а XML Schema может выражать множество ограничений, которые невозможно использовать в DTD.

Действительный документ XML также является действительным документом SGML

Вы, вероятно, означает хорошо сформированные, не действительный. Well-formed is not the same as valid. Здесь, вероятно, вы хотите сделать инструкцию подмножества. XML был разработан как подмножество SGML, да.

Можно ли с SGML DTD делать все, что я могу сделать с помощью XML-схемы?

Нет, даже близко. Всего лишь один пример: DTDs cannot restrict data to numeric types, но XML-схема может тривиально. XML-схема в целом гораздо более выразительна, чем DTD.

+0

Как действительный документ XML (с использованием DTD) не может быть действительным документом SGML? – zer0uno

+0

Либо вы неправильно поняли мой ответ, либо вы все еще не будете осторожны, чтобы различать [действительные и хорошо сформированные] (http://stackoverflow.com/a/25830482/290085). В любом случае ** XML, являющийся подмножеством SGML, не означает, что XML Schema является подмножеством DTML SGML. ** Узнайте разницу между [* valid * и * well-form *] (http://stackoverflow.com/ а/25830482/290085); это очень поможет вашему пониманию здесь. – kjhughes

+0

Я обнаружил разницу между действительными и хорошо сформированными. Я постараюсь повернуть вопрос. Есть ли у DTD XML «команды», которые нет в DTD SGML? – zer0uno