我看到這個XML:歧義XML結構
<amount type="downpayment"></amount>
我不知道爲什麼沒有做這樣的:
<amount>
<type>downpayment</type>
</amount>
1.Is有什麼特別的原因或意味着它爲什麼寫在方法1而不是2?
2.如何將這兩個XML轉換爲POJO?會有什麼區別。
3.any不能使用XML的保留字嗎?
我看到這個XML:歧義XML結構
<amount type="downpayment"></amount>
我不知道爲什麼沒有做這樣的:
<amount>
<type>downpayment</type>
</amount>
1.Is有什麼特別的原因或意味着它爲什麼寫在方法1而不是2?
2.如何將這兩個XML轉換爲POJO?會有什麼區別。
3.any不能使用XML的保留字嗎?
第一個是XML Attribute
,第二個是XML Child Element
。以下是一些鏈接,其談論他們的比較:
在有很多可以明確有用於一個對象的屬性屬性的情況下,和孩子包含對象的元素。
一個例子就是「文檔樣式」的XML應用程序,比如XHTML。在:
<p class="warning"><a href="/helpAccountExpire">Your account has expired</a></p>
然後p
和a
之間的關係是,前者表示文檔元素,後者是的一部分,而class
給出關於的p
和href
約a
性質的更多信息。
這也是有道理的非「文件式」的應用:
<list presorted="true">
<item>4</item><item>7</item><item>23</item>
</list>
這裏list
包含數字4,7和23,而presorted
屬性告訴使用列表已經排序(並因此如果我們需要排序,我們可以放棄自行排序的代價)。
有很多情況下可以合理使用,個人喜好通常會影響XML應用程序的設計。當然,任何不能用簡單的字符串或可能超過可能的值的地方(在你的例子中,在你的問題中,amount
在第一種情況下只能有零個或一個type
,但可以有任何數字第二個。
如何將它翻譯成POJO取決於翻譯的內容,您必須指定。
至於保留字,任一種元素或屬性的名稱可以與匹配任何字符開始:
":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
和名稱的剩餘部分可以是相匹配的,或者也任何字符:
"-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
請注意,這包含一些Unicode非字符,雖然沒有被XML標準禁止,但不能在XML中,因爲XML是基於Unicode構建的,所以它們在實踐中也被禁止。
有進一步的規則開頭xml
名在任何資本(XML
,xMl
等)保留在像XML本身,XML命名空間,等等(xml:space
,xml:lang
,xmlns
核心XML技術的使用和xmlns:
前綴這是正在使用的例子)。
(這是XML1.0,XML1.1的規則略有不同,可以說明一些奇怪的情況,但大多隻是真正需要這些澄清規則的人才需要)。
使用XML名稱空間的應用程序進一步限制了上述內容,名稱中只能有一個冒號(:
),在這種情況下,左邊的部分是標識所使用名稱空間的名稱空間前綴(或默認命名空間,如果沒有的話)和右邊的位(或者如果在默認namespaec中是整個事物)是本地名稱。暗示,這禁止用冒號開始一個名字。
即使您沒有使用名稱空間,遵循這些限制也是一個好主意,以便您可以與所使用的技術兼容。
+1對於很好的解釋。 –
好的,在兩種方法之間翻譯成POJO時有什麼區別嗎? –
這將取決於你使用什麼將XML文檔中包含的數據轉換成Java對象模型。 –