2011-09-24 103 views
1

雖然有大量有關XML文檔結構的文檔,但是非常少的鏈接指向應如何管理非文本數據(例如整數和小數,布爾值)。
是否有統一的標準?能告訴我一個好的起點嗎?
POST SCRIPT
我添加了一個示例,因爲問題實際上太泛泛。XML數據類型規範

我定義文檔結構:

<rectangle> 
    <width>12.45</width> 
    <height>23.34</heigth> 
    <rounded_corners>true</rounded_corners> 
</rectangle> 

由於我使用DOM的API是面向文本數據。假設docDocument的一個實例。 doc.createTextNode("takes a string")。那就是:API不會強迫某個特定的rapresentation。
因此出現兩個問題:
1)將bolean true保存爲'true'而不是uhm,1/0是標準嗎?
2)我必須定義簡單的方法,寫和解析這個字符串表示。例。我可以使用Java包裝要做到這一點的轉換:

Float f = 23.34; 
doc.createTextNode(f.toString()); 

,但它堅持以十進制數字XML標準?如果是這樣,我可以說非java程序可以讀取這些數據,因爲數據表示是xml。
爲什麼不是jaxb
這只是一個例子,我的xml是由一個大數據樹組成的,我只需要編寫和讀取它的一小部分,所以JAXB似乎不太適合。綁定架構傾向於在xml結構和類結構之間建立緊密的共生關係。像moxy這樣的好實現可以讓你放鬆這種耦合,但是有些情況下這兩種結構根本不匹配。在這些情況下,用於適應它們的DTO比使用DOM更有用。

+1

你看着XML Schema語言的標準,這有助於一個定義和約束的結構相關的XML?通過了解這一點,我想我更多地瞭解了XML文檔結構。谷歌搜索充斥着它的教程;如果你還沒有這樣做,請考慮一下。 –

回答

1

您可以利用javax.xml.bind.DatatypeConverter類簡單的Java類型轉換爲符合XML Schema規範的字符串:

Float f = 23.34f; 
doc.createTextNode(DatatypeConverter.printFloat(f)); 
2

當然,有幾十個與核心XML相關的官方標準。一些重要的類型:

  1. XML schema 1.1 overview
  2. XML schema 1.1 - datatypes ('XSD')
  3. XML schema 1.1 - structures
  4. Core XML overview
  5. XML 1.0
  6. XML 1.1

而且specificat離子像XPath,XQuery可在www.w3.org/standards/xml/。當您用java標記此問題時,您可能也對JAXB感興趣,它定義了將XML映射到Java的標準方法,反之亦然。

+0

我只是對全面的數據類型NOT文檔結構規範感興趣。我已經定義了DOM結構,所以我現在關心的是用哪種格式將整數,小數值,布爾值等保存到元素中。 – AgostinoX

+1

那麼XML模式數據類型應該告訴你?你需要從Java到XML的映射嗎?看看http://www.w3.org/TR/xmlschema11-2/#built-in-primitive-datatypes – home

+0

編輯的問題更清楚 – AgostinoX