一汁三菜

自分が楽しいと思うこと、マラソン、旅行、その他日々の記録をしたい。

XMLライブラリ

XMPPは基本的にXMLの交換によって成り立っているプロトコルなので、XMLのライブラリを用意する必要がある。今回は自作するつもりだけれども、こんな所で苦労するのは馬鹿げているので、それほどしっかりとした物は作らない。とりあえず、

  • 要素
  • 属性

だけが読める物を作成予定。コメントの処理や、XML宣言を読み飛ばすくらいは出来ないとまずそうなので、そこも実装する。

XMLの解析を行うのはXmlParserクラス。XMLの要素はXmlElementクラスで扱い、属性をXmlAttributeクラスで扱う。XmlElementクラスはメンバ変数に子要素のstd::vector及び、自らの属性を表すstd::mapを持つ。通常同じ属性名の属性を複数持つ事が確か出来たと思うけれども、今回は同じ属性名を持つ属性を扱う事はしないようにする。多分困る物は無いはず。

要素中にテキストを含められる事を忘れていた。XmlElementを継承したクラスとして作ろう。不自然だけど。