Как преобразовать объект Document в Input Source? - PullRequest
1 голос
/ 11 октября 2011

У меня есть объективность документа XML, созданная на лету.Мне нужно проверить это по схеме.Я использую xerces 2. Я установил функции для синтаксического анализатора. Теперь мне нужно проанализировать, чтобы проверить XML.

Для этого мне нужно вызвать "parser.parse ()".Но метод parse () принимает «InputSource» в качестве параметра.Но у меня есть объект Document.Как преобразовать этот объект Document в «InputSource» для передачи его методу parse ().

Может кто-нибудь помочь.

С наилучшими пожеланиями,

Ответы [ 3 ]

1 голос
/ 11 октября 2011
ByteArrayOutputStream docOutputStream = new ByteArrayOutputStream();
((XmlDocument)domDocument).write(docOutputStream);
ByteArrayInputStream docInputStream = new
ByteArrayInputStream(docOutputStream.toByteArray());
InputSource inputSource = new InputSource(docInputStream);
parser.parse(inputSource);
0 голосов
/ 11 октября 2011

Вы должны быть в состоянии к этому:

  • Создайте экземпляр javax.xml.validation.Schema на основе ресурсов схемы.
  • Создать javax.xml.validation.Validator из экземпляра схемы
  • проверка вашего документа DOM с использованием валидатора и javax.xml.transfrom.dom.DOMSource
0 голосов
/ 11 октября 2011

См. Этот вопрос для преобразования документа в InputStream: как создать InputStream из документа или узла

Затем используйте InputSource (java.io.InputStream byteStream) , чтобы обернуть это с InputSource.

...