XML 处理相关API的解释_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > XML 处理相关API的解释

XML 处理相关API的解释

 2017/8/30 13:08:52  solong2008  程序员俱乐部  我要评论(0)
  • 摘要:1.DocumentBuilderFactory.setNamespaceAware(true)这个对于handler处理是有影响的,默认是false。如果是true,则parser会首先处理xml的prefix,找到与之对应的namespace,然后作为参数传给handler。否则namspace就是空2.DocumentBuilderFactory.setValidating(false);是否验证xml文件,这个验证是DTD验证,默认为false3
  • 标签:API XML

1.DocumentBuilderFactory.setNamespaceAware(true)
?? 这个对于handler处理是有影响的,默认是false。如果是true,则parser会首先处理xml的prefix,找到与之对应的namespace,然后作为参数传给handler。否则namspace就是空

2.DocumentBuilderFactory.setValidating(false);
?? 是否验证xml文件,这个验证是DTD验证,默认为false
3.DocumentBuilderFactory.setSchema(schema);
?? setSchema会使用schema生成一个validator来对被处理想xml先进性验证,然后再发到handler去处理;
4.setXIncludeAware(false);
?? 是否要处理xml中的XInclude节点,默认是false
5.包含机制(XML Inclusions, XInclude)
?? 合并多个 XML 文档
?? XML 包含机制(XML Inclusions, XInclude)系统可用来合并多个 XML 文档,类似于内置的 XML 外部实体,但是添加了更多特性。可以将一个或多个较小的文档组装成一个大型文档,甚至使用 XPointer 从各组成文档中选取或选择其中的若干部分。
  https://www.w3.org/TR/xinclude/?cm_mc_uid=26218274181215040580039&cm_mc_sid_50200000=1504058003

6.DocumentBuilderFactory.setFeature("http://xml.org/sax/features/namespace-prefixes",
true);
? 可扩展的方法,设置功能标志的值。
? 功能名称是任何完全限定 URI。XMLReader 可以公开功能值,但却无法改变当前值。有些功能值仅在特定的上下文中不可改变或可以改变,
? 例如在解析之前、期间或之后, 要求所有的 XMLReaders 支持把 http://xml.org/sax/features/namespaces
设置为 true,
把 http://xml.org/sax/features/namespace-prefixes
设置为 false
参数:
name:功能名称,它是一个完全限定 URI
value:请求的功能值(true 或 false)

feature 功能 http://xml.org/sax/features/namespaces 打开、关闭名空间处理功能。当正在解析文档时为只读属性,未解析文档的状态下为读写。 http://xml.org/sax/features/namespace-prefixes 报告、不报告名空间前缀。当正在解析文档时为只读属性,未解析文档的状态下为读写。 http://xml.org/sax/features/string-interning 是否将所有的名字等字符串内部化,即使用String.intern()方法处理所有的名字字符串,Xerces目前不支持这个特性,在支持这种特性的解析器上这样可以节省内存空间,但是可能会稍微降低速度。在处理有很多的重复tag的时候打开这个特性可以节约很多空间;由于节省了重新分配内存的时间,反而可能会提高速度。当正在解析文档时为只读属性,未解析文档的状态下为读写。 http://xml.org/sax/features/validation 是否打开校验。当关闭校验的时候可以大大节约内存空间并且大大提高解析速度。因此如果使用的XML文档是可靠的,例如程序生成的,最好关闭校验。当正在解析文档时为只读属性,未解析文档的状态下为读写。 http://xml.org/sax/features/external-general-entities 是否包含外部生成的实体。当正在解析文档时为只读属性,未解析文档的状态下为读写。 http://xml.org/sax/features/external-parameter-entities 是否包含外部的参数,包括外部DTD子集。当正在解析文档时为只读属性,未解析文档的状态下为读写。 http://apache.org/xml/features/validation/schema 是否使用schema。这个特性是apache为Xerces提供的。 http://apache.org/xml/features/validation/dynamic 当设置为true时,仅仅在XML文档指明语法时进行校验,若设置为false,则由http://xml.org/sax/features/validation决定,若其为false则不校验,若为true则校验。 http://apache.org/xml/features/validation/warn-on-duplicate-attdef 是否在遇到重复的属性声明时警告。 http://apache.org/xml/features/validation/warn-on-undeclared-elemdef 是否在遇到未定义的元素的时候警告。 http://apache.org/xml/features/allow-java-encodings 是否允许在XMLDecl和TextDecl使用java的字符编码名。如果设置为false则在遇到java字符编码名的时候会产生一个错误。需要注意的是不是所有的解析器都会允许使用java字符编码名的。 http://apache.org/xml/features/continue-after-fatal-error 是否在发生致命错误后继续进行解析。 http://apache.org/xml/features/nonvalidating/load-dtd-grammar 是否装载DTD语法并且自动增添DTD中定义的缺省值。若http://xml.org/sax/features/validation设置为true则此特性自动设置为true。 http://apache.org/xml/features/dom/defer-node-expansion 这个特性是DOM特性,在这里一起介绍了。是否使用懒惰型节点展开,当这个特性设置为true时,可以提高解析速度并节约内存。这个特性同属性http://apache.org/xml/properties/dom/document-class-name的设置有关。 http://apache.org/xml/features/dom/create-entity-ref-nodes 这个特性是DOM特性,是否用引用的方式建立实体节点,若设置为true则会建立EntityReference节点,若设置为false则会用实际字符串取代实体引用。 http://apache.org/xml/features/dom/include-ignorable-whitespace 这个特性是DOM特性,是否将可以忽略的空白字符串包含在DOM树里面,缺省为true。但是笔者本人一般情况下会设置为false。另外仅仅在打开了校验的情况下才可以判断出来是否有空白字符串。因此这个特性是同http://xml.org/sax/features/validation相关的。
发表评论
用户名: 匿名