LINUX.ORG.RU
ФорумTalks

Почему вам не нравятся конфиги в XML?


0

0

Плюсы перечислять, я думаю, не надо, они и так очевидны. А вот что насчет минусов? Основной аргумент против -- human unreadable синтаксис. Серьезный аргумент. Но проблема ли это формата? При наличии простых и удобных инструментов для редактирования XML (и для консоли, я думаю, можно сделать что-то удобное), ваше мнение поменялось бы в положительную сторону и если нет -- почему? Какие еще существенные минусы?


Ответ на: комментарий от Miguel

>С использованием комбинаторного подхода это делается не менее легко

Однако по вашим словам такой вывод сделать сложно. Либо я неправильно представляю как оно работает.

Вот даны у нас данные, построили мы на них вывод в HTML. А теперь понадобилось добавить ещё и в plain text вывод. По крайней мере в XSLT мне нужно написать ещё 1 xslt-файл, ну и задать в скрипте его использование. Как это делается там?

>Я работал в вебдеве, но выводить страницу в виде plain text мне не приходилось никогда, честное слово.


Всё бывает в 1ый раз ;)

Deleted
()
Ответ на: комментарий от Deleted

>>А перевод будет?

Работать с XML на уровне парсинга позволительно для единожды написанной библиотеки или для тупаря не гнушающегося обезъянним трудом.

Если я хочу перенести поддерево на один уровень вверх - то делать я это должен на высокоуровневом языке типа LISP а не писать кривущщий быдлопарсинг регэкспами. Все!!

XML не виноват что его охотно юзают макаки-регексперы каждый раз сочиняя велосипеды.

К XML нужен высокоуровневый язык манипуляции структурой.

Конечно для выдачи страниц сервером может это то что нужно - но XML более широк.

gkrellm
()
Ответ на: комментарий от Deleted

>>Регэкспы и XML? FAIL!

Отлично что вы со мной согласны - более того предлагаемый для манипулирования XML язык XSLT от регэкспов недалеко ушел по наглядности. Он также предполагает концепцию построчного парсинга. Это вредно мозгам.

Нужен высокоуровневый язык работы с иерархическими данными XML.

Тогда глядишь появятся программисты умеющие работать с цельной логикой структуры а не макаки-быдлопарсеры переставляющие буковки и экранирующие слэши.

gkrellm
()
Ответ на: комментарий от gkrellm

>XSLT [...] концепцию построчного парсинга.

Простите?

>Тогда глядишь появятся программисты умеющие работать с цельной логикой структуры а не макаки-быдлопарсеры переставляющие буковки и экранирующие слэши.


Как бы в XSLT тоже не надо экранировать руками, если не использовать disable-output-escaping. Хотя язык несколько, как тут уже заметили, многословный, есть немного такое. Да и как раз макаки этот язык почему-то не осиливают, к сожалению, как мне один манагер (относительно) недавно жаловался (:

Deleted
()
Ответ на: комментарий от Deleted

>XSLT [...] концепцию построчного парсинга.

>>Простите?

Хорошо - поэлементного - но это разве меняет сути вопроса?

Главная проблема что главный язык трансформации сам написан на XML.

Это создатели наверное сделали для понтов (ну любят програмеры рекурсию :)) а в итоге получили абсолютно неюзабельный нечитаемый язык с кучей мусорных кавычек.

Нужно было сделать на одном из языков ИИ.

gkrellm
()
Ответ на: комментарий от gkrellm

А зачем в XML не по элементам? Данные то в них. А вообще есть копирование веток дерева, "настройка" того какой элемент как выводится, ну или можно нагородить один общий шаблон, что радости в будущем не добавит. Особой проблемы это не предоставляет.

>с кучей мусорных кавычек.


Скорее угловых скобок :) Ничего, и к этому можно вполне нормально привыкнуть, особенно если с XML и так возиться приходится. Вот лебедевский парсер (язык такой, да...) меня «убил», не пойму, как на нём можно писать (O_o)

// Воблацеликом что-то грохается. Как бы намекает, что пора мне отдохнуть.

Deleted
()
Ответ на: комментарий от Deleted

> А теперь понадобилось добавить ещё и в plain text вывод. По крайней мере в XSLT мне нужно написать ещё 1 xslt-файл, ну и задать в скрипте его использование.

А в комбинаторном подходе мне нужно задать правила вывода простейших комбинаторов. А если я захочу - то необязательно простейших. Точно то же самое.

Miguel ★★★★★
()
Ответ на: комментарий от Deleted

> ini файлы ты проверяешь по DTD?

conf-файлы, по его аналогу, а именно по массиву необходимых программе параметров с отметкой о типе и функциях контроля формата переменной.

> 4.2

Да ну? Это ответ?

iBliss
()
Ответ на: комментарий от Deleted

