Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.08.09;
Скачать: [xml.tar.bz2];

Вниз

Парсер XML   Найти похожие ветки 

 
Palladin ©   (2009-05-24 19:01) [40]


> Игорь Шевченко ©   (24.05.09 18:59) [39]

хм ) с твоего позволения я проведу соц. опрос )


 
тимохов ©   (2009-05-24 19:10) [41]

2ИШ

Семантику все равно не проверишь. А синтаксис проверить - дело плевое.

Возможно, что есть проекты, где буква X в названии XML очень даже оправдывает себя. Я имею в виду проекты, которые предполагают расширение настроек от ключ=значение, до ветвистого дерева с множеством взаимосвязей и пр. Но я таких не знаю. Даже те чужие проекты, которые использую я, не видятся мне кандидатами на XML. Вот возьми Апач - там масса настроект Даже есть куски схожие с XML. Однако синтаксис вполне вменяемый. Та же картина с PHP и MySQL. Согласись, не самые простые проекты, но настройки не в XML.

Ты, Игорь, не подумай, что я против XML. Я сам пользуюсь активно им. Но настройки не вижу смысла в нем хранить.


 
тимохов ©   (2009-05-24 19:12) [42]

И вообще, коллеги, которые выступают в защиту XML - помогли бы Юрию Зотову http://delphimaster.net/view/15-1243162054/?

Вроде вопрос по теме XML.


 
Игорь Шевченко ©   (2009-05-24 19:40) [43]

Palladin ©   (24.05.09 19:01) [40]


> с твоего позволения я проведу соц. опрос )


на линукс-форумах для полноты картины :)


> Семантику все равно не проверишь.


Во-первых, можно и семантику


> А синтаксис проверить - дело плевое.


Во-вторых, зачем делать то, что уже сделано.


> Я имею в виду проекты, которые предполагают расширение настроек
> от ключ=значение, до ветвистого дерева с множеством взаимосвязей
> и пр. Но я таких не знаю.


Delphi например :) Настройки проекта хранятся в XML


> Вот возьми Апач - там масса настроект Даже есть куски схожие
> с XML. Однако синтаксис вполне вменяемый


Не надо брать Apache, он написан до появления XML.

Давай возьмем OpenOffice, который хранит разнообразные конфигурации в XML.


 
sniknik ©   (2009-05-24 20:00) [44]

> Я к чему - не стоит делать далеко идущие рекомендации из собственной неудачной практики
а разве рекомендация - не использовать там где не оно не нужно, и только там где требуется/не отвертеться. не логична?

и посмотри как его используют, пихают во все щели только потому что круто/модно/удобно(а после вопросы задают, а как с ним вообще работать то? очень удобно)/универсально(и поэтому пихают для трех параметров простенькой программы где код чтения этих параметров занимает больше строк чем код функционала)


 
Игорь Шевченко ©   (2009-05-24 20:06) [45]

sniknik ©   (24.05.09 20:00) [44]


> а разве рекомендация - не использовать там где не оно не
> нужно, и только там где требуется/не отвертеться. не логична?
>


Как только ты покажешь все ситуации, где "нужно", а где не "нужно", так будет смысл продолжать дискуссию.


> и посмотри как его используют, пихают во все щели только
> потому что круто/модно/удобно(а после вопросы задают, а
> как с ним вообще работать то? очень удобно)/универсально(и
> поэтому пихают для трех параметров простенькой программы
> где код чтения этих параметров занимает больше строк чем
> код функционала)


Посмотри, как используют TMemo или TListBox для чтения списка строк и их дальнейшей обработки - даже далеко ходить не надо, в "Начинающих" и "Основной" примеров такого использования было, как звезд на небе, да и вопросов никак не меньше, чем по XML. Сделай из этого вывод, что компоненты TMemo и TListBox есть безусловное зло, подлежащее выкорчевыванию из любой программы.


 
DVM ©   (2009-05-24 20:30) [46]


> Игорь Шевченко ©   (24.05.09 17:23) [25]


