JAXB (JSR-222)实施将为您处理一切. JAXB认为每个类对应一个复杂类型.它有一个算法来确定类型名称,但您可以使用@XmlType注释覆盖它.如果元素是包含xsi:type属性的解组,则JAXB将查看是否存在与该类型关联的类.如果存在,它将实例化该类型的类,否则它将基于通过注释提供的映射元数据实例化与该元素对应的类型.

欲获得更多信息

UPDATE

以下是一个可能有用的示例:

schema.xsd

在复杂类型下面的XML模式中,canadianAddress扩展了complexType地址.

xmlns="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.example.org/customer"

xmlns:tns="http://www.example.org/customer"

elementFormDefault="qualified">

演示

在下面的演示代码中,XML将转换为从上面的XML模式生成的JAXB模型,然后转换回XML.

import java.io.File;

import javax.xml.bind.*;

public class Demo {

public static void main(String[] args) throws Exception {

JAXBContext jc = JAXBContext.newInstance("org.example.customer");

Unmarshaller unmarshaller = jc.createUnmarshaller();

File xml = new File("src/org/example/customer/input.xml");

Customer customer = (Customer) unmarshaller.unmarshal(xml);

Marshaller marshaller = jc.createMarshaller();

marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

marshaller.marshal(customer, System.out);

}

}

input.xml中/输出

下面是XML. address元素使用xsi:type进行限定,以指示它包含canadianAddress的实例而不仅仅是一个地址.

1 A Street

Ontario

java xsi type_java – JAXB:如何在解组时读取xsi:type值相关推荐

  1. stax 和jaxb 关系_XML解组基准:JAXB,STAx,Woodstox

    stax 和jaxb 关系 介绍 上周末,我开始考虑如何以一种资源友好的方式处理大量XML数据.我要解决的主要问题是如何以块的形式处理大型XML文件,同时提供上游/下游系统,需要处理一些数据. 当然, ...

  2. java导出jar包后,程序运行时读取图片、音乐资源文件

    java导出jar包后,程序运行时读取图片.音乐资源文件 运行时程序就可以把图片.音乐资源加载进入了 start jre/bin/java -jar 名称.jar

  3. java xsi type_java – JAXB:编组XML上缺少具体类型信息(xsi:type)

    我正在为XSD生成JAXB类,用于SOAP WebService我正在构建一个客户端(使用jaxws-maven-plugin v2.4.1生成,wsimport目标). 我遇到一个问题,在编组我的对 ...

  4. java oracle rs.next_使用jsp连接oracle时,rs.next()值始终为false,表中存在数据

    连接部分代码如下: 连接部分代码如下: String drivers="oracle.jdbc.driver.OracleDriver"; String url="jdb ...

  5. java jaxb 集合_java-使用JAXB解组/编组List String

    java-使用JAXB解组/编组List 我正在尝试创建一个非常简单的REST服务器. 我只是有一个测试方法,它将返回字符串列表. 这是代码: 它给出以下错误: SEVERE: A message b ...

  6. java如何添加同名的xml节点_java – 解组具有多个同名元素的XML JAXB

    我正在尝试解组具有多个具有相同名称的元素的XML文档.我不确定是否需要创建我的bean的Arraylist并将其传递给unmarshaller.我希望有人能给我一些指导来解决这个问题.我试图解析的XM ...

  7. XML解组基准:JAXB,STAx,Woodstox

    介绍 上周末,我开始考虑如何以一种资源友好的方式处理大量XML数据.我要解决的主要问题是如何以块的形式处理大型XML文件,同时提供上游/下游系统,需要处理一些数据. 当然,我已经使用JAXB技术已有几 ...

  8. jaxb 命名空间_在JAXB解组期间应用名称空间

    jaxb 命名空间 对于某些XML模式来说,它是一组严格的规则,用于规定XML文档的结构方式. 但是对于其他人来说,通常的准则是指出XML的外观. 这意味着有时出于某些原因,人们希望接受不符合XML模 ...

  9. 在JAXB解组期间应用名称空间

    对于某些XML模式来说,它是一组严格的规则,用于规定XML文档的结构方式. 但是对于其他人来说,通常的准则是指出XML的外观. 这意味着有时出于某些原因人们希望接受不符合XML模式的输入. 在此示例中 ...

最新文章

  1. maven2完全使用手册
  2. [GO] go使用etcd和watch方法进行实时的配置变更
  3. 远程桌面连接后远程计算机注销,使用windows8.1 pro的远程桌面,当断开远程桌面时被控制端用户注销问题...
  4. nginx upstream setting
  5. windows服务器网站日志,windows服务器网站日志文件
  6. xss跨站脚本攻击_常见攻击之xss跨站脚本攻击
  7. 更新QTableView中的进度条状态
  8. 苹果笔记本能学二级计算机吗,怎么辨别苹果笔记本是不是翻新机
  9. 卸载所有supervisor残留_拯救C盘!这个良心的卸载工具还是免费的?!
  10. web开发必备的几个软件
  11. 浪潮之巅阅读笔记(第四版)_(第一章 帝国的余晖)
  12. win10定时关机程序
  13. echarts循环图表
  14. 诊断某段时间数据库性能抖动问题思路
  15. 浪潮服务器 虚拟光驱,玩转虚拟光驱:DAEMON TOOLS Pro
  16. 28335之GPIO输入
  17. 这应该是把春秋招讲的最清楚的文章了,不接受反驳
  18. 【FCPX插件】56种标题文本输入逐字出现字幕打字机动画效果 Typing Titles,支持M1芯片!
  19. STM32机器人控制开发教程No.3 使用遥控控制电机/舵机(基于HAL库)
  20. android manifest相关属性

热门文章

  1. usb转串口蓝屏问题的解决
  2. 恋梦2013年8月13日 小学生日记大全集
  3. 人工智能与家庭安全:智能家居安防系统的黄金组合
  4. ubuntu下evince中文乱码解决方法
  5. 关于java 上传的音频或视频文件获取时长及视频封面
  6. 使用Avalonia跨Linux平台
  7. 浅谈如何使用Python控制摄像头
  8. 支付宝曝重大漏洞:交易记录可被搜索
  9. 中国联通在宽带市场无力反击,衰退或将加剧
  10. 桥式压力传感器输出mV用仪表运放还是选高精度ADC的问题