Форум: "Прочее";
Текущий архив: 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.67 MB
Время: 0.008 c