有無可能統一Software的Configuration file format?

今日突然諗到,有無可能編一個Configuration file standard,例如用Valid XML document,去為大部分(或所有?)Software設定參數?

我有咁既諗法係因為當我Config. Samba file server及vsFTPd的時候,我實在唔係好知有咩Attributes係一定要、有咩Attributes最好加、Attribute的Value要點表達等。

當然我係應該去睇Doc.,查清楚所有Attribute的資料,但係會唔會太徙時間?

我諗個Format可以係咁:
  1. <?xml version="1.0"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <configuration>
  5.         <description>
  6.                 This is a configuration file for software ABC.
  7.         </description>
  8.         <required>
  9.                 <attribute>
  10.                         <name>ConfigAttribOne</name>
  11.                         <info>This is first attribute</info>
  12.                         <value>123</value>
  13.                 </attribute>
  14.                 <attribute>
  15.                         <name>ConfigAttribTwo</name>
  16.                         <info>This is second attribute</info>
  17.                         <value>ABC</value>
  18.                 </attribute>
  19.         </required>
  20.         <optional>
  21.                 <attribute>
  22.                         <name>ConfigAttribThree</name>
  23.                         <info>This is third attribute</info>
  24.                         <value>XYZ123</value>
  25.                         <active>true</active>
  26.                 </attribute>
  27.                 <attribute>
  28.                         <name>ConfigAttribFour</name>
  29.                         <info>This is forth attribute</info>
  30.                         <value>Hello</value>
  31.                         <active>false</active>
  32.                 </attribute>
  33.         </optional>
  34. </configuration>
複製代碼
可能個File會變得好長好大,但係會一目了然知道果個Attribute係做D乜、Value、是否生效。有左類似既Standard,Programmer更可以利用OS上一D common的Library/ Program(如Linux的grep呢D,即係好普遍會有的工具,我唔係好識表達)去幫自己個Software讀Configuration file。

Wiki有講Configuration file:
http://en.wikipedia.org/wiki/Configuration_file
下面有堆Links,同我上面講既野好似差唔多。

巴打們有咩意見?會唔會出面已經有一套Standard做緊?或者我個諗法有好多地方Implement起上黎會好麻煩/ 做唔到?

info 可以分返開... 連 info 都放埋落同一個 xml 度, 咪仲大過 Windows 既 Registry?

TOP

回覆 2# 的帖子

噢,我原意係有個Short description。

不過格式就可以慢慢執既,我主要想問其實個Idea如何?

順便問一問,其實Microsoft suggest application放Configuration落Registry定Program file個Folder入面的*.ini?

響Bing search「windows application configuration」,第一個Result:
http://msdn.microsoft.com/en-us/library/aa374182(VS.85).aspx
又係XML file放Config.~

[ 本帖最後由 GraphiteCube 於 2009-6-13 02:19 編輯 ]

TOP

唔係話潑冷水…
不過你咁既 xml 同現時大多數用的格式對機器黎講係無分別…
但對人黎講…你個 xml 真係增加唔少負擔…

的確是有不少 software 是用 xml 當 config file
例如 apache 的 tomcat
不過改 apache 的 tomcat 也的確要按多很多鍵才改到…
  1. # This is first attribute
  2. ConfigAttribOne = 123

  3. #This is second attribute
  4. ConfigAttribTwo = ABC

  5. # This is third attribute
  6. ConfigAttribThree = XYZ123

  7. # This is forth attribute
  8. # commented out because not active
  9. # ConfigAttribFour = Hello
複製代碼
我唔否認你的問題「實在唔係好知有咩Attributes係一定要、有咩Attributes最好加、Attribute的Value要點表達等」是存在…
但 xml 對解決你的問題又幫到多少呢?
又試想像一下像 apache, smb, squid 等 config 用這種 xml 型式…那我想本來就上萬行的 config 變大數倍了…那時侯跟本不是讓人看的了…

[ 本帖最後由 閒魂 於 2009-6-13 05:33 編輯 ]

TOP

原帖由 閒魂 於 2009-6-13 05:33 發表
不過你咁既 xml 同現時大多數用的格式對機器黎講係無分別…


用xml, 對寫gui / automatic 改 settings, 係方便好多.

不過呢個係open source world, 唔係個個跟你咁樣.
而且有d embedded system, 根本放唔落一個xml library.

TOP

For end user,跟本唔需要理會 config file 點寫,
幾靚的 XML 不如寫一個好點的 GUI/API。

TOP

唔好理做唔做到先

好多人 (包括我) 都覺得用 XML 做 configurarion 好弱智

TOP

不如 .... 改埋個 kernel 既 configuration file 做 XML
(急逃~)

TOP

原帖由 lazyfai 於 2009-6-13 11:25 發表
For end user,跟本唔需要理會 config file 點寫,
幾靚的 XML 不如寫一個好點的 GUI/API。


同意

TOP

回覆 7# 的帖子

點弱智法?

原意係俾Program可以統一咁用某個Tool去讀Config.。

用普通Text-editor去改XML file係煩又真既。

TOP