2

XML スキーマを作成していて、未加工のバイナリ データのフィールドをいくつか含める必要があります。最もスペース効率の高い表現を提供する組み込みデータ型は? base64Binaryとの 2 つの可能性があると思いますhexBinaryが、どちらも 16 進数コードの文字列表現のように見えるため、スペース効率が悪く、エンコードに時間のペナルティが発生します。どの組み込みデータ型が、バイナリ データの最も効率的な空間と時間の表現を提供してくれるでしょうか?

4

1 に答える 1

4

バイナリ コンテンツを処理するすぐに使用できる型は他にありません。

最も効率的なのは base64 で、オーバーヘッドは約 30% です。hex は少なくとも 2 倍のサイズです。また、utf-8 などの主に 1 バイト文字セットを使用していることも想定されています。utf-16 を使用して XML をエンコードすると、上記の数値が 2 倍になります。

これらの組み込み型を使用する利点は、典型的な xml からコードへのバインディング ライブラリで得られます。たとえば、JAXB は byte[] を提供するため、エンコード/デコードは透過的です。

また、XML を移動/保存する方法にも依存します。バイナリ添付ファイルをサポートする SOAP ベースのシリアライザーを使用する場合、特に大規模なセットの場合、このルートをたどると効果があります。

于 2012-05-29T19:38:34.480 に答える