Десериализуйте определенные XML-теги как есть

#java #xml #deserialization #jackson-dataformat-xml

Вопрос:

Я использую FasterXML для десериализации XMLS, и мне нужно десериализовать определенный XML-тег как есть. В частности, абзац p может содержать ноль или более гиперссылок u .

См. Модульный тест ниже:

   @Test
  public void itDeserializeUAsString() throws IOException {
    final XmlMapper xmlMapper = new XmlMapper();
    // GIVEN
    String inputXml = "<p>Hello <u href="www.google.com">world</u></p>!";

    // WHEN
    final Paragraph actual = xmlMapper.readValue(inputXml, Paragraph.class);

    //THEN
    Assertions.assertThat(actual.getValue()).isEqualTo("Hello <u href="www.google.com">world</>");
  }
 

Ниже компонента java:

 @Immutable
@MyStyle
@JsonIgnoreProperties(ignoreUnknown = true)
@JacksonXmlRootElement(localName = "p")
public interface ParagraphIF {
  @JacksonXmlText
  String getValue();
}