> Весь смысл общего формата хранения данных?

Какого общего? Mystra_x64 вы не с марса чаем? XML предназначен для интеркоммуникаций Ы? Это не язык хранения конфигов, а язык ОБМЕНА (последнее слово читать для полного прозрения). Что такое ON RPC знаете? Так это такая же фигня только текстовая заоверхеженная, с подачи мухрософта распиаренная с одной целью - вытеснить ASN.1 исключительно из коммерческих соображений. При этом единственно более-менее применимые вещи - SOAP, CORBA, MMS-протоколы (да да те самы что в сотках). Но конфиги... дебилизм.

iBliss
()
Ответ на: комментарий от gotf

HTML ну ни разу не хуман эдитбл, но скока миллионов сайтов в интернетах настрогали ж!, и >70% именно в блокнотах

Karapuz ★★★★★
()

Вот все тут говорят. XML, XML!

А у меня простой вопрос: кто-нибудь может простой командой добавить новый параметр в XML файл?

что-нибудь навроде

echo 'sys-apps/hal ~amd64' >>/etc/portage/packages.keywords

Что вы говорите? Нужна специальная программа?

sign
()
Ответ на: комментарий от iBliss

> <resource>
> <name type=string>string_resource</name>
> <resource_cost type=integer>12345</resource_cost>
> <validity type=date>01.01.01</validity>
> </resource>

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

для указания типов используют xsd

дату кодируют типом xs:date или xs:dateTime

при этом тип будет в только схеме
<xs:element name="start" type="xs:date"/>

а xml файле будут только данные
<start>2002-09-24</start>

или

<startdate>2002-05-30T09:00:00</startdate>

sign
()
Ответ на: комментарий от x3al

>Tell me more.

А ты думаешь, сайты на lycos.com, geosites.com etc делали в дриме и фронпейдже? А знаешь, сколько % интернетов составляют такие халявные хостинги?

>И html != xml.

Пральна. Лучше бы сразу делали www на xml

Karapuz ★★★★★
()
Ответ на: комментарий от sign

Да простят меня модераторы. БЛЯААААА

Стартдейт в конфиге кодируется так

startdate=01.01.2001\n

Все! Всем спасибо, все свободны. Полная неадекватность.

iBliss
()
Ответ на: комментарий от sign

> Нужна специальная программа?

ага. vi.

isden ★★★★★
()
Ответ на: комментарий от gkrellm

>а в итоге получили абсолютно неюзабельный нечитаемый язык с кучей мусорных кавычек.

>Нужно было сделать на одном из языков ИИ

Представляешь, как они теперь наверное мучаются! Вот ведь дураки там сидят!

Karapuz ★★★★★
()
Ответ на: комментарий от Deleted

>Иначе можно и в БД пихать. Вот у меня postgresql установлен, я ж в него конфиги системные не пихаю.

LOLd. А ты знаешь, что хоть не конфиги, но данные Microsoft-овские проги уже в БД хранят. Например для установки Live PhotoGallery требуется поставить MS SQL Server CE 3.1. Пруф http://bayimg.com/image/paafeaaci.jpg Я чую в поставку Win7 скоро MS SQL Server будет включен как неудаляемая составная часть Internet Explorer-а

Karapuz ★★★★★
()
Ответ на: комментарий от sign

>>echo 'sys-apps/hal ~amd64' >>/etc/portage/packages.keywords

>>Что вы говорите? Нужна специальная программа?

Не видим дальше носа?

XML способен унифицировать форматы файлов, воспринимаемые разными программами из одной предметной области. Например один и тот же XML-файл c данными о молекуле можно гонять открывать разными визуализаторами, расчетными пакетами, редакторами геометрии, схематизаторами.

Но это тысячи тэгов, сложная иерархия параметров. Предлагаешь ими манипулировать вручную? Нужно быть полным имбецилом чтобы в погоне за консольно-viйной трушностью продолжать настаивать на текстовом редакторе.

Хотя если айкью тебе позволяет сутками молотить теги капая слюнями от осознания трушности на клаву и не удивляться убогости своего занятия - почему бы и нет?

gkrellm
()
Ответ на: комментарий от Karapuz

>>А какжэ http://www.syntext.com/products/serna/ ? http://www.wmhelp.com/xmlpad3_scr.htm ? Не?

Ждал таких ссылок - спасибо - правда там слышно голодное урчание желудков осатанелых копирастов-проприетарщиков - но free версии там тоже есть.

Так глядишь и напишут наконец то, подо что создавался изначально XML - гуишный wysiwyM-шный драгэнддропный редактор Логической Структуры.

gkrellm
()
Ответ на: комментарий от gkrellm

> то, подо что создавался изначально XML - гуишный wysiwyM-шный драгэнддропный редактор Логической Структуры.

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

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>>Пока ты не поймешь, зачем создавался XML, так и будешь нести чушь, и чувствовать себя ниипаццо просевтителем.

