XmlElement注解用在Java的列表属性上产生的效果

例如,下面的代码,XmlElement注解用在了Conditions类的conditionList属性的getter方法上,其中conditionList是一个列表类型:

复制代码
package com.thb;

import java.util.List;

import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;
import jakarta.xml.bind.annotation.XmlValue;

// 映射到xml中的conditions元素
@XmlRootElement(name = "conditions")
@XmlType(propOrder = {"conditionList"})
public class Conditions {

    /**
     * 查询条件列表
     */
    private List<Conditions.Condition> conditionList;

    @XmlElement(name = "condition")
    public List<Conditions.Condition> getconditionList(){
        return this.conditionList;
    }

    public void setCondition( List<Conditions.Condition> conditionList) {
        this.conditionList = conditionList;
    }


    @XmlType(propOrder = {"value"})
    public static class Condition {

        private String value;
        /**
         * 属性名称
         */
        private String name;
        /**
         * 属性类型
         */
        private String type;

        /**
         * 获取value的值
         */
        @XmlValue
        public String getValue() {
            return this.value;
        }

        /**
         * 给value赋值
         * @param value
         */
        public void setValue(String value) {
            this.value = value;
        }

        /**
         * 获取name的值
         */
        @XmlAttribute(name = "name")
        public String getName() {
            return this.name;
        }

        /**
         * 给name赋值
         * @param name
         */
        public void setName(String name) {
            this.name = name;
        }

        /**
         * 获取type的值
         */
        @XmlAttribute(name = "type")
        public String getType() {
            return this.type;
        }

        /**
         * 给type赋值
         * @param type
         */
        public void setType(String type) {
            this.type = type;
        }
    }
}

产生的XML Schema如下:

复制代码
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="conditions" type="conditions"/>

  <xs:complexType name="conditions">
    <xs:sequence>
      <xs:element name="condition" type="condition" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="condition">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="name" type="xs:string"/>
        <xs:attribute name="type" type="xs:string"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:schema>
相关推荐
云和数据.ChenGuang2 小时前
Python 重写(Override)深度解析:从 MRO 到 super() 的完整机制
java·开发语言·人工智能·python·langchain·1024程序员节
摇滚侠2 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
silvamux_4 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
步行cgn5 小时前
StringHttpMessageConverter 详解:Spring MVC 中字符串读写的默认转换器
java·spring·mvc
摇滚侠5 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 11
java·笔记·python
小蒜学长5 小时前
基于Spring Boot+Vue3的在线医疗咨询系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·在线问诊·在线医疗咨询系统
Deng桑5 小时前
SpringAI写第一个Agent-把工单循环跑起来
java·agent·工具调用·spring ai
步行cgn7 小时前
@ResponseBody 详解:Spring MVC 中把返回值直接写入响应体
java·spring·mvc
jason成都8 小时前
RTKLIB 的 Java 移植版来了:rtklib-java v3.3.0 功能全景
java·gnss·rtklib·rtklib_java
LazyHunter98 小时前
JDK 28:Java 下一步方向解析与新特性展望
java·jdk