1

私は JAXB (および XSLT 用の少しの Saxon) を使用して XML データをアンマーシャリングしています。私の XML ドキュメントには、日付文字列値があります。

私はいくつかの調査を行い、XMLAdapter と @XMLJavaTypeAdapter を試しました。ここで StackOverflow に関する便利な Q&A を見つけました: jaxb unmarshal timestamp。SimpleDateFormat を含むそこで概説されているソリューションはうまくいくようです。

これが私の問題です。XML の日付文字列の形式は、ドキュメントごとに異なります。毎回異なる日付形式にすることができます。現在のシステム (このすべての XML 操作に置き換えています) では、データベース テーブルに日付形式があり、XML ドキュメントが解析されるときに取得および適用されます。手動で。1行ずつ。(これで、JAXB に置き換えた理由がわかりましたね!)

質問は次のようになります: XMLAdapter の SimpleDateFormat に渡される日付形式文字列を、さまざまなドキュメントに変更するにはどうすればよいでしょうか? そのようなことは可能ですか?日付文字列を文字列として読み取り、後で別の場所で日付に変換する運命にありますか?

編集:この質問を削除するつもりでしたが、賛成票が投じられたので、最終的に何をしたかについて適切な回答を書き出すと思います。誰かがさらに良い答えにつながる洞察を持っている場合に備えて、しばらくの間、私自身の答えを受け入れることを保留します。

4

2 に答える 2

0

これが私が最終的に行ったことです:私は質問でリンクしたQ&Aにある正確な解決策を適用しました。ここにあります:jaxb unmarshal timestamp

あなたは次のように考えているかもしれませんSimpleDateFormat。 ! ばかみたい!"

これが私の解決策です。私は既に XML ドキュメントに XSLT を適用しています。XML ドキュメントの種類ごとに異なる XSLT があります。SimpleDateFormatそこで、すでに持っている (必要な) XSLT に機能を追加して、日付文字列を my のオブジェクトで指定されたものと同じ日付形式に変換しますXMLAdapter

タダ!今はジャックを設定する必要はありません。私の構成は、非整列化を試みる前に既に (そして常に) 適用している XSLT に固有のものです。

于 2012-06-08T20:27:16.240 に答える
0

を使用しXmlAdapterて日付形式を処理できます。日付形式はドキュメントごとに異なるため、Unmarshaller でアダプタの初期化されたインスタンスを指定することを利用できます。このようにして、非整列化するドキュメントに適した日付形式を設定できます。

于 2012-06-08T19:58:17.200 に答える