【问题标题】:Storing primitives in XML在 XML 中存储原语
【发布时间】:2018-05-05 07:16:00
【问题描述】:

我已经很久没有使用 XML 了,主要是使用 JSON 来处理序列化数据。 我正在创建一个用于 Node.js 的本土 XML 到 JSON 转换器,虽然不是那么容易,但应该是可行的。

原始类型的存储标准是什么,我能想到的只有:

<root>
  <a type="string">foobar</a>
  <b type="boolean">true</b>
  <c type="number">69</c>
</root>

没有比这更好的方法了吗?

【问题讨论】:

  • 我们有 XSD,它可以控制哪些数据类型可以在哪些元素中使用。我不明白为什么类型需要存储在 XML 本身中。似乎容易出错(boolena vs boolean vs Boolean 等)。

标签: json node.js xml primitive-types


【解决方案1】:

虽然 XML Schema 通常用于在模式中声明文档的内容和词法类型,但它还建立了 xsi:type 属性作为表达动态类型元素或属性的惯用语,以及 XML字符串、数字、日期等的架构数据类型。

为您的示例使用 XML Schema 数据类型和 xsi:type 如下所示:

<root
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <a xsi:type="xsd:string">foobar</a>
  <b xsi:type="xsd:boolean">true</b>
  <c xsi:type="xsd:unsignedInt">69</c>
</root>

【讨论】:

    猜你喜欢
    • 2015-06-15
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 2019-12-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    相关资源
    最近更新 更多