2010-07-01 73 views
1

我有一個現有的系統,我不想改變,我想添加元數據/配置/註釋到現有的用戶對象/實體。最好的配置格式是不嚴格的語法或格式?

我不想更改模式或用戶界面,所以我打算讓用戶通過用戶通常在描述中輸入的對象的描述字段添加此元數據。事實證明,這個領域很少使用,但我仍然希望人們能夠輸入描述,然後輸入元數據。

基本上我希望解析器類似於HTML解析器,並且不是快速失敗的

我的直覺是做類似於Java屬性格式的東西,但使用正則表達式。 但是屬性文件對於表示複雜數據來說相當弱。

我應該使用現有的非故障快速格式嗎?

+0

您能說清楚「複雜」數據的含義嗎?例如,你在談論一種表示對象的簡單方法嗎? – 2010-07-01 02:48:08

+0

最多兩個地圖或對象深。即地圖的地圖。 如此簡單的名稱值對可以容納另一個名稱值對。 這是明確的嗎? – 2010-07-01 02:56:27

+0

是的,有道理(下面的評論表明你看着JSON)。 – 2010-07-01 03:25:20

回答

1

下面是標準配置格式的每個優點/缺點良好的名單:

http://www.faqs.org/docs/artu/ch05s02.html

所有這些格式被設計成用手容易地編輯。

編輯:你在評論中描述了最多需要兩層「數據層」的數據,在這種情況下,我鏈接到的頁面的最佳格式將是Windows風格的.ini格式或「Record-Jar 「格式。

+0

我認爲windows ini樣式格式是要走的路。我仍然可能必須編寫我自己的故障安全解析器,它可以通過grokking接受錯誤的輸出。 – 2010-07-01 17:42:53

0

看來你的問題並不是真正想要的東西不是嚴格的 - 相反,你想能夠分開描述和元數據。

您可能只需使用XML並在開始標記之前和關閉之後去除任何內容,然後將其呈現給解析器。或者,您可以使用任何內容,但需要在描述和元數據之間使用相當唯一的字符序列(例如,線路上的>>>METADATA<<<)。

+0

是的,我認爲,但我不想讓人們輸入XML。 我的意思是XML是針對機器的。但我同意你的分割方法,這正是我現在用正則表達式所做的。 – 2010-07-01 02:58:48

+0

即使分居,嚴格依然是一個問題。例如,我現在使用分裂技術並使用JSON的解決方案需要JSON有效......所以你最好記住不要在對象或數組末尾添加一個額外的python樣式逗號。 – 2010-07-01 03:04:00