例如,下面的代码,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>