0

我尝试使用 JAXB 生成类,但出现异常: IllegalArgumentException: Illegal Pattern character 'g' 我使用了一个复杂的 XSD 文件和一个绑定文件,如下所示。有人可以提供调查地点的线索吗?

<jxb:bindings version="1.0"
           xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
           jxb:extensionBindingPrefixes="xjc">
        <jxb:bindings schemaLocation="IFX170_XSD.xsd" node="/xs:schema">
            <jxb:schemaBindings>
                <jxb:package name="cy.com.netinfo.netteller.ifx"/>
            </jxb:schemaBindings> 
        </jxb:bindings>
        <jxb:bindings schemaLocation="RemitDetail_Type.xsd" node="/xs:schema">
            <jxb:schemaBindings>
                <jxb:package name="cy.com.netinfo.netteller.ifx.remitdetailinfo"/>
            </jxb:schemaBindings> 
        </jxb:bindings>
        <jxb:bindings schemaLocation="$pain.001.001.01.xsd" node="/xs:schema">
            <jxb:schemaBindings>
                <jxb:package name="cy.com.netinfo.netteller.ifx.swift.pain_001_001_1"/>
            </jxb:schemaBindings> 
        </jxb:bindings>
        <jxb:bindings schemaLocation="$pain.002.001.01.xsd" node="/xs:schema">
            <jxb:schemaBindings>
                <jxb:package name="cy.com.netinfo.netteller.ifx.swift.pain_002_001_1"/>
            </jxb:schemaBindings> 
        </jxb:bindings>
        <jxb:bindings schemaLocation="$pain.004.001.01.xsd" node="/xs:schema">
            <jxb:schemaBindings>
                <jxb:package name="cy.com.netinfo.netteller.ifx.swift.pain_004_001_1"/>
            </jxb:schemaBindings> 
        </jxb:bindings>

4

2 回答 2

2

我终于找到了答案。问题是由于 com.sun.tools.xjc 包中的 Options 类有错误。在方法 getPrologComment 中,该类构建一个本地化消息,从本地化资源包获取参数 fot 日期和时间,然后使用固定的 Locale.ENGLISH 格式化日期。此行为在 JAXB 2.2.6 中。我解决了这个问题,只需更新 jar 文件 jaxb-xjc.jar 的包 com\sun\tools\xjc\ 中的文件 MessageBundle_it.properties(在我的情况下为意大利语)。我所做的更改是:Driver.DateFormat = aaaa.MM.gg (original) to Driver.DateFormat = yyyy/MM/dd (new) and Driver.TimeFormat = hh:mm:ss az (original) to Driver.TimeFormat = HH:mm:ss(新)通过这些更改,我能够根据需要生成类。HTH 弗拉维奥

于 2012-11-15T08:14:09.093 回答
0

我可能猜想您的其中一个 xsd 文件具有附加到类型/元素的基于正则表达式的限制。您是否验证了这些文件?

于 2012-06-27T11:10:52.020 回答