JAXB, Netbeans и Плагин Вставки Интерфейса - PullRequest
2 голосов
/ 16 апреля 2010

Я не могу заставить свои сгенерированные классы реализовать любые интерфейсы.

Это мой файл XML-схемы:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"            
        xmlns:jxb="http://java.sun.com/xml/ns/jaxb/"
        xmlns:ai="http://jaxb.dev.java.net/plugin/if_insertion"
        jxb:extensionBindingPrefixes="ai">


    <xs:element name="header">
        <xs:annotation>
            <xs:appinfo>
                <ai:interfaces check="1">
                  utility.RuleInterface
                </ai:interfaces>
            </xs:appinfo>
        </xs:annotation>

        <xs:complexType>
            bla bla bla
        </xs:complexType>

    ....

Я установил опцию «Расширение» в опциях JAXB и добавил xjc-if-ins.jar в раздел «Библиотеки» моего свойства проекта.

Но сгенерированный класс Header не реализует utility.RuleInterface.

Я могу понять, что я делаю неправильно ... Что-то не хватает?

Ответы [ 2 ]

1 голос
/ 19 апреля 2010

Просто еще одна заметка для других с такой же проблемой. Элементы в файле схемы xml должны быть записаны следующим образом:

<xs:complexType name="header">
   <xs:annotation>
        <xs:appinfo>
            <ai:interfaces check="0">
              utility.RuleInterface
            </ai:interfaces>
        </xs:appinfo>
    </xs:annotation>          
</xs:complexType>

и вы можете ссылаться на них:

<xs:element name="rule">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="header"  type="header" maxOccurs="unbounded" />
                ...
            </xs:sequence>
        <xs:complexType>

Моя проблема заключалась в том, что я объявил заголовок как <xs:element name="header">, а затем имел в виду элемент с <xs:element ref="header" maxOccurs="unbounded" />, и этот подход, похоже, не работает ...

1 голос
/ 16 апреля 2010

Вы действительно активировали плагин? С такой опцией, как -Xinheritance?

Вот еще один плагин, который вы можете использовать:

http://confluence.highsource.org/display/J2B/Inheritance+plugin

Вот пример проекта (Ant и Maven):

http://download.java.net/maven/2/org/jvnet/jaxb2_commons/jaxb2-basics-sample-po/0.5.2/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...