我正在使用标准的xml架构,称为isosts,我需要使用jaxb将架构转换为java类。在这个xml架构中,许多元素都将属性rid作为类型xs:IDREFS <xs:attribute name="rid" type="xs:IDREFS">
。 Jaxb将xs:IDREFS转换为对象列表。
根据我的需要,我希望jaxb将类型xs:IDREFS设置为所有生成的java类中的java字符串类型。在marshall / unmarshall时间,属性rid的值应该全部作为字符串处理。由于这是一个标准架构,我必须自定义jaxb。我不确定这是否可以在jaxb绑定或适配器中完成以及如何执行此操作。任何人都可以帮助我吗?
答案 0 :(得分:1)
此绑定文件(让我们调用它&#34; 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