> не надо говорить за всех

Не один пользователь (именно пользователь) в здравом уме не полезет смотреть настройки программы в скрытую папку c:\Documents and Settings\All Users\Application Data или подобную, чтобы посмотреть содержимое ini или xml файла с настройками программы.


 
Игорь Шевченко ©   (2009-05-24 20:31) [47]


> Не один пользователь (именно пользователь) в здравом уме
> не полезет смотреть настройки программы в скрытую папку
> c:\Documents and Settings\All Users\Application Data или
> подобную, чтобы посмотреть содержимое ini или xml файла
> с настройками программы.


Это в линуксе, да ?


 
DVM ©   (2009-05-24 20:42) [48]


> Игорь Шевченко ©   (24.05.09 20:31) [47]


> Это в линуксе, да ?

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

Читабельность XML ниже, чем того же INI


 
тимохов ©   (2009-05-24 21:15) [49]


> Читабельность XML ниже, чем того же INI

Вот. Поддерживаю на все 100.


 
Медвежонок Пятачок ©   (2009-05-24 21:43) [50]

Вы его глазами что ли читаете?


 
DVM ©   (2009-05-24 22:08) [51]


> Медвежонок Пятачок ©   (24.05.09 21:43) [50]


> Вы его глазами что ли читаете?

Все конфиги в *NIX именно глазами читаются, а пишутся руками.


 
Медвежонок Пятачок ©   (2009-05-24 22:16) [52]

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


 
sniknik ©   (2009-05-24 22:34) [53]

> Сделай из этого вывод, что компоненты TMemo и TListBox есть безусловное зло, подлежащее выкорчевыванию из любой программы.
как только их начнут повсеместно рекламировать как самые "удобные/универсальные" и навязывать во все программы без исключений, причем не по желанию программиста/реальной необходимости их использовать, а из маркетинговых соображений, такой вывод будет сделан, уж будь уверен.


 
Кто б сомневался ©   (2009-05-24 22:36) [54]


> DVM ©   (24.05.09 16:28) [24]
>
> пользователям плевать как хранит данные программа, ни в
> ини не в иксэмэль они глядеть не будут.


И игрушках параметры хранятся в ini. Дык все продвинутые юзеры лезут туда. К примеру все игры на движке Unreal (1 и 2 и 3).


 
Медвежонок Пятачок ©   (2009-05-24 22:37) [55]

А при чем здесь вообще "читабельность"
Читабельность файла с интерпретируемым кодом выше чем у exe.
И что из этого следует?
Ничего не следует, кроме того, что читабельность у exe никакая.
А кому она нужна?


 
Игорь Шевченко ©   (2009-05-24 22:37) [56]

sniknik ©   (24.05.09 22:34) [53]

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

Кроме того, ты забыл написать, где XML нужно использовать, а где не нужно.


 
DVM ©   (2009-05-24 22:44) [57]


> Кто б сомневался ©   (24.05.09 22:36) [54]


> И игрушках параметры хранятся в ini. Дык все продвинутые
> юзеры лезут туда.

Из этого делается вывод - XML - нечитабелен.


> Медвежонок Пятачок ©   (24.05.09 22:37) [55]


> А при чем здесь вообще "читабельность"

Я и сказал еще в [24], что юзеру по барабану, он читать его все одно не будет.


 
sniknik ©   (2009-05-24 23:07) [58]

> Кроме того, ты забыл написать, где XML нужно использовать, а где не нужно.
не забыл. просто не было у меня реальной необходимости, т.что не могу разделить где же нужно.

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


 
Игорь Шевченко ©   (2009-05-24 23:09) [59]

sniknik ©   (24.05.09 23:07) [58]

Давай в одной какой-нибудь ветке дискутировать, а то неудобно в нескольких одно и то же писать.


 
KilkennyCat ©   (2009-05-24 23:15) [60]

А я всегда храню настройки в простом текстовом файле... и ничем не заморачиваюсь.


 
DVM ©   (2009-05-24 23:16) [61]


