java - 如何使用 Jaxb 将 xml 转换为 Java 类?

标签 java xml jaxb xml-attribute

我知道这里有很多关于它的内容,但我无法完成特定的结构:

<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;
}

这就是我开始编写代码的方式,但我对如何正确构建它感到非常困惑。如何处理没有数据而只有属性的标签?以及包含相同标签列表的标签?有一些类似于我需要的例子吗?感谢您的帮助!

最佳答案

理想情况下,您应该拥有此 XML 的 xsd 架构。如果没有,请为此 XML 创建一个。然后使用该 xsd 模式,您可以从命令行使用 java 的 xjc 实用程序生成 java 类。

关于java - 如何使用 Jaxb 将 xml 转换为 Java 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56957148/

相关文章:

java - 如何使用 ScheduledExecutorService 重新安排任务?

java - 使用SearchView到ListView进行搜索(关于JSON)

SQL Server 将 xml 值读取为空字符串

java - 如何根据其运行时类型制作 JAXB Marshaller 编码抽象类?

java - JAXB 编码到 XML - 模式验证失败时有没有办法处理它?

java - 如何在 Java 9 中创建没有外部库的 XML 文件?

java - 如何知道 Android Java 中网页的最后修改日期和时间

java - 设置 ImageView 位置 - Android

XML 模式导致没有 namespace 的 xml 元素

c# - Linq 性能解析 XML 文件