当前位置: 首页 > news >正文

JAXB的XmlValue注解

  • XmlValue注解用在Java属性、或者方法上。它可以使得映射到XML Schema中的Java类具有一个simpleContent 或者simpleType。

  • 一个Java类中最多只能有一个属性被XmlValue注解。

  • 如果被XmlValue注解的JavaBean属性是Java类中唯一映射到XML的成员,那么该Java类将会被映射为XML Schema中的simpleType。
    例如,下面的Java类Price 中只有成员value被映射到XML,并且使用了XmlValue注解:

package com.thb;import jakarta.xml.bind.annotation.XmlType;
import jakarta.xml.bind.annotation.XmlValue;@XmlType(name = "", propOrder = {"value"})
public class Price {@XmlValuepublic String value;
}

生成的XML Schema中,类被映射为simpleType:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:simpleType name="price"><xs:restriction base="xs:string"/></xs:simpleType>
</xs:schema>
  • 如果除了被XmlValue注解的JavaBean属性以外,Java类还有其它的属性被映射为XML中的属性,那么该Java类将会被映射为XML Schema中的complexType,并且在complexType元素下面包含一个simpleContent。
    例如,下面的Java类Price 中属性value使用了XmlValue注解,此外,属性currency使用了XmlAttribute注解(会被映射到XML中的属性):
package com.thb;import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;
import jakarta.xml.bind.annotation.XmlValue;@XmlRootElement
@XmlType(name = "", propOrder = {"value", "currency"})
public class Price {@XmlValuepublic String value;@XmlAttributepublic String currency;
}

生成的XML Schema中,类被映射为complexType,并且它下面包含一个simpleContent:

<?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="price"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="currency" type="xs:string"/></xs:extension></xs:simpleContent></xs:complexType></xs:element>
</xs:schema>
http://www.lryc.cn/news/246088.html

相关文章:

  • Git版本管理(05) git仓库迁移(保留原来记录分支体系)
  • 科技与教育:未来教育的新趋势
  • E云管家微信群聊机器人开发
  • CVE-2023-27524:Apache Superset未授权访问漏洞复现
  • 机器学习——多元线性回归升维
  • [C/C++]用堆实现TopK算法
  • 3D点云目标检测:VoxelNex解读(带源码/未完)
  • 【Docker】从零开始:11.Harbor搭建企业镜像仓库
  • 使用conan包 - 工作流程
  • 【LeeCode】59.螺旋矩阵II
  • rsyslog学习
  • Navicat 技术指引 | GaussDB服务器对象的创建/设计(编辑)
  • 有哪些可信的SSL证书颁发机构?
  • MidJourney笔记(4)-settings
  • 前端开发学习 (三) 列表功能
  • win11渗透武器库,囊括所有渗透工具
  • 13-21-普通数组、矩阵
  • 代码随想录算法训练营第四十六天【动态规划part08】 | 139.单词拆分、背包总结
  • go语言基础 break和contine区别
  • vue3父子组件通过$parent与ref通信
  • PHP中的常见的超全局变量
  • leetcode9.回文数
  • springboot(ssm大学生二手电子产品交易平台 跳蚤市场系统Java(codeLW)
  • 关于微信小程序中如何实现数据可视化-echarts动态渲染
  • 在Windows WSL (Linux的Windows子系统)上运行的Ubuntu如何更改主机名
  • 如何使用内网穿透将Tomcat网页发布到公共互联网上【内网穿透】
  • 网络入门---网络的大致了解
  • 构建沉浸式 AI 文本编辑器:开源 3B 编辑器的设计原则与思路
  • 【从删库到跑路 | MySQL总结篇】表的增删查改(进阶上)
  • [每周一更]-(第74期):Docker-compose 部署Jenkins容器-英文版及错误纠错