0

为代码生成定义了多个源 xsd,这似乎是源路径的长度限制。如果我删除注释以添加源标记,则代码生成会抱怨枚举常量过多而失败。为了解决这个问题,我之前将 typesafeEnumMaxMembers="2000" 添加到 binding.xjb 中。就像指定多个源或路径变长时忽略绑定设置一样。具有较少源标记的代码生成按预期工作。

有什么建议么?

片段:

<configuration>
          <xjbSources>
            <xjbSource>src/main/xjb/binding.xjb</xjbSource>
          </xjbSources>
          <sources>
            <source>src/main/resources/xsd/Bausparmodellrechner/2017/2/berechneTAModell/Anfrage.xsd</source>
            <source>src/main/resources/xsd/Bausparmodellrechner/2017/2/berechneTAModell/Antwort.xsd</source>
            <source>src/main/resources/xsd/Bausparmodellrechner/2017/2/druckeTAModell/Anfrage.xsd</source>
            <source>src/main/resources/xsd/Bausparmodellrechner/2017/2/druckeTAModell/Antwort.xsd</source>
            <source>src/main/resources/xsd/is-konditionen/1.0/GibDarlehenskonditionenAntwort.xsd</source>
            <source>src/main/resources/xsd/sv/sv.xsd</source>
            <source>src/main/resources/xsd/Bausparantrag/2017/1/pruefeAntrag/Anfrage.xsd</source>
            <source>src/main/resources/xsd/Bausparantrag/2017/1/pruefeAntrag/Antwort.xsd</source>
<!--             <source>src/main/resources/xsd/Bausparantrag/2017/1/druckeAntrag/Anfrage.xsd</source> -->
            <source>src/main/resources/xsd/Bausparantrag/2017/1/verarbeiteAntrag/Anfrage.xsd</source>
<!--             <source>src/main/resources/xsd/Bausparantrag/2017/1/verarbeiteAntrag/Antwort.xsd</source> -->
          </sources>
        </configuration>

绑定.xjb:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jxb:bindings version="2.0" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    jxb:extensionBindingPrefixes="xjc">

    <!-- Raise theEnumMemberSizeCap limit -->
    <jxb:globalBindings typesafeEnumMaxMembers="2000">
    </jxb:globalBindings>

</jxb:bindings>
4

1 回答 1

0

在 xsd 文件中找到使用内联绑定的解决方法:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema ... xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="2.0">
  <xsd:annotation>
    <xsd:appinfo>
      <jxb:globalBindings typesafeEnumMaxMembers="2000" />
    </xsd:appinfo>
  </xsd:annotation>
....
</xsd:schema>

另一种选择是将整个项目从

/Users/myuser/Documents/build/myproject

到较短的基本路径,例如

/Users/myuser/myproject
于 2017-11-29T11:11:05.117 回答