001// EventDemo.java: demonstration application showing Æfred's event stream. 002// NO WARRANTY! See README, and copyright below. 003// Modified 11/8/98 to add package statement. 004package com.microstar.xml.demo; 005 006/** 007 * Demonstration application showing Æfred's event stream. 008 * <p>Usage: <code>java EventDemo <url></code> 009 * <p>Or, use it as an applet, supplying the URL as the <code>url</code> 010 * parameter. 011 * @author Copyright (c) 1997, 1998 by Microstar Software Ltd.; 012 * @author written by David Megginson <dmeggins@microstar.com> 013 * @version 1.1 014 * @since Ptolemy II 0.2 015 * @see com.microstar.xml.XmlParser 016 * @see com.microstar.xml.XmlHandler 017 * @see XmlApp 018 */ 019public class EventDemo extends XmlApp { 020 /** 021 * Entry point for an application. 022 * @param args The arguments. The first argument should be the uri 023 * @exception Exception If the parse fails 024 */ 025 public static void main(String[] args) throws Exception { 026 EventDemo demo = new EventDemo(); 027 028 if (args.length != 1) { 029 System.err.println("java EventDemo <uri>"); 030 System.exit(1); 031 } else { 032 demo.doParse(args[0]); 033 } 034 } 035 036 /** 037 * Resolve an entity and print an event. 038 * @see com.microstar.xml.XmlHandler#resolveEntity 039 */ 040 @Override 041 public Object resolveEntity(String publicId, String systemId) { 042 displayText( 043 "Resolving entity: pubid=" + publicId + ", sysid=" + systemId); 044 return null; 045 } 046 047 @Override 048 public void startExternalEntity(String systemId) { 049 displayText("Starting external entity: " + systemId); 050 } 051 052 @Override 053 public void endExternalEntity(String systemId) { 054 displayText("Ending external entity: " + systemId); 055 } 056 057 /** 058 * Handle the start of the document by printing an event. 059 * @see com.microstar.xml.XmlHandler#startDocument 060 */ 061 @Override 062 public void startDocument() { 063 displayText("Start document"); 064 } 065 066 /** 067 * Handle the end of the document by printing an event. 068 * @see com.microstar.xml.XmlHandler#endDocument 069 */ 070 @Override 071 public void endDocument() { 072 displayText("End document"); 073 } 074 075 /** 076 * Handle a DOCTYPE declaration by printing an event. 077 * @see com.microstar.xml.XmlHandler#doctypeDecl 078 */ 079 @Override 080 public void doctypeDecl(String name, String pubid, String sysid) { 081 displayText("Doctype declaration: " + name + ", pubid=" + pubid 082 + ", sysid=" + sysid); 083 } 084 085 /** 086 * Handle an attribute value assignment by printing an event. 087 * @see com.microstar.xml.XmlHandler#attribute 088 */ 089 @Override 090 public void attribute(String name, String value, boolean isSpecified) { 091 String s; 092 093 if (isSpecified) { 094 s = " (specified)"; 095 } else { 096 s = " (defaulted)"; 097 } 098 099 displayText("Attribute: name=" + name + ", value=" + value + s); 100 } 101 102 /** 103 * Handle the start of an element by printing an event. 104 * @see com.microstar.xml.XmlHandler#startElement 105 */ 106 @Override 107 public void startElement(String name) { 108 displayText("Start element: name=" + name); 109 } 110 111 /** 112 * Handle the end of an element by printing an event. 113 * @see com.microstar.xml.XmlHandler#endElement 114 */ 115 @Override 116 public void endElement(String name) { 117 displayText("End element: " + name); 118 } 119 120 /** 121 * Handle character data by printing an event. 122 * @see com.microstar.xml.XmlHandler#charData 123 */ 124 @Override 125 public void charData(char[] ch, int start, int length) { 126 displayText("Character data: \"" + escape(ch, length) + '"'); 127 } 128 129 /** 130 * Handle ignorable whitespace by printing an event. 131 * @see com.microstar.xml.XmlHandler#ignorableWhitespace 132 */ 133 @Override 134 public void ignorableWhitespace(char[] ch, int start, int length) { 135 displayText("Ignorable whitespace: \"" + escape(ch, length) + '"'); 136 } 137 138 /** 139 * Handle a processing instruction by printing an event. 140 * @see com.microstar.xml.XmlHandler#processingInstruction 141 */ 142 @Override 143 public void processingInstruction(String target, String data) { 144 displayText("Processing Instruction: " + target + ' ' 145 + escape(data.toCharArray(), data.length())); 146 } 147} 148 149// end of EventDemo.java