プッシュ パーサー- イベントは、startDocument()、endDocument() などのコールバック関数の形式で API によって生成され、プログラマーの制御を超えています。私たちプログラマーはイベントを処理できますが、イベントの生成は制御できません。
プル パーサー- API を呼び出すと、イベントが生成されます。以下に例を示します。そのため、プログラマーはいつイベントを生成するかを決定できます。
int eventType = xmlr.getEventType();
while(xmlr.hasNext()){
eventType = xmlr.next();
//Get all "Book" elements as XMLEvent object
if(eventType == XMLStreamConstants.START_ELEMENT &&
xmlr.getLocalName().equals("Book")){
//get immutable XMLEvent
StartElement event = getXMLEvent(xmlr).asStartElement();
System.out.println("EVENT: " + event.toString());
}
}
、クライアントは、明示的に要求した場合にのみ XML データを取得 (プル) します。
プル解析では、クライアントがアプリケーション スレッドを制御し、必要に応じてパーサーでメソッドを呼び出すことができます。対照的に、プッシュ処理では、パーサーがアプリケーション スレッドを制御し、クライアントはパーサーからの呼び出しのみを受け入れることができます。