2015-01-15 2 views
0

Я использую стандартную схему xml, называемую isosts, мне нужно преобразовать схему в класс java с помощью jaxb. В этой xml-схеме множество элементов имеют атрибут rid как тип xs: IDREFS <xs:attribute name="rid" type="xs:IDREFS">. Jaxb преобразует xs: IDREFS в список объектов.jaxb idref string adapter

Для моей потребности я хочу, чтобы jaxb создавал тип xs: IDREFS как простой тип строки java во всем сгенерированном классе java. И во время marshall/unmarshall значение атрибута rid должно обрабатываться как строка. Поскольку это стандартная схема, я должен настроить jaxb. Я не уверен, что это можно сделать в привязке jaxb или адаптере и как это сделать. Может кто-нибудь мне помочь?

ответ

0

Это связывание файла (назовем его «binding.xjb) заставляет тип в строку:

<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> 

Compile схемы с использованием

xjc -b binding.xjb SomeSchemaName.xsd 
Смежные вопросы