我们正在开发价格比较服务。我们正在从 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/