`

JAXB中各种常见注解小结

阅读更多
在JAXB中(用于JAVA对象和xml之间的转换),经常出现各类的 @XmlElement这样的标记,
下面就来以一个例子小结下,加深学习:

import java.util.*;
import javax.xml.bind.annotation.*;
 
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {
 
    private List<String> emailAddresses;
     
    public Customer() {
        emailAddresses = new ArrayList<String>();
    }
 
    public List<String> getEmailAddresses() {
        return emailAddresses;
    }
 
    public void setEmailAddresses(List<String> emailAddresses) {
        this.emailAddresses = emailAddresses;
    }
 
}



这个是一个典型的POJO了,其中引用了对象emailAddress,是一个List,那么下面演示各类用法:
  先看默认的调用代码如下:
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
 
public class Demo {
 
    public static void main(String[] args) throws Exception {
        JAXBContext jc = JAXBContext.newInstance(Customer.class);
 
        Customer customer = new Customer();
        customer.getEmailAddresses().add("janed@example.com");
        customer.getEmailAddresses().add("jdoe@example.org");
 
        Marshaller marshaller = jc.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.marshal(customer, System.out);
    }
}


  默认的把这个对象输出为一般的XML:
<customer>
    <emailAddresses>janed@example.com</emailAddresses>
    <emailAddresses>jdoe@example.org</emailAddresses>
</customer>

下面逐一看每个注解的用法
1) @XmlElement
  
@XmlElement(name="email-address")
    private List<String> emailAddresses;
加上这个注解的话,则按自定义的xml标签名去输出某个属性,如下:
<customer>
    <email-address>janed@example.com</email-address>
    <email-address>jdoe@example.org</email-address>
</customer>

2) @XmlElementWrapper
  这个注解等于在最外面再包一层了,
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {

    @XmlElementWrapper(name="email-addresses")
    @XmlElement(name="email-address")
    private List<String> emailAddresses;

}
  输出:
<customer>
    <email-addresses>
        <email-address>janed@example.com</email-address>
        <email-address>jdoe@example.org</email-address>
    </email-addresses>
</customer>


3) @XmlList
  这个等于是在同一行中,把list中的输出,以空格形式分隔开来,
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {
 
    @XmlList
    private List<String> emailAddresses;
 
}


  输出:
  <customer>
    <emailAddresses>janed@example.com jdoe@example.org</emailAddresses>
</customer>

4)
@XmlList和 @XmlAttribute混合使用
      @XmlList
    @XmlAttribute
    private List<String> emailAddresses;

输出:
   <customer
    emailAddresses="janed@example.com jdoe@example.org"/>

看到没?就是同一行中逗号输出,并作为customer的一个属性


5)
  @XmlList 和 @XmlValue混用
   
    @XmlList
    @XmlValue
    private List<String> emailAddresses;
 

就是把emailAddress的list的值,作为<customer>的value  输出,结果如下:
<customer>janed@example.com jdoe@example.org</customer>
 
8
7
分享到:
评论
2 楼 shihengli2010 2016-05-09  
shihengli2010 写道
Customer customer = new Customer(); 
代码有测试过吗?

抱歉 代码看错...
1 楼 shihengli2010 2016-05-09  
Customer customer = new Customer(); 
代码有测试过吗?

相关推荐

    Spring.3.x企业应用开发实战(完整版).part2

    1.8 小结 第2章 快速入门 2.1 实例功能概述 2.1.1 比Hello World更适用的实例 2.1.2 实例功能简介 2.2 环境准备 2.2.1 创建库表 2.2.2 建立工程 2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 ...

    Spring3.x企业应用开发实战(完整版) part1

    1.8 小结 第2章 快速入门 2.1 实例功能概述 2.1.1 比Hello World更适用的实例 2.1.2 实例功能简介 2.2 环境准备 2.2.1 创建库表 2.2.2 建立工程 2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 ...

    员工晋升管理制度.doc

    员工晋升管理制度.doc

    基于MATLAB和CPLEX的综合能源系统中阶梯式碳交易与电制氢的热电优化研究

    内容概要:本文详细探讨了将阶梯式碳交易机制和电制氢技术应用于综合能源系统的热电优化方法。首先介绍了阶梯式碳交易的建模方式,通过分段线性化处理碳排放成本,使模型能够更好地反映现实中的碳市场价格波动。接着讨论了电制氢技术的应用,包括电解槽、甲烷反应器和氢燃料电池的具体实现及其在系统中的角色。此外,还提出了热电联产(CHP)系统中热电比动态调整的方法,提高了系统的灵活性和经济效益。文中提供了详细的MATLAB和CPLEX代码示例,展示了如何将这些复杂的技术和政策机制融入优化模型中。 适合人群:从事综合能源系统优化的研究人员、工程师以及对低碳技术和能源管理感兴趣的学者。 使用场景及目标:适用于需要进行低碳转型的企业和机构,旨在通过引入先进的碳交易机制和氢能技术,降低碳排放并提高能源利用效率。目标是在满足能源需求的同时,减少环境影响并降低成本。 其他说明:文中提到的优化模型不仅关注技术实现,还强调了经济性和环保效益之间的平衡。通过合理的参数设置和求解器配置,可以在不影响系统性能的前提下显著提升优化效果。

    MMC模块化多电平换流器7电平闭环控制系统仿真及其关键技术实现

    内容概要:本文详细介绍了7电平模块化多电平换流器(MMC)的闭环控制系统仿真,重点探讨了外环和内环控制、电容电压平衡、二倍频环流抑制以及载波移相调制等关键技术。作者通过MATLAB、Python和Verilog等多种编程语言实现了各个控制模块的具体算法,并分享了调试过程中遇到的问题及解决方案。实验结果显示,该系统能够将直流电压纹波控制在0.8%以内,环流幅值降至额定电流的3%以下,具有较强的鲁棒性和稳定性。 适合人群:电力电子工程师、高校师生及相关研究人员,特别是对MMC仿真感兴趣的初学者和技术爱好者。 使用场景及目标:适用于研究和开发高效稳定的MMC系统,特别是在高压直流输电领域的应用。主要目标是提高系统的稳定性和效率,减少电容电压失衡和环流震荡等问题。 其他说明:文中提供了详细的代码实现和调试技巧,有助于读者深入理解和掌握MMC闭环控制的关键技术和实践经验。同时,作者还提出了一些优化方向,如加入模糊控制器进一步提升系统性能。

    2. 亚马逊【官方选品方法论】《五三选品法》.pdf

    2. 亚马逊【官方选品方法论】《五三选品法》.pdf

    员工职业生涯规划表、能力开发需求表.docx

    员工职业生涯规划表、能力开发需求表

    MATLAB中小波阈值降噪技术及其应用场景详解

    内容概要:本文详细介绍了利用MATLAB实现的小波阈值降噪技术,涵盖三种主要方法:自定义阈值、智能推荐阈值以及分层精细处理。首先,通过生成带噪信号作为实验对象,展示了如何使用硬阈值和软阈值进行去噪。接着,探讨了智能推荐阈值的方法,如贝叶斯估计法,能够自动确定最优阈值。最后,深入讲解了分层处理的技术,通过对不同层次的细节系数分别设定阈值,达到更好的降噪效果。文中还提供了大量MATLAB代码实例,帮助读者理解和实践。 适合人群:具有一定MATLAB基础并希望深入了解小波变换理论及应用的研究人员和技术人员。 使用场景及目标:适用于各种含有噪声的数据处理任务,特别是机械振动信号、音频信号等领域。目标是提高信号质量,增强后续数据分析的有效性和准确性。 其他说明:文中强调了参数选择的重要性,如小波基的选择、分解层数的设定等,并给出了具体的调试建议。此外,还提到了一些常见的错误及解决办法,便于初学者快速上手。

    集团关怀活动方案.doc

    集团关怀活动方案.doc

    辞退面谈与赔偿金计算P23.pptx

    辞退面谈与赔偿金计算P23.pptx

    月度招聘报表.xlsx

    月度招聘报表.xlsx

    永磁同步电机无传感器控制:基于容积卡尔曼滤波与滑膜控制的技术实现

    内容概要:本文详细介绍了基于容积卡尔曼滤波(CKF)和滑膜控制(SMC)的永磁同步电机(PMSM)无传感器控制技术。首先阐述了CKF的工作原理及其在状态估计中的优势,包括状态预测、量测更新和状态后验分布的计算。接着讨论了滑膜控制的设计思路和实现方法,强调其在快速响应和鲁棒性方面的特点。文中还提供了Python和Matlab的代码示例,展示了这两种控制方法的具体实现。通过仿真和实验结果表明,该方法在转速估计和控制精度方面表现出色,具有广泛的应用前景。 适合人群:从事电机控制系统设计的研究人员和技术人员,尤其是关注高精度、高动态性能的无传感器控制方案的专业人士。 使用场景及目标:适用于需要高精度、高动态响应的电机应用场景,如工业自动化、航空航天等领域。主要目标是提高电机控制系统的精度和鲁棒性,降低系统成本和复杂度。 其他说明:文中提到的CKF和SMC方法不仅限于理论探讨,还包括了详细的代码实现和实验数据支持,有助于读者深入理解和实际应用。此外,文中还提到了一些优化技巧,如启动阶段误差补偿和高级CKF版本的选择,进一步提升了系统的性能。

    解聘职员申请表-模板.doc

    解聘职员申请表-模板.doc

    基于MATLAB的并联机器人运动学、动力学与轨迹跟踪控制仿真

    内容概要:本文详细介绍了如何使用MATLAB对并联机器人进行仿真实现,涵盖了运动学建模、动力学分析和轨迹跟踪控制三大方面。首先,通过定义关键参数和几何法求解逆运动学,建立了Delta并联机器人的运动学模型。接着,利用牛顿-欧拉法推导动力学方程,考虑了惯性力、重力等因素的影响。最后,采用PD+前馈控制方法实现轨迹跟踪,并通过仿真验证了控制效果。文中还提供了具体的MATLAB代码示例,帮助读者更好地理解和应用相关理论。 适合人群:对机器人技术感兴趣的科研人员、高校学生及工程技术人员。 使用场景及目标:适用于研究并联机器人的运动特性、优化控制系统性能、验证新算法的有效性等场景。目标是掌握并联机器人的建模与控制方法,提高仿真能力。 其他说明:文章强调了仿真过程中需要注意的问题,如奇异位形、数值稳定性等,并给出了相应的解决方案。同时,鼓励读者动手实践,通过调整参数和改进算法来深入探索并联机器人的行为特征。

    新员工入职引导及融入管理办法.docx

    新员工入职引导及融入管理办法

    光伏系统中基于扰动观察法的MPPT仿真与自建光伏电池模型的应用

    内容概要:本文详细介绍了光伏系统中最大功率点跟踪(MPPT)技术的一种常见实现方式——扰动观察法及其仿真模型的构建。文章首先阐述了扰动观察法的基本原理,即通过不断改变光伏电池的工作点并观察功率变化来逐步逼近最大功率点。接着,提供了具体的Python和MATLAB代码实现,展示了如何在MATLAB的Simulink环境中搭建光伏系统仿真模型,包括使用内置或自建光伏电池模型。文中强调了自建光伏电池模型的优势,如可根据实际情况调整参数,使仿真结果更为精确。此外,还讨论了仿真过程中可能出现的问题及解决方案,如电压振荡、误判和响应速度等,并通过视频解释进一步增强了理解和实用性。 适合人群:对光伏发电技术和MPPT算法感兴趣的科研人员、工程师和技术爱好者。 使用场景及目标:适用于希望深入了解光伏系统工作原理、掌握MPPT算法实现方法的研究人员;希望通过仿真验证和优化光伏系统性能的工程师;以及对光伏技术感兴趣的学习者。 其他说明:文章不仅提供了详细的理论讲解和技术实现步骤,还包括了实际案例分析和视频教程链接,便于读者更好地理解和实践。

    运动控制领域对称修正梯形加速度规律插补算法的推导与仿真

    内容概要:本文详细介绍了对称修正梯形加速度规律插补算法的推导与仿真实现。传统梯形加速度模型在加减速转换时会产生冲击,而对称修正梯形加速度通过引入过渡段使加速度变化更加平滑。文中首先推导了算法的基本原理,包括加速和减速阶段的分段处理方法,并给出了Python代码示例用于模拟加速阶段的速度变化。接着,利用MATLAB进行了仿真验证,展示了速度曲线的平滑过渡特性。此外,还讨论了实际应用场景中的参数选择和注意事项,如伺服电机的扭矩限制以及高阶多项式的使用风险。通过对机械臂的实际测试表明,该算法能够显著降低末端振动幅度,提高运动控制的精度和平稳性。 适合人群:从事运动控制、数控加工等相关领域的工程师和技术人员,尤其是希望深入了解加速度规律插补算法及其优化的人群。 使用场景及目标:适用于需要优化运动控制系统的场合,特别是那些对平稳性和精度有较高要求的应用,如机器人、数控机床等。目标是减少机械冲击,提升设备运行的稳定性和可靠性。 其他说明:文中提供了详细的数学推导和代码实现,帮助读者更好地理解和应用这一算法。同时提醒读者在实际应用中应注意参数的选择和硬件限制,确保算法的有效性和安全性。

    基于51单片机protues仿真的番茄计时器(仿真图、源代码、AD原理图、流程图、视频)

    基于51单片机protues仿真的番茄计时器(仿真图、源代码、AD原理图、流程图、视频) 设计一个番茄计时器。使用番茄工作法(番茄工作法是一种时间管理方法),选择一个待完成的任务,将番茄时间设为45分钟,专注工作,中途不允许做任何与该任务无关的事,直到番茄时钟响起,然后进行短暂休息一下(5分钟),然后再开始下一个番茄。每4个番茄时段再多休息5分钟。 按键1:单击设置45分钟倒计时,双击设置5分钟休息倒计时。 按键2:单击音乐播放,双击暂停。按键3:复位按键。 所需硬件:3个按键,1个动态数码管,1个蜂鸣器。 仿真图、源代码、AD原理图、流程图、视频

    基于CST的可重构超表面建模与仿真:材料特性、相位调控及联合仿真技巧

    内容概要:本文详细介绍了利用CST进行可重构超表面的设计与仿真方法,涵盖材料建模(如二氧化钒和石墨烯)、相位调控(如涡旋相位阵列)以及联合仿真技巧。文章提供了多个MATLAB和CST脚本实例,帮助解决仿真过程中常见的难题,如材料参数调整、相位纯度计算、联合仿真中的索引顺序问题等。此外,还分享了一些实用的仿真优化技巧,如参数扫描、场分布配色方案等。 适合人群:从事超表面研究的科研人员和技术开发者,尤其是有一定CST和MATLAB使用经验的研究者。 使用场景及目标:适用于希望深入了解并掌握超表面建模与仿真的研究人员,目标是提高仿真效率和准确性,特别是在可重构超表面的设计和优化方面。 其他说明:文中提供的代码片段和技巧可以直接应用于实际项目中,有助于加速实验进程并获得更精确的仿真结果。同时,文章强调了仿真过程中需要注意的关键细节,避免常见错误。

    COMSOL相控阵聚焦声压分布:压力声学频域模块与相位差设置的应用研究

    内容概要:本文详细介绍了利用COMSOL软件研究相控阵聚焦声压分布的技术方法。首先探讨了压力声学-频域模块的作用及其在构建几何模型中的应用,接着深入讲解了相位差设置对声波叠加效果的影响。文中还展示了不同频率和聚焦深度下声压分布的变化情况,并提供了具体的代码示例用于理解和实施。此外,文章强调了网格划分、边界条件设置以及优化求解过程的重要性,旨在提高仿真效率和准确性。 适合人群:从事声学研究、超声成像、无损检测等领域科研工作者和技术人员。 使用场景及目标:①掌握COMSOL中压力声学-频域模块的基本操作;②学会根据不同应用场景调整相位差以达到理想的声压分布;③理解频率和聚焦深度对声压分布的具体影响;④提升仿真模型的精度和计算效率。 其他说明:文章不仅提供了理论知识,还包括大量实用的操作技巧和注意事项,如相位差公式的正确使用、网格划分策略、边界条件设置等,有助于读者快速上手并在实践中不断改进。

Global site tag (gtag.js) - Google Analytics