Ну расскажи ты, коль уж возник - а то в воздухе подвисла недосказанность и душок уязвленного миропонимания.

gkrellm
()
Ответ на: комментарий от Karapuz

>>Представляешь, как они теперь наверное мучаются! Вот ведь дураки там сидят!

Да не такие уж дураки - просто кодерам-то не привыкать к сотне-другой синтаксических маразмов - вот и юзают что есть.

Как в саутпарке - а что можно моноцикл но без этой палки в задницу?

gkrellm
()
Ответ на: комментарий от gkrellm

>>Пока ты не поймешь, зачем создавался XML, так и будешь нести чушь, и чувствовать себя ниипаццо просевтителем.

> Ну расскажи ты, коль уж возник

Цель XML уже озвучивалась ITT. Могу повторить - он был сделан как средство создания интероперабелных форматов данных.

> в воздухе подвисла недосказанность и душок уязвленного миропонимания.

Пользуйся дезодорантом, и от тебя не будет пахнуть.

tailgunner ★★★★★
()
Ответ на: комментарий от gkrellm

> На пару постов выше я о ТОМ ЖЕ САМОМ

Я отвечал на гениальный пост о предназначении XML "под гуишный wysiwyM-шный драгэнддропный редактор Логической Структуры", если ты не понял.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

А гуишная драгэнддропная функциональность редактора - логичное продолжение концепции, удобство которой могут оспорить только малограмотные быдлоадмины с мозгами уехавшими набекрень от кривости синтаксиса зоопарка конфигов. Вэлком в их ряды. Может ты и бинарники правишь в vi, умник?

gkrellm
()
Ответ на: комментарий от tailgunner

>>Я отвечал на гениальный пост о предназначении XML "под гуишный wysiwyM-шный драгэнддропный редактор Логической Структуры", если ты не понял.

Я вижу ты не способен воспринять мысль цельно, не выхватывая отдельные слова или буквы. С такой дисфункцией за анализ а тем более поучительство лучше и не браться.

gkrellm
()
Ответ на: комментарий от gkrellm

> Я вижу ты не способен воспринять мысль цельно, не выхватывая отдельные слова или буквы

Утипути. Я вижу, ты неспособен изложить простую мысль, не сделав минимум одной ошибки.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>>Утипути. Я вижу, ты неспособен изложить простую мысль, не сделав минимум одной ошибки.

Значит по делу ты жиденько обделался, раз свел на грамматику. Учи же матчасть про не с краткими прилагательными и про авторское акцентирование.

gkrellm
()
Ответ на: комментарий от gkrellm

> свел на грамматику.

Да ты дислектик походу %) Это многое объясняет. Ошибка твоя - семантическая, сиречь - смысловая.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Знаешь ты за овер 10 постов так и не прояснил свою позицию. Попытался наехать но увидев что я про то же самое толкую начал сливать.

Для тех кто в танке подытожим. Утверждаю что: XML для интероперабельности но так как это иерархический формат он обростает шелухой трудной для редактирования в vi (похоже на бинарный) => гуишные редакторы со схемками, мышиным управлением и тд. Все!!

В чем же твоя позиция? 3 поста подряд капаешь про какую-то ошибку. Изъяснись наконец внятно.

gkrellm
()
Ответ на: комментарий от gkrellm

>Для тех кто в танке подытожим. Утверждаю что: XML для интероперабельности но так как это иерархический формат он обростает шелухой трудной для редактирования в vi (похоже на бинарный) => гуишные редакторы со схемками, мышиным управлением и тд. Все!!

Для тех, кто в танке: нормальные люди ничего не имеют против XML для хранения данных, они против использования XML для хранения конфигов!

Разница между конфигами и данными понятна, надеюсь?

Данные могут быть со сложной иерархией, а конфиг, как таковой, обычно представляет собой не более чем последовательность переменных, возможно объединённых в группы (без вложенности групп).

Конфиги маленькие, не изменяются в процессе работы, они обязаны легко редактироваться руками и не требовать специальных инструментов для восстановления их структуры.

В XML пропущенный при ручном редактировании знак > или < сломает всю структуру и визуально ошибку в текстовом редакторе найти будет очень сложно.

Мне легко ориентироваться в конфигах bind, dhclient, dhcpd, squid, ppp, в дебиановском interfaces, в sysctl, в конфигах с shell-переменными (например .profile). Я не могу представить, что для написания таких конфигов может понадобиться перегруженный функционалом, совершенно нечитаемый XML.

В то же время я не могу представить, что, например, документ odt, возможно хранить в таком же формате, что и конфиги.

Вот почему мне не нравятся конфиги в XML и почему я в то же время не считаю XML вселенским злом.

morbo
()
Ответ на: комментарий от vada

