0

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

В настоящее время я вызываю веб-службу, используя интерфейс поставщика от JAX-WS. Я получаю Источник с возвращенным 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 и вставить его в трансформации?

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

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

ответ

1

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

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

Br Jan

Смежные вопросы