01: // SAX locator interface for document events.
02: // No warranty; no copyright -- use this as you will.
03: // $Id: Locator.java,v 1.1 2004/12/05 04:06:21 csilva Exp $
04:
05: package org.xml.sax;
06:
07: /**
08: * Interface for associating a SAX event with a document location.
09: *
10: * <p>If a SAX parser provides location information to the SAX
11: * application, it does so by implementing this interface and then
12: * passing an instance to the application using the document
13: * handler's setDocumentLocator method. The application can use the
14: * object to obtain the location of any other document handler event
15: * in the XML source document.</p>
16: *
17: * <p>Note that the results returned by the object will be valid only
18: * during the scope of each document handler method: the application
19: * will receive unpredictable results if it attempts to use the
20: * locator at any other time.</p>
21: *
22: * <p>SAX parsers are not required to supply a locator, but they are
23: * very strong encouraged to do so. If the parser supplies a
24: * locator, it must do so before reporting any other document events.
25: * If no locator has been set by the time the application receives
26: * the startDocument event, the application should assume that a
27: * locator is not available.</p>
28: *
29: * @author David Megginson (ak117@freenet.carleton.ca)
30: * @version 1.0
31: * @see org.xml.sax.DocumentHandler#setDocumentLocator
32: */
33: public interface Locator {
34:
35: /**
36: * Return the public identifier for the current document event.
37: * <p>This will be the public identifier
38: * @return A string containing the public identifier, or
39: * null if none is available.
40: * @see #getSystemId
41: */
42: public abstract String getPublicId();
43:
44: /**
45: * Return the system identifier for the current document event.
46: *
47: * <p>If the system identifier is a URL, the parser must resolve it
48: * fully before passing it to the application.</p>
49: *
50: * @return A string containing the system identifier, or null
51: * if none is available.
52: * @see #getPublicId
53: */
54: public abstract String getSystemId();
55:
56: /**
57: * Return the line number where the current document event ends.
58: * Note that this is the line position of the first character
59: * after the text associated with the document event.
60: * @return The line number, or -1 if none is available.
61: * @see #getColumnNumber
62: */
63: public abstract int getLineNumber();
64:
65: /**
66: * Return the column number where the current document event ends.
67: * Note that this is the column number of the first
68: * character after the text associated with the document
69: * event. The first column in a line is position 1.
70: * @return The column number, or -1 if none is available.
71: * @see #getLineNumber
72: */
73: public abstract int getColumnNumber();
74:
75: }
|