带有annox定制的JAXB单独片段失败:SAXParseException2

带有annox定制的JAXB单独片段失败:SAXParseException2,jaxb,maven-jaxb2-plugin,xmlcatalog,annox,jaxb-episode,Jaxb,Maven Jaxb2 Plugin,Xmlcatalog,Annox,Jaxb Episode,我有2个maven模块 第一个仅包含用于生成基本POJO类的xsd模式 第二个包含一个xsd模式,该模式使用目录文件导入第一个模式并生成新的POJO类。 这两代人都能工作 现在,我使用annox(Swagger注释)将注释添加到两个xsd文件中。 第一次模块编译成功,但第二次模块编译失败,出现以下异常: [ERROR] Error while generating code.Location : com.sun.istack.SAXParseException2; systemId: jar

我有2个maven模块

  • 第一个仅包含用于生成基本POJO类的xsd模式
  • 第二个包含一个xsd模式,该模式使用目录文件导入第一个模式并生成新的POJO类。 这两代人都能工作
现在,我使用annox(Swagger注释)将注释添加到两个xsd文件中。 第一次模块编译成功,但第二次模块编译失败,出现以下异常:

[ERROR] Error while generating code.Location : com.sun.istack.SAXParseException2; systemId: jar:file:/C:/commons-0.0.1-SNAPSHOT.jar!/Commons.xsd; lineNumber: 15; columnNumber: 36; compiler was unable to honor annox:annotate schemaBinding customization. It is attached to a wrong place, or its inconsistent with other bindings.
第一个模块

  • “Commons.xsd”:

    <?xml version="1.0" encoding="UTF-8" ?>
    <xs:schema xmlns="http://www.test.com/commons" targetNamespace="http://www.test.com/commons" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:annox="http://annox.dev.java.net" xmlns:swagger="http://annox.dev.java.net/com.wordnik.swagger.annotations" xmlns:xs="http://www.w3.org/2001/XMLSchema" jaxb:extensionBindingPrefixes="annox" jaxb:version="2.1">
      <xs:complexType name="BaseType">
        <xs:annotation>
          <xs:appinfo>
            <annox:annotate target="class">
              <swagger:ApiModel value="BaseType" description="Description" />
            </annox:annotate>
          </xs:appinfo>
        </xs:annotation>
          <xs:sequence>
            <xs:element name="field1" type="xs:integer"/>
          </xs:sequence>
      </xs:complexType>
    </xs:schema>
    
    
    
  • 'pom.xml':

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>test</groupId>
        <artifactId>commons</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <dependencies>
            <dependency>
                <groupId>com.wordnik</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>1.3.2</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.jvnet.jaxb2.maven2</groupId>
                    <artifactId>maven-jaxb2-plugin</artifactId>
                    <version>0.8.3</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                            <configuration>
                                <args>
                                    <arg>-Xannotate</arg>
                                </args>
                                <plugins>
                                    <plugin>
                                        <groupId>org.jvnet.jaxb2_commons</groupId>
                                        <artifactId>jaxb2-basics</artifactId>
                                        <version>0.6.5</version>
                                    </plugin>
                                    <plugin>
                                        <groupId>org.jvnet.jaxb2_commons</groupId>
                                        <artifactId>jaxb2-basics-annotate</artifactId>
                                        <version>0.6.5</version>
                                    </plugin>
                                </plugins>
                            </configuration>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>com.wordnik</groupId>
                            <artifactId>swagger-annotations</artifactId>
                            <version>1.3.2</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </build>
    </project>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>test</groupId>
        <artifactId>extension</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <dependencies>
            <dependency>
                <groupId>test</groupId>
                <artifactId>commons</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.jvnet.jaxb2.maven2</groupId>
                    <artifactId>maven-jaxb2-plugin</artifactId>
                    <version>0.8.3</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                            <configuration>
                                <args>
                                    <arg>-Xannotate</arg>
                                </args>
                                <episodes>
                                    <episode>
                                        <groupId>test</groupId>
                                        <artifactId>commons</artifactId>
                                    </episode>
                                </episodes>
                                <catalog>src/main/resources/catalog.xml</catalog>
                                <plugins>
                                    <plugin>
                                        <groupId>org.jvnet.jaxb2_commons</groupId>
                                        <artifactId>jaxb2-basics</artifactId>
                                        <version>0.6.5</version>
                                    </plugin>
                                    <plugin>
                                        <groupId>org.jvnet.jaxb2_commons</groupId>
                                        <artifactId>jaxb2-basics-annotate</artifactId>
                                        <version>0.6.5</version>
                                    </plugin>
                                </plugins>
                            </configuration>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>com.wordnik</groupId>
                            <artifactId>swagger-annotations</artifactId>
                            <version>1.3.2</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </build>
    </project>
    
    
    4.0.0
    测试
    平民
    0.0.1-快照
    罐子
    com.wordnik
    招摇过市的注解
    1.3.2
    org.jvnet.jaxb2.maven2
    maven-jaxb2-plugin
    0.8.3
    生成
    -山奈特
    org.jvnet.jaxb2_commons
    jaxb2基础知识
    0.6.5
    org.jvnet.jaxb2_commons
    jaxb2基础注释
    0.6.5
    com.wordnik
    招摇过市的注解
    1.3.2
    
