XML配置中的XML验证解析XMLSchema代码:最佳实践? (Java)
问题描述:
我必须解析XML配置文件。我决定用XMLSchema进行基本验证,以避免大量的样板代码进行验证。由于解析类应该为自己工作,我想知道:“我怎样才能验证传入的XML文件与XMLSchema没有XMLSchema存储在光盘可以由第三方修改?”我知道我可以从任意的InputStream中加载XMLSchema,但Schema本身必须存储在某个地方。 (将Schema放在一个巨大的String对象中听起来像是一个非常糟糕的主意)有人已经这样做了吗?什么是这种情况下的最佳解决方案?XML配置中的XML验证解析XMLSchema代码:最佳实践? (Java)
祝您有个美好的一周!
答
我会将它放在您的部署旁边适当的类。使用
ClassLoader.getResourceAsStream()
加载它如果你真的担心有人修改此架构,为什么不能在一个.jar文件部署,然后sign .jar文件?这样你就可以确保没有人会篡改它,并且你不必依靠第三方基础设施,远程存储它等。
答
把它放在公共网站上。
答
可以将它粘在数据库中。我知道Oracle对XMLSchemas有某种支持。
Karl
如果你采取这种方法,你还应该考虑通过HTTPS连接以排除进一步的篡改或欺骗。这同样适用于您的模式导入的任何模式。 – DavidValeri 2009-06-08 12:02:40