首页 文章

Jaxb @XmlAttribute

提问于
浏览
2

我有以下问题 . 我无法读取每一行的属性样式 . 我创建了一个包含“linea”和“style”的类,但是如果它是正确的则不是 .

这是要阅读的Xml .

<aviso id="20642227720571316020140523421272">
        <titulo>
                <linea style="12">Etiquetado</linea>
        </titulo>
        <informacion>
                <linea style="13">MONTAR CAJA TIPO: (3) - Caja grande</linea>
                <linea style="14">PEGAR MATRICULA: M142849863</linea>
        </informacion>
        <instrucciones>
                <linea style="15">EMISION DE ETIQUETA EN CURSO...</linea>
        </instrucciones>
</aviso>

这是通用的类java

public class TextosMensaje {

    private String linea;
    private String style;

    public TextosMensaje() {
    }

    @XmlElement(name = "linea")
    public String getLinea() {
        return linea;
    }

    public void setLinea(String linea) {
        this.linea = linea;
    }


    @XmlAttribute(name="style")
    public String getStyle() {
        return style;
    }

    public void setStyle(String style) {
        this.style = style;
    }

}

这是我认为列表的java类 .

@XmlRootElement(name = "aviso")
public class Aviso {

    private String id;

    private List<TextosMensaje> tituloList;
    private List<TextosMensaje> informacionList;
    private List<TextosMensaje> instruccionesList;

    public Aviso() {
    }

    @XmlAttribute(name = "id")
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @XmlElementWrapper(name = "titulo")
    @XmlElement(name = "linea")
    public List<TextosMensaje> getTituloList() {
        return tituloList;
    }

    public void setTituloList(List<TextosMensaje> tituloList) {
        this.tituloList = tituloList;
    }

    @XmlElementWrapper(name = "informacion")
    @XmlElement(name = "linea")
    public List<TextosMensaje> getInformacionList() {
        return informacionList;
    }

    public void setInformacionList(List<TextosMensaje> informacionList) {
        this.informacionList = informacionList;
    }

    @XmlElementWrapper(name = "instrucciones")
    @XmlElement(name = "linea")
    public List<TextosMensaje> getInstruccionesList() {
        return instruccionesList;
    }

    public void setInstruccionesList(List<TextosMensaje> instruccionesList) {
        this.instruccionesList = instruccionesList;
    }

}

谢谢 .

1 回答

  • 1

    在您的用例中, linea 元素对应于具有简单内容的复杂类型 . 因此,您应该使用 linea 属性上的 @XmlValue 注释按如下方式注释您的类 .

    public class TextosMensaje {
    
        private String linea;
        private String style;
    
        public TextosMensaje() {
        }
    
        @XmlValue
        public String getLinea() {
            return linea;
        }
    
        public void setLinea(String linea) {
            this.linea = linea;
        }
    
    
        @XmlAttribute
        public String getStyle() {
            return style;
        }
    
        public void setStyle(String style) {
            this.style = style;
        }
    
    }
    

    For More Information

    我在博客上写了更多关于这个用例的文章:

相关问题