2011-04-30 26 views
0

我只是在學習編寫XML和相關的DTD,而且我想知道是否可以將某些東西合併到!ATTLIST的一行中。我可以在DTD的一行中結合使用ATTLIST功能嗎?

如:

我有一個元素weight,我想有(kg|lb)作爲選項,但設置"kg"爲默認值。這些都不是必需的,所以狀態是#IMPLIED,但我也想要默認權重爲「1」。

我可以合法地把這一切都在同一行:

<!ELEMENT weight (#PCDATA)> 
<!ATTLIST weight unit CDATA "1" (kg|lb) "kg" #IMPLIED> 

或者,我可以這樣來做:

<!ELEMENT weight (#PCDATA)> 
<!ATTLIST weight unit CDATA> 
<!ATTLIST weight unit "1" #IMPLIED> 
<!ATTLIST weight unit (kg|lb)> 
<!ATTLIST weight unit "kg" #IMPLIED> 

我懷疑與這兩個問題,我有點困惑至於我如何結合這些功能(或者如果我甚至可以) - 所以我真的很感謝有關這樣做的一些指導。

+0

不應該'「1」'是'weight'元素的默認值,而不是'unit'屬性? – 2011-04-30 03:23:57

+0

是的,它可能應該......這會更有意義,謝謝 - 雖然我看不到如何設置元素的默認值,只是一個屬性。它以同樣的方式完成嗎? – Steve 2011-04-30 05:04:19

回答

1

好吧,我得到它通過執行以下工作,雖然它可能不是「接受的做法」的方式:

<!ELEMENT weight (#PCDATA)> 
<!ATTLIST weight qty CDATA "1"> 
<!ATTLIST weight unit CDATA (kg|lb) "kg"> 

我不得不出來打破值到它自己的屬性(這是有道理的現在我想一想),並刪除#IMPLIED,因爲我在某處通過設置默認值來讀取它的默認值。

希望這會幫助別人(假設它做正確的方式)

乾杯

+0

您的瀏覽器是否在您的文檔中呈現'「]>」'字符?你是如何解決這個問題的? – zur4ik 2013-08-03 17:28:14

+0

對不起,我不記得細節 - 這是我在2年前在uni做的事情。從內存中,我不是在瀏覽器中呈現文檔 - 它只是一個XML文件,用於存儲我作爲作業一部分編寫的Java程序的數據。 – Steve 2013-08-05 23:42:59

相關問題