【问题标题】:jaxb idref string adapterjaxb idref 字符串适配器
【发布时间】:2015-01-15 18:30:02
【问题描述】:

我使用的是标准 xml 架构,称为 isosts,我需要使用 jaxb 将架构转换为 java 类。在这个 xml 模式中,许多元素的属性 rid 为类型 xs:IDREFS <xs:attribute name="rid" type="xs:IDREFS">。 Jaxb 将 xs:IDREFS 转换为对象列表。

出于我的需要,我希望 jaxb 将 xs:IDREFS 类型设为所有生成的 java 类中的 java 字符串类型。并且在编组/解组期间,属性 rid 的值都应该作为字符串处理。由于这是一个标准模式,我必须自定义 jaxb。我不确定这是否可以在 jaxb 绑定或适配器中完成以及如何做到这一点。谁能帮帮我?

【问题讨论】:

    标签: java jaxb


    【解决方案1】:

    这个绑定文件(我们称之为“binding.xjb”)强制类型为String:

    <bindings xmlns="http://java.sun.com/xml/ns/jaxb"
          xmlns:xs="http://www.w3.org/2001/XMLSchema"
          xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
          xsi:schemaLocation=" http://java.sun.com/xml/ns/jaxb
                               http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
          version="2.1">
    
    <bindings schemaLocation="SomeSchemaName.xsd" node="/xs:schema">
        <bindings node="//xs:attribute[@name='rid']">
            <property>
              <baseType>
                <javaType name="java.lang.String"></javaType>
              </baseType>
            </property>
        </bindings>
    </bindings>
    
    </bindings>
    

    使用编译架构

    xjc -b binding.xjb SomeSchemaName.xsd
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多