Simple API for XML
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/01 09:32 UTC 版)
ナビゲーションに移動 検索に移動Simple API for XML(SAX、サックス)とは、XML文書をアプリケーションソフトウェアから利用するためのAPI。
概要
DOM API が、W3Cから勧告されたのに対して、SAX API は、XML-DEVメーリングリスト有志により策定された。そして、DOMに並ぶ標準規格としての地位を固めている。
XML文書を木構造として扱うDOMと異なり、一連のイベントとして表現するイベント駆動型のAPIである。したがって、アプリケーションソフトウェアが積極的にAPIにアクセスするDOMに対し、SAXではアプリケーションソフトウェアがイベントが来るのを待ち受ける受動的な動作が大部分を占める。
伝統的なストリームと同様に入力されたデータを次々とバトンタッチさせるような設計が可能となるため、メモリを節約でき、並列処理にも適している。XMLを読み込み、Javaのオブジェクトに変換するときはSAXの方がよく使われる。ただし、XML文書の先頭と最後を入れ替えるというようなランダムアクセスを必要とするアプリケーションソフトウェアにはDOMやXMLデータベースの方が適している。
Apache Cocoon のようなスケーラビリティの高い優れたSAXアプリケーションソフトウェアが開発されている。
使用例
以下に、プログラミング言語Javaでの使用例を示す。特別:RecentchangesのRSSを読み込み、タイトルの一覧を表示している。
import java.io.IOException;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
public class Test {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.parse("http://ja.wikipedia.org/w/index.php?title=%E7%89%B9%E5%88%A5:Recentchanges&feed=rss", new DefaultHandler() {
private String text = "";
private boolean isItemStarted = false;
public void startElement(String uri, String localName, String qName, Attributes attributes) {
if(qName.equals("item")) {
isItemStarted = true;
}
}
public void endElement(String uri, String localName, String qName) {
if (isItemStarted && qName.equals("title")) {
System.out.println(text);
}
}
public void characters(char[] ch, int start, int length) {
text = new String(ch, start, length);
}
});
}
}
外部リンク
「Simple API for XML」の例文・使い方・用例・文例
- PAPIという,航空機用の経路誘導装置
- 5 月15 日の午前8 時30 分から午後3 時まで、Oceanview公園で開催される、毎年恒例のWalk for Petsについてのお知らせです。
- イベントによる収益金の半分は、捨てられたペットのための保護施設であるHome for Petsに使われ、残りはさまざまな動物福祉団体に分配されます。
- 年次監査を行うために、Bradford and Partnersの会計士たちが10 月10 日の午前10 時に当社を訪ねてくる予定です。
- Bradfordの新人会計士2 名が今年の監査を担当すると連絡がありました。
- こんにちは、Bradfordさん。
- 昨日Bradfordさんが受け取られたデスクランプについてお電話を差し上げています。
- 取り違えてしまって申し訳ありませんが、あのランプは別のお客様に送られるはずのもので、誤ってBradfordさんに配送されました。
- Bradfordさんが受け取るはずだった商品は、Anne Keeganさんからの贈り物のご注文でした。
- タックマンモデルとは、チームビルディングにおける5段階、すなわち形成(Forming)、混乱(Storming)、統一(Norming)、機能(Performing)、散会(Adjourning)を示すモデルである。
- 着手する; 〔…の〕端緒を開く 〔for〕.
- 紺 《Oxford 大学およびその選手の色標》.
- 〔音楽会などへの〕優待券, 招待券 〔to, for〕.
- 等位接続詞 《and, but, or, for など; ⇔subordinate conjunction》.
- 【文法】 相関語 《either と or, the former と the latter など》.
- [for a] holiday to [in] France last year. 昨年は休暇をとってフランスへ旅行した.
- (最も奥の), foremost (真っ先の).
- 新大学, 1960 年以降に創設された大学, 板ガラス大学 《Oxford, Cambridge のような石造りの ancient universities, 19 世紀に創設された London 大学のような赤れんが造りの redbrick universities に対して言う; 建築様式がふんだんに plate glass を使ってモダンなことから》.
- コンセプション岬 《California 州にある》.
- être for this policy? この政策はどんな存在理由があるのか.
- Simple API for XMLのページへのリンク