使用Xerces-J的SAX方式进行XML程序设计
--常用的property介绍
在SAX里,property表示解析器进行解析得到的数据或者解析器的“配件”,例如各种处理器(Handler)或者分析器(Resolver)。setProperty方法可以用来设置解析器的属性,第一个参数是一个URI,但是事实上仅仅作为一个字符串使用,第二个参数为一个对象,这个对象根据不同的property会有不同的变化,因此在使用的时候应该查一下相应的文档确认使用什么对象。getProperty方法可以用来获取解析器的信息。下面的代码演示了如何使用setProperty和getProperty方法。
SAX鼓励对XML进行开发的组织和个人扩展Property,例如Apache就在Xerces中增加了http://apache.org/xml/properties/dom/document-class-name,这也是上面的例子中使用的。表5列出了SAX和APACHE提供的所有的property。
property | 对象类型 | 功能 |
http://xml.org/sax/properties/xml-string | java.lang.String | 当前正在处理的节点的XML字符串,Xerces当前不支持这个属性。 |
http://xml.org/sax/properties/dom-node | org.w3c.dom.Node | 当前正在处理的DOM节点。 |
http://xml.org/sax/properties/lexical-handler | org.xml.sax.ext.LexicalHandler | 设置LexicalHandler。 |
http://xml.org/sax/properties/declaration-handler | org.xml.sax.ext.DeclHandler | 设置DTD声明的处理器。 |
http://apache.org/xml/properties/dom/current-element-node | org.w3c.dom.Node | 这是一个DOM属性,表示当前正在处理的DOM Element节点。 |
http://apache.org/xml/properties/dom/document-class-name | java.lang.String | 文档对象实现的类的名字,在Xerces中为org.apache.xerces.dom.DocumentImpl |