我有几十个.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提问于
123456a134回答于
已采纳

<executions>
  <execution>
    <id>jaxb-mac</id>
    <phase>generate-sources</phase>
    <goals>
      <goal>generate</goal>
    </goals>
    <configuration>
      <forceRegenerate>true</forceRegenerate>
      <generatePackage>my.company.mac</generatePackage>
      <schemaDirectory>src/main/schema</schemaDirectory>
      <schemaIncludes>
        <include>mac-3.4.xsd</include>
      </schemaIncludes>
    </configuration>
  </execution>
  <execution>
    <id>jaxb-stylesheet</id>
    <phase>generate-sources</phase>
    <goals>
      <goal>generate</goal>
    </goals>
    <configuration>
      <forceRegenerate>true</forceRegenerate>
      <generatePackage>my.company.stylesheet</generatePackage>
      <schemaDirectory>src/main/schema</schemaDirectory>
      <schemaIncludes>
        <include>mac-stylesheet-3.4.xsd</include>
      </schemaIncludes>
    </configuration>
  </execution>

<forceRegenerate>true</forceRegenerate>是重要的,或者仅仅是第一个<execution/>将运行,其余的将认为没有必要运行,因为我生成的是同一个目录。

此后,我决定尽可能地放弃XML,完全放弃JAXB。有一些新的更好的方法来解析XML并将其映射到编辑时的对象。

回答过的其他问题

深度学习在腾讯云上有哪些应用?

AI技术已经家喻户晓。不论是移动终端设备,还是企业系统平台,都开始集成AI能力,现阶段看,AI融合到各个行业的潜力非常巨大,能够在众多场景中发挥作用,比如云计算。在今天数字化转型的浪潮中,企业上云成为了新常态,云上大量的数据、丰富的应用通过AI技术,能够解决很多问题,因此云与AI...... 展开详请

直播答题抢占了谁的时间?

消息删除后重新进入聊天页面,为什么还会显示, 有什么方案来解决?

删除消息后还会显示,是因为会拉取漫游消息,文档里有说明如果删除本地消息,对于群组,通过getMessage会拉取到漫游消息,所以存在删除消息成功,但是拉取到消息的情况,取决于是否重新从漫游拉回到本地。如果不需要拉取漫游,可以通过 getLocalMessage 获取消息,或者只通...... 展开详请

腾讯云的云通信是否收费?

在JavaScript中修剪字符串?

很多实现可以使用。最简单的是这样的:

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, "");
};

" foo bar ".trim();  // "foo bar"

在jsrender上查找方法时出错,使用带有typescript的jsrender / jsviews

你是对的,那些版本的JsRender index.d.ts和JsViews index.d.ts对于你的webpack + typescript场景是不正确的。 JsRender index.d.ts应该像这样开始: declare module 'jsrender' { ...... 展开详请

关于作者

所属标签

扫码关注云+社区