如何将Document对象转换为Input Source?

时间:2011-10-11 13:53:51

标签: java xml xerces jdom

我正在动态创建XML文档对象。我需要针对Schema进行验证。我正在使用xerces 2.我已经为解析器设置了功能。现在我需要解析以验证XML。

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

任何人都可以提供帮助。

最诚挚的问候,

3 个答案:

答案 0 :(得分:1)

ByteArrayOutputStream docOutputStream = new ByteArrayOutputStream();
((XmlDocument)domDocument).write(docOutputStream);
ByteArrayInputStream docInputStream = new
ByteArrayInputStream(docOutputStream.toByteArray());
InputSource inputSource = new InputSource(docInputStream);
parser.parse(inputSource);

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

你应该能够:

  • 根据您的架构资源创建一个javax.xml.validation.Schema实例。
  • 从架构实例
  • 创建javax.xml.validation.Validator
  • 使用验证器和javax.xml.transfrom.dom.DOMSource验证您的DOM文档