当前位置: 首页 > 知识库问答 >
问题:

如何在命令行中使用jaxb2-annotate-plugin和XJC

何兴学
2023-03-14
<jxb:bindings xmlns:jxb="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:annox="http://annox.dev.java.net"
              jxb:extensionBindingPrefixes="xjc annox"
              version="2.1">
    <jxb:bindings schemaLocation="myschema.xsd" node="/xs:schema">
        <jxb:bindings node="xs:complexType[@name='MyType]">
            <annox:annotateClass>@javax.xml.bind.annotation.XmlType(namespace="urn:myschematwo")</annox:annotateClass>
        </jxb:bindings>
    </jxb:bindings>
</jxb:bindings>
D:/jaxb-ri/bin/xjc.bat -p "com.jaxb.mypackage" -d
"D:/myproject/src/main/java" D:/myschema.xsd -b "D:/bindings.xjb"
-extension

提前谢了。

共有1个答案

云宾鸿
2023-03-14

免责声明:我是jaxb2-annotate-plugin的作者。

首先,我不提供命令行示例,因为(据我所知)没有人使用命令行或批处理脚本进行模式编译。至少到目前为止,没有人要求这样做。有关于Ant和Maven的示例,关于Ant的示例是接近命令行的用法。

接下来,我想知道xjc.bat中有什么。

    null
                <!-- JAXB2 Basics library -->
                <include name="jaxb2-basics-*.jar"/>
                <include name="jaxb2-basics-annotate*.jar"/>
                <!-- JAXB2 Basics library dependencies -->
                <include name="annox-*.jar"/>
                <include name="javaparser-*.jar"/>
                <include name="commons-beanutils-*.jar"/>
                <include name="commons-logging-*.jar"/>
                <include name="commons-lang3-*.jar"/>

以下是完整的依赖关系树(包含版本):

[INFO] org.jvnet.jaxb2_commons:jaxb2-basics-annotate:jar:1.0.3-SNAPSHOT
[INFO] +- org.jvnet.jaxb2_commons:jaxb2-basics-tools:jar:0.8.1:compile
[INFO] |  +- commons-beanutils:commons-beanutils:jar:1.7.0:compile
[INFO] |  \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] +- com.sun.xml.bind:jaxb-impl:jar:2.2.7:provided
[INFO] |  +- com.sun.xml.bind:jaxb-core:jar:2.2.7:provided
[INFO] |  |  +- javax.xml.bind:jaxb-api:jar:2.2.11:provided
[INFO] |  |  \- com.sun.istack:istack-commons-runtime:jar:2.16:provided
[INFO] |  \- com.sun.xml.fastinfoset:FastInfoset:jar:1.2.12:provided
[INFO] |     \- javax.xml.bind:jsr173_api:jar:1.0:provided
[INFO] +- com.sun.xml.bind:jaxb-xjc:jar:2.2.7:provided
[INFO] +- org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-testing:jar:0.9.0:test
[INFO] |  \- org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:jar:0.9.0:test
[INFO] |     +- org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-core:jar:0.9.0:test
[INFO] |     |  +- com.sun.org.apache.xml.internal:resolver:jar:20050927:test
[INFO] |     |  +- org.apache.maven:maven-plugin-api:jar:2.0.9:test
[INFO] |     |  +- org.sonatype.plexus:plexus-build-api:jar:0.0.7:test
[INFO] |     |  \- org.apache.maven:maven-project:jar:2.0.9:test
[INFO] |     |     +- org.apache.maven:maven-settings:jar:2.0.9:test
[INFO] |     |     +- org.apache.maven:maven-profile:jar:2.0.9:test
[INFO] |     |     +- org.apache.maven:maven-model:jar:2.0.9:test
[INFO] |     |     +- org.apache.maven:maven-artifact-manager:jar:2.0.9:test
[INFO] |     |     |  +- org.apache.maven:maven-repository-metadata:jar:2.0.9:test
[INFO] |     |     |  \- org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2:test
[INFO] |     |     +- org.apache.maven:maven-plugin-registry:jar:2.0.9:test
[INFO] |     |     \- org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:test
[INFO] |     |        \- classworlds:classworlds:jar:1.1-alpha-2:test
[INFO] |     +- org.codehaus.plexus:plexus-utils:jar:1.5.15:test
[INFO] |     +- org.jvnet.jaxb2.maven2:maven-jaxb22-plugin:jar:0.9.0:test
[INFO] |     \- org.apache.maven.plugin-tools:maven-plugin-annotations:jar:3.2:test
[INFO] |        \- org.apache.maven:maven-artifact:jar:3.0:test
[INFO] +- org.jvnet.annox:annox:jar:1.0.1:compile
[INFO] |  +- org.apache.commons:commons-lang3:jar:3.2.1:compile
[INFO] |  +- commons-io:commons-io:jar:1.2:compile
[INFO] |  \- com.google.code.javaparser:javaparser:jar:1.0.11:compile
[INFO] \- junit:junit:jar:4.11:test
[INFO]    \- org.hamcrest:hamcrest-core:jar:1.3:test

Maven的东西是不相关的,否则您应该能够看到版本。

希望这能有所帮助。

 类似资料:
  • 为了进行测试,我在模式中添加了以下内容, 之后XJC开始给出以下错误, 不支持的绑定命名空间“http://annox.dev.java.net”。也许您指的是“http://java.sun.com/xml/ns/jaxb/xjc”? xjc-p com.test-classpath=“jaxb2-basics-annotate-1.0.2.jar;tools-0.4.1.5.jar;comm

  • 我正在使用maven-jaxb2-plugin和jaxb2-basics-annotate插件从我的xsd自动生成POJO。我已经成功地在POJO中生成了注释。我需要将注释应用于枚举中的方法,但不知道如何做到这一点。 xsd有, 生成的文件 我需要的是在上面的value方法中添加JsonValue注释。 我尝试了以下和其他一些调整,但在绑定。xjb什么都不起作用。 有什么叫做annotateEnu

  • 正如独立jar的文档所述,我试图为我的特性提供参数,但不知道如何使其工作。我错过了什么? 我的命令行: 空手道配置。js TestArgs。功能:测试参数 我没有得到任何打印:java-jarc:\karate\karate-0.9。1.jar-a myKey1=myValue1 TestArgs。特色 10:32:57.904[主]信息网。凭直觉。空手道。内蒂。主要-空手道版本:0.9。1. 1

  • 如果您使用类似这样的插件来解析xsd文件,那么在从jdk7升级到JDK8时会遇到以下异常: 您如何使这个插件与JDK8一起工作?

  • 在阅读了多篇关于这个主题和Gradle手册的文章后,我正在尝试运行下面的代码块。我运行下面的命令并得到以下错误:execCommand==null! 关于我在下面的代码块中做错了什么有什么想法吗?

  • 从CI运行测试时看到崩溃。阅读这篇关于使用Android Test Orchestrator的文章(https://developer.android.com/training/testing/junit-runner#ato-gradle)。我正在使用adb从CI运行我的测试。想知道如何在命令行中安装编排器。apk?