LINUX.ORG.RU
ФорумTalks

[XML]Зачем?

 


0

0

Решил я в очередной раз увеличить счётчик игно^Wраздуть флейм. На этот раз на тему XML'я

Не могу понять почему все так хотят перевести конфиги в формат XML'я. Все получается крайне неудобно и раздуто. Вот например кусок конфига OpenBox'а:

.-(~)-------------------------------------------------------(zzaiatss@Darkstar)
-
`--> cat /etc/xdg/openbox/rc.xml

>resistance>
  >strength>10</strength>
  >screen_edge_strength>20</screen_edge_strength>
>/resistance>

Зачем все эти нагромождения? Все можно поместить в одну-две строчки, например так:

strength: 10
screen_edge_strength: 20

И все, просто и удобно. Это открытие - закрытие параметров просто убивает. 

За тем, что нынешние победители олимпиад профессионально двумя княпочками парсят xml на .NET, но ни разу не видели fopen, strncmp и прочего.

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

толсто

//в том числе и топикстартеру

anonymous
()

Легче писать гуёвые конфигурялки с древообразным представлением?

anonymous
()

xml удобен для больших, сложных конфигов, с вложенностью категорий итд.. для простых конфигов ini-файлы руляд.

xml - хорошая штука, но использовать надо с умом.

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

>xml удобен для больших, сложных конфигов

ИМХО как-раз для больших конфигов юзать XML - мазохизм. Хотя любой конфиг если он написан на XML сразу-же становится большим и сложным.

ZZaiatSS ★★
() автор топика

А ты побробуй ка потом вложения обрабатывать?
А преобразования XSLT?
А проверка на валидность?

А помощь при разработке?

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

>> для простых конфигов ini-файлы руляд.

>палишься..

не стебись.. я, пока на дельфи (быдло?)кодил их любил юзать..

потом на си перешел... и решил вручную написать модуль для их чтения, записи.

а что плохого?

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

Ладно, вложения ещё более-менее удобны, хотя их тоже можно было реализовать намного удобнее.

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

>ИМХО как-раз для больших конфигов юзать XML - мазохизм.

почему? пример : гномий реестр. и, вроде, кде-шные конфиги.

это такой унифицированный стандарт, который легко читать и писать. не вручную, конечно..

>Хотя любой конфиг если он написан на XML сразу-же становится большим и сложным.

тоже верно..

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

>За тем, что нынешние победители олимпиад профессионально двумя княпочками парсят xml на .NET, но ни разу не видели fopen, strncmp и прочего.

Я парсил на С. Простая машина состояний.

Absurd ★★★
()

Для сложных конфигов сейчас есть интересная альтернатива - yaml.
Google App Engine именно его юзает.

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

>который легко читать и писать. не вручную, конечно..

Пример: у меня установлен опенбокс, мне нужно было вписать в rc.xml пару хоткеев. Чем как не вручную? В obconf задавать хоктеи нельзя. Приходиться все проверять-перепроверять чтобы не было не закрытых параметров и.т.д

ZZaiatSS ★★
() автор топика

На самом деле все просто, мало кто знает, что IBM в свое время успела запатентовать XML.

После перевода многих конфигов системы в этот формат у них появится ниточка, с помощью которой они смогут воздействовать на все unix сообщество.

Уже сейчас они могут положить весь Apple на лопатки, но пока это и не нужно.

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

>На самом деле все просто, мало кто знает, что IBM в свое время успела запатентовать XML.

0_o

mono ★★★★★
()

>Зачем все эти нагромождения? Все можно поместить в одну-две строчки, например так:

или так <resistance strength="10" screen_edge_strength="20" />

дело не в технологии, а как ее применяют.

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

><resistance strength="10" screen_edge_strength="20" />

1) хуже читабельность
2) нужны откр/закр теги
*) тормозной xml-парсер

anonymous
()

Единственное, чего там не хватает - хранения данных "в стиле fstab", без бесконечного повторения названий одних и тех же параметров. А остальное - от глупости при использовании.

anonymous
()

B XML есть свой смысл. иерархическое представление данных, валидация по схеме (со строгой типизацией). Мне не надо для каждого проекта писать парсер - есть libxml (и не такой уж он и медленный). И самое главное - все фичи стандартизированы. Т.е. открывая конфиг, я четко знаю как пишутся комменты. Каждое значение обеспечено четким однословным описанием (имя тега/аттрибута). Я четко знаю в какой кодировке все это представлено. Я знаю как сделать перенос строки в текстовом параметре. А если редактировать его в специализированном редакторе - вообще сказка. В случае ini - все эти вещи остаются на усмотрение автора, а в OSS безбашенных писак - немеряно, и каждый более-менее сложный конфиг требует к себе документации. (век помнить буду формат задания времени повторной отправки письма в exim4.conf. Это что ж надо было курить?)

k0l0b0k ★★
()

> .-(~)-------------------------------------------------------(zzaiatss@Darkstar)
-
`--> cat /etc/xdg/openbox/rc.xml

Зачем все эти нагромождения? Все можно поместить в одну-две строчки, например так:
zzaiatss@Darkstar:~>

anonymous
()

>Не могу понять почему все так хотят перевести конфиги в формат XML'я. Все получается крайне неудобно и раздуто.

Поэтому для конфигов сейчас принято пользоваться YAML. Он намного более удобен для этого.

Wizard_ ★★★★★
()

>strength: 10

>screen_edge_strength: 20

Да, это YAML.

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

>За тем, что нынешние победители олимпиад профессионально двумя княпочками парсят xml на .NET, но ни разу не видели fopen, strncmp и прочего.

Зря ты так. На олимпиадах задачи абсолютно другого плана. И там ты не видишь как раз xml и .NET. ;) Java, правда, на ACM ICPC допускается, например. Вообще, задачи там по большей части математические, а не на технику программирования.

nanonymous
()

Кстати, Protocol Buffers — неплохая альтернатива XML для представления данных. Как язык разметки не подходит, но для данных очень ничего.

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

Ссылку в студию. Как можно запатентовать RFC, знает только ya_bi_vas. Если бы было можно, IBM бы не успела, Microsoft запатентовала бы раньше

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

Re^2: [XML]Зачем?

> Для данных делают Efficient XML Interchange (EXI). Это пожатый xml. И не надо выдумывать всякий бред типа ProtBuffers

Правильно, возьмём xml да ещё и пожмём его. А то фигли всё так быстро работает :о)

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