3

我目前正在开发一个应用程序(Java),并且可以找到解决我的问题的最佳方法。我需要将数据存储在 mongoDB 中(使用 bson 格式支持时的实际数据类型),我在 xml 文件中获取数据,以及他的模式(两者都是在运行时动态创建的,所以我不知道里面有什么)。

更具体地说,我没有关于字段和数据名称的任何信息。用户可以动态地创建新的“对象”(应用程序中没有 java 类)。当用户创建一个新对象时,我会收到一个描述该对象的 xml 模式。因此,当用户尝试添加这种类型的对象(新实体的数据采用 xml 格式)时,我使用 xml 模式对其进行验证,现在我需要将对象存储在 mogoDB 中。所以我需要能够在bson(或带有mongo java驱动程序的基本java对象)中转换我的xml,并在查询后转换回xml。

例子:

如果用户想要管理人员,他将定义人员模式:

<People>
   <Name>...</Name>
   <Lastname>...</Lastname>
   <Age>...</age>
   ...
</People>

在这里,我得到了 xsd(包含所有信息的有效 xsd 格式)。然后,当用户添加人员时,我会得到如下数据:

<People>
   <Name>John</Name>
   <Lastname>Smith</Lastname>
   <Age>32</Age>
   ...
</People>

所以我想知道最好的方法是像jackson:xml - > Pojo - > bson,还是使用XSLT xml - > json/bson(带有数据类型编码)。或者简单地通过手动读取 xml 文件和我的基本 java 对象。

有人对如何实施其中一种解决方案或更好的解决方案有一些建议吗?

4

2 回答 2

3

我相信您可以使用MongoJack神奇地将您的 XML 转换为 MongoDB 可以理解的内容(反之亦然)

于 2013-09-04T11:10:37.203 回答
2

最好的方法似乎是 XML <-> JSON 请参阅:在 Java 中将 XML 转换为 JSON 的最快方法

com.mongodb.util.JSON然后你可以使用解析和序列化去 JSON <-> BSON 。

于 2013-11-22T17:50:28.403 回答