前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java使用JAXB对XML设置属性和属性值

Java使用JAXB对XML设置属性和属性值

原创
作者头像
高久峰
发布2023-10-12 10:05:52
4260
发布2023-10-12 10:05:52
举报
文章被收录于专栏:编程语言的世界

普通的XML结构比较简单,但是复杂的XML如下:

BASIC

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
    </soap12:Body>
</soap12:Envelope

复杂点的原因是名称带有冒号,属性也是,没有操作过JAXB是不容易上手,我来记录下实体的代码。

soap12:Envelope节点的实体类:

BASIC

代码语言:javascript
复制
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
        "body"
})
@XmlRootElement(name = "soap12:Envelope")
public class SoapEnvelope {
    @XmlElement(name = "soap12:Body")
    private SoapBody body;

    @XmlAttribute(name = "xmlns:xsi")
    private String xmlnsXsi;

    @XmlAttribute(name = "xmlns:xsd")
    private String xmlnsXsd;

    @XmlAttribute(name = "xmlns:soap12")
    private String xmlnsSoap;

    public SoapEnvelope() {
        this.xmlnsXsi = "http://www.w3.org/2001/XMLSchema-instance";
        this.xmlnsXsd = "http://www.w3.org/2001/XMLSchema";
        this.xmlnsSoap = "http://www.w3.org/2003/05/soap-envelope";
    }


    public SoapBody getBody() {
        return body;
    }

    public void setBody(SoapBody body) {
        this.body = body;
    }
}

XmlRootElement表示的意思是根节点,通过name = "soap12:Envelope"指定根节点的名称。

根节点设置子节点的说明:

BASIC

代码语言:javascript
复制
@XmlElement(name = "soap12:Body")
private SoapBody body

这里意思soap12:Envelope下面还有1个节点叫soap12:Body

根节点设置属性和属性值的说明:

BASIC

代码语言:javascript
复制
@XmlAttribute(name = "xmlns:xsi")
private String xmlnsXsi

以上代码就是通过注解说明此根节点有个属性xmlns:xsi,此属性的值等于String xmlnsXsi的值,我们可以在构造函数中对属性值进行初始化

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档