Создание пользовательской аннотации JAXB - PullRequest
2 голосов
/ 27 января 2009

Есть ли у людей какие-либо рекомендации о том, как написать свой собственный класс обработки JAXB-аннотаций для поддержки создания элементов xs: annotation / xs: Documentation в схеме xsd? Я хотел бы создать новую аннотацию Java "@XmlAnnotation", которая будет включать атрибут "документация". Затем я бы сделал эти классы доступными для генератора схемы JAXB через classpath. Генератор схемы тогда взял бы этот пример кода 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>

Было бы проще выйти из существующего класса аннотаций @XmlElement и просто добавить поддержку дополнительного атрибута документации?

Ответы [ 2 ]

1 голос
/ 27 января 2009

Этот элемент XmlRootElement почти пуст (http://docjar.org/src/api/javax/xml/bind/annotation/XmlRootElement.java, внутри

нет «активного» кода)

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

0 голосов
/ 10 февраля 2009

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

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

...