■ はじめに
Java で XML を扱う際に、色々なAPIがあるので、調べてみた。
目次
【1】JAXB 【2】DOM (Document Object Model) 【3】SAX (Simple API For XML) 【4】StAX(Streaming API for XML) 【5】xPath (XML Path Language) 【6】XML Schema
【1】JAXB
* XML ⇔ Java オブジェクトを相互変換する際に使用
参考文献
http://msugai.fc2web.com/java/XML/XPath.html
【2】DOM (Document Object Model)
* XMLをツリー構造として扱うことができる * 主に、XML構造が不明な場合に使用する
デメリット
通常の場合、対象XMLを全て読み込んでから動作するため... * 動作速度が遅い * メモリーの使用量が大きくなる
【3】SAX (Simple API For XML)
* XMLを構文解析を進めながら必要な情報を取得 * 主に、XML構造が不明で情報取得のみ(更新不要)な場合に使用する
デメリット (というより 注意点)
* XML文書を更新することはできない
【4】StAX(Streaming API for XML)
* 長大なXMLドキュメントの一部しか必要がない場合... => SAXやStAXで必要なところまで読み飛ばし、必要なところだけJAXBでアンマーシャリングする * そのままSAXやStAXでパースしてもいいが、スキーマがある場合はJAXBが楽
参考文献
http://itpro.nikkeibp.co.jp/article/COLUMN/20080613/307995/?ST=develop&P=1
http://www.javainthebox.net/laboratory/JavaSE6/stax/stax.html
http://otndnld.oracle.co.jp/document/products/wls/docs90/xml/stax.html
【5】xPath (XML Path Language)
* XML から、条件に適合した要素を取り出す際に使用 * ある程度のXML構造が分かっており、 そのXML全体の情報を必要ではなく、一部のデータを読み書きするだけであれば使用するのにいいかも
参考文献
http://msugai.fc2web.com/java/XML/XPath.html
http://www.atmarkit.co.jp/ait/articles/0206/18/news002.html
関連記事
https://dk521123.hatenablog.com/entry/2014/07/03/000100
https://dk521123.hatenablog.com/entry/2014/06/17/011538
【6】XML Schema
* XMLを検証する際に使用
参考文献
http://csharp.keicode.com/topics/xml-xsd-validation.php
関連記事
Java
xPath ~XMLの参照・書き換え~
https://dk521123.hatenablog.com/entry/2014/07/03/000100
xPath ~XMLの書き換え~
https://dk521123.hatenablog.com/entry/2014/06/17/011538
その他
セレクタ
https://dk521123.hatenablog.com/entry/2021/02/27/000000