0

JAXB を使用してクラスを生成しようとしましたが、例外が発生しました: IllegalArgumentException: Illegal pattern character 'g' I'using a complex XSD file and a binding file as below. 誰かが調査する場所の手がかりを与えることができますか?

<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 では、クラスはローカライズされたリソース バンドルから日付と時刻のパラメータを取得してローカライズされたメッセージを作成しますが、固定の Locale.ENGLISH を使用して日付をフォーマットします。この動作は JAXB 2.2.6 内にあります。jar ファイル jaxb-xjc.jar のパッケージ com\sun\tools\xjc\ にあるファイル MessageBundle_it.properties (私の場合はイタリア語) を更新するだけで問題を解決しました。私が行った変更は次のとおりです: Driver.DateFormat = aaaa.MM.gg (オリジナル) から Driver.DateFormat = yyyy/MM/dd (新規) および Driver.TimeFormat = hh:mm:ss az (オリジナル) から Driver.TimeFormat = HH:mm:ss (新規) これらの変更により、必要に応じてクラスを生成することができました。HTH フラビオ

于 2012-11-15T08:14:09.093 に答える
0

xsd ファイルの 1 つに、型/要素に関連付けられた正規表現ベースの制限があると推測できます。それらのファイルを検証しましたか?

于 2012-06-27T11:10:52.020 に答える