лучший подход для отображения HTML XML в POJO - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь настроить схему сопоставления для HTML-файла HTML, я действительно ищу совет. Я новичок в демаршалинге XML-контента. для меня это выглядит так, как будто мне нужен класс для каждого раздела. Я надеюсь, что есть лучший способ. Мой файл выглядит так. Я только начинаю пытаться понять, как решить эту проблему, и у меня кружится голова :). Я смотрю на класс для HEAD, класс для HEADRTR, класс для FDE и класс для разделов MM. но, кажется, это станет неуклюжим и громоздким, имея много карт списков. реальный пример машин сгенерированных сообщений о состоянии. ??? Спасибо вам за ваши предложения. Необходимые части - это содержимое раздела HEAD, содержимое раздела HEADRTR и содержимое разделов FDE и MM.

A   008812111835040016XXXXXXXXXX
<RTR>
<HEAD>
<IDCMS pn="ABF31A6FNCL0004" vers="4.0"/>
<DA>2018/12/11 00:15:42</DA>
<ACD MSN="0160" tail="N504DN" type="A350-900"/>
<TID>C00000023</TID>
</HEAD>
<HEADRTR>
<FROM>ZSPD</FROM>
<TO>KLAX</TO>
<FNBR>DAL88     </FNBR>
</HEADRTR>
<ITD>
<CB>A</CB>
<FDE disp="n" dm="y">
<MC>3031H050</MC>
<MD>A-ICE // &gt; A-ICE SIDESLIP PROBE 2 HEATG</MD>
<DA>2018/12/11 00:12:42</DA>
<CDA>2018/12/11 00:14:17</CDA>
<FPH>8</FPH>
<LAB>1</LAB>
</FDE>
<MM fo="A" occ="5">
<MC>3413F7EV</MC>
<MD>PROBE-SSA,2(11FP2)</MD>
<DA>2018/12/11 00:08:43</DA>
<ATA>3413</ATA>
<FPH>8</FPH>
<FCL>1</FCL>
<PRIO>high</PRIO>
<STA>1</STA>
<SYS name="ADR2" bite_id="3" side="2"/>
</MM>
</ITD>
</RTR>

вот начало, начальник класса, интересно, можете ли вы сказать мне, иду ли я по правильному пути. это / правильный способ сделать атрибуты и элементы?

@XmlRootElement( name = "HEAD" )
@XmlAccessorType(XmlAccessType.FIELD)
public class Head {

String pn;
String vers;
String da;
String msn;
String tail;
String type;
String tid;

public String getPn() {
    return pn;
}
public String getVers() {
    return vers;
}
public String getDa() {
    return da;
}
public String getMsn() {
    return msn;
}
public String getTail() {
    return tail;
}
public String getType() {
    return type;
}
public String getTid() {
    return tid;
}

@XmlAttribute(name="pn")
public void setPn(String pn) {
    this.pn = pn;
}
@XmlAttribute(name="vers")
public void setVers(String vers) {
    this.vers = vers;
}
@@XmlElement(name="da")
public void setDa(String da) {
    this.da = da;
}
@XmlAttribute(name="msn")
public void setMsn(String msn) {
    this.pn = pn;
}
@XmlAttribute(name="tail")
public void setTail(String tail) {
    this.tail = tail;
}
@XmlAttribute(name="type")
public void setPn(String type) {
    this.type = type;
}
@XmlElement(name="tid")
public void setDa(String tid) {
    this.tid = tid;
}

}

1 Ответ

0 голосов
/ 09 января 2019

Не совсем, ваша модель слишком плоская для представленной структуры.

<HEAD>
    <IDCMS pn="ABF31A6FNCL0004" vers="4.0"/>
    <DA>2018/12/11 00:15:42</DA>
    <ACD MSN="0160" tail="N504DN" type="A350-900"/>
    <TID>C00000023</TID>
</HEAD>

Каждый дочерний элемент должен определить свои собственные дочерние элементы и / или атрибуты:

@XmlRootElement(name = "HEAD")
public class Head { 
    @XmlElement(name = "IDCMS") private Idcms idcms;
    @XmlElement(name = "DA") private String da;
    @XmlElement(name = "ACD") private Acd acd;
    @XmlElement(name = "TID") private String tid;
    ... getters/setters
}

public class Idcms { 
    @XmlAttribute(name = "pn") private String pn;
    @XmlAttribute(name = "vers") private String vers;
    ... getters/setters
}

public class Acd {
    @XmlAttribute(name = "MSN") private String msn;
    @XmlAttribute(name = "tail") private String tail;
    @XmlAttribute(name = "type") private String type;
    ... getters/setters
}
...