2009-12-23 73 views
3

如何將XML中的字符串作爲布爾值和「true」/「false」來表示true/false?XML false vs(string)false

例如,

<problem>false</problem> 
<problem>problem_name</problem> 

或者是否有更好的方法來做到這一點?

回答

1

它是一種常見的不成文的規定,在XML,我們應該用一個布爾值,說:「真」和「假」

你可以看看這裏的更多信息: http://www.w3.org/TR/xmlschema-2/#boolean

+4

該規則看起來寫給我。 – 2009-12-23 18:36:24

+1

所以我誇大說這個規則是不成文的... – kokosing 2009-12-23 19:52:06

2

你想區分「真正的」布爾和「真」與「假」的文本?

嗯 - 某個屬性可能對您有幫助 - 例如IsActive。 「文本」:

<problem>false</problem> 

對於布爾:

<problem IsActive="false"></problem> 
0

根據規範,您可以使用文字值真,假,1,0,但你應該只真或假的使用。

克里斯

「3.2.2布爾

[定義:]布爾具有·值空間所需·支持二進制值邏輯的數學概念:{TRUE,FALSE} 3.2 .2.1詞彙表示

被定義爲·布爾數據類型的實例·可具有以下法律文字{TRUE,FALSE,1,0}。 3.2.2.2規範表示

布爾型的規範表示形式是文字集{true,false}。「

+0

規範在http://www.w3.org/TR/xmlschema-2/#boolean – 2009-12-23 09:55:03

+0

一個不需要使用'xs:boolean'但是,對於布爾值。雖然這當然有很好的理由,但它有不同的做法 - 例如, XSLT一致地使用'yes'和'no',並且可以在模式中定義相應的枚舉。 – 2009-12-23 18:59:00

1

如果您使用模式將元素的類型定義爲字符串,則使用該模式解釋元素內容的任何內容都將正確地將false解釋爲字符串。

如果您沒有使用架構,並且進程必須根據其表示猜測某個內容的類型,那麼您將遇到問題。您必須爲流程提供一些消除歧義的方法,例如指示內容的數據類型的屬性或用引號將不明確的文字值包含在引號中(即字符串"false",布爾值false)。你在這裏採取的任何方法都將是非標準的和不可移植的。

+0

你能提供一些示例代碼嗎? – steven 2009-12-24 04:45:43

+0

我不知道從哪裏開始。查看數據類型是如何在ADO.NET數據集的.NET XML表示中實現的,以獲得功能完備的真實世界示例。 – 2009-12-24 09:29:12

相關問題