История изменений
Исправление 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 изобретать бы не пришлось.