問題タブ [smooks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
642 参照

java - smooks で list.list からリスト コピーを取得する方法

スモック初心者です。問題に直面しています。これが Java-Java 変換です。リストがあり、その中に 2 つのオブジェクトを持つ内部リストがあります。smooks で list.list からリスト コピーを取得するにはどうすればよいですか?

0 投票する
2 に答える
1113 参照

xml - HashMap と smooks


Map を xml に変換してから、smooks を使用して Map に変換する必要があります。このマップには複雑な値 (例: リスト) を含めることができます。smooks を使用してそれを達成する方法は?
元:

where<a>および<b>tags は、既存の A および B モデルを参照しています

ありがとう、

0 投票する
1 に答える
8072 参照

edi - スモックの問題

現在、smooks (www.smooks.org) を評価しています。必要なもののように見えますが、簡単な例を機能させるのに問題があります。

EDIFACT メッセージのマッピングとバインディング jar を含むすべての依存関係をダウンロードする ant スクリプトがあります。

EJC を使用して単純な EDIFACT APERAK メッセージを Java に変換しようとしています (この小さなテストには JavaSE を使用しています)。変換は、一部のブロックが予期されていないという例外で失敗します (以下を参照)。そのため、構成が欠落しているかどうか疑問に思っています (ログ出力の最初の数行に注意してください)。

Smooks の EJC を使用したことのある人はいますか? 文句を言っている行に関する詳細情報を取得するにはどうすればよいですか?

これはコードです:

実行すると、この例外が発生します

実際の EDIFACT メッセージはかなり単純です。

先頭の UNA および UNB セグメントを削除すると、次の例外が発生します: ([APERAK][D:00B:UN]. セグメント [BGM] のインスタンスが少なくとも 1 つ必要です)。BGM の部分があるので、なぜ文句を言っているのかわかりません。

更新: メッセージからキャリッジ リターンを削除すると

それは正常に動作します。しかし、smooks にキャリッジ リターンと空白、および先頭の 2 つの UNA/UNB セグメントを受け入れるようにするにはどうすればよいでしょうか? smooks が通常行うメッセージ処理の一部をおそらくスキップしました。

更新 2: UNA/UNB セグメントがサポートされていることがわかりました (私の間違いです) が、まだキャリッジ リターンに問題があります。Renat は、EDIParser で「ignoreNewLines」オプションを使用することを提案しました。私はそれを試しましたが、違いはないようです。また、これでsmooksを構成しようとしました:

再び成功しませんでした。

D00AInterchangeFactory (または使用するすべてのバージョン) の EDIParser の構成が異なり、ignoreNewLines が無視されているように感じます。

InterchangeFactory が使用している EDIParser を取得する方法はありますか?

0 投票する
1 に答える
124 参照

java - 指定したスキーマを使用して Java クラスを XML にシリアル化する方法

Joo.java クラスがあり、スキーマ JooSchema.xsd を使用して XML にシリアライズしたいと考えています。

Smooks API で可能ですか?どうすればよいですか?

0 投票する
1 に答える
2507 参照

java - apache camel、smooks、flatpack の使用

プロデューサーを JPA オブジェクトのリストを生成する JPA リポジトリとしてキャメルと smooks を使用してルートを作成しています。これは固定幅ファイルとして sftp サーバーに送信する必要があります。

これが発生するために必要だと思うことは次のとおりです

  1. JPA を使用してオブジェクトのリストを生成するリポジトリ (私はこれを持っています)
  2. 上記のリストの xml バージョンを受け取り、それを固定幅ファイルに変換するフラットパック マッピングへの smooks
  3. リポジトリで始まり、sftp 経由で送信されるファイルで終わるキャメル ルート:

これが私が持っているコードです:

ただし、単体テストを実行すると、次のエラーが発生します。

これは、フラットパックがリストをどう処理するかわからず、オブジェクトごとにオブジェクトを処理する必要があることを意味すると思います。

したがって、私が探しているのは、freemaker テンプレートに似た smooks マッピングですが、freemaker テンプレートの代わりに、flatpack の列定義を使用したいと考えています。

これについて最善の方法は何ですか?利用可能なドキュメントはあまりなく、私は何週間も探していました

ありがとう

サム

0 投票する
1 に答える
4223 参照

java - プログラムでsmooksのcsvをjavaにマッピングすると、空のDoubleを処理できません

私はsmooksライブラリを使用してcsvファイルをすばやく簡単に解析し、プログラムでPOJOにマッピングしています。しかし、POJOのDouble属性の空のフィールドを処理するのに問題があります。たとえば、javaオブジェクトには次のものがあります。

そして、smooksマッピングは次のようになります。

ただし、c_06、c_07、c_08、およびc_09(ゼロだけでなく空)の値が空のファイルを処理する場合、これはたまたまDouble値であり、POJOの属性セッターで関数のオーバーロードを設定しても機能せず、スローされます。

プログラムによるアプローチを維持しながら、この罠を回避する方法はありますか?

---------------- EDIT ----------------: csv-to-javaのsmooksの例でこれをテストしています。 Tomが言うようにconfigxmlを使用します。私はこれを持っています、そしてエラーは複製します:

ファイルは

(空の年齢に注意してください)。そして、Javaのメインクラスは

トムの例(!!!)であることがわかったので、次のように質問し<jb:bean>ます。?を使用してcsvフィールドをPOJO属性にマップする方法

---------------- EDIT2 ----------------: コードハウスのJIRAスレッドで見つけたものを試したところ、次のようになりました。構成ファイル:

前に表示された空の整数(年齢)のCSVを使用して機能しますが、1.1を超えるjavabeanxsdを更新すると失敗します。エラーをスローします

私は何か見落としてますか?

0 投票する
2 に答える
3074 参照

java - SmooksでCSVを読む

Smooks()を使用してCSVを読み取り、それらをPOJO1.4に変換します。Person

CSVは、各行のコンマ区切りのレコードで構成され、各レコードにはパイプで区切られたフィールドがあります。

スミス|ジョン|45|男性|ジョニー|JSmith| JSmizzle、

スミス|ジェーン|43|女性|ジェニー

したがって、各行は作成する異なる人物を表します。まず、POJO:

私の問題はListエイリアスの問題です。これが私のXML構成の重要な部分です。

だから私が窒息しているのは、 ArrayListと各文字列をcreateOnElement正しく構成することです。正しい方向に私を動かすことができる人に事前に感謝します!aliasesalias

0 投票する
1 に答える
7887 参照

java - ETL ツール: GUI とフレームワーク

「ETL ツール」という用語が最近よく使われていると聞き、それらについて詳しく知るために掘り下げ始めました。ここでJava用のオープンソースETLツールの素晴らしいリストを見つけて、それらを読み始めました。

しかし、それは私を本当に混乱させました。

これらのツール (CloverETL、Pentaho など) のほとんどは GUI ツールです。それらの一部 (Smooks など) は純粋な Java フレームワークです。これは理にかなっていると思います。一部の ETL ユーザーは、技術に詳しくない場合や、GUI ツールを使用して変換をセットアップしたい場合があります。他のユーザーは、これらのツールの生の ETL パワーを利用したい開発者です。

私の質問: これらの GUI ツールが純粋な Java フレームワークよりも優れている点 (追加機能など) はありますか、またはその逆はありますか? CloverETL や Pentaho などの「メジャー プレイヤー」GUI ツール (GUI ツールと自称している) にも、同じことを (プログラムで) 達成できる Java API がありますか? それとも純粋な GUI ツールですか? Java Docs がどこにも見つかりません (どちらの場合も)。

0 投票する
1 に答える
1401 参照

java - Smooks EDI を Camel で動作させることができません

アイデアは、ファイル システムから edi ファイルを読み取り、それを XML に転送することです。smooks からダウンロードしたサンプルを試してみましたが、うまくいきました。しかし、Camel Processor から同じコード (および edi ファイル) を使用し始めると、nullpointer が発生します。

コード

ログ

0 投票する
1 に答える
1601 参照

java - smooks を使用して EDI メッセージを XML にマッピングする際の問題

Smooks を使用して、以下の ORDERS EDI メッセージを xml にマップしたいと思います

  1. 以下の smooks edimap 設定の (上記のメッセージに基づいて)セグメントフィールドコンポーネント、およびサブコンポーネントの値は何ですか?

    <medi:edimap xmlns:medi="http://www.milyn.org/schema/edi-message-mapping-1.0.xsd">
    <medi:description name="注文書" version="1.0" /> < medi:delimiters セグメント=" " フィールド="+" コンポーネント="'" サブコンポーネント="~" />
    </メディ:edimap>

  2. すべての EDI 発注書フィールドの説明と例はどこで入手できますか?

ありがとうございました。