2017-02-08 21 views
1

У меня есть один .wsdl файл, который intereact с XSD-файлом сгенерировать пакеты и класс на основе структуры, определенной в XSD-файлЧтобы удалить ненужное пространство из XML

и после этого, если я ударил запрос WebService из sopUI, которые содержат нежелательное пространство. Теперь я хочу, чтобы урезать это пространство, демаршаллизации для этого я нашел одно решение How to configure JAXB so it trims whitespaces by default

Но я хочу генерировать package-info.java файл автоматически или предложить какое-либо решение.

ответ

0

У меня была такая же проблема вчера.

Лучшим решением является использование

@XmlJavaTypeAdapter (CollapsedStringAdapter.class)

. Это существующий встроенный адаптер, который может помочь вам обрезать содержимое CDATA.

, например, Давайте этот XML

<books> 
    <book> 
     <name><![CDATA[ <br> Harry Potter </br> 
     ]]></name> 

    </book> 
</books> 

Для этого, вы бы иметь класс Java.

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "books") 
public class Books { 

    @XmlValue 
    protected String name; 
    ...... 
} 

Вы должны добавить, что адаптер прямо над именем переменной, в которой CDATA часть включена.

@XmlValue 
@XmlJavaTypeAdapter(CollapsedStringAdapter.class) 
protected String name; 

Тогда IDE попросит вас импортировать необходимые библиотечные файлы

import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; 
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; 

это так. Надеюсь, это поможет вам :).