【发布时间】:2017-03-18 20:34:45
【问题描述】:
简介:我正在从事一个项目,其中我有多个文件,这些文件代表我系统中特定资源(例如人)的配置文件(模型)。这些配置文件可以存储为 XML 和 JSON,它们用于验证作为另一个 XML 或 JSON 文件的特定资源(人)。因此,每个包含个人数据的文件都需要根据包含特定于该人的约束的配置文件进行验证。例如,个人资料可以指定该人不能有两个以上的联系选项(电话和电子邮件)。
问题:有多个系统拥有一个人的个人资料。如果我想从另一个系统中获取有关某人的数据,我需要先获取该人的个人资料,并检查我个人资料中的约束是否与其他系统中的个人资料兼容。这些配置文件每个都在 500 到 5000 行之间,我不知道我是否从其他系统获得了 XML 或 JSON。所以我需要编写一个算法,可以尽可能快地将我从其他系统获得的配置文件与我系统中的配置文件进行比较(无论格式如何),并且如果配置文件约束不匹配给用户一些选项可供选择。
问题:如果约束不兼容,我如何编写一个算法来找出两个配置文件之间的差异并为用户提供合并它们的选项。该算法也有一些限制:
- 需要计算差异并在相对较短的时间内显示选项。如果可能的话,我正在考虑不到 15-20 秒。一些配置文件大约有 5000 行,并且会检查不匹配的约束。
- 该算法需要用 C# 编写为类库,以便每个开发人员都可以在他的系统中使用它。
- 我读过 NoSql 数据库适用于 XML 和 JSON 等格式。因此,如果使用类库无法实现时间限制,我可以制作一个 Web 应用程序,用户可以在其中比较配置文件并合并它们。如果这是一个可行的解决方案,该应用可以将配置文件存储在 NoSQL 数据库中并对其进行操作。
- 应该维护一个算法
到目前为止我所知道的: 有像 XmlDiff 和类这样的库可以处理 xml 文件,但我还需要计算 json 文件。我知道也有 json 文件的类,但我不想编写和维护两个类库。我应该将 json 转换为 xml 还是反之亦然?我应该开始研究 NoSQL 吗?这对算法有什么帮助?
如果有人之前遇到过或知道如何以有效的方式计算 xml 和 json 文件,我需要一些起点和想法。
【问题讨论】: