真的有办法在 Android 上验证 XML 文档吗?
我阅读了 Stack Overflow、Android Developers 和其他许多网站上有关验证 XML 文件的所有帖子(针对 DTD 或 XSD,这并不重要),但所提出的解决方案都没有真正起作用。当我尝试显示的代码时:
http://developer.android .com/reference/javax/xml/validation/package-summary.html
我收到一个异常,指出不支持 XMLConstants.W3C_XML_SCHEMA_NS_URI
。我读到这与 JAXP 库上的一个错误有关,该错误应该在 Java 1.6 中修复,但事实上,它尚未修复。
以前有人这样做过吗? SAXParser 是验证 XML 文件的唯一方法吗?
此致, 哈比
I've read every thread on Stack Overflow, Android Developers, and other many sites about validating XML files (against a DTD or a XSD, it doesn't matter), and none of the solutions proposed really work. When I try the code shown at:
http://developer.android.com/reference/javax/xml/validation/package-summary.html
I get an Exception saying that the XMLConstants.W3C_XML_SCHEMA_NS_URI
is not supported. I read this has something to do with a bug on the JAXP library that should be fixed in Java 1.6, but in fact, it hasn't been fixed yet.
Has anyone done this before? Is a SAXParser the only way to validate an XML file?
Best regards,
Xabi
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我让 Xerces-for-Android 为我工作。我也遇到了同样的问题,网上几乎没有任何有用的参考资料...所以希望以下内容能够给您足够的帮助:)
我使用的总体思路:
Android 确实支持一些我们可以使用的包,我根据以下内容创建了 xml 验证实用程序: http://docs.oracle.com/javase/1.5.0/docs/api/javax/xml/validation/package-summary.html
我的初始沙箱使用java进行测试非常顺利,然后我尝试将其移植到Dalvik,发现我的代码不起作用。有些东西与 Dalvik 的支持不同,所以我做了一些修改。
我找到了对 android 的 xerces 的引用,因此我修改了我的沙箱测试(以下不适用于 android,此后的示例适用):
上面的代码必须修改一些才能工作与 xerces for android (http://gc.codehum.com/p/xerces-for -android/)。你需要SVN来获取项目,以下是一些crib笔记:
用上面的jar(最终我会把它打成jar,直接复制到我的源中以便快速测试。如果你也想这样做,你可以使用 Ant 快速制作 jar (http://ant.apache.org/manual/using.html )),我能够获得以下内容来进行 xml 验证:
一些附注:
为了创建文件,我制作了一个简单的文件实用程序来将字符串写入文件:
I还需要写入我有权访问的区域,所以我使用了:
有点黑客,它有效。我确信有一种更简洁的方法可以做到这一点,但是我想我会分享我的成功,因为我没有找到任何好的例子。
I got Xerces-for-Android to work for me. I had the same problem with little to no useful references on the web... so hopefully the following gives you enough :)
The general idea I used:
Android does support some packages which we can use, I created my xml validation utility based on: http://docs.oracle.com/javase/1.5.0/docs/api/javax/xml/validation/package-summary.html
My initial sandbox testing was pretty smooth with java, then I tried to port it over to Dalvik and found that my code did not work. Some things just aren't supported the same with Dalvik, so I made some modifications.
I found a reference to xerces for android, so I modified my sandbox test of (the following doesn't work with android, the example after this does):
The above code had to be modified some to work with xerces for android (http://gc.codehum.com/p/xerces-for-android/). You need SVN to get the project, the following are some crib notes:
With the above jar (Eventually I'll make it into a jar, just copied it directly into my source for quick testing. If you wish to do the same, you can making the jar quickly with Ant (http://ant.apache.org/manual/using.html)), I was able to get the following to work for my xml validation:
Some Side Notes:
For creating the files, I made a simple file utility to write string to files:
I also needed to write to an area that I had access to, so I made use of:
A little hackish, it works. I'm sure there is a more succinct way of doing this, however I figured I'd share my success, as there weren't any good examples that I found.
Simple Java Serializer 项目 具有 API 来处理这种针对模式的验证。还有 SVG 的 DOM 解析器 和 拉取 RSS 解析器。
The Simple Java Serializer project has APIs to handle this kind of validation against a schema. There are also DOM parsers for SVG and pull parsers for RSS.