2009-06-12 43 views
0

我必须用Java编写一个小型Web应用程序,以XML形式向用户显示XML内容。然后用户可以修改表单条目并将更改保存到XML中。什么是编写修改XML的Web应用程序的标准方法

我想知道

  • 的是编写这样的应用标准的方式吗?我的意思是我应该手动编写代码来将XML解析为Java对象,显示在网页上,然后将更改重写回XML?或者是否有任何可以使这些步骤自动化的标准工具?

  • 如果多个用户试图更新相同的XML,我该如何管理锁定?

顺便说一下,如果它提供了一个简单的低功耗解决方案,我可以使用任何语言/框架。

此工具旨在供生产支持工程师用于修改特定于生产的配置XML。

回答

1

从来没有写过自己的XML解析器。

是的,Java(即JSP)具有用于加载和保存XML文件的内置库。

编写代码生成HTML表单,使用XML元素信息填充代码,从客户机取回POST形式,并将其写回到更新的XML文件中,这一切都非常简单,但它会是一个很多工作,特别是如果表格复杂的话。

锁定是一个问题:网络连接是无状态的。穷人的解决方案:在编辑时重命名XML文件(比如1.xml到1.xml.checkedout)。保存后重命名它。将表单的文件名传回服务器,以便您的服务器端代码知道要写入哪个文件并重新命名。不利的一面是放弃网页的用户会留下更名后的屠杀。

在服务器端,PHP,JSP,ASP.NET,Perl和Python对于这个应用程序都会很好。这一切都与你感觉最舒适的工作有关。

请记住,由于您没有将XML存储在数据库中,Web服务器将需要编写访问文字XML文件。

0

我们最近在c#中做过类似的项目,但其原理应该是一样的。自从我们在表中对文件进行版本控制后,我们并没有真正遇到与冲突管理相同的问题,然后在用户覆盖其数据时向用户提供了合并功能。

当我们决定使用xslt将xml转换为xhtml表单时,问题变得更加容易。根据xml的复杂性(以及结果形式),这可能会相对较快地完成。然后,您可以在一行中执行变换(在大多数语言中)。

使这项工作如此出色的原因是我们可以使用表单元素名称属性来传递我们试图更新的每个节点的xpath(在xslt中获取这个非常简单)。然后,我们会直接参考正在更新的数据。验证用户输入后,您也可以用几行更新xml。

它最终成为一个精美优雅的解决方案(只是xml,xslt和xquery的设计目的)。最好的部分是它可以很好地转换为任何具有相对较好的xml工具的语言。这种方法还可以很容易地向表单添加功能或为数据提供备用视图。

相关问题