接口 | 描述 |
---|---|
AttributeList | Deprecated
该接口已被SAX2 Attributes 接口所替代,其中包括命名空间支持。
|
Attributes |
XML属性列表的接口。
|
ContentHandler |
接收文档逻辑内容的通知。
|
DocumentHandler | Deprecated
该接口已被SAX2 ContentHandler 接口所取代,其中包括Namespace支持。
|
DTDHandler |
接收基本DTD相关事件的通知。
|
EntityResolver |
解决实体的基本界面。
|
ErrorHandler |
SAX错误处理程序的基本界面。
|
Locator |
用于将SAX事件与文档位置相关联的界面。
|
Parser | Deprecated
该接口已被SAX2 XMLReader 接口所取代,其中包括命名空间支持。
|
XMLFilter |
XML过滤器的接口。
|
XMLReader |
使用回调读取XML文档的界面。
|
类 | 描述 |
---|---|
HandlerBase | Deprecated
该类与已弃用的 DocumentHandler 接口配合使用。
|
InputSource |
XML实体的单一输入源。
|
异常 | 描述 |
---|---|
SAXException |
封装一般的SAX错误或警告。
|
SAXNotRecognizedException |
无法识别的标识符的异常类。
|
SAXNotSupportedException |
不受支持的操作的异常类。
|
SAXParseException |
封装XML解析错误或警告。
|
This package provides the core SAX APIs. Some SAX1 APIs are deprecated to encourage integration of namespace-awareness into designs of new applications and into maintenance of existing infrastructure.
See http://www.saxproject.org for more information about SAX.
One of the essential characteristics of SAX2 is that it added feature flags which can be used to examine and perhaps modify parser modes, in particular modes such as validation. Since features are identified by (absolute) URIs, anyone can define such features. Currently defined standard feature URIs have the prefix http://xml.org/sax/features/
before an identifier such as validation
. Turn features on or off using setFeature. Those standard identifiers are:
Feature ID | Access | Default | 描述 |
---|---|---|---|
external-general-entities | read/write | unspecified | Reports whether this parser processes external general entities; always true if validating. |
external-parameter-entities | read/write | unspecified | Reports whether this parser processes external parameter entities; always true if validating. |
is-standalone | (parsing) read-only, (not parsing) none | not applicable | May be examined only during a parse, after the startDocument() callback has been completed; read-only. The value is true if the document specified standalone="yes" in its XML declaration, and otherwise is false. |
lexical-handler/parameter-entities | read/write | unspecified | A value of "true" indicates that the LexicalHandler will report the beginning and end of parameter entities. |
namespaces | read/write | true | A value of "true" indicates namespace URIs and unprefixed local names for element and attribute names will be available. |
namespace-prefixes | read/write | false | A value of "true" indicates that XML qualified names (with prefixes) and attributes (including xmlns* attributes) will be available. |
resolve-dtd-uris | read/write | true | A value of "true" indicates that system IDs in declarations will be absolutized (relative to their base URIs) before reporting. (That is the default behavior for all SAX2 XML parsers.) A value of "false" indicates those IDs will not be absolutized; parsers will provide the base URI from Locator.getSystemId(). This applies to system IDs passed in
|
string-interning | read/write | unspecified | Has a value of "true" if all XML names (for elements, prefixes, attributes, entities, notations, and local names), as well as Namespace URIs, will have been interned using java.lang.String.intern. This supports fast testing of equality/inequality against string constants, rather than forcing slower calls to String.equals(). |
unicode-normalization-checking | read/write | false | Controls whether the parser reports Unicode normalization errors as described in section 2.13 and Appendix B of the XML 1.1 Recommendation. If true, Unicode normalization errors are reported using the ErrorHandler.error() callback. Such errors are not fatal in themselves (though, obviously, other Unicode-related encoding errors may be). |
use-attributes2 | read-only | not applicable | Returns "true" if the Attributes objects passed by this parser in ContentHandler.startElement() implement the org.xml.sax.ext.Attributes2 interface. That interface exposes additional DTD-related information, such as whether the attribute was specified in the source text rather than defaulted. |
use-locator2 | read-only | not applicable | Returns "true" if the Locator objects passed by this parser in ContentHandler.setDocumentLocator() implement the org.xml.sax.ext.Locator2 interface. That interface exposes additional entity information, such as the character encoding and XML version used. |
use-entity-resolver2 | read/write | true | Returns "true" if, when setEntityResolver is given an object implementing the org.xml.sax.ext.EntityResolver2 interface, those new methods will be used. Returns "false" to indicate that those methods will not be used. |
validation | read/write | unspecified | Controls whether the parser is reporting all validity errors; if true, all external entities will be read. |
xmlns-uris | read/write | false | Controls whether, when the namespace-prefixes feature is set, the parser treats namespace declaration attributes as being in the http://www.w3.org/2000/xmlns/ namespace. By default, SAX2 conforms to the original "Namespaces in XML" Recommendation, which explicitly states that such attributes are not in any namespace. Setting this optional flag to "true" makes the SAX2 events conform to a later backwards-incompatible revision of that recommendation, placing those attributes in a namespace. |
xml-1.1 | read-only | not applicable | Returns "true" if the parser supports both XML 1.1 and XML 1.0. Returns "false" if the parser supports only XML 1.0. |
Support for the default values of the namespaces and namespace-prefixes properties is required. Support for any other feature flags is entirely optional.
For default values not specified by SAX2, each XMLReader implementation specifies its default, or may choose not to expose the feature flag. Unless otherwise specified here, implementations may support changing current values of these standard feature flags, but not while parsing.
For parser interface characteristics that are described as objects, a separate namespace is defined. The objects in this namespace are again identified by URI, and the standard property URIs have the prefix http://xml.org/sax/properties/
before an identifier such as lexical-handler
or dom-node
. Manage those properties using setProperty(). Those identifiers are:
Property ID | 描述 |
---|---|
declaration-handler | Used to see most DTD declarations except those treated as lexical ("document element name is ...") or which are mandatory for all SAX parsers (DTDHandler). The Object must implement org.xml.sax.ext.DeclHandler. |
document-xml-version | May be examined only during a parse, after the startDocument() callback has been completed; read-only. This property is a literal string describing the actual XML version of the document, such as "1.0" or "1.1". |
dom-node | For "DOM Walker" style parsers, which ignore their parser.parse() parameters, this is used to specify the DOM (sub)tree being walked by the parser. The Object must implement the org.w3c.dom.Node interface. |
lexical-handler | Used to see some syntax events that are essential in some applications: comments, CDATA delimiters, selected general entity inclusions, and the start and end of the DTD (and declaration of document element name). The Object must implement org.xml.sax.ext.LexicalHandler. |
xml-string | Readable only during a parser callback, this exposes a TBS chunk of characters responsible for the current event. |
All of these standard properties are optional; XMLReader implementations need not support them.