Создание пользовательской аннотации JAXB

Есть ли у людей какие-либо рекомендации о том, как я мог бы написать свой собственный класс обработки аннотаций JAXB для поддержки создания элементов xs:annotation/xs:documentation в схеме xsd? Я хотел бы создать новую аннотацию java «@XmlAnnotation», которая будет включать атрибут «документация». Затем я сделал бы эти классы доступными для генератора схемы JAXB через путь к классам. Затем генератор схемы возьмет этот пример кода Java

@XmlRootElement(name="ClientData")
public class ClientData {

/**
 * The first address field of the person
 */
@XmlAnnotation(documentation="The first address field of the client")
private String address1 = null;
}

и создайте эту схему xsd

<xs:complexType name="clientData">
  <xs:sequence>
<xs:element minOccurs="0" name="address1" type="xs:string">
    <xs:annotation>
  <xs:documentation>The first address field of the client</xs:documentation>
</xs:annotation>

Would it be easier to extend from the existing @XmlElement annotation class, and just add support of an extra documentation attribute?


person emeraldjava    schedule 27.01.2009    source источник


Ответы (2)


Этот XmlRootElement почти пуст ( http://docjar.org/src/api/javax/xml/bind/annotation/XmlRootElement.java, внутри нет «активного» кода

Основная модификация заключается в изменении кода с использованием этой аннотации и создании файла xsd.

person Pierre    schedule 27.01.2009

Это разрешит только конструкцию для корневого элемента. Он действителен практически для ВСЕХ элементов пространства имен xs.

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

person Community    schedule 10.02.2009