nlib
|
バイナリXMLパーサー(とXMLパーサー)が実装されています。 [詳解]
クラス | |
class | ExiAllocator |
XMLパーサーが内部で利用するアロケータです。ユーザーが利用することもできます。 [詳解] | |
class | ExiAllocatorEx |
XmlStreamReader, XmlStreamWriter の各インスタンス毎に設定できるアロケータです。 [詳解] | |
class | ExiErrorStatus |
XMLパーサーのエラー状態を設定・格納します。 [詳解] | |
class | Preserve |
読み書きするバイナリXMLのデータ保持オプションです。 [詳解] | |
class | XmlStreamReader |
XMLストリームからの読み出しを行う抽象クラスです。 [詳解] | |
class | XmlStreamReaderSettings |
XmlStreamReader の初期化オプションとなる構造体です。 [詳解] | |
class | XmlStreamWriter |
XMLのストリームへの書き出しを行う抽象クラスです。 [詳解] | |
class | XmlStreamWriterSettings |
XmlStreamWriter の初期化オプションとなる構造体です。 [詳解] | |
型定義 | |
typedef wchar_t | ExiChar |
XMLパーサーの内部文字列型のtypedef です。 [詳解] | |
列挙型 | |
enum | Alignment { ALIGNMENT_BIT_PACKED = 0, ALIGNMENT_BYTE_ALIGNMENT = 1 } |
読み書きするバイナリXMLのアライメントを指定します。 [詳解] | |
enum | XmlProcessor { XML_PROCESSOR_EXI = 0, XML_PROCESSOR_TEXT } |
利用するXmlプロセッサの指定オプションです。 [詳解] | |
関数 | |
bool | TransformXml (XmlStreamReader *r, XmlStreamWriter *w) noexcept |
XmlStreamReader から読み込んで、XmlStreamWriter へ書き出します。 [詳解] | |
バイナリXMLパーサー(とXMLパーサー)が実装されています。
exi
ライブラリはXMLの読み書きを効率的に行うためのライブラリで、バイナリ形式とテキスト形式で表現されたXMLを読み書きすることができます。 バイナリ形式にすることによって、XMLを採用した場合に問題となってきたサイズの冗長性や処理の重さといった問題を緩和できるので、XMLを利用するメリットはそのままに、リスクは大幅に減少させることができます。また、ネットワーク帯域の利用を節約することもできます。 exi
ライブラリはW3C EXIを部分的に実装しています。 W3C EXIについてはW3C EXI(Efficient XML Interchange)について を参照してください。exi
ライブラリには以下のような特長があり、ネットワーク帯域やCPUのオーバーヘッドの制約が厳しい条件の中でXMLを取り扱うことに向いています。exi
ライブラリでバイナリ表現を用いることによって、一般的なXMLで大体1/3から1/4程度のサイズにできるようです。 手法としてはXML文書内で出てきた文字列にインデックスを割り当ててデータ量を削減しています。 exi
ライブラリはXMLをメモリにおいてからパースした場合でも、expatやXmlLiteといった一般に高速に動作すると言われているXMLパーサーと同等かそれ以上の動作速度を達成しています。exi
ライブラリは名前空間をサポートしています。 一般にオーサリングツールは名前空間つきのXMLを出力しますが、そのようなXMLを扱うためには名前空間がサポートされていることが必要です。exi
ライブラリではDTDはサポートされていません。そのためDTDを利用したXML爆弾を作ることは不可能です。 XmlStreamWriter
を構築してバイナリXMLを書きだすことができます。XmlStreamReader
を構築してバイナリXMLを読み込むことができます。 JavaのStAX(Streaming API for XML)や.NET FrameworkのXmlReaderと同種のPull Parsingが実現されていて、DOMやSAXを使うよりも簡単にプログラミングができます。 nexiconv.exe
を用いることによりXMLとバイナリXMLの相互変換が可能です。 以下のようにすることで、XMLファイルをバイナリXMLファイル(拡張子 .exi
)に変換することができます。 exi
ライブラリではコードサイズをあまり増やすことなく、バイナリXMLパーサーとテキストXMLパーサーの両方をサポートしています。 XMLパーサーの内部文字列型のtypedef
です。
char
にtypedef
されている場合はUTF-8, wchar_t
にtypedef
されている場合はUTF-16又はUTF-32です。 読み書きするバイナリXMLのアライメントを指定します。
列挙値 | |
---|---|
ALIGNMENT_BIT_PACKED |
ビット単位にデータが詰められたEXIストリームを読み書きします(デフォルト)。 |
ALIGNMENT_BYTE_ALIGNMENT |
バイトアラインされたEXIストリームを読み書きします。 |
|
noexcept |
XmlStreamReader
から読み込んで、XmlStreamWriter
へ書き出します。
[in] | r | 入力となるXMLを読み込むストリーム |
[in] | w | XMLの出力先となるストリーム |
true
© 2013, 2014, 2015 Nintendo Co., Ltd. All rights reserved.