Сопоставление JAXB xjc с существующими объектами домена

. Я много искал и не смог найти краткий пример того, как сопоставить XML-схему с существующими объектами домена вместо создания новых с использованием xjc . Я создал файл привязок (xjb ), но до сих пор не могу найти способ сделать это.

Если у меня есть существующий объект домена, который я хочу использовать в JAXB, например, следующий:

package com.blah.domain;
class CustomerOffice{
   private int id;
   private String name;
   private String phone;
}

И у меня есть схема XML, подобная следующей:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:www="http://www.blah.com" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
targetNamespace="http://www.blah.com" elementFormDefault="unqualified">
   <xs:element name="Customer">
      <xs:complexType>
         <xs:sequence>
           <xs:element name="id" type="xs:int" nillable="false" minOccurs="1" maxOccurs="1"/>
           <xs:element name="name" type="xs:string"/>
           <xs:element name="city" type="xs:string"/>
           <xs:element name="CustomerOffice" type="www:CustomerOffice" maxOccurs="unbounded"/>
        </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:complexType name="CustomerOffice">
      <xs:sequence>
        <xs:element name="name" type="xs:string"/>
        <xs:element name="length" type="xs:int"/>
      </xs:sequence>
   </xs:complexType>
</xs:schema>

Если я собираюсь сгенерировать классы JAXB с помощью xjc он создаст новый класс с именем Customer (, который мне нужен ). Он также создаст новый класс с именем CustomerOffice (, который мне не нужен, я хочу, чтобы он использовал мой существующий объект домена ).

Таким образом, вместо схемы, указывающей на «тип :www :CustomerOffice», я бы хотел, чтобы она использовала существующую com.blah.domain.CustomerOffice .

Я попытался сделать этот пример как можно более простым, любая помощь приветствуется.

10
задан informatik01 29 May 2013 в 19:47
поделиться