xml - 为了验证而不是我们的 XML 来构建自己的 XML 模式是个好主意吗?

标签 xml xsd

我们正在开发价格比较服务。我们正在从 50 多家商店导入大量数据。每个商店通常使用不同的 XML 格式来描述他们的报价。

不幸的是,有时特定商店会忘记通知我们其 XML 中引入的更改。这当然会导致问题,甚至更糟...有时特定商店会在 XML 中引入新字段(我们要求),却忘记通知我们它已准备就绪。

为每个商店的 XML 构建我们自己的 XML 模式,并在每次更新期间根据 XML 模式验证这些 XML,这是一个好主意吗?

最佳答案

需要明确的是:您要求编写 50 多个(可能是 100 个)XML 模式来控制从各个商店获取的 XML 数据,对吗?

您说得对,这(即限制 XML 内容)正是 XML Schema 本质上擅长的。这只是 XML 架构

  • 很冗长,可能需要一些时间才能正确了解微小的细节(例如,指定元素可以出现的次数或允许将哪些特定字符串作为内容)。此外,维护可能会很辛苦。
  • 主要用于固定的 XML 格式 - 这就是您首先编写架构的原因。在我看来,每 4 到 6 周定期更改一次的 XML 结构(正如您在帖子中所说)是相当动态的。

此外,如果您的 XML 数据发生结构变化,仅仅更改架构显然是不够的。每 4 周需要您关注一次的新 XML 结构的处理 - 一个百倍的企业。


总而言之,不,这是一个坏主意,因为更改的频率以及您处理的单个 XML 格式的数量。让商店标准化他们发送给您的 XML 内容可能是一场官僚主义的噩梦 - 但比处理不断变化和不可预测的 XML 结构还好。

说了这么多,让我添加另一个关键因素:XML 文档的大小。我写这个答案时假设您正在处理大型 XML 文件。然而,如果 XML 文件每个包含 3 个元素,那么架构方法再次变得更加可行。

关于xml - 为了验证而不是我们的 XML 来构建自己的 XML 模式是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21416736/

相关文章:

java - 如何使用通用类通过 maven 从 xsd 生成 JAXB

javascript - 使用 JavaScript 从架构生成 XML

java - 为什么元素创建需要 DOM 中的文档对象?

android - Imageview 变得模糊

java - 如何从 XSL 输出缩进中排除某些元素?

xml - XML 的 XSL 转换 - 简单的 .NET 示例?

java - 在 Java 中动态读取原始 XML 元素作为文本

c# - 如何解析 XSD 以从 <xsd :simpleType> elements using C#? 获取信息

xml - msdata :Ordinal in an XSD? 的目的到底是什么

spring - 为什么 Spring Integration 有多种 XML 模式,我应该使用哪一种?