В плане лаконичности и читабельности
YAML чудо, а не формат. Ниже одна и та же информация в
XML:
<?xml version="1.0" encoding="utf-8"?>
<GS:GEDEMIN_FILES VERSION="1.0"
xmlns:GS="http://gsbelarus.com/gedemin_files">
<GS:DIRECTORY>
<GS:NAME>INTL</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
</GS:DIRECTORY>
<GS:DIRECTORY>
<GS:NAME>UDF</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
</GS:DIRECTORY>
<GS:DIRECTORY>
<GS:NAME>HELP</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
</GS:DIRECTORY>
<GS:FILE>
<GS:NAME>gudf.dll</GS:NAME>
<GS:PATH>UDF</GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>101888</GS:SIZE>
<GS:DATE>2012-11-19T18:05:06</GS:DATE>
<GS:VERSION>2.5.0.0</GS:VERSION>
</GS:FILE>
<GS:FILE>
<GS:NAME>fbintl.conf</GS:NAME>
<GS:PATH>INTL</GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>6758</GS:SIZE>
<GS:DATE>2010-07-22T14:51:12</GS:DATE>
</GS:FILE>
<GS:FILE>
<GS:NAME>fbintl.dll</GS:NAME>
<GS:PATH>INTL</GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>909312</GS:SIZE>
<GS:DATE>2011-03-23T07:47:08</GS:DATE>
<GS:VERSION>2.5.1.26242</GS:VERSION>
</GS:FILE>
<GS:FILE>
<GS:NAME>fr24rus.chm</GS:NAME>
<GS:PATH>HELP</GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>792209</GS:SIZE>
<GS:DATE>2002-09-14T14:44:22</GS:DATE>
</GS:FILE>
<GS:FILE>
<GS:NAME>vbs55.chm</GS:NAME>
<GS:PATH>HELP</GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>492103</GS:SIZE>
<GS:DATE>2000-06-21T15:51:00</GS:DATE>
</GS:FILE>
<GS:FILE>
<GS:NAME>gedemin.exe</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>19511296</GS:SIZE>
<GS:DATE>2012-12-11T14:01:06</GS:DATE>
<GS:VERSION>2.5.17.7594</GS:VERSION>
</GS:FILE>
<GS:FILE>
<GS:NAME>fbembed.dll</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>3772416</GS:SIZE>
<GS:DATE>2011-03-23T07:47:02</GS:DATE>
<GS:VERSION>2.5.1.26242</GS:VERSION>
</GS:FILE>
<GS:FILE>
<GS:NAME>firebird.msg</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>148556</GS:SIZE>
<GS:DATE>2011-03-23T07:43:38</GS:DATE>
</GS:FILE>
<GS:FILE>
<GS:NAME>ib_util.dll</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>7680</GS:SIZE>
<GS:DATE>2011-03-23T07:46:02</GS:DATE>
<GS:VERSION>2.5.1.26242</GS:VERSION>
</GS:FILE>
<GS:FILE>
<GS:NAME>icudt30.dll</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>1568768</GS:SIZE>
<GS:DATE>2010-07-23T09:03:42</GS:DATE>
<GS:VERSION>3.0.0.0</GS:VERSION>
</GS:FILE>
<GS:FILE>
<GS:NAME>icuin30.dll</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>417792</GS:SIZE>
<GS:DATE>2010-07-22T15:38:46</GS:DATE>
<GS:VERSION>3.0.0.0</GS:VERSION>
</GS:FILE>
<GS:FILE>
<GS:NAME>icuuc30.dll</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>675840</GS:SIZE>
<GS:DATE>2010-07-22T15:38:36</GS:DATE>
<GS:VERSION>3.0.0.0</GS:VERSION>
</GS:FILE>
<GS:FILE>
<GS:NAME>midas.dll</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>444928</GS:SIZE>
<GS:DATE>2010-11-04T00:55:00</GS:DATE>
<GS:VERSION>15.0.3953.35171</GS:VERSION>
</GS:FILE>
<GS:FILE>
<GS:NAME>midas.sxs.manifest</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>1002</GS:SIZE>
<GS:DATE>2010-11-21T19:06:48</GS:DATE>
</GS:FILE>
<GS:FILE>
<GS:NAME>msvcp80.dll</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>554832</GS:SIZE>
<GS:DATE>2009-07-12T08:55:22</GS:DATE>
<GS:VERSION>8.0.50727.4053</GS:VERSION>
</GS:FILE>
<GS:FILE>
<GS:NAME>msvcr80.dll</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>632656</GS:SIZE>
<GS:DATE>2009-07-12T08:55:50</GS:DATE>
<GS:VERSION>8.0.50727.4053</GS:VERSION>
</GS:FILE>
<GS:FILE>
<GS:NAME>Microsoft.VC80.CRT.manifest</GS:NAME>
<GS:PATH></GS:PATH>
<GS:EXISTS>true</GS:EXISTS>
<GS:FLAGS>AlwaysOverwrite</GS:FLAGS>
<GS:SIZE>1870</GS:SIZE>
<GS:DATE>2009-07-12T02:10:18</GS:DATE>
</GS:FILE>
</GS:GEDEMIN_FILES>
и в
YAML:
Version: 1
Items:
-
Type : Directory
Name : INTL
Exists : True
Flags : AlwaysOverwrite
-
Type : Directory
Name : UDF
Exists : True
Flags : AlwaysOverwrite
-
Type : Directory
Name : HELP
Exists : True
Flags : AlwaysOverwrite
-
Type : File
Name : gudf.dll
Path : UDF
Exists : True
Flags : AlwaysOverwrite
Size : 101888
Date : 2012-11-19 18:05:06Z
Version: 2.5.0.0
-
Type : File
Name : fbintl.conf
Path : INTL
Exists : True
Flags : AlwaysOverwrite
Size : 6758
Date : 2010-07-22 14:51:12Z
-
Type : File
Name : fbintl.dll
Path : INTL
Exists : True
Flags : AlwaysOverwrite
Size : 909312
Date : 2011-03-23 07:47:08Z
Version: 2.5.1.26242
-
Type : File
Name : fr24rus.chm
Path : HELP
Exists : True
Flags : AlwaysOverwrite
Size : 792209
Date : 2002-09-14 14:44:22Z
-
Type : File
Name : vbs55.chm
Path : HELP
Exists : True
Flags : AlwaysOverwrite
Size : 492103
Date : 2000-06-21 15:51:00Z
-
Type : File
Name : gedemin.exe
Exists : True
Flags : AlwaysOverwrite
Size : 19511296
Date : 2012-12-11 14:01:06Z
Version: 2.5.17.7594
-
Type : File
Name : fbembed.dll
Exists : True
Flags : AlwaysOverwrite
Size : 3772416
Date : 2011-03-23 07:47:02Z
Version: 2.5.1.26242
-
Type : File
Name : firebird.msg
Exists : True
Flags : AlwaysOverwrite
Size : 148556
Date : 2011-03-23 07:43:38Z
-
Type : File
Name : ib_util.dll
Exists : True
Flags : AlwaysOverwrite
Size : 7680
Date : 2011-03-23 07:46:02Z
Version: 2.5.1.26242
-
Type : File
Name : icudt30.dll
Exists : True
Flags : AlwaysOverwrite
Size : 1568768
Date : 2010-07-23 09:03:42Z
Version: 3.0.0.0
-
Type : File
Name : icuin30.dll
Exists : True
Flags : AlwaysOverwrite
Size : 417792
Date : 2010-07-22 15:38:46Z
Version: 3.0.0.0
-
Type : File
Name : icuuc30.dll
Exists : True
Flags : AlwaysOverwrite
Size : 675840
Date : 2010-07-22 15:38:36Z
Version: 3.0.0.0
-
Type : File
Name : midas.dll
Exists : True
Flags : AlwaysOverwrite
Size : 444928
Date : 2010-11-04 00:55:00Z
Version: 15.0.3953.35171
-
Type : File
Name : midas.sxs.manifest
Exists : True
Flags : AlwaysOverwrite
Size : 1002
Date : 2010-11-21 19:06:48Z
-
Type : File
Name : msvcp80.dll
Exists : True
Flags : AlwaysOverwrite
Size : 554832
Date : 2009-07-12 08:55:22Z
Version: 8.0.50727.4053
-
Type : File
Name : msvcr80.dll
Exists : True
Flags : AlwaysOverwrite
Size : 632656
Date : 2009-07-12 08:55:50Z
Version: 8.0.50727.4053
-
Type : File
Name : Microsoft.VC80.CRT.manifest
Exists : True
Flags : AlwaysOverwrite
Size : 1870
Date : 2009-07-12 02:10:18Z
2 комментария:
Ради справедливости нужно сказать, что XML может быть и таким:
<Directory Name="UDF" Exists="True" Flags="AlwaysOverwrite"/>
<Directory Name="HELP" Exists="True" Flags="AlwaysOverwrite"/>
<File Name="gudf.dll" Path="UDF" Exists="True"/>
Может. Вот только использование атрибутов имеет несколько серьезных недостатков. Чтобы не повторяться:
http://www.w3schools.com/dtd/dtd_el_vs_attr.asp
Отправить комментарий