Странные люди используют XML
Oct. 23rd, 2007 10:37 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Читаю сейчас конфигурационный файл утилиты rutilt (конфигуришки для WiFi карточек rt73 под Linux).
И вижу там примерно следующее
Не совсем понимаю, зачем ради такого XML городить. Я бы написал так
В данный вариант добавлена информация о том, доступен ли в данной сети SSID для сканирования, которой в оригинале не было. А мне для zero-click solution её надо - должна же программама догадатсья, стоит ли пробовать сконнектиться с этой сетью если скан не показывает её ssid. Ну и приоритеты сетей - в каком порядке пробовать коннектиться
Вообще, я неоднократно сталкивался с ситуацией, когда люди, пытающиеся разработать какую-то DTD совершенно не умеют пользоваться выразительным богатством XML. Наиболее частая проблема - та же, что у автора rutilt - пихают всю информацию в содержимое элементов, не задумываясь о том, что бывают ещё и атрибуты. Попадалось и обратное - что человек в упор не понимал концепции PCDATA и боялся писать текст между тэгами. Всё пихал в атрибуты.
Я, конечно, не буду утверждать что я такой весь из себя большой спец по XML. Я схем-то за свою жизнь сдизайнил не более десятка (правда, были среди них весьма развесистые).
Ну а за использование перечислимых числовых значений в текстовом конфиге, особенно когда в интерфейсе пользователя всё равно исполььзуются для этих сущностей строковые названия, программиста надо пороть.
И вижу там примерно следующее
<Profile Name="Wagners_home"> <SSID>Wagners_home</SSID> <Mode>2</Mode> <Channel>1</Channel> <Encryption> <Type>1</Type> <Key>много шестнацатиричных цифр</Key> <Key></Key> <Key></Key> <Key></Key> <AuthenticationType>0</AuthenticationType> <DefaultKey>0</DefaultKey> </Encryption> <IPSettings> <How>1</How> </IPSettings> </Profile> d<Profile Name="Cryptocom"> <SSID>спрятано</SSID> <Mode>2</Mode> <Channel>11</Channel> <Encryption> <Type>3</Type> <Key>много шестнадцатиричных цифр</Key> <Key></Key> <Key></Key> <Key></Key> <AuthenticationType>2</AuthenticationType> <DefaultKey>0</DefaultKey> </Encryption> <IPSettings> <How>1</How> </IPSettings> </Profile>
Не совсем понимаю, зачем ради такого XML городить. Я бы написал так
<Profile priority="0" Name="Wagners_home"> <SSID visibility="visible">Wagners_home</SSID> <card-settings mode="managed" channel="1" /> <Encryption type="wep" authentication-type="open"> <key number="0" default="yes" encoding="hex">много шестнадцатиричнх цифр</key> </Encryption> <IPSettings type="dhcp" /> </Profile> <Profile priority="1" Name="Cryptocom"> <SSID visibility="hidden">спрятано</SSID> <card-settings mode="manged" channel="11"/> <Encryption type="TKIP" authentication-type="WPAPSK"> <key number="0" default="yes" encoding="ascii">много букв</key> </Encryption> <IPSettings type="dhcp" /> </Profile>
В данный вариант добавлена информация о том, доступен ли в данной сети SSID для сканирования, которой в оригинале не было. А мне для zero-click solution её надо - должна же программама догадатсья, стоит ли пробовать сконнектиться с этой сетью если скан не показывает её ssid. Ну и приоритеты сетей - в каком порядке пробовать коннектиться
Вообще, я неоднократно сталкивался с ситуацией, когда люди, пытающиеся разработать какую-то DTD совершенно не умеют пользоваться выразительным богатством XML. Наиболее частая проблема - та же, что у автора rutilt - пихают всю информацию в содержимое элементов, не задумываясь о том, что бывают ещё и атрибуты. Попадалось и обратное - что человек в упор не понимал концепции PCDATA и боялся писать текст между тэгами. Всё пихал в атрибуты.
Я, конечно, не буду утверждать что я такой весь из себя большой спец по XML. Я схем-то за свою жизнь сдизайнил не более десятка (правда, были среди них весьма развесистые).
Ну а за использование перечислимых числовых значений в текстовом конфиге, особенно когда в интерфейсе пользователя всё равно исполььзуются для этих сущностей строковые названия, программиста надо пороть.
no subject
Date: 2007-10-23 08:35 pm (UTC)Что-то я начинаю звучать как какой-нибудь mauhuur...
no subject
Date: 2007-10-23 08:46 pm (UTC)Привет маухууру;)
no subject
Date: 2007-10-23 10:12 pm (UTC)no subject
Date: 2007-10-23 10:21 pm (UTC)no subject
Date: 2007-10-24 05:47 am (UTC)Так может говорить какой-нибудь адепт Lisp, живущий в башне из слоновой кости ;)
no subject
Date: 2007-10-24 07:13 am (UTC)no subject
Date: 2007-10-24 12:26 pm (UTC)no subject
Date: 2007-10-24 12:28 pm (UTC)no subject
Date: 2007-10-24 05:50 am (UTC)Современной computer science неизвестно чего-либо, чего нельзя было б выразить в виде машины Тьюринга. :-D
no subject
Date: 2007-10-24 07:14 am (UTC)no subject
Date: 2007-10-24 10:17 am (UTC)no subject
Date: 2007-10-23 09:19 pm (UTC)no subject
Date: 2007-10-23 10:24 pm (UTC)В модели документа, гораздо надежнее разыменовать атрибут, чем отыскать среди детей элемент с нужным именем и надеяться, что он там один такой (а при записи уникальность надо обеспечить). Это разные виды доступа в структурах данных: ассоциативный и позиционный. Неужели непонятно, почему во всех вменяемых языках программирования либо библиотеках к ним обязательно есть что-нибудь, похожее на последовательность и что-нибудь, похожее на словарь?
no subject
Date: 2007-10-23 10:35 pm (UTC)no subject
Date: 2007-10-23 10:44 pm (UTC)Но где-то, видимо, нужно было провести черту и сказать KISS. Там и без того есть достаточно барокко: пережитки SGML всякие, взять хотя бы DTD.
no subject
Date: 2007-10-23 10:50 pm (UTC)no subject
Date: 2007-10-24 05:41 am (UTC)no subject
Date: 2007-10-24 07:05 am (UTC)Она либо редактируется во всей своей xml-ности текстовым редактором, либо зачитывается программой и преобразуется в некую модель, которая на экране показывается через соответствующие view.
no subject
Date: 2007-10-24 08:28 am (UTC)