LINUX.ORG.RU

История изменений

Исправление hobbit, (текущая версия) :

xml, который я терпеть не могу просто на дух не переношу говно сраное

Ты его либо не умеешь готовить, либо (что вероятнее) видел исключительно плохой XML. А готовить его надо уметь.

Самая распространённая ошибка — человек пытается вместо специализированных тегов/элементов сделать максимально универсальные с кучей подтегов и атрибутов. Получается говно.

Пример: в Qt есть файлы описания пользовательского интерфейса. Имеют расширение .ui и основаны на XML. Класс виджета задаётся атрибутом, большинство свойств — через отдельный <property> минимум на три строки каждый. Получился, скорее, плохой XML, чем хороший.

Почему так сделали — я прекрасно понимаю: унификация во все поля, парсер проще, XSD для валидации можно написать один раз, новые типы добавляются без расширения номенклатуры элементов. Но читать это реально неудобно.

Я бы на каждый виджет сделал отдельный элемент. XSD разделил бы на базовый XSD и приложения к нему, которые генерируются отдельно при добавлении новых виджетов, благо XSD позволяет инклуды. Все основные свойства — в атрибуты, а не в дочерние теги. Или на крайняк, в специальные теги, а не в универсальный <property>. Получился бы реально компактный XML. Может, даже, и QML изобретать бы не пришлось.

Исходная версия hobbit, :

xml, который я терпеть не могу просто на дух не переношу говно сраное

Ты его либо не умеешь готовить, либо (что вероятнее) видел исключительно плохой XML. А готовить его надо уметь.

Самая распространённая ошибка — человек пытается вместо специализированных тегов/элементов сделать максимально универсальные с кучей подтегов и атрибутов. Получается говно.

Пример: в Qt есть файлы описания пользовательского интерфейса. Имеют расширение .ui и основаны на XML. Класс виджета задаётся атрибутом, большинство свойств — через отдельный property минимум на три строки каждый. Получился, скорее, плохой XML, чем хороший.

Почему так сделали — я прекрасно понимаю: унификация во все поля, парсер проще, XSD для валидации можно написать один раз, новые типы добавляются без расширения номенклатуры элементов. Но читать это реально неудобно.

Я бы на каждый виджет сделал отдельный элемент. XSD разделил бы на базовый XSD и приложения к нему, которые генерируются отдельно при добавлении новых виджетов, благо XSD позволяет инклуды. Все основные свойства — в атрибуты, а не в дочерние теги. Получился бы реально компактный XML. Может, даже, и QML изобретать бы не пришлось.