JAXB @XmlValue и @XmlElements - PullRequest
       0

JAXB @XmlValue и @XmlElements

0 голосов
/ 29 ноября 2018

Возможно ли иметь элемент JAXB, который отображает со значением и элементами?

Я пытаюсь отобразить что-то вроде:

<thing>
    <otherthing></otherthing>
    This is some text
</thing>

Это, вероятно, даже недопустимый XMLНо, к сожалению, то, что я пытаюсь сделать, требует этого и не является обязательным.

Наличие значения и элементов дает IllegalAnnotationExceptions.

1 Ответ

0 голосов
/ 29 ноября 2018

То, что вы показали, является полностью допустимым XML.Элемент имеет text() и element потомков, известных как смешанное содержимое .

Используйте аннотацию @XmlMixed JAXB вместо @XmlValue, чтобы указатьчто элемент имеет смешанное содержимое.

import java.util.*;
import javax.xml.bind.annotation.*;

@XmlRootElement
public class Thing {

  private List<Object> mixedContent = new ArrayList<Object>();

  @XmlElementRef(name="thing", type=Thing.class)
  @XmlMixed
  public List<Object> getMixedContent() {
    return mixedContent;
  }

  public void setMixedContent(List<Object> mixedContent) {
     this.mixedContent = mixedContent;
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...