vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Читаю сейчас конфигурационный файл утилиты rutilt (конфигуришки для WiFi карточек rt73 под Linux).
И вижу там примерно следующее
<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. Я схем-то за свою жизнь сдизайнил не более десятка (правда, были среди них весьма развесистые).

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

Date: 2007-10-24 02:29 am (UTC)
From: [identity profile] dottedmag.livejournal.com
Это ограничение DTD. Посмотри Relax NG (http://relaxng.org/compact-tutorial-20030326.html): в этом языке схем элементы и атрибуты различаются ровно двумя свойствами:

- в данном элементе может быть не больше одного атрибута с данным именем
- атрибут, в отличие от элемента, не может быть сложного типа

Т.е. вполне можно написать что-то вида

element ip-settings {
  attribute type {
    "dhcp" | "static" | whatever....
  }
}

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

August 2025

S M T W T F S
     1 2
3456789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 3rd, 2025 08:07 pm
Powered by Dreamwidth Studios