> Парсер можно один на всю систему. Просто дернул либу libxmlparser и в шоколаде.

низя. т.к. разные _уже_ написанные программы используют конфиг по-своему. следовательно придётся долго прикручивать конфигопарсер к программе.

ssvda
()

потому что я не занимаюсь семантической и синтаксической разметкой конфигов,я просто храню в них параметры
все отступы-для наглядности,а всё от ХML - лишнее

tz-lom
()
Ответ на: комментарий от morbo

>>[......] Вот почему мне не нравятся конфиги в XML и почему я в то же время не считаю XML вселенским злом.

Так ППКС, спору-то и нет. Просто тут товарищ один бычить пытался попусту но так мысли свои не причесал и сбежал или отмалчивается.

Если конфиг не предполагает частого изменения структуры дерева и вложенности то конечно лучше писать его plaintext.

Но если конфигурироваие программы предполагает частое изменение иерархии (httpd.conf)- тут XML идеален.

gkrellm
()
Ответ на: комментарий от morbo

> Утверждаю что: XML для интероперабельности

Вот интересно каким это чудом программа ожидающая имя атрибута "КоеЧто" поймёт что атрибут "КоеКак" это оно и есть, только по другому называется и формат внутренних данных не YYMMDD, а всего-то MMDDYYY? И чем такое текстовое представление математически выгоднее бинарного ASN, текстового BNF, INI, YAML, S-Expression?

Вы тут все кричите, что XML отвечает за уровень представления данных, то есть за их смысл отвечать не может. Это называется в интероперабельности транспортным уровнем. То есть тупое хэшированное хранилище информации. Связи в которой интерпретируются уровнем выше на основе информации как-то представленной в XML в какой-то фиксированной форме. Вот лет 20 назад была идея оторвать знания от инетпретатора знаний - элемент ИИ. Базы знаний городили на prolog-е. Так вот пыжились пыжились, а не зная смысла и формата представления знаний нихрена не родили, но я смотрю на их верных последователей и говорю: молодцы! Если нельзя изменить реальность её можно игнорировать!

alx_me ★★☆
()

Для простых случаев неудобность XML компенсируется только чрезмерной избыточностью. Для сложных случаев неудобство XML компенсируется только его ограниченностью -- удобнее применять "вычисляемый" конфиг, т.к. велика вероятность необходимости "зависимых" значений, "ссылок" разного рода и т.п. следствия 10го правила.

Вот почему.

DonkeyHot ★★★★★
()
Ответ на: комментарий от alx_me

>>Вот интересно каким это чудом программа ожидающая имя атрибута "КоеЧто" поймёт что атрибут "КоеКак" это оно и есть, только по другому называется и формат внутренних данных не YYMMDD, а всего-то MMDDYYY? И чем такое текстовое представление математически выгоднее бинарного ASN, текстового BNF, INI, YAML, S-Expression?

А проиндексировать все форматы и дописать рядышком индекс слабо? Индекс форматов даты занести в RFC - делов-то. Или будешь ваять велосипедный определитель формата даты написанный пожалуй 1 000 000 раз?

>>Так вот пыжились пыжились, а не зная смысла и формата представления знаний нихрена не родили

Никто же не замахивается тут на ИИ. Но стандартизировать форматы для узкой прикладной области вполне возможно.

gkrellm
()
Ответ на: комментарий от gkrellm

> Но стандартизировать форматы для узкой прикладной области вполне возможно.

Тогда исчезает смысл XML. Там уже всё стандартизироано на ASN.1 и, не дай бог, ABNF.

alx_me ★★☆
()
Ответ на: комментарий от alx_me

Ага а теперь то же самое для вдумчивого манипулирования структурой расчета молекулы из 200 атомов с 10-тиуровневой иерархией применения методов. Что-то мне думается что ты скукожишься.

Проблема адептов консоли в том что в жизни своей кроми поднятия ftp/samba/apache по мануалам итд они увы ни с чем более творческим не сталкиваются что и объясняет узость их фантазии.

XML куда более широк - но в той области нужен удобный фронтэнд - не маскирующий логическую структуру нечитабельными < \/&^%$# и убогой обезьяньей концепцией парсинга. Появится - глядишь и консольные старперы наконец осилят иксы и тоже оценят удобства.

gkrellm
()
Ответ на: комментарий от alx_me

>>Тогда исчезает смысл XML. Там уже всё стандартизироано на ASN.1 и, не дай бог, ABNF.

Ничего там не стандартизированно. Формат даты - может да, а список значений ключевых слов в конфигах разных программ для какой-либо узкой области - нет. Те же 3D-анимация, вычислительная химия, звуковые студии, архитектура, схемотехника. Но узость твоего кругозора не позволяет тебе видеть дальше 10-тистрочных дефолтных конфигов ftp сервера.

gkrellm
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.