Jaxb 绑定学习探索(二.进阶篇)

Jaxb 绑定学习探索(二.进阶篇)

  • 简介
  • 自定义jaxb绑定

简介

上一篇文章我们已经介绍了如何使用maven 插件把xsd转化为java bean,而这篇文章主要是简析jaxb bindings中的内容。是对于oracle官网的使用手册的翻译解析。

自定义jaxb绑定

本节刚开始讨论您可以对JAXB绑定和验证方法进行自定义的表面。有关更多信息,请参阅JAXB规范(http://java.sun.com/xml/downloads/jaxb.html)。 绑定的两种方式:
随着注释在xml模式中内联
作为传递给JAXB绑定编译器的外部文件中的语句

为什么要自定义?

在大多数情况下,JAXB绑定编译器生成的默认绑定足以满足您的需求。但是,有些情况下您可能需要修改默认绑定。其中一些包括:

  • 为新的jaxb包,类,方法和常量,添加注释创建API文档,解释您实现的概念,准则和规则。(即注释功能

  • 为默认的XML转化为java过程中无法自动处理的情况做出修正,例如:

    解决名称冲突,多个变量的名称相同,无法区分哪个变量是属于哪个类,注意,JAXB绑定编译器会检测并报告所有名称冲突。(解决冲突

    提供非合法Java标识符的类型安全枚举常量的名称; 例如,枚举整数值。 (新建新类型

    为未命名模型组的Java表示绑定到Java属性或类时提供更好的名称(即可以根据自己的需求更改属性和类的名称

    提供比目标名称空间URI默认派生的更有意义的软件包名称(可以决定生成的java bean所属的包名

  • 覆盖默认绑定,例如:

    指定模型组应该绑定到类而不是列表

    指定可以将固定属性绑定到Java常量
    将XML Schema内置数据类型的指定默认绑定覆盖为Java数据类型。在某些情况下,您可能需要引入一个替代Java类,它可以表示内置XML Schema数据类型的其他特征。

    本节介绍一些核心JAXB定制概念:

    内联和外部自定义

    1.内联,写在要转换的xml里。

    2.外部绑定,写在外部文件中,使用配置文件定义绑定位置。
    优缺点:使用内联自定义更加容易,因为您可以在所应用的模式的上下文中看到自定义。使用外部绑定自定义文件,您可以自定义JAXB绑定而无需修改源架构,并且使您可以轻松地将自定义项一次应用于多个架构文件。
    注意:您可以合并这两种自定义 - 例如,您可以在内联注释中包含对外部绑定自定义文件的引用 - 但无法在同一模式元素上声明内联和外部自定义。

  • 内联自定义
    内联自定义配置:

    <xs:annotation>
    <xs:appinfo>
      .
      jaxb binding tags here (jaxb:globalBindings, jaxb:bindings
      .
    </xs:appinfo>
    </xs:annotation> 

    例如:

    <xs:annotation>
        <xs:appinfo>
            <jaxb:schemaBindings >
                <jaxb:package name="com.example.sandbox.internal.xsd.s
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值