我有几十个.xsd我想自动生成代码的文件。当我尝试同时生成所有文件时,有两个文件的重复名称会发生冲突。

我只想试着让其中的两个开始工作。

我正在使用maven-jaxb2-plugin处理这些文件。

我加了一个binding.xjb中的链接中建议的文件mat b我在网上找到的答案和其他说明。但是我得到了以下错误,没有输出。

<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings version="2.1"
              xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
              xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
              xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
              xmlns:xs="http://www.w3.org/2001/XMLSchema"
              xsi:schemaLocation=" http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd">
  <jxb:bindings schemaLocation="mac-3.4.xsd">
    <jxb:schemaBindings>
      <jxb:package name="my.company.mac"/>
    </jxb:schemaBindings>
  </jxb:bindings>
  <jxb:bindings schemaLocation="mac-stylesheet-3.4.xsd">
    <jxb:schemaBindings>
      <jxb:package name="my.company.stylesheet"/>
    </jxb:schemaBindings>
  </jxb:bindings>
</jxb:bindings>

给出以下错误

[ERROR] Error while parsing schema(s).Location [ file:/C:/Users/Jarrod%20Roberson/Projects/spa-tools/spa-lib/src/main/sc
hema/mac-stylesheet-3.4.xsd{165,33}].
org.xml.sax.SAXParseException: 'halign' is already defined

因素是:(还有许多其他的,这只是二的冲突)

<xsd:simpleType name="halign">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="left" />
    <xsd:enumeration value="center" />
    <xsd:enumeration value="right" />
  </xsd:restriction>
</xsd:simpleType>

如何将绑定配置为忽略重复配置、将它们映射到单独的包或将它们映射到现有实现?

chocolateboychocolateboy提问于
珠政彬u回答于

task generateJaxb() {
    ext.sourcesDir = "${buildDir}/generated-sources/jaxb"
    ext.classesDir = "${buildDir}/classes/jaxb"
    ext.schemaDir = "src/resources/schemas"
    ext.tmp = "${buildDir}/tmp/xjc"

    doLast() {
        project.ant {
            taskdef name: "xjc", classname: "com.sun.tools.xjc.XJCTask",
                    classpath: configurations.jaxb.asPath

            delete(dir: tmp)
            mkdir(dir: tmp)
            delete(dir: sourcesDir)
            delete(dir: classesDir)
            mkdir(dir: sourcesDir)
            mkdir(dir: classesDir)
        }

        fileTree(schemaDir){
            include '**/*.xsd'
            include '**/*.wsdl'
        }.each{File file->
            //println file
            project.ant {
                taskdef name: "xjc", classname: "com.sun.tools.xjc.XJCTask",
                        classpath: configurations.jaxb.asPath
                xjc(destdir: tmp, schema:"${file.getAbsolutePath()}") {
                    arg(value: "-wsdl")
                    produces(dir: tmp, includes: "**/*.java")
                }
                copy(todir: sourcesDir) {
                    fileset(dir: tmp, erroronmissingdir: false) {
                        include(name: "**/*.java")
                    }
                }
                delete(dir: tmp)
                mkdir(dir: tmp)
            }
        }
        project.ant {
            javac(destdir: classesDir, source: 1.6, target: 1.6, debug: true,
                    debugLevel: "lines,vars,source",
                    classpath: configurations.jaxb.asPath) {
                src(path: sourcesDir)
                include(name: "**/*.java")
                include(name: "*.java")
            }

            copy(todir: classesDir) {
                fileset(dir: sourcesDir, erroronmissingdir: false) {
                    exclude(name: "**/*.java")
                }
            }
        }
    }
}

configurations {
    jaxb
}

dependencies {
    jaxb("com.sun.xml.bind:jaxb-xjc:2.2.4-1")
    compile(files(generateJaxb.classesDir).builtBy(generateJaxb))
}

jar {
    from generateJaxb.classesDir
}

回答过的其他问题

云对大数据分析意味着什么?

数据分析和云 是 一个引人注目的组合 我觉得没有云,数据分析就不再可能。 云计算 - 结合连接和带宽 - 构成了数字化的支柱。只有这项技术才能最终实现物联网(IoT)的预期应用。在短短几年内,数十亿台机器,传感器和其他组件将相互联网,这些联网设备每天将收集和传输数十亿项数据。为了...... 展开详请

如何利用腾讯云冷迁移工具将主机迁移至云主机CVM中?

jQuery中的$(This)和这个有什么区别?

$(this)的 this具有jQuery功能。 例如 $('.someDiv').onClick(function(){ // this refers to the DOM element so the following line would fail t...... 展开详请

播种多线程unif_rand()

简而言之:由于R内部原因,你不能用R来做这件事,并且已经被广泛记录。 还有关于RNG和流的统计问题。因此,您最有可能想要研究适合从多个线程绘制的“流式RNG”。CRAN上有: doRNG rstream rlecuyer sitmo 以及不再在CRAN上的旧版sprng。... 展开详请

AWS:向IAM用户分配IAM角色

已采纳
如您所清楚,AWS Roles用于AWS服务的身份验证(使用IAM策略进行授权)。相比之下,AWS IAM用户直接映射到获取登录AWS管理控制台的凭据的人类用户。 但是,当授予对AWS账户外部用户的访问权限(例如,跨账户访问,AD身份验证联合)时,它将需要IAM角色来承担该权限...... 展开详请

通过多个分隔符拆分列,保留分隔符

我们可以使用separatefrom tidyr进行拆分和积极前瞻以保留分隔符: data %>% separate(x, c("x1", "x2", "x3"), sep = "(?=\\+|-)") # x1 x2 x3 # 1: 92.1% +10...... 展开详请

关于作者

所属标签

扫码关注云+社区