我目前正在开发一个应用程序(Java),并找到了解决问题的最佳方法。 我需要将数据存储在mongoDB中(支持bson格式时使用实际数据类型),我获取的数据来自一个xml文件和它的模式(两者都是在运行时动态创建的,所以我不知道里面有什么)。
更具体地说,我没有任何关于数据字段和名称的信息。 用户可以动态创建新的“对象”(在应用程序中没有java类),当用户创建一个新对象时,我会收到描述该对象的xml模式。 因此,当用户尝试添加此类型的对象(数据以xml格式存储为新实体)时,我会使用xml模式进行验证,现在我需要将对象存储在mogoDB中。 因此,我需要能够将我的xml转换为bson(或使用mongo java驱动程序的基本java对象),并在查询后将其转换回xml。
例如:
如果用户想要管理人员,他将定义人员模式:
<People>
<Name>...</Name>
<Lastname>...</Lastname>
<Age>...</age>
...
</People>
这里我有一个包含所有信息的有效xsd格式。当用户添加一个人时,我会获取以下数据:
<People>
<Name>John</Name>
<Lastname>Smith</Lastname>
<Age>32</Age>
...
</People>
我在想最好的方法是像Jackson一样:XML -> POJO -> BSON,或者使用XSLT将XML -> JSON/BSON(包括数据类型编码)。或者简单地通过手动读取XML文件和基本Java对象来实现。
有没有人对如何实现这些解决方案或更好的解决方案有建议?