> KilkennyCat ©   (24.05.09 23:15) [60]

Так XML он тоже текстовый.


 
KilkennyCat ©   (2009-05-24 23:21) [62]


> DVM ©   (24.05.09 23:16) [61]

не совсем, похоже. видишь, какие спроы и скока проблем вызывает.


 
Mystic ©   (2009-05-25 00:05) [63]

Еще можно хранить в DFM-формате. Написать наследника от TPersistent и писать его в поток.

http://mu.webest.net/prog/ClassIO.pas

А с XML у меня только негативные воспоминания. Раза три, помнится, пытался разобраться с настройками форматов Colorer-а в Far-е, они там в XML. Всякий раз от этого ехала крыша. Например, я просто фанател от того, как хранится Regexp-ы в XML, в regexp-e слеш экранируется, в XML слеш тоже экранируется, получается четыре слеша, и получается сверхчитабельное


  <regexp match="/(\\) ( [  \{\}\,\:\;\!\\\|\"\]\-  ] )/x"  region1="texSymb" region2="texWord"/>
  <regexp match="/\\\\$/" region0="dError"/>
   <regexp match="/^\s*("([^"\\]|(\\\\)|(\\"|n|r)){,254}")\s*=\s*("([^"\\]|(\\\\)|(\\"|n|r))*?")\s* (;.*)?/x"
           region1="regString" region5="regString"  region9="regComment"/>
.......
  <block
    start="/(\\) (left) ( [\s\t]* [\,\|\{\}\(\)\[\]] ) | ( [\s\t]+ [\,\|\{\}\(\)\[\]] {0,1} )/x"
    end="/ (\\) (right) ( [\s\t]* [\,\|\{\}\(\)\[\]] {0,1} ) /x" scheme="Tex_Formula"
    region="texLargeBracket" region00="dpOpenStruct" region10="dpCloseStruct"
    region01="texSymb" region02="texLargeBracket" region03="texBrk" region04="texWord"
    region11="texSymb" region12="texLargeBracket" region13="texBrk"/>


Специальных тулзовин по XML у меня нету, руками такие конфиги править я зарекся. Хотя честно, раза три пытался пробить себя на "а слабо!". Конечно, кое-кто предпочтет что-то вроде


<function name="Sqr" returns="Real">
 <arguments>
   <arg name="X" type="Real"/>
 </arguments>
 <body>
   <assigment>
     <lvalue>
       <variable name="Result"/>
     </lvalue>
     <rvalue>
       <multiplication>
         <variable name="X"/>
         <variable name="X"/>
       </multiplication>
     </rvalue>
   </assigment>
 </body>
</function>


Я лично поищу что-то вроде


 function Sqr(X: Real): Real;
 begin
   Result := X * X;
 end;


Как на моем опыте, XML слишком монстрообразный, за тавтологиями не видно сути. Вот, например, предложенный XML для записи шахматной партии.

http://www.cybercom.net/~zbrad/Chess/pgnxml/

Страшно подумать, во что это выльется... Не, формат попроще лучше:


[White "Fedorov, Alexei"]
[Black "Kasparov, Garry"]
[Result "0-1"]
[ECO "B20"]

1. e4 c5 2. d3 Nc6 3. g3 g6 4. Bg2 Bg7 5. f4 d6 6. Nf3 Nf6 7. O-O O-O 8. h3 b5
9. g4 a5 10. f5 b4 11. Qe1 Ba6 12. Qh4 c4 13. Bh6 cxd3 14. cxd3 Bxd3 15. Re1
Bxh6 16. Qxh6 Qb6+ 17. Kh1 Ne5 18. Nbd2 Rac8 19. Ng5 Rc2 20. Rf1 Bxf1 21. Rxf1
Rfc8 22. fxg6 hxg6 23. Nb3 Rxg2 24. Kxg2 Rc2+ 25. Kg3 Qe3+ 0-1


