首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAXB与annox自定义的单独事件失败: SAXParseException2

JAXB与annox自定义的单独事件失败: SAXParseException2
EN

Stack Overflow用户
提问于 2014-04-19 13:47:20
回答 1查看 1.9K关注 0票数 2

我有两个maven模块。

  • 首先,它只包含一个用来生成基本POJO类的xsd模式。
  • 第二个on包含一个xsd模式,该模式首先导入一个目录文件,然后生成新的POJO类。这两代人都能工作。

现在,我用Now (Swagger注释)将注释添加到两个xsd文件中。首先,模块编译成功了,但秒模块编译失败了,只有例外:

代码语言:javascript
复制
[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‘:
  • 'pom.xml‘: 4.0.0 TestCommons0.0.1-快照jar com.wordnik swagger-注释1.3.2 org.jvnet.jaxb2.maven2maven-jaxb2-plugin0.8。3生成-Xannotateorg.jvnet.jaxb2_commons jaxb2-基础0.6.5org.jvnet.jaxb2_commons jaxb2 2-基础-注释0.6.5com.wordnik自夸-注释1.3.2

第二模块

  • 'Extension.xsd‘:
  • 'pom.xml‘: 4.0.0测试扩展0.0.1-快照jar测试共用${project.version} org.jvnet.jaxb2.maven 2 maven-jaxb2-plugin0.8.3生成-Xannotate测试公域src/main/resources/Director.xmlorg.jvnet.jaxb2_commons jaxb2-基础0.6.5org.jvnet.jaxb2_commons jaxb2 2-基础-注释0.6.5com.wordnik自夸-注释1.3.2
  • 'catalog.xml‘!

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-21 20:19:49

有一个错误使用的烦恼和插曲。

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

例如:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings
  xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:annox="http://annox.dev.java.net"
  xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
  jaxb:extensionBindingPrefixes="xjc annox"
  version="2.1">

  <jaxb:globalBindings>
    <jaxb:serializable uid="12345"/> 
  </jaxb:globalBindings>


  <jaxb:bindings schemaLocation="domain1.xsd" node="/xs:schema">
    <jaxb:bindings node="xs:complexType[@name='SomeRootType']">
      <annox:annotate>
        <annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement" name="SomeRootType"/>
      </annox:annotate>
    </jaxb:bindings>
  </jaxb:bindings>

</jaxb:bindings>

这是maven插件的配置

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23170839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档