1

我正在动态创建一个 XML 文档对象。我需要根据 Schema 验证它。我正在使用 xerces 2。我为解析器设置了功能。现在我需要解析以验证 XML。

为此,我需要调用“parser.parse()”。但是 parse() 方法将“InputSource”作为参数。但我有 Document 对象。如何将此 Document 对象转换为“InputSource”以将其传递给 parse() 方法。

任何人都可以帮忙。

最好的祝福,

4

3 回答 3

1
ByteArrayOutputStream docOutputStream = new ByteArrayOutputStream();
((XmlDocument)domDocument).write(docOutputStream);
ByteArrayInputStream docInputStream = new
ByteArrayInputStream(docOutputStream.toByteArray());
InputSource inputSource = new InputSource(docInputStream);
parser.parse(inputSource);
于 2011-10-11T14:22:03.267 回答
0

请参阅此问题以将 Document 转换为 InputStream:how to create an InputStream from a Document or Node

然后使用InputSource(java.io.InputStream byteStream)用 InputSource包装它。

于 2011-10-11T14:14:38.993 回答
0

你应该能够做到这一点:

  • 根据您的模式资源创建 javax.xml.validation.Schema 实例。
  • 从模式实例创建 javax.xml.validation.Validator
  • 使用验证器和 javax.xml.transfrom.dom.DOMSource 验证您的 DOM 文档
于 2011-10-11T14:21:11.737 回答