8.10 xml.sax.handler --SAX 处理基础类
8.10 xml.sax.handler --Base classes for SAX handlers出现于2.0中
SAX API定义了四种操作(handlers):内容处理操作,DTD处理操作,
错误处理操作,还有实体解析操作(resolvers).应用程序只需要简单的
实现那些自己感兴趣的接口就行了.他们可以在single对象里面实现这些接口
,也可以在mutiple对象里面实现这些接口。操作的实现应该继承xml.sax.handler
模块中提供的基类,这样才能使所有的方法得到默认的实现。(all methods get default implementations)
class ContentHandler
这是SAX中主要的回调(callback)接口,也是对应用程序来说最重要的。
接口中的时间顺序和文档中信息的顺序是一致的。
class DTDHandler
处理DTD事件
这个接口仅仅指定了那些基本的DTD解析事件(unparsed entities and attributes).
class EntityResolver
解析实体的基础接口。如果你创建的对象继承了这个接口,那么你需要
通过你的解析器(Parser)来注册这个这个对象,如此一来你的解析器
才会调用你对象里面的方法来解析所有的外部实体。
class ErrorHandler
此接口被解析器用来向应用程序呈献错误和警告信息。对象的这个方法
控制是否将错误立马转换为异常或者通过其他的方法进行处理。
需要对以上类进行补充说明的是,xml.sax.handler为那些特征和属性名提供了符号常量。
(for the feature and property names)
feature_namespaces
值:"http://xml.org/sax/features/namespaces"
true:执行名字空间处理
false:选择性的不进行名字空间的处理(默认名称空间前缀存在)(默认)
access:(解析时)read-only;(不解析时)read/write
feature_namespace_prefixes
值:"http://xml.org/sax/features/namespace-prefixes"
true:报告最开始的名字空间声明的前缀和属性。
false:不报告名字空间声明用的属性,选择性的不报告最开始的前缀名字。(默认)
access:(解析时)read-only;(不解析时)read/write
featrue_string_interning
值:"http://xml.org/sax/features/string-interning"
true:所有的名字,前缀,属性名称,名字空间地址,和被本地名字(local names are interned using the built-in intern function).
false: Names are not necessarily interned, although they may be (default).
access:(解析时)read-only;(不解析时)read/write
feature_validation
值: "http://xml.org/sax/features/validation"
true:报告所有的经过核实的(validation)错误(默认包括外部普通实体和内部参数实体)
access:(解析时)read-only;(不解析时)read/write
feature_external_pes
值:"http://xml.org/sax/features/external-parameter-entities"
true:包括所有的外部参数实体,包括外部的DTD子集
false:不包含任何外部参数实体,甚至是外部的DTD子集
access:(解析时)read-only;(不解析时)read/write
all_features
列出所有的特征(features)
property_lexical_handler
值:"http://xml.org/sax/properties/lexical-handler"
数据类型:xml.sax.sax2lib.LexicalHandler(Python 2不支持这个)
描述:一个为词语时间(如评论)设置的扩展操作(extension handler)(可选)
access:read/write
property_declaration_handler
值:"http://xml.org/sax/properties/lexical-handler"
数据类型:xml.sax.sax2lib.LexicalHandler(Python 2不支持这个)
描述:一个为DTD相关的事件(除了标志和未解析实体)设置的可选扩展操作(extension handler)
access:read/write
property_dom_node
值:"http://xml.org/sax/properties/dom-node"
数据类型:org.w3c.dom.Node(Python 2不支持)
描述:在解析的时候,当前DOM结点正在被访问如果这是一个DOM迭代器的话;
在没有进行解析的时候,根DOM结点被迭代。
access:(解析时)read-only;(不解析时)read/write
proeprty_xml_string
值:"http://xml.org/sax/properties/xml-string"
数据类型:String
描述:这个字符串字面的字符就是当前事件的资源
access:read-only
all_properties
列出所有一直的属性名称
[url=http://bugway.cn]BlackBall[/url]翻译,拙劣之处请不吝赐教。E-mail: [email]bugway@gmail.com[/email]
[[i] 本帖最后由 blackball 于 2008-10-21 22:50 编辑 [/i]]
页:
[1]