JAXB bindings.xml не может выбрать xs: any - PullRequest
0 голосов
/ 06 декабря 2018

Имея XSD, я могу генерировать из него Java-классы (используя cxf-codegen-plugin и org.jvnet.jaxb2_commons.jaxb2-basics-annotate)

wsdl / фрагмент Service.xsd

<xs:element name="ImportujZpravuRequest">
    <xs:complexType>
        <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="Oznameni" nillable="false">
                <xs:complexType>
                    <xs:sequence>
                        <xs:any minOccurs="1" maxOccurs="1" processContents="lax"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:element>

Генерируемый класс Java

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {"oznameni"})
@XmlRootElement(name = "ImportujZpravuRequest")
public class ImportujZpravuRequest {

    @XmlElement(name = "Oznameni", required = true)
    protected Oznameni oznameni;

    //getters&setters

    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {"any"})
    public static class Oznameni {

        @XmlAnyElement(lax = true)
        protected Object any;

        //getters&setters
}

Вопрос - как я могу аннотировать поле объекта (xs: any в XSD / Oznameni.любой в классе Java), например, с аннотацией @Deprecated.Я пытался с

 <jaxb:bindings schemaLocation="wsdl/Service.xsd">
    <jaxb:bindings node="//xs:any">
        <annox:annotate target="field">@java.lang.Deprecated</annox:annotate>
    </jaxb:bindings>
</jaxb:bindings>

Я могу аннотировать eq Oznameni объект (с измененным определением селектора узла), поэтому конфигурации плагинов должны быть в порядке.И в XSD-файле есть только один, так что XPATH selector тоже должен быть в порядке.Но я получаю следующую ошибку

[ERROR] C:\makro\proj\CZLih\czlih-java\src\main\resources\bindings.xml [11:44]: compiler was unable to honor this annotate customization. It is attached to a wrong place, or its inconsistent with other bindings.
com.sun.istack.SAXParseException2; systemId: file:/C:/makro/proj/CZLih/czlih-java/src/main/resources/bindings.xml; lineNumber: 11; columnNumber: 44; compiler was unable to honor this annotate customization. It is attached to a wrong place, or its inconsistent with other bindings.
...

Любая помощь будет оценена.

...