我有几十个.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中?

如何在Powershell中运行python程序?

通过告诉Powershell在哪里可以找到Python,你应该能够让它工作。这可以通过设置一个环境变量来完成。 打开Powershell作为管理员。运行以下代码: [Environment]::SetEnvironmentVariable("Path", "$env:Path;...... 展开详请

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

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

GMAP轴承在平滑运动中的旋转(当改变轴承值时避免急促效应)

我打算把这个写成另一个答案,因为我想花点时间写一个文字墙,而我想让其他答案尽可能短,因为它可能仍然可以帮助其他类似的人问题。 问题 因此,如果我理解正确,您要做的是使用适用于不同平台的Google地图构建应用程序。你正遇到谷歌地图的问题(生涩的运动),你正试图找到所有平台的修复...... 展开详请

我可以在同一个表中的同一个api中使用多个findAll()来获取数据吗?

你可以把它写成: getHotels(status) { if(status === 'Inactive'){ return db.Hotels.findAll ({ where: {status: 'Inactive'}, raw:true }); } return db.H...... 展开详请

关于作者

所属标签

扫码关注云+社区