Как преобразовать источник с недопустимыми символами XML - PullRequest
0 голосов
/ 05 октября 2010

Я работаю над случаем, когда мне нужно очистить недопустимые символы XML, полученные от веб-службы SharePoint.Я знаю, что исправление источника является правильным решением, однако об этой проблеме было сообщено еще в 2008 году, и я еще не обнаружил, что Microsoft выпустила исправление для него.

Пока я звоню в ИнтернетСервис с использованием интерфейса провайдера от JAX-WS.Я получаю Source с возвращенным XML просто отлично, но я застрял, пытаясь найти способ преобразовать источник в действительный XML DOM.

Я получаю исключение, жаловавшееся на недопустимый символ XML каждый раз, когда я пытаюсьчто-то вроде следующего псевдокода:

public void xmlTranform(javax.xml.transform.Source source) {
     StreamResult sr = new StreamResult(new java.io.StringWriter());
     Transformer tf = TransformerFactory.newInstance().newTransformer();
     tf.transform(source, sr);
     ...

Можно ли создать собственный FilterReader и вставить его в Преобразование?

Или я могу настроить Marshaller, может быть?

Как лучше всего внедрить код в преобразование, чтобы отфильтровать эти недопустимые символы?

1 Ответ

1 голос
/ 10 ноября 2010

Чтобы ответить на мой собственный вопрос - я вообще отказался от JAX.

JAX-WS прекрасно работает, когда получающее SOAP-сообщение строго следует стандартам.Но мне еще предстоит найти способ заставить его обрабатывать сообщения SOAP, которые не соответствуют стандарту (см. «Сообщения Microsoft SOAP»).Я пошел с прямым кодом POJO, в котором решение этой проблемы довольно тривиально.

Br Jan

...