Т. е. получается, что для очень простых форматов XML слишком монстроидальный. Для форматов посложнее получается (языки программирования, шахматная партия, ...) XML серьезно проигрывает в читабельности. При этом каких либо преимуществ не несет.


 
Медвежонок Пятачок ©   (2009-05-25 00:13) [64]

и снова про читабельность .....

Накой это вообще надо?
Компьютер железный, пусть он читает!


 
KilkennyCat ©   (2009-05-25 00:14) [65]


> XML серьезно проигрывает в читабельности. При этом каких
> либо преимуществ не несет.

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


 
KilkennyCat ©   (2009-05-25 00:18) [66]

Опять же, монстроидальность... тут нельзя винить только XML. Тот, кто с ним работает тоже участвует. Мало вы видели монстроидального в коде любого языка? И что, виноват язык, или тот, кто наворотил хрен чего поймешь?
Вот пример моего описания файла для веб-сайта:
<blik speed="8" onpause="8" count="1" pause="20" />

Блик основного логотипа.

speed="8" - скорость движения (количество пикселей, на которые смещается блик за один кадр).
onpause ="8" - пауза перед началом движения.

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

count="1" - количество «пробегов» блика.

pause="20" - пауза между «пробегами» блика. Игнорируется, если count = “1”.

<main onspeed="8" page="1"/>

Основная  страница (тело) сайта.

onspeed="8" - скорость появления.
page="1" - содержимое (страница), которое появится вместе с основной страницей (телом) сайта:

Что тут нечитабельного и монстроидального?


 
KilkennyCat ©   (2009-05-25 00:19) [67]

вариант без комментариев:
<?xml version="1.0" encoding="utf-8"?>
<document>
<logo onspeed="8" offspeed="8" pause="20" />
<blik speed="8" onpause="8" count="1" pause="20" />
<main onspeed="8" page="1"/>
<panhud ponspeed ="6" poffspeed="6" pause="3" />
<menu onspeed="6" offspeed="6" fadmax="100" fadmid="60" fadmin="20" ponspeed="3" poffspeed="3" effect="0"/>
...


 
DVM ©   (2009-05-25 00:22) [68]


> KilkennyCat ©   (25.05.09 00:18) [66]


> Что тут нечитабельного и монстроидального?

Ты слишком простой пример привет.


 
KilkennyCat ©   (2009-05-25 00:24) [69]


> Ты слишком простой пример привет.

Могу сделать копи пасте сотню раз. Что изменится?


 
KilkennyCat ©   (2009-05-25 00:25) [70]

я даже больше скажу: чем сложнее ХМL - тем он читабельнее.


 
KilkennyCat ©   (2009-05-25 00:33) [71]

А удобство совместной работы?
Предположим, то же хранение данных.
Есть некий справочник.
Изначально всех устраивает, но кто-то решил добавить одно, кто-то другое.
Первый обновил общие данные, второй - нет.
Достаточно первому дать свой файл второму и икаких проблем, общие данные будут читаться у всех, а приложения могут отличаться как небо и земля.


 
DVM ©   (2009-05-25 00:42) [72]


> KilkennyCat ©   (25.05.09 00:24) [69]
>
>
> > Ты слишком простой пример привет.
>
> Могу сделать копи пасте сотню раз. Что изменится?

В твоем случае ничего. Вложенность нужна.


> я даже больше скажу: чем сложнее ХМL - тем он читабельнее.

Это спорный вопрос.


 
Игорь Шевченко ©   (2009-05-25 00:55) [73]

DVM ©   (25.05.09 00:42) [72]


> В твоем случае ничего. Вложенность нужна.


Изучай :)

