MiX (Minimalists XML parser)
By Yotaro Kubo(webmaster@soup.jp)
http://sourceforge.jp/projects/mix/
Hosted By
- MiXとは何か
- 動作環境
- メーリングリスト
- ダウンロード
- ドキュメント
- 設計方針
- 連絡先
- バージョン履歴
MiXとは何か?
MiXは小さくて柔軟性を持ち必要最小限の機能を備えたXMLパーサを目指すライブラリです。
SAX互換APIと、DOMサブセットAPIを持っています。
動作環境
MiXはプラットホーム依存のコードを含まないため、コンパイラがしっかりしてれば、
どんなOSでも動きます。
- g++ 3.2 on Redhat Linux 7.3
確実に動作します。開発環境です。
- g++ 2.9.x
おそらく動作すると考えられますが、
ワイド文字列関係を使うには標準のlibstdc++ではダメです。
STLPortを使いましょう。
- Microsoft Visual C++ 6/7
おそらく動作します。
- Borland C++ Builder
動作しますように...
Mailing List
MiXについてのメーリングリストは
こちら
(http://sourceforge.jp/projects/mix/lists/)
動作報告、質問、リクエスト、なんでもどうぞ。
Download
ダウンロードは
こちら(http://sourceforge.jp/projects/mix/files/)から
Document
ドキュメントはこちら(HTML)
設計方針
- クライアントコードを美しく
- 簡単な処理は簡単なコードで
- 柔軟に
- 最小限
連絡先
久保陽太郎
mail: webmaster@soup.jp
Version History
- 0.5.0
晴れて名前空間
- XML名前空間に対応
- 0.4.6で行われたテンプレートパラメータの改悪を元に戻す。
- NamedNodeFinderを変更(互換性キープなし)
- 細かいバグフィックス
- 0.4.6
「IPA未踏ソフトウェア開発事業」に'少し'関わることになりました
- clone追加
- NodeContainer::getElementsbyTagNameを追加(επιστημηさんthx)
- 大幅リファクタリング(traitsを利用してた人は注意)
- テスト刷新(with 子河童)
- GCC-3.1に対応
- ストリームからの直接Parseに対応(Kent.Nさんthx)
- Ver0.4.5
SourceForgeJPに移転
- 細やかなBugFiX(森野さんthx)
- ディレクトリ構成変更(src/ -> src/MiX/)
- Nodeに関するtypedefを作成(επιστημηさんthx)
- DomHoge->DOM_Hoge,SaxHoge->SAX_Hogeに名前変更
- XMLCharTratits->DefaultXMLTraitsに名前変更
- AttrMapを順序つきに
- 例外クラスのバグを取る(あひるさんthx)
メソッドの一部をインライン化
- Ver0.4.4
Ver0.5.0前の一休み
- コピーコンストラクタを隠蔽
(ドキュメントじゃコピーすんなって言っといて、
コピーコンストラクタを隠してなかったので、修正)
- const Char*で受け取ってたパラメータをXMLString<...>で
受け取るように統一した(まだ未修正のとこもあるかも)
- hasAttributeの追加(επιστημηさん thx!)
[[Ver0.4.4->Ver0.5.0]]
- 名前空間のサポート
(やっとどーやって実装するかについての考えがまとまった)
- 他の予定はないです。(ていうか↑が結構大物)
- Ver0.4.3
- いくつかのBugFiX
- '_MSC_VER'に対応
- テスト強化
- サンプル強化
- マルチバイト文字列への対応を確認
- 存在しないTextをfindするとSegFaultするのはgccのバグ?
(とりあえずDomObjects.test.cppからCommentOutしといた)
- 馬鹿丸出しのミスを直す(thx to επιστημηさん)
(痛い…こんな痛いミスは久しぶりかもしれない…)
- ElementにgetText/setTextを追加。
- MiX_BACKWARD_COMPATIBILITYマクロで後方互換を実現
[[Ver0.4.3->Ver0.4.4の予定]]
- もう少しBugFiX
- 新規のバグが出なければVer0.4.4=Ver0.5.0です
- Ver0.4.2
自称STLフェチ
- リファクタリング
- NodeList操作に便利なプレディケータを追加
- Doxygen化(Doxygenってすごい!)
- Attributeのcreateの引数の順番が違うのを修正
- Valueのワイド文字に関するバグを修正
[[Ver0.4.2->Ver0.4.3の予定]]
- もっとBugFiX
- サンプルが少し古くなってきたかも
- Ver0.4.1-1
虫の嵐
- ワイド文字列関係のバグ多数
(ロクにワイド文字のチェックしてなかった…)
- XML名前空間を使った時のバグをFiX
(<foo:bar>っていうタグがあった時エラー出してた。
今の挙動は、"foo:bar"というタグ名として認識される。)
(本格的なXML名前空間をサポートする予定はありません)
- エラー処理まわりの改善
- 実体参照に関するバグ(というか機能不足)を解消
- DTD宣言。読み飛ばしてるつもりが、全然読み飛ばせてなかった。
(επιστημη氏の要望)
- C++ Builderで仮動作確認(thx to Gimite市川さん)
- (C++の)名前空間関係の修正(thx to Gimite市川さん)
[[Ver0.4.1->Ver0.4.2の予定]]
- さらなるBugFiX
- ドキュメントのrefresh
- Ver0.4.1
大ボケなミスがあったのですぐ0.4.1-1変更
- Ver0.4.0
神聖な伽藍
- VC++用のプロジェクトファイルを作った
(xmlpbはウチの環境じゃCompileできませんでした。)
- コードをシェイプアップした
- VC++対応
- シンプルに使うためのnamespaceを用意(MiX_UTF8,MiX_UTF16)
- メーリングリスト"CPPLL"で話題になったマクロ名に関する問題
- 星の数ほどあるバグの修正………(やばい)
[[Ver0.4.0->Ver0.4.1の予定]]
- ないです。やりたいことが吹き出してくるまで、報告されたバグ対処につとめます。
- Ver0.3.3
ちょいFiX&マメRelease計画
今回のリリースはゴミです。Ver0.4.0準備号ってことで
- ドキュメントの細かいとこ
- スマートイテレータを標準イテレータに準拠
- Element[int]は廃止。よくない
- だいぶ落ち着いてきたのでそろそろ0.4.0化&DLL化かも
[[Ver0.3.3->Ver0.4.0の予定]]
- DLL化に向けてpimplで囲む(最後の大仕事)
- VC++のプロジェクトファイルを添付(bccは持ってないよ)
- インタフェース凍結前の悪あがき
- Ver0.3.2
テンプレート地獄…
- ドキュメントがやっと一段落ついた。
- 「例外投げない」はまだ少し厳しい…WinCE化はまだ無理っぽい
- 例外クラスを標準規格に準拠
(自分の無知で、what()の宣言間違えてた…)
- DomExceptionのエラーメッセージが詳細に
- 試しにElement[int]でTextにアクセスできるようにしてみた
[[Ver0.3.2->Ver0.3.3の予定]]
- そろそろインタフェースのフリーズ
(ちょこちょこ変えてすんません)
(完全にフリーズしたらVer0.4.0へ)
- ErrorTypeの見直し
- 前回からの課題、ElementからComment,Textにアクセスするには?を解決したい
- Ver0.3.1
日刊リリースを目標に(暇なうちに何度もリリースしよう)
- すぐに例外を投げずにonExceptionハンドラで検証
- XMLStringをちょっと改善
- NodeListのCoolなイテレータを実装(要メンバテンプレート)
- 例外やメンバテンプレートがサポートされてなくても大丈夫に
- リファレンスを少しづつ書きはじめた。
[[Ver0.3.1->Ver0.3.2の予定]]
- リファレンス充実
- バグ潰し&リファクタリング
- Elementから子Textに簡単にアクセスできる方法を作る
- もっとCoolなインタフェースはないか…模索中
- Ver0.3.0
コードの変更はあまりない。
- もう少し必要になるまでAutoconfは待つ。(Pythonでconfigureを書こう!計画かも)
- Sample二本追加(だいたいこんなもんでOKだと思う)
- Document充実計画
- toStringで美文書(インデント対応)
- DomParserにsetIgnoreSpace追加(忘れてた…)
[[Ver0.3.0->Ver0.3.1予定]]
- SaxParserにエラーレベルを与えて、レベルに応じてチェックの厳しさを変える。
- リファレンスをぼちぼち書きはじめる。
- Ver0.2.0
サンプルと、ドキュメントを整備
- xml2htmlという簡単なサンプルを用意
- ドキュメントもちょっとずつ整備
- Design消しちゃった…(最近はdiaより紙デザインだし)
- Makefileのfix (いい加減autoconf使わなくては…)
[[Ver0.2.0->Ver0.2.1予定]]
- DOMのサンプルを作る。
- autoconf/automake
- バグFiX
- NodeList&AttrMap&XMLString改善