1 <html><head> 2 <!-- $Id: package.html,v 1.3 2007/10/02 19:32:24 ndw Exp $ --> 3 </head><body> 4 5 <p> This package provides the core SAX APIs. 6 Some SAX1 APIs are deprecated to encourage integration of 7 namespace-awareness into designs of new applications 8 and into maintenance of existing infrastructure. </p> 9 10 <p>See <a target='_top' href='http://www.saxproject.org'>http://www.saxproject.org</a> 11 for more information about SAX.</p> 12 13 14 <h2> SAX2 Standard Feature Flags </h2> 15 16 <p> One of the essential characteristics of SAX2 is that it added 17 feature flags which can be used to examine and perhaps modify 18 parser modes, in particular modes such as validation. 19 Since features are identified by (absolute) URIs, anyone 20 can define such features. 21 Currently defined standard feature URIs have the prefix 22 <code>http://xml.org/sax/features/</code> before an identifier such as 23 <code>validation</code>. Turn features on or off using 24 <em>setFeature</em>. Those standard identifiers are: </p> 25 26 27 <table class="striped"> 28 <caption>SAX2 Standard Features </caption> 29 <thead> 30 <tr> 31 <th>Feature ID</th> 32 <th>Access</th> 33 <th>Default</th> 34 <th>Description</th> 35 </tr> 36 </thead> 37 38 <tbody> 39 <tr> 40 <td>external-general-entities</td> 41 <td><em>read/write</em></td> 42 <td><em>unspecified</em></td> 43 <td> Reports whether this parser processes external 44 general entities; always true if validating. 45 </td> 46 </tr> 47 48 <tr> 49 <td>external-parameter-entities</td> 50 <td><em>read/write</em></td> 51 <td><em>unspecified</em></td> 52 <td> Reports whether this parser processes external 53 parameter entities; always true if validating. 54 </td> 55 </tr> 56 57 <tr> 58 <td>is-standalone</td> 59 <td>(parsing) <em>read-only</em>, (not parsing) <em>none</em></td> 60 <td>not applicable</td> 61 <td> May be examined only during a parse, after the 62 <em>startDocument()</em> callback has been completed; read-only. 63 The value is true if the document specified standalone="yes" in 64 its XML declaration, and otherwise is false. 65 </td> 66 </tr> 67 68 <tr> 69 <td>lexical-handler/parameter-entities</td> 70 <td><em>read/write</em></td> 71 <td><em>unspecified</em></td> 72 <td> A value of "true" indicates that the LexicalHandler will report 73 the beginning and end of parameter entities. 74 </td> 75 </tr> 76 77 <tr> 78 <td>namespaces</td> 79 <td><em>read/write</em></td> 80 <td>true</td> 81 <td> A value of "true" indicates namespace URIs and unprefixed local names 82 for element and attribute names will be available. 83 </td> 84 </tr> 85 86 <tr> 87 <td>namespace-prefixes</td> 88 <td><em>read/write</em></td> 89 <td>false</td> 90 <td> A value of "true" indicates that XML qualified names (with prefixes) and 91 attributes (including <em>xmlns*</em> attributes) will be available. 92 </td> 93 </tr> 94 95 <tr> 96 <td>resolve-dtd-uris</td> 97 <td><em>read/write</em></td> 98 <td><em>true</em></td> 99 <td> A value of "true" indicates that system IDs in declarations will 100 be absolutized (relative to their base URIs) before reporting. 101 (That is the default behavior for all SAX2 XML parsers.) 102 A value of "false" indicates those IDs will not be absolutized; 103 parsers will provide the base URI from 104 <em>Locator.getSystemId()</em>. 105 This applies to system IDs passed in <ul> 106 <li><em>DTDHandler.notationDecl()</em>, 107 <li><em>DTDHandler.unparsedEntityDecl()</em>, and 108 <li><em>DeclHandler.externalEntityDecl()</em>. 109 </ul> 110 It does not apply to <em>EntityResolver.resolveEntity()</em>, 111 which is not used to report declarations, or to 112 <em>LexicalHandler.startDTD()</em>, which already provides 113 the non-absolutized URI. 114 </td> 115 </tr> 116 117 <tr> 118 <td>string-interning</td> 119 <td><em>read/write</em></td> 120 <td><em>unspecified</em></td> 121 <td> Has a value of "true" if all XML names (for elements, prefixes, 122 attributes, entities, notations, and local names), 123 as well as Namespace URIs, will have been interned 124 using <em>java.lang.String.intern</em>. This supports fast 125 testing of equality/inequality against string constants, 126 rather than forcing slower calls to <em>String.equals()</em>. 127 </td> 128 </tr> 129 130 <tr> 131 <td>unicode-normalization-checking</td> 132 <td><em>read/write</em></td> 133 <td><em>false</em></td> 134 <td> Controls whether the parser reports Unicode normalization 135 errors as described in section 2.13 and Appendix B of the 136 XML 1.1 Recommendation. If true, Unicode normalization 137 errors are reported using the ErrorHandler.error() callback. 138 Such errors are not fatal in themselves (though, obviously, 139 other Unicode-related encoding errors may be). 140 </td> 141 </tr> 142 143 <tr> 144 <td>use-attributes2</td> 145 <td><em>read-only</em></td> 146 <td>not applicable</td> 147 <td> Returns "true" if the <em>Attributes</em> objects passed by 148 this parser in <em>ContentHandler.startElement()</em> 149 implement the <a href="ext/Attributes2.html" 150 ><em>org.xml.sax.ext.Attributes2</em></a> interface. 151 That interface exposes additional DTD-related information, 152 such as whether the attribute was specified in the 153 source text rather than defaulted. 154 </td> 155 </tr> 156 157 <tr> 158 <td>use-locator2</td> 159 <td><em>read-only</em></td> 160 <td>not applicable</td> 161 <td> Returns "true" if the <em>Locator</em> objects passed by 162 this parser in <em>ContentHandler.setDocumentLocator()</em> 163 implement the <a href="ext/Locator2.html" 164 ><em>org.xml.sax.ext.Locator2</em></a> interface. 165 That interface exposes additional entity information, 166 such as the character encoding and XML version used. 167 </td> 168 </tr> 169 170 <tr> 171 <td>use-entity-resolver2</td> 172 <td><em>read/write</em></td> 173 <td><em>true</em></td> 174 <td> Returns "true" if, when <em>setEntityResolver</em> is given 175 an object implementing the <a href="ext/EntityResolver2.html" 176 ><em>org.xml.sax.ext.EntityResolver2</em></a> interface, 177 those new methods will be used. 178 Returns "false" to indicate that those methods will not be used. 179 </td> 180 </tr> 181 182 <tr> 183 <td>validation</td> 184 <td><em>read/write</em></td> 185 <td><em>unspecified</em></td> 186 <td> Controls whether the parser is reporting all validity 187 errors; if true, all external entities will be read. 188 </td> 189 </tr> 190 191 <tr> 192 <td>xmlns-uris</td> 193 <td><em>read/write</em></td> 194 <td><em>false</em></td> 195 <td> Controls whether, when the <em>namespace-prefixes</em> feature 196 is set, the parser treats namespace declaration attributes as 197 being in the <em>http://www.w3.org/2000/xmlns/</em> namespace. 198 By default, SAX2 conforms to the original "Namespaces in XML" 199 Recommendation, which explicitly states that such attributes are 200 not in any namespace. 201 Setting this optional flag to "true" makes the SAX2 events conform to 202 a later backwards-incompatible revision of that recommendation, 203 placing those attributes in a namespace. 204 </td> 205 </tr> 206 207 <tr> 208 <td>xml-1.1</td> 209 <td><em>read-only</em></td> 210 <td>not applicable</td> 211 <td> Returns "true" if the parser supports both XML 1.1 and XML 1.0. 212 Returns "false" if the parser supports only XML 1.0. 213 </td> 214 </tr> 215 </tbody> 216 </table> 217 218 <p> Support for the default values of the 219 <em>namespaces</em> and <em>namespace-prefixes</em> 220 properties is required. 221 Support for any other feature flags is entirely optional. 222 </p> 223 224 <p> For default values not specified by SAX2, 225 each XMLReader implementation specifies its default, 226 or may choose not to expose the feature flag. 227 Unless otherwise specified here, 228 implementations may support changing current values 229 of these standard feature flags, but not while parsing. 230 </p> 231 232 <h2> SAX2 Standard Handler and Property IDs </h2> 233 234 <p> For parser interface characteristics that are described 235 as objects, a separate namespace is defined. The 236 objects in this namespace are again identified by URI, and 237 the standard property URIs have the prefix 238 <code>http://xml.org/sax/properties/</code> before an identifier such as 239 <code>lexical-handler</code> or 240 <code>dom-node</code>. Manage those properties using 241 <em>setProperty()</em>. Those identifiers are: </p> 242 243 <table class="striped"> 244 <caption>SAX2 Standard Properties </caption> 245 <thead> 246 <tr> 247 <th>Property ID</th> 248 <th>Description</th> 249 </tr> 250 </thead> 251 <tbody> 252 253 <tr> 254 <td>declaration-handler</td> 255 <td> Used to see most DTD declarations except those treated 256 as lexical ("document element name is ...") or which are 257 mandatory for all SAX parsers (<em>DTDHandler</em>). 258 The Object must implement <a href="ext/DeclHandler.html" 259 ><em>org.xml.sax.ext.DeclHandler</em></a>. 260 </td> 261 </tr> 262 263 <tr> 264 <td>document-xml-version</td> 265 <td> May be examined only during a parse, after the startDocument() 266 callback has been completed; read-only. This property is a 267 literal string describing the actual XML version of the document, 268 such as "1.0" or "1.1". 269 </td> 270 </tr> 271 272 <tr> 273 <td>dom-node</td> 274 <td> For "DOM Walker" style parsers, which ignore their 275 <em>parser.parse()</em> parameters, this is used to 276 specify the DOM (sub)tree being walked by the parser. 277 The Object must implement the 278 <em>org.w3c.dom.Node</em> interface. 279 </td> 280 </tr> 281 282 <tr> 283 <td>lexical-handler</td> 284 <td> Used to see some syntax events that are essential in some 285 applications: comments, CDATA delimiters, selected general 286 entity inclusions, and the start and end of the DTD 287 (and declaration of document element name). 288 The Object must implement <a href="ext/LexicalHandler.html" 289 ><em>org.xml.sax.ext.LexicalHandler</em></a>. 290 </td> 291 </tr> 292 293 <tr> 294 <td>xml-string</td> 295 <td> Readable only during a parser callback, this exposes a <b>TBS</b> 296 chunk of characters responsible for the current event. </td> 297 </tr> 298 </tbody> 299 </table> 300 301 <p> All of these standard properties are optional; 302 XMLReader implementations need not support them. 303 </p> 304 305 </body></html>