我有几十个.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提问于
那一年淡然Java研发工程师回答于

可以在maven插件配置(在头xml中)通过添加排除标记,如下面的示例所示:

    <build>
    <plugins>
        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.12.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaLanguage>WSDL</schemaLanguage>
                <generatePackage>mywsdl.wsdl</generatePackage>
                <args><arg>-XautoNameResolution</arg></args>
                <schemas>
                    <schema>
                        <fileset>
                            <excludes>
                                <exclude>*.xsd</exclude>
                            </excludes>
                        </fileset>
                    </schema>
                </schemas>
            </configuration>
        </plugin>
    </plugins>
</build>

回答过的其他问题

如何用大数据构建用户画像?

那一年淡然Java研发工程师
用户画像的标签有以下几个维度: 1、自然特征/基本属性 如性别、年龄、体形、地域、职业、教育程度等 2、消费特征/购买能力:如婚否、收入、车、房、孩子、购物类型、品牌偏好、信用水平、购买周期等 3、社会特征/行为特征:如婚姻状况、家庭构成、社交偏好、信息渠道等 4、兴趣特征/心理...... 展开详请

VR看房是如何实现的?

那一年淡然Java研发工程师
最直观的感受就是,全景是跟随摄像师的视角进行观看的,而VR是可以根据你自己的视角进行观看的。 目前市面上所有的VR看房技术的实现,基本都是先进行数据和3D影像的采集,再利用算法进行三维场景的构建。 VR技术经过近几年的发展已经相对成熟,技术上已经不存在太大的障碍,但任何技术要想让...... 展开详请

腾讯云SCF无服务器云函数有哪些应用?

那一年淡然Java研发工程师

可以自动定时备份数据库,再也不用花那么多步骤了

使用SIGINT后,恢复CTRL + C的默认行为

那一年淡然Java研发工程师

signal返回先前配置的处理程序,将其存储在某处,然后使用signal它来随时恢复它。SIG_DFL也指向C运行时的默认处理程序,但这并不总是正确的。

C#究竟什么是应用领域?

那一年淡然Java研发工程师
使用app域的一些实际好处: 可以在一个过程中运行多个应用程序域。您还可以在不停止整个过程的情况下停止单个应用程序域。仅这一点就大大提高了服务器的可扩展性。 管理应用程序域生命周期由运行时主机以编程方式完成(您也可以覆盖它)。对于进程和线程,您必须明确管理其生命周期。初始化,执...... 展开详请

页面上有多个YouTube视频 - 活动全部准备好了吗?

那一年淡然Java研发工程师
您可以使用setter和getter创建类似变量侦听器(在本例中为计数器侦听器)的内容。然后,您可以指定页面上的视频数量,并在每次加载视频时增加计数器。 每次加载视频时,计数器都会增加,您可以检查计数器是否等于视频总数。当计数器等于该数字时,则意味着所有视频都已加载,您可以执行...... 展开详请

关于作者

所属标签

扫码关注云+社区