【问题标题】:Parse xml with yearly changing XSD使用每年更改的 XSD 解析 xml
【发布时间】:2020-05-13 14:09:20
【问题描述】:

对不起,这个神秘的标题。
我正在将一个 .NET Framework C# 应用程序重写为 .NET Core,该应用程序的主要目的是读取我们从第 3 方获得的 XML 文件并将其保存在我们的数据库中。一个基本的 ETL 过程。

这个第 3 方每年都会发布一个新的 XSD,其中有几个(大部分是微小的)更改。应用程序需要处理每年的 XML 文件。
解析此 XML 的最佳方法是什么?由于结构可能不同,我们手动创建了类,并为节点解析 XML 节点,并在解析之前检查该节点是否存在。
每年我们都会对新的 XSD 进行比较,并添加新属性并使不再需要的属性可以为空。当然,我们还需要调整节点解析。

因为我现在要为 .NET Core 重写所有内容,所以我想知道这种方法是否是最好的方法。
也许有人可以提出其他建议?

【问题讨论】:

    标签: c# xml xsd


    【解决方案1】:

    当模式小、简单且稳定时,数据绑定(将 XML 结构映射到面向对象的编程语言中的类)是一种很好的技术。当模式变得庞大、复杂或多变时,它会变成一种绝对的痛苦,正如您所发现的那样。此时,最好使用通用模型(如 DOM)或面向 XML 的编程语言(如 XSLT 或 XQuery)。

    【讨论】:

    • 感谢您的意见。我担心一个简单的解决方案行不通;)我将首先使用最新的 XSD 生成类,然后手动添加来自其他 XSD 的属性。我将继续按节点解析 XML。
    猜你喜欢
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2016-02-10
    • 2019-11-30
    • 2020-08-17
    相关资源
    最近更新 更多