關於我的其他問題:XML deserialize null elements?XML,這是什麼:null或空元素?
我得從API測試第三方服務器這樣的元素:
<Taxable />
<DefaultPurchasePrice />
我才意識到,現在我困惑自己是否喜歡的元素代表空對象或空。
談到對象,它們是相同的,空對象通常意味着空對象引用權?但試圖將XML元素映射到數據字段/值,它們可能不同,即空字符串爲空字符串,但對於Decimal價格或布爾值,它們未定義,其等於空,但不會爲空,除非它們已定義作爲可空。
同樣,我的XmlSerializer的問題是,不會處理傳遞一個空的元素。我可以在我的代碼中輕鬆解決這個問題。還是我應該問人們提供的XML有一個定義良好的XML?因爲看起來像這樣一個空的XML元素是未定義的:它在這裏,但可以爲null或空對XML元素本身無關緊要?但是對於那個元素,我的代碼需要弄清楚如何處理這個問題,除非我將所有C#類的數據字段設置爲字符串類型。否則,如果我的代碼嘗試直接將空或空XML元素映射到某個數據字段,它肯定會失敗。
我必須問這個問題,因爲我遇到的XML有很多這些元素 和那些特殊元素,我的.NET XML序列化代碼需要將這些字段映射爲字符串,如果字符串不是空的,我將它們分成記者數據類型,否則我將它們設置爲null。在我進行反序列化之前,我最終刪除了這些空元素,因爲它更容易。但我真的在流浪:「我在我的代碼中究竟做了什麼?」我剛剛刪除了空元素還是空元素?因爲它們明顯不同!但是編寫XML的人認爲它們是相同的,因爲XML本身沒有「空」,而有些人的觀念認爲,這是我的責任,以決定是否爲空或空的,但XML也使您能夠represent 'null' elements in a clearer way
編輯:
在我給出的例子,這兩個因素顯然應該是null而不是空元素XML實際上沒有null的概念,但是這些元素可以被省略(如果它們爲null,不要將它們放入XML中)或者使用更好的表示方式,如@svick或者在其他情況下爲空元素應該在有意義時使用。但不適用於十進制或布爾值。
空元素標記是有效的XML。你如何解釋,無效,無論什麼,這完全取決於你。 – fpmurphy1
@fmurphy:這應該是一個答案...我會upvote它 –
@fpmurphy,所以它是一個空的元素呢? –