第二模块

  • “Extension.xsd”:

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns="http://www.test.com/extension" targetNamespace="http://www.test.com/extension" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:annox="http://annox.dev.java.net" xmlns:swagger="http://annox.dev.java.net/com.wordnik.swagger.annotations" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:c="http://www.test.com/commons" elementFormDefault="unqualified" attributeFormDefault="unqualified" jaxb:extensionBindingPrefixes="annox" jaxb:version="2.1">
        <xs:import namespace="http://www.test.com/commons" schemaLocation="Commons.xsd" />
        <xs:complexType name="Extension">
            <xs:annotation>
                <xs:appinfo>
                    <annox:annotate target="class">
                        <swagger:ApiModel value="Extension" description="Description" />
                    </annox:annotate>
                </xs:appinfo>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="c:BaseType">
                    <xs:sequence>
                        <xs:element name="field2" type="xs:integer" />
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:schema>
    
    
    
  • 'pom.xml':

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>test</groupId>
        <artifactId>commons</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <dependencies>
            <dependency>
                <groupId>com.wordnik</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>1.3.2</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.jvnet.jaxb2.maven2</groupId>
                    <artifactId>maven-jaxb2-plugin</artifactId>
                    <version>0.8.3</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                            <configuration>
                                <args>
                                    <arg>-Xannotate</arg>
                                </args>
                                <plugins>
                                    <plugin>
                                        <groupId>org.jvnet.jaxb2_commons</groupId>
                                        <artifactId>jaxb2-basics</artifactId>
                                        <version>0.6.5</version>
                                    </plugin>
                                    <plugin>
                                        <groupId>org.jvnet.jaxb2_commons</groupId>
                                        <artifactId>jaxb2-basics-annotate</artifactId>
                                        <version>0.6.5</version>
                                    </plugin>
                                </plugins>
                            </configuration>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>com.wordnik</groupId>
                            <artifactId>swagger-annotations</artifactId>
                            <version>1.3.2</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </build>
    </project>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>test</groupId>
        <artifactId>extension</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <dependencies>
            <dependency>
                <groupId>test</groupId>
                <artifactId>commons</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.jvnet.jaxb2.maven2</groupId>
                    <artifactId>maven-jaxb2-plugin</artifactId>
                    <version>0.8.3</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                            <configuration>
                                <args>
                                    <arg>-Xannotate</arg>
                                </args>
                                <episodes>
                                    <episode>
                                        <groupId>test</groupId>
                                        <artifactId>commons</artifactId>
                                    </episode>
                                </episodes>
                                <catalog>src/main/resources/catalog.xml</catalog>
                                <plugins>
                                    <plugin>
                                        <groupId>org.jvnet.jaxb2_commons</groupId>
                                        <artifactId>jaxb2-basics</artifactId>
                                        <version>0.6.5</version>
                                    </plugin>
                                    <plugin>
                                        <groupId>org.jvnet.jaxb2_commons</groupId>
                                        <artifactId>jaxb2-basics-annotate</artifactId>
                                        <version>0.6.5</version>
                                    </plugin>
                                </plugins>
                            </configuration>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>com.wordnik</groupId>
                            <artifactId>swagger-annotations</artifactId>
                            <version>1.3.2</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </build>
    </project>
    
    
    4.0.0
    测试
    延伸
    0.0.1-快照
    罐子
    测试
    平民
    ${project.version}
    org.jvnet.jaxb2.maven2
    maven-jaxb2-plugin
    0.8.3
    生成
    -山奈特
    测试
    平民
    src/main/resources/catalog.xml
    org.jvnet.jaxb2_commons
    jaxb2基础知识
    0.6.5
    org.jvnet.jaxb2_commons
    jaxb2基础注释
    0.6.5
    com.wordnik
    招摇过市的注解
    1.3.2
    
  • “catalog.xml”

    <?xml version="1.0" encoding="UTF-8"?>
    <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
        <systemSuffix systemIdSuffix="Commons.xsd" uri="maven:test:commons!/Commons.xsd" />
    </catalog> 
    
    
    

