Схема JAXB для Java Различное имя XmlRootElement и имя класса

У меня есть схема xsd, из которой я генерирую некоторые классы Java. Я использую Jaxb для поколения.

Я хочу иметь возможность создавать класс с пометкой@XmlRootElement, но я хочу, чтобы свойство имени @XmlRootElement отличалось от имени сгенерированного класса.

В моем xsd я определяю следующее:

<xs:element name="customer">
    <xs:complexType>
        <xs:sequence>
         ....
        </xs:sequence>
     </xs:complexType>
</xs:element>

Этот кусок кода генерирует следующий класс Java:

@XmlRootElement(name = "customer")
public class Customer {
...
}

Имя свойства@XmlRootElement совпадает с именем сгенерированного класса. Я хочу, чтобы сгенерированное имя класса былоCustomerRequesт.

Я пытался использоватьjaxb:class определение, чтобы изменить имя класса. Действительно, эта опция изменяет имя класса, но удаляет@XmlRootElement аннотации, и мне нужно, чтобы она присутствовала.

Следующий xsd:

<xs:element name="customer">
    <xs:complexType>
        <xs:annotation>
                <xs:appinfo>
                    <jaxb:class name="CustomerRequest"/>
                </xs:appinfo>
            </xs:annotation>
        <xs:sequence>
        </xs:sequence>
    </xs:complexType>
</xs:element>

Создает этот класс:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "customer", propOrder = {

})
public class CustomerRequest {
}

Как я могу сделать имя свойства@XmlRootElement аннотация отличается от сгенерированного имени класса без потери аннотации?

Обновление решения: Пользователь Xstian предложил правильное решение с использованием внешних привязок. Просто для дальнейшего ознакомления я обновлю свой собственный пост решением, преобразованным для использования встроенных привязок:

 <xs:element name="customer">
        <xs:complexType>
            <xs:annotation>
                <xs:documentation>Request object for the operation that checks if a customer profile exists.</xs:documentation>
                <xs:appinfo>
                        <annox:annotate>
                            <annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement" name="customer"/>
                        </annox:annotate>
                        <jaxb:class name="CustomerRequest"/>
                    </xs:appinfo>
                </xs:annotation>
            <xs:sequence>
            </xs:sequece>
    </xs:complexType>
</xs:element>

Ответы на вопрос(1)

Ваш ответ на вопрос