問題タブ [moxy]
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.
xpath - 軸/親のEclipseLink MOXy @XmlPathサポート
次の XPath 式のいずれかを使用できますか? eclipselink のバージョン 2.3.1 を使用する
基本的に、これは XML ドキュメント ( ) 内で繰り返されるクラスにあり/root/tag
ます。それが明確でない場合は、詳しく説明します。
ツリーを下るのではなく、上に移動しようとしています。私の他の@XmlPath
注釈は正常に機能しています。
xml - JAXBの実装を確認してください
EclipselinkのMOXyを使おうとしています。注釈付きクラスと同じディレクトリにjaxb.propertiesファイルを配置すると、次のエントリが含まれます。
javax.xml.bind.context.factory = org.eclipse.persistence.jaxb.JAXBContextFactory
とにかく、この実装が実行時に使用されていることを確認できますか?たとえば、次のことを確認することで、StAXの実装がWoodstoxであることを確認できます。
inputFactory.getClass()。getName()はcom.ctc.wstx.stax.WstxInputFactoryと同じです
JAXB実装をチェックするために私ができる同様のことはありますか?
ありがとう。
scala - Scala から Moxy を使用するにはどうすればよいですか?
これは、JAXB を使用してキャメルケース化された Java との間で下線付き XML を un/marshall する方法からの後続の質問です。
Scala (sbt 0.10.0) から Moxy (EclipseLink の一部) を使用しようとしていますが、インポートして使用する方法を理解するのに苦労しています。これを 2 つの部分に分割するには、次のようにします。
1.Moxyのインポート
一度、mvnrepository.comで適切なものが見つかりません。このページを Maven setupで読んだことから、次のことがうまくいくことを期待していました:
しかしsbtは文句を言っているmodule not found: org.eclipse.persistence#javax.eclipselink;2.1.0
2. Moxy を JAXB プロバイダーとして指定する
上記が修正されたので (SRI に感謝します!)、次の問題は、Moxy を JAXB プロバイダーとして指定する際に問題が発生することです。Blaise Doughan によるこの記事の指示からjaxb.properties
、次のエントリを含むファイルを表現と同じパッケージに入れる必要があるようです。
しかし残念なことに、これは sbt を実行しているときには認識されないようです。何か案は?
感謝して受け取った助け。そして皆様、メリークリスマス!
scala - JAXBで属性付き要素をアン/マーシャルするにはどうすればよいですか?
これはかなり明白なはずですが、JAXBを使用して属性も持つXML要素を単純に(非)マーシャリングする方法については何も見つかりません。
言い換えれば、JAXBアノテーションを使用して以下を操作する方法を理解しています。
そして、私はJAXBを次のように使用する方法を理解しています。
しかし、私は次のようなものにアプローチする方法を理解できません:
私はこのようなことができるはずだと感じています(私はScalaのJAXBを使用しています):
そして、次のように定義XLink
します。
しかし、明らかにこれは機能しませんid
。サブ要素であってはならないためです。これは単に親ノードの値です。
これはそのような一般的なユースケースです:私は何が欠けていますか?完全を期すために、私はScalaのJAXB(MOXy)を使用しています。
jaxb - JAXB-Eclipselink:抽象「getter」をXMLにマッピング
JAXBのEclipseLink実装(2.3)を使用してPOJOをXMLにマップしていますが、次のユースケースで問題が発生しています。
マッピング自体を外部バインディングファイルで完全に定義しています。クラスAを次のように一時的に設定します。
クラスBの場合:
さて、マーシャリングすると、例外が発生します。「[x]という名前の重複プロパティがクラス[bar.B]で見つかりました」。これは、私の意見では、Aの抽象宣言に由来し、Bに継承されています。
BのアクセサタイプをFIELDに設定すると、このエラーが解消されます。残念ながら、これはオプションではありません。Bには、フィールドではなく計算値を返すマーシャル用の追加のプロパティがあるため、PROPERTYでスタックします。 (以下の作業:BのアクセサータイプをFIELDに設定し、追加のプロパティを@XmlPathアノテーションでマッピングします-ただし、コードにアノテーションは必要ありません)。
クラスBのアクセサタイプのPROPERTYで立ち往生していたので、次の試みは次のとおりでした。
抽象プロパティがBに継承されないようにするには、次のようにします。
このマッピングを使用しても同じことが起こります。
どちらの場合も、プロパティ'x'は無視されます。
私は今これにかなりの時間を費やしてきました-これを機能させることが不可能だとは想像できませんか?
現時点での私の回避策:
foo.Aを一時的なものとして残し、bar.BにアクセサータイプのFIELDを指定して(問題なくプロパティ'x'を取得します)、コードの注釈を使用してBの追加のプロパティをマッピングします。しかし、前に述べたように、私はこれを注釈なしで完全に解決したいと思います-誰かアイデアはありますか?ブレイズ?:)
よろしく、
--qu
xpath - 述語の不等式に対するEclipseLink MOXy @XmlPathのサポート
軸/親の EclipseLink MOXy @XmlPath サポートを以前に投稿しました
私はまだ @XmlPath アノテーションを使用していますが、述語の不等式がサポートされていないように見えますか?
また、属性の存在を確認することも有効です
またはさらに良いことに、それは存在しません
これらの機能を導入するのに多額の費用がかかりますか? 私は、XPath 配列全体の機能を利用できるようにすることに慣れています。MOXy は私に非常に感謝しているいくつかの素晴らしい機能を提供してくれましたが、この点に関しては少し柔軟性がないように思えます。
properties - JAXB-Eclipselink:継承されたプロパティ
EclipselinkMOXy2.3を使用してPOJOをXMLにマーシャリングするための次のユースケースがあります。
AではなくBとCをマーシャリングする必要があります。したがって、Aを一時的に設定すると、BをマーシャリングするときにマーシャリングされるすべてのメンバーがBに継承されます。Bを単独でマーシャリングする必要があるため、一時的に設定することはできません。 Cをマーシャリングするときは、プロパティB.getX()もマーシャリングする必要があります。
@Override
CのgetX()以外にマーシャリングする方法はありますか?現時点では、これを行う必要があるのは1つのプロパティにすぎませんが、多くのメンバーがいる大規模なBクラスを想像してください。これは、@Override
Cと一緒にマーシャリングするためにCで行う必要があります。
外部マッピングファイルに、スーパークラスのプロパティをその直接のサブクラス(またはすべてのサブクラス)に継承するようにマークする注釈または可能性はありますか?
ここに行くためのEclipselink/JAXBの方法は何ですか?
よろしく、
date - MOXyバインディングファイルでjava.util.Dateを処理する方法
私は一般的にMOXyとJaxBを初めて使用し、java.util.Date変換の問題に直面しています。
マッピングファイルを使用して、XMLファイル(制御できない)をオブジェクトにアンマーシャリングしています(既存のクラスに手動で注釈を付けたり、変更したりすることはできません)。
私のXMLマッピングファイルは次のようになります:
私がマーシャリングしているクラスでは、プロパティ「date」と「theoricalTime」はjava.util.Date型です。
私がマーシャリングしているxmlの値は、次のような形式の文字列です: "dd / MM / yyyy HH:mm:ss"( "05/01/2012 16:36:24")。時間値が「HH:mm:ss」(「14:17:33」)しかないフィールドもいくつかあります。
ファイルをアンマーシャリングするときに取得するスタックトレースは次のとおりです。
私の質問は:MOXyの外部メタデータを使用してマッピングファイル内で型変換を指定することは可能ですか?上記の形式で日時と時刻を処理し、それらを日付フィールドにマップするにはどうすればよいですか?
(私はBlaise Doughanがこれを読んでいることを密かに望んでいます。)
よろしくお願いします!
java - 休止状態のJaxb Moxy? Jboss 6.1 で
Hibernate で Moxy を使用することは可能ですか?
もしそうなら、どうすればインストールできますか、ドキュメントを見つけようとしましたが、何も見つかりませんでした。
jaxb - JaxB EclipseLink/MOXy : おそらく空の日付が、ノードを書き込まずに今日の日付としてマーシャリングされる
もう一度、外部メタデータ マッピング ファイルを使用した Eclipselink/MOXy について質問があります。
クラスに適用される参照xmlがあります。この xml には、クラスに含めることができるすべてのプロパティではなく、一部のプロパティに適用されるデータが含まれています。
また、日付フィールド用にカスタムの日時アダプターを設定しています。
私の問題は、アンマーシャリングしている xml に endDate プロパティのデータが含まれていないことですが、この簡単なテストを実行すると、次のようになります。
- クラスへの参照 xml を非整列化する
- そのクラスを新しい xml ファイルにマーシャリングします
- 2 つの xml ファイルを比較する
そのプロパティ endDate (設定されていないためマーシャリングされるべきではありません) は、09/01/2012 17:05:28 としてマーシャリングされます (現在の時刻に設定された新しい Date() として常にマーシャリングされます)。
サンプルの XML メタデータ ファイルを次に示します。
クラスは次のとおりです。
ここに私のカスタム DateTimeAdapter があります:
ここに私の参照XMLがあります
オブジェクトを再マーシャリングするときに取得する XML は次のとおりです。
Jaxb は空のフィールドに対して新しい日付を生成するようですが、空の値または null 値のノードを生成しないように、外部メタデータ マッピング ファイルを介して彼に伝えるにはどうすればよいですか? メタデータ ファイルで required=false を設定しようとし、値が null であるかどうかをカスタム DateTimeAdapter でテストしようとしましたが、Jaxb が新しい Date オブジェクトを作成し、それを Adapter のマーシャル メソッドに渡すようです。彼がこれをするのを防ぐ方法は考えられません。
以前の質問と同様に、受信する XML やモデル クラスを制御することはできません。
注:このデータは私が書いたサンプルです。実際のデータや名前を公開できないため、正確ではない可能性があります。入力エラーがある可能性があります。
ご協力いただきありがとうございます。