2011-09-24 63 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