我需要使用xml文件插入,删除和更新数据。我听说过像xpath,XStream或JDOM这样的方法。我不知道除了这个方法的名称之外什么用于像数据库这样的xml。哪一个更容易学习?
答案 0 :(得分:3)
数据库和XML是相当不同的野兽。 XML是一种以文档为中心的顺序文件格式,即如果不将整个文件写回磁盘,则无法更新XML文件。另一方面,数据库允许有效地插入,更新和删除单个记录而不触及任何其他记录。
使用XML文件实现“数据库”时无法实现该属性,因此如果您拥有非常重要的数据并且一次只更新几条记录,则此方法效率非常低。
也就是说,从XML映射数据和向XML映射数据的一种相对简单的方法是JAXB。一个起点可能是 Chapter 17 of the Java EE 5 Tutorial。您可能不需要架构,只需使用JAXB注释注释要写入/读取XML的类。
答案 1 :(得分:0)
我不确定XML会成为一个好的“数据库”。 XML是分层的;关系数据库是基于集合的。
XML XPath与SQL DQL不同。
您是否正在尝试复制LINQ抽象数据来源的想法?
答案 2 :(得分:0)
这在很大程度上取决于您希望如何处理更新的持久性。如果数据足够小,您可以考虑将整个数据从内存写回磁盘,那么您可以使用类似DOM的方法(即将整个XML存储在内存中),也许使用支持XQuery和Saxon等处理器。 XQuery针对内存中的XML进行更新。但这只是一个“非常有限的数据库”:它没有为您提供事务,锁定,恢复,原子性或人们与数据库关联的任何管理功能,更不用说处理大数据量的可扩展性了。如果您想要一个真实的数据库,请选择一个XML数据库,如eXist(开源)或MarkLogic(商业)。