简介:我正在开展一个项目,我的项目中有多个文件,代表系统中特定资源(例如某人)的配置文件(模型)。这些配置文件可以存储为XML和JSON,它们用于验证作为另一个XML或JSON文件的特定资源(人员)。因此,包含有关某人的数据的每个文件都需要针对包含特定于该人的约束的配置文件进行验证。例如,个人资料可以指定该人不能拥有更多这两个联系人选项(电话和电子邮件)。
问题:有多个系统包含有关某人的个人资料。如果我想从另一个系统获取有关某个人的数据,我需要先获取该人员的个人资料,然后检查我的个人资料中的约束是否与其他系统中的个人资料兼容。这些配置文件各有500到5000行,我不知道是否从其他系统获得XML或JSON。所以我需要编写一个算法,可以将我从其他系统获得的配置文件与我系统中的配置文件尽可能快地进行比较(无论格式如何),并且如果配置文件约束不匹配则给用户一些选项可供选择。
问题:如何编写可以找到两个配置文件之间差异的算法,并在用户不相容的情况下为用户提供合并选项的选项。算法也存在一些限制因素:
到目前为止我所知道的:有像XmlDiff这样的库和用于处理xml文件的类,但我还需要计算json文件。我知道json文件也有类,但我不想编写和维护两个类库。我应该将json转换为xml,反之亦然?我应该开始研究NoSQL吗?这对算法有什么帮助?
我需要一些起点和想法,如果有人以前遇到过或知道有效地计算xml和json文件。
答案 0 :(得分:1)
您需要找到其中一种格式的规范化形式。我会使用JSON,beucase感觉问题较少(在XML中,一旦使用元素和使用属性编写,就可以在语义上具有相同的信息)。但是选择权归你所有,两者都会有很多规范化库。
现在假设我为XML做了这个 - > JSON
其他可能性是将两种表示转换为地图(因为两种格式都是有效的地图)并比较地图。
NoSql不会帮助你,它可能只是为你做一些转换魔术......但它就像使用一个SQL数据库进行整数 - >日期转换(因为有一个功能)...