<?xml version="1.0" encoding="utf-8"?>
<BorlandProject>
 <PersonalityInfo>
   <Option>
     <Option Name="Personality">Delphi.Personality</Option>
     <Option Name="ProjectType"></Option>
     <Option Name="Version">1.0</Option>
     <Option Name="GUID">{60D8A109-A6DC-4492-A81C-19C886138743}</Option>
   </Option>
 </PersonalityInfo>
 <Delphi.Personality>
   <Source>
     <Source Name="MainSource">foo.dpr</Source>
   </Source>
   <FileVersion>
     <FileVersion Name="Version">7.0</FileVersion>
   </FileVersion>
   <Compiler>
     <Compiler Name="A">8</Compiler>
     <Compiler Name="B">0</Compiler>
     <Compiler Name="C">1</Compiler>
     <Compiler Name="D">1</Compiler>
     <Compiler Name="E">0</Compiler>
     <Compiler Name="F">0</Compiler>
     <Compiler Name="G">1</Compiler>
     <Compiler Name="H">1</Compiler>
     <Compiler Name="I">1</Compiler>
     <Compiler Name="J">0</Compiler>
     <Compiler Name="K">0</Compiler>
     <Compiler Name="L">1</Compiler>
     <Compiler Name="M">0</Compiler>
     <Compiler Name="N">1</Compiler>
     <Compiler Name="O">1</Compiler>
     <Compiler Name="P">1</Compiler>
     <Compiler Name="Q">0</Compiler>
     <Compiler Name="R">0</Compiler>
     <Compiler Name="S">0</Compiler>
     <Compiler Name="T">0</Compiler>
     <Compiler Name="U">0</Compiler>
     <Compiler Name="V">1</Compiler>
     <Compiler Name="W">0</Compiler>
     <Compiler Name="X">1</Compiler>
     <Compiler Name="Y">1</Compiler>
     <Compiler Name="Z">1</Compiler>
     <Compiler Name="ShowHints">True</Compiler>
     <Compiler Name="ShowWarnings">True</Compiler>
     <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;D biErrs=BDE;</Compiler>
     <Compiler Name="NamespacePrefix"></Compiler>
     <Compiler Name="GenerateDocumentation">False</Compiler>
     <Compiler Name="DefaultNamespace"></Compiler>
     <Compiler Name="SymbolDeprecated">True</Compiler>
     <Compiler Name="SymbolLibrary">True</Compiler>
     <Compiler Name="SymbolPlatform">True</Compiler>
     <Compiler Name="SymbolExperimental">True</Compiler>
     <Compiler Name="UnitLibrary">True</Compiler>
     <Compiler Name="UnitPlatform">True</Compiler>
     <Compiler Name="UnitDeprecated">True</Compiler>
     <Compiler Name="UnitExperimental">True</Compiler>
     <Compiler Name="HResultCompat">True</Compiler>
     <Compiler Name="HidingMember">True</Compiler>
     <Compiler Name="HiddenVirtual">True</Compiler>
     <Compiler Name="Garbage">True</Compiler>
     <Compiler Name="BoundsError">True</Compiler>
     <Compiler Name="ZeroNilCompat">True</Compiler>
     <Compiler Name="StringConstTruncated">True</Compiler>
     <Compiler Name="ForLoopVarVarPar">True</Compiler>
     <Compiler Name="TypedConstVarPar">True</Compiler>
     <Compiler Name="AsgToTypedConst">True</Compiler>
     <Compiler Name="CaseLabelRange">True</Compiler>
     <Compiler Name="ForVariable">True</Compiler>
     <Compiler Name="ConstructingAbstract">True</Compiler>
     <Compiler Name="ComparisonFalse">True</Compiler>
     <Compiler Name="ComparisonTrue">True</Compiler>
     <Compiler Name="ComparingSignedUnsigned">True</Compiler>
     <Compiler Name="CombiningSignedUnsigned">True</Compiler>
     <Compiler Name="UnsupportedConstruct">True</Compiler>
     <Compiler Name="FileOpen">True</Compiler>
     <Compiler Name="FileOpenUnitSrc">True</Compiler>
     <Compiler Name="BadGlobalSymbol">True</Compiler>
     <Compiler Name="DuplicateConstructorDestructor">True</Compiler>
     <Compiler Name="InvalidDirective">True</Compiler>
     <Compiler Name="PackageNoLink">True</Compiler>
     <Compiler Name="PackageThreadVar">True</Compiler>
     <Compiler Name="ImplicitImport">True</Compiler>
     <Compiler Name="HPPEMITIgnored">True</Compiler>
     <Compiler Name="NoRetVal">True</Compiler>
     <Compiler Name="UseBeforeDef">True</Compiler>
     <Compiler Name="ForLoopVarUndef">True</Compiler>
     <Compiler Name="UnitNameMismatch">True</Compiler>
     <Compiler Name="NoCFGFileFound">True</Compiler>
     <Compiler Name="ImplicitVariants">True</Compiler>
     <Compiler Name="UnicodeToLocale">True</Compiler>
     <Compiler Name="LocaleToUnicode">True</Compiler>
     <Compiler Name="ImagebaseMultiple">True</Compiler>
     <Compiler Name="SuspiciousTypecast">True</Compiler>
     <Compiler Name="PrivatePropAccessor">True</Compiler>
     <Compiler Name="UnsafeType">False</Compiler>
     <Compiler Name="UnsafeCode">False</Compiler>
     <Compiler Name="UnsafeCast">False</Compiler>
     <Compiler Name="OptionTruncated">True</Compiler>
     <Compiler Name="WideCharReduced">True</Compiler>
     <Compiler Name="DuplicatesIgnored">True</Compiler>
     <Compiler Name="UnitInitSeq">True</Compiler>
     <Compiler Name="LocalPInvoke">True</Compiler>
     <Compiler Name="MessageDirective">True</Compiler>
     <Compiler Name="CodePage"></Compiler>
   </Compiler>
   <Linker>
     <Linker Name="MapFile">0</Linker>
     <Linker Name="OutputObjs">0</Linker>
     <Linker Name="GenerateHpps">False</Linker>
     <Linker Name="ConsoleApp">1</Linker>
     <Linker Name="DebugInfo">False</Linker>
     <Linker Name="RemoteSymbols">False</Linker>
     <Linker Name="GenerateDRC">False</Linker>
     <Linker Name="MinStackSize">16384</Linker>
     <Linker Name="MaxStackSize">1048576</Linker>
     <Linker Name="ImageBase">4194304</Linker>
     <Linker Name="ExeDescription"></Linker>
   </Linker>
   <Directories>
     <Directories Name="OutputDir"></Directories>
     <Directories Name="UnitOutputDir"></Directories>
     <Directories Name="PackageDLLOutputDir"></Directories>
     <Directories Name="PackageDCPOutputDir"></Directories>
     <Directories Name="SearchPath"></Directories>
     <Directories Name="Packages">vclx;vcl;rtl;dbrtl;vcldb</Directories>
     <Directories Name="Conditionals"></Directories>
     <Directories Name="DebugSourceDirs"></Directories>
     <Directories Name="UsePackages">True</Directories>
   </Directories>
   <Parameters>
     <Parameters Name="RunParams"></Parameters>
     <Parameters Name="HostApplication"></Parameters>
     <Parameters Name="Launcher"></Parameters>
     <Parameters Name="UseLauncher">False</Parameters>
     <Parameters Name="DebugCWD"></Parameters>
     <Parameters Name="Debug Symbols Search Path"></Parameters>
     <Parameters Name="LoadAllSymbols">True</Parameters>
     <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
   </Parameters>
   <Language>
     <Language Name="ActiveLang"></Language>
     <Language Name="ProjectLang">$00000000</Language>
     <Language Name="RootDir"></Language>
   </Language>
 </Delphi.Personality>
</BorlandProject>


 
Mystic ©   (2009-05-25 00:57) [74]

> Что тут нечитабельного и монстроидального?
> я даже больше скажу: чем сложнее ХМL - тем он читабельнее.

Ок, пример посложнее

http://mu.webest.net/prog/01.xml
http://mu.webest.net/prog/02.pgn


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


Итак, ты мне прислал базу шахматных партий в XML. Одна партия в XML заняла 9 Кб, PGN для сравнения занял 1 Кб. База из трех миллионов партий это 3 гигобайта. XML получается 18 Gb. Т. е. мне придется скачать 4 Gb твоего zip-нутого XML (против 1Gb зипнутого PGN), потом мне придется распаковать его (причем искать куда). Далее scid PGN на 3 000 000 000 партий открыл за 10 минут. Сколько будет открываться XML мне даже страшно представить. В любом случае открыть его мне нечем, ибо ни одна из шахматных баз, что у меня стоит на компе, не понимает XML.

Вообще, как ни странно, на моем компе очень мало XML. Из текстовых форматов PGN, SGF, TEX, языки программирования, DFM, субтитры. К XML можно отнести только HTML (но читать его глазами упаси господь) и настройки в Delphi и VS, и еще Colorer.


 
DVM ©   (2009-05-25 01:12) [75]


