• 在Java代码中指定用JAXB的XmlElement注解的元素的顺序


    例如,下面的类RegisterResponse 使用了XmlRootElement注解,同时也使用XmlType注解,并用XmlType注解的propOrder属性,指定了两个用XmlElement注解的元素出现的顺序,先出现flag,后出现enterpriseId(在xml中的元素名称是body):

    package com.thb.server.register;
    
    import jakarta.xml.bind.annotation.XmlElement;
    import jakarta.xml.bind.annotation.XmlRootElement;
    import jakarta.xml.bind.annotation.XmlType;
    
    /**
     * 该类映射到http响应的xml
     * @author thb
     *
     */
    //使用了JAXB注解,映射到xml中的response元素
    @XmlRootElement(name = "response")
    @XmlType(propOrder = {"flag", "enterpriseId"})
    public class RegisterResponse {
        private String flag;
        private String enterpriseId;
    
        public RegisterResponse() {}
    
        //使用了JAXB注解,映射到xml中的flag元素
        @XmlElement(name = "flag", required = true)
        public String getFlag() {
            return this.flag;
        }
    
        public void setFlag(String flag) {
            this.flag = flag;
        }
    
        //使用了JAXB注解,映射到xml中的body元素
        @XmlElement(name = "body", required = true)
        public String getEnterpriseId() {
            return this.enterpriseId;
        }
    
        public void setEnterpriseId(String enterpriseId) {
            this.enterpriseId = enterpriseId;
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    生成XML schema,显示顺序是flag在前,body在后:
    在这里插入图片描述
    在这里插入图片描述

    用Postman发送http请求,得到的响应是flag在前,body在后:
    在这里插入图片描述

    作为对比,如果上面的类不使用XmlType注解,即变为下面这样:

    @XmlRootElement(name = "response")
    public class RegisterResponse {
    ...
    
    • 1
    • 2
    • 3

    生成XML schema,是body在前,flag在后:
    在这里插入图片描述
    在这里插入图片描述

    用Postman发送http请求,得到的响应是是body在前,flag在后:
    在这里插入图片描述

  • 相关阅读:
    JavaScript-内置对象
    Jenkins + 云效 前后端项目自动化部署
    蓝桥杯每日一题2023.11.6
    备战数学建模1——MATLAB矩阵相关
    在Android中以ActivityResultLauncher方式进行页面跳转、传递参数、拍照或选择文件,以及调用系统应用打开各种类型的指定文件
    SourceTree 使用技巧
    LeetCode 1704. 判断字符串的两半是否相似
    微前端原理解析
    tiup mirror clone
    你的Linux进阶之旅,终点是何处?
  • 原文地址:https://blog.csdn.net/panghuangang/article/details/134493195