Как конвертировать XML в класс Java с помощью Jaxb? - PullRequest
0 голосов
/ 09 июля 2019

Я знаю, что здесь много информации об этом, но я не в состоянии выполнить конкретную задачу:

<ECG
ACQUISITION_TIME="20190625101706"
ACQUISITION_TIME_XML="2019-06-25T10:17:06"
ROOM=""
LOCATION="AMB"
COMMENT="ANDRESA"
AGE="45"
AGE_UNITS="Y"
HEIGHT="164"
HEIGHT_UNITS="C"
WEIGHT="85"
WEIGHT_UNITS="K"
NUM_QRS="10"
AVERAGE_RR="1013"
VENT_RATE="59"
TECHNICIAN=""
SYSTOLIC_BP="000"
DIASTOLIC_BP="000"
SEQUENCE_NUMBER="17617">

<DEMOGRAPHIC_FIELDS>
<DEMOGRAPHIC_FIELD ID="2" LABEL="Solic.:" VALUE="172001" UNITS="" />
<DEMOGRAPHIC_FIELD ID="7" LABEL="Nome:" VALUE="PAC TEST2" UNITS="" />
<DEMOGRAPHIC_FIELD ID="1" LABEL="Sobre:" VALUE="SOBROME2" UNITS="" />
<DEMOGRAPHIC_FIELD ID="26" LABEL="Prontuário" VALUE="SMO" UNITS="" />
<DEMOGRAPHIC_FIELD ID="4" LABEL="Sexo:" VALUE="Female" UNITS="" />
<DEMOGRAPHIC_FIELD ID="3" LABEL="" VALUE="45" UNITS="Y" />
<DEMOGRAPHIC_FIELD ID="9" LABEL="Alt:" VALUE="164" UNITS="C" />
<DEMOGRAPHIC_FIELD ID="10" LABEL="Peso:" VALUE="85" UNITS="K" />
<DEMOGRAPHIC_FIELD ID="14" LABEL="Local:" VALUE="AMB" UNITS="" />
<DEMOGRAPHIC_FIELD ID="17" LABEL="Obs.:" VALUE="ANDRESA" UNITS="" />
</DEMOGRAPHIC_FIELDS>

<SITE ID="1"/>

<SUBJECT
LAST_NAME="SOBRENOME2"
FIRST_NAME="PACIENTE TESTE2"
GENDER="Female"
ID="11402872001"
DOB="00000000"
DOB_XML="0000-00-00"/>

</ECG>

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

@XmlRootElement(name = "ECG")
@XmlAccessorType(XmlAccessType.FIELD)
public class MortaraXml implements Serializable {

  @XmlElement(name = "DEMOGRAPHIC_FIELDS")
  private List<MortaraXmlDemographicField> demographicField;

  @XmlElement(name = "SITE")
  private String site;

  @XmlElement(name = "SUBJECT")
  private String subject;
}

@XmlRootElement(name = "DEMOGRAPHIC_FIELD")
@XmlAccessorType(XmlAccessType.FIELD)
public class MortaraXmlDemographicField implements Serializable {

  @XmlAttribute(name = "ID")
  private String id;

  @XmlAttribute(name = "LABEL")
  private String label;

  @XmlAttribute(name = "VALUE")
  private String value;

  @XmlAttribute(name = "UNITS")
  private String units;
}

Так я начал писать свой код, но я не совсем понимаю, как правильно это структурировать. Как обрабатывать теги без данных, а только с атрибутами? И теги, которые содержат список того же тега? Есть ли пример, похожий на то, что мне нужно? Спасибо за любую помощь!

1 Ответ

1 голос
/ 09 июля 2019

В идеале у вас должна быть схема xsd для этого XML.Если не создать один для этого XML.И затем, используя эту схему xsd, вы можете сгенерировать класс java с помощью утилиты xjc из java из командной строки.

...