JAXBとXmlBeansの違い

Anonim

JAXB vs XmlBeans

の処理に使用されるのはこのプロセスです。JAXBはJavaEE標準の一部であり、XMLバインディングのJavaアーキテクチャを指します。このプロセスは、XML文書の処理に使用されます。 JAXBの使用はJavaのXML文書の処理のための代替手段を提供するので、XML技術のすべての細部を理解する必要はありません。 JAXBは、JavaEE 5準拠のアプリケーションでオープンソースパッケージとして利用できます。このパッケージでは、データバインディングとJavaプログラミング言語で書かれたXMLドキュメントの読み込みとアクセスが容易になります。一方、XMLBeansはBEAシステムで開発されたオープンソースプロジェクトであり、XML文書にアクセスする際にJAXBと同様の機能を提供します。しかし、XMLBeansを扱う際には、XMLの優れた知識が必要です。しかし、これら2つの間には相違点があり、以下で説明します。

<! JAXBとXMLBeansの開発に先立って、XMLを処理する唯一の方法は、SAX(XML for Simple API)を解析するソフトウェアの使用、またはDOM(Document Object Model)は、両方ともJAXP(API処理用のJava API)によって提供される分析言語です。開発者は、コードがXML文書内の言語を分析できるように、JAXPを介してDOMまたはSAXを呼び出すことを目的としたコードを作成しなければなりませんでした。スキャン時に、コードは通常、コードを別個の断片に分解し、目的のアプリケーションで利用できるようにしました。

<! JAXBとXMLBeansの主な違いは、マーシャリングとXML文書のアンマーシャリングにそれぞれ取り組むアプローチです。 XMLBeansは、XML文書のデータ整合性が失われていることが示されているため、Java変換を行わずにXML文書全体を処理します。 XMLBeansには、XML文書をスキャンするカーソルが作成されています。カーソルを使用すると、ドキュメントの忠実性が維持されるため、スキーマ情報またはコメントを含むドキュメントの任意の要素にアクセスできます。 XMLBeansは、同じドキュメント内でXQueryの実行も提供します。 XMLBeansでは、APIを反映したかなり一般的なアクセスタイプを使用して、さらに型付きアクセスが提供されます。 XMLBeansは、前述のように、XMLと拡張機能(SAXまたはDOM)に関する膨大な知識を必要とします。

<! - 3 - >

一方、JAXBはXMLスキーマにバインドされています。これは、DTD(ドキュメントタイプ定義)のみをサポートできるXMLスキーマのすべての機能をサポートできなかったため、最初のJAXBリリースで発生した問題に続いています。これは、JAXBの最初のリリースでは読み込み可能なバインディングを提供できないことを意味していました。JAXB 2.0では、完全なXMLスキーマのサポート、JavaからXMLへのスキーママッピング、移植性、およびスキーマの進化を提供するため、開発処理が非常に簡単になりました。さらに、JAXBは無効なXMLコンテンツの柔軟な非整列化を導入し、非整列化を終了するかどうかを決定しません。

要約:

- より堅牢なXML機能を望むならば、XMLBeansが優れていますe。 g。 XQueriesおよび直接XML文書へのアクセス。その使用はメモリ管理とパフォーマンスを犠牲にして行われます。

- JAXBは、XMLBeansほど徹底的ではありませんが、より高いパフォーマンスとメモリ管理が望まれる場合に適しています。

- 単純なXML文書変換の後にJAXBを選択する必要があります。

- XMLBeansではなく、JAXBでバインディングのカスタマイズが最適です。

- JAXBは、メモリー依存プロセスであるXMLBeansの使用とは対照的に、効率的なメモリー使用を提供します。

- XML文書を非整列化したい場合は、XMLBeansがアンマーシャリングの難しさに直面するため、JAXBを選択します。スキーマのバインド時に、オブジェクト作成にObjectFactoryを使用し、コンテンツ作成の生成にsetメソッドを使用できます。