几天来,我一直在试图解决这个错误,但都没有成功。

使用annox和剧集时出现了一个bug

我已经通过外部绑定(xjb文件)解决了相同的问题。这样,模式也是干净的

e、 g


这是maven插件配置

<plugin>
        <groupId>org.jvnet.jaxb2.maven2</groupId>
        <artifactId>maven-jaxb2-plugin</artifactId>
        <version>0.8.1</version>
        <executions>
            <execution>
                <phase>generate-sources</phase>
                <goals>
                    <goal>generate</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <args>
                <arg>-Xannotate</arg>
                <arg>-Xnamespace-prefix</arg>
                <arg>-nv</arg>
            </args>
            <extension>true</extension>
            <forceRegenerate>true</forceRegenerate>
            <bindingDirectory>${basedir}/src/main/resources/schema/xjb</bindingDirectory>
            <bindingIncludes>
                <include>*.xjb</include>
            </bindingIncludes>
            <schemas>
                <schema>
                    <fileset>
                        <directory>${basedir}/src/main/resources/schema/project/b</directory>
                        <includes>
                            <include>*.xsd</include>
                        </includes>
                    </fileset>
                </schema>
                <schema>
                    <dependencyResource>
                        <groupId>com.project.a</groupId>
                        <artifactId>artifact.a</artifactId>
                        <resource>schema/a.xsd</resource>
                    </dependencyResource>
                </schema>
            </schemas>
            <episodes>
                <episode>
                    <groupId>com.project.a</groupId>
                    <artifactId>artifact.a</artifactId>
                </episode>
            </episodes>
            <debug>true</debug>
            <verbose>true</verbose>
            <plugins>
                <plugin>
                    <groupId>org.jvnet.jaxb2_commons</groupId>
                    <artifactId>jaxb2-basics</artifactId>
                    <version>0.6.2</version>
                </plugin>
                <plugin>
                    <groupId>org.jvnet.jaxb2_commons</groupId>
                    <artifactId>jaxb2-basics-annotate</artifactId>
                    <version>0.6.2</version>
                </plugin>
                <plugin>
                    <groupId>org.jvnet.jaxb2_commons</groupId>
                    <artifactId>jaxb2-namespace-prefix</artifactId>
                    <version>1.1</version>
                </plugin>
            </plugins>
        </configuration>
    </plugin>

org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.8.1
生成源
生成
-山奈特
-XX名称空间前缀
-内华达州
真的
真的
${basedir}/src/main/resources/schema/xjb
*.xjb
${basedir}/src/main/resources/schema/project/b
*.xsd
com.project.a
人工制品
schema/a.xsd
com.project.a
人工制品
真的
真的
org.jvnet.jaxb2_commons
jaxb2基础知识
0.6.2
org.jvnet.jaxb2_commons
jaxb2基础注释
0.6.2
org.jvnet.jaxb2_commons
jaxb2名称空间前缀
1.1

您能否引用解决方案,该解决方案似乎无法在生产任务单上访问