> Игорь Шевченко ©   (25.05.09 00:55) [73]

Напугать меня хотели? :) Не выйдет.

Если серьезно, вот непонятно мне, зачем в приведенном XML огромное количество раз встречается <Compiler Name="...">...</Compiler>. Это что, читабельности прибавляет? Если что это и прибавляет, так объема более ничего.
Можно было просто написать:

[Compiler]
ZeroNilCompat=True
StringConstTruncated=True
....
и т.д.

И проще и нагляднее. Если с умом подойти, то и вложенность можно не менее наглядно изобразить.


 
Игорь Шевченко ©   (2009-05-25 01:13) [76]

Mystic ©   (25.05.09 00:57) [74]

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

Я правда не совсем понимаю, нафига 3 миллиона "открывать", но у шахматистов свои тараканы, Паша Хомицкий тоже одно время пытался все и сразу видеть.


 
Игорь Шевченко ©   (2009-05-25 01:17) [77]

DVM ©   (25.05.09 01:12) [75]

Тут один момент есть - bdsproj обычно никто, кроме среды, не читает и не пишет. Я достаточно регулярно меняю вручную - при каких-то условиях bdsproj для пакета упорно желает вставлять свою личную VersionInfo, что мне совершенно излишне и приводит к  ошибкам компиляции. Это единственный момент, когда я открываю bdsproj, как текст.
Я к чему - не читают его обычно глазами...А EXEшнику гораздо проще знать, файл, который он будет читать, можно стандартно провалидировать, он допускает расширение для будущих версий так, что предыдущие версии не сломаются при чтении, и т.п.


 
Кто б сомневался ©   (2009-05-25 01:21) [78]


> > И игрушках параметры хранятся в ini. Дык все продвинутые
>
> > юзеры лезут туда.
>
> Из этого делается вывод - XML - нечитабелен.


Мягко говоря. Очень трудно читать его.


 
DVM ©   (2009-05-25 01:22) [79]


> А EXEшнику гораздо проще знать, файл, который он будет читать,
>  можно стандартно провалидировать

Вот здесь я согласен.


 
KilkennyCat ©   (2009-05-25 01:24) [80]


> огромное количество раз встречается <Compiler Name="...">.
> ..</Compiler>.


<Compiler>
    <Compiler Name="A">8</Compiler>
</Compiler>

я бы так создал
<Compiler>
    <A value="8"></A>
</Compiler>

Тем самым избежав возможной ошибки закрывающего тэга



Страницы: 1 2 3 4 вся ветка

Форум: "Прочее";
Текущий архив: 2009.08.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.68 MB
Время: 0.017 c
15-1244547469
ТИМА
2009-06-09 15:37
2009.08.09
Неполные уравнения


8-1196410194
аа
2007-11-30 11:09
2009.08.09
формы


1-1211103643
kas
2008-05-18 13:40
2009.08.09
Импорт MDIChild форм из DLL


15-1244814956
easy
2009-06-12 17:55
2009.08.09
Клиент для местного чата под linux


15-1244481707
Gydvin
2009-06-08 21:21
2009.08.09
глюки при умножении





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский