Генерация классов JAXB из схемы XSD приводит к странной структуре пакета - PullRequest
0 голосов
/ 04 октября 2018

Со следующим плагином:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>xjc</id>
            <goals>
                <goal>xjc</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <schemaDirectory>${project.basedir}/src/main/resources/</schemaDirectory>
        <clearOutputDir>false</clearOutputDir>
    </configuration>
</plugin>

Я генерирую классы из схемы XSD (скажем, entity.xsd), помещенной в /src/main/resources, корневой элемент с определением пространства имен приведен в следующем примере:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:webpage="https://www.mywebpage.com"
    targetNamespace="https://www.mywebpage.com"
    elementFormDefault="qualified">

    ...
</xs:schema>

После mvn clean install сгенерированная структура в target/generated-sources/jaxb очень странная:

  • target/generated-sources/jaxb
    • https
      • www_mywebpage
        • ObjectFactory.java
        • Entity.java
        • EntityDetailsRequest.java
        • EntityDetailsResponse.java

Я ожидал что-то вроде:

  • target/generated-sources/jaxb
    • com.mywebpage
      • ObjectFactory.java
      • Entity.java
      • EntityDetailsRequest.java
      • EntityDetailsResponse.java

Что я делаю не так?

1 Ответ

0 голосов
/ 04 октября 2018

Я ошибся в схеме XSD.maven-jaxb2-plugin не распознает https, но только http.

Я изменил:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:webpage="https://www.mywebpage.com"
    targetNamespace="https://www.mywebpage.com"

На:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:webpage="http://www.mywebpage.com"
    targetNamespace="http://www.mywebpage.com"

И сгенерированная структуракак я и ожидал и описал в моем вопросе.

...