XML に対する FFF の最大の利点は、組み込みのインデックス ベースのランダム アクセス機能です。FFF と比較した場合の XMLの最大の欠点は、構文解析が直線的に行われることです。
個人レコードを保持するデータ ファイルがあるとします。レコードには、ID、名前、住所、および電話番号を保持できます。
固定形式
ID : 8 chars
Surname : 36 chars
Firstname : 36 chars
Address : 100 chars
Phone : 20 chars
-----------------------
Total Space: 200 chars
XML 形式(考案されたもので、さまざまな形式になる可能性があります)
<Person id="...">
<Surname>...</>
<Firstname>...</>
<Address>...</>
<Phone>...</>
</Person>
Total Space : Variant
さて、これに 1000 の「レコード」があるとします。両方のフォームで 600 人目のレコードに到達するのがどれほど難しいか見てみましょう。
固定形式
Offset = (600-1)*200 = 119800 bytes
fseek() + fread() = done
XML 形式
Um.....
XML の最大の強みは拡張性です( Xはゼロから生まれたわけではありません)。XML は、素晴らしいデータ スニペット、RSS フィード、構成ファイルなどを作成します。特別なライブラリや基本的なノウハウのみを使用せずに簡単に出力でき、ストレージ スペースも妥当です (よほどのことをしなければ<LoveThoseSuperDuperLongElementNames>
)。XML パーサーは理解しやすく、多数の標準に支えられており、ほぼすべての人がツールキットに XML パーサーを持っています。普遍的な「理解」は、検証などと同様に、スキーマドキュメント(古い学校のDTD)だけです。
しかし、XML の最大の欠点はこれまでも、現在も、量子コンピューティングが大きく飛躍するまでは、常に速度です。XML は、スループットが要求されるストレージ システムとしては最悪です。