`

XML 处理相关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相关的。
分享到:
评论

相关推荐

    JAVA一键操作 XML简单API

    7. **易用性**:作为"傻瓜式"操作的API,它应该设计得简洁明了,提供清晰的API接口,使得开发者能够快速上手,无需花费大量时间去学习复杂的XML处理机制。 8. **兼容性和扩展性**:考虑到Java的广泛使用,这个XML...

    xmlbean API

    8. **XML事件处理**:通过StAX(Streaming API for XML)接口,XMLBean还支持基于事件的XML处理,适用于处理大型XML文档或需要低内存占用的情况。 9. **集成其他技术**:XMLBean可以很好地与Spring框架、JAXB等其他...

    java_xml_api,java操作XML文档

    本文将深入探讨Java XML API中的核心组件,包括SAX(Simple API for XML)、DOM(Document Object Model)以及JAXB(Java Architecture for XML Binding),并讲解它们在XML处理中的应用。 1. SAX解析器 SAX是一种...

    xml 技术相关API大全,很全很强大

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。本文将深入探讨XML技术相关的API,...理解这些API的用法和特点,将有助于提高XML处理的效率和灵活性。

    DOM4J解析XML示例及API文档

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。本篇将详细讲解DOM4J解析...结合API文档和示例代码,你可以深入学习并熟练运用DOM4J进行XML处理。

    eclispe插件开发-XML Schema Model API--xsd_API-doc

    在Eclipse插件开发中,XML Schema Model API(通常简称为xsd_API)是一个重要的组成部分,它为开发者提供了处理XML Schema文档的强大工具集。XML Schema是一种用于定义XML文档结构和数据类型的语言,而xsd_API则是...

    XML_API.rar_dbms_xml api

    XML_API.rar_dbms_xml api 是一个与数据库管理和XML处理相关的资源包,主要涉及Oracle数据库中的DBMS_XML API。这个API是一组PL/SQL过程和函数,用于在Oracle数据库中操作XML数据。它允许用户生成、解析、查询以及...

    apache xmlschema api文档

    在实际开发中,Apache XML Schema API通常与DOM(Document Object Model)、SAX(Simple API for XML)或StAX(Streaming API for XML)等XML解析库结合使用,以构建完整的XML处理解决方案。通过阅读提供的API文档,...

    【ASP.NET编程知识】.net webapi接收xml格式数据的3种情况小结.docx

    在本文中,我们将主要介绍 .NET Web API 接收 XML 格式数据的相关内容。 XML 格式数据 XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据。它的主要特点是人类可读性强,易于解析和生成。但是...

    java xml API

    在Java中,XML处理主要涉及以下几个核心API: 1. DOM(Document Object Model):DOM是一种树型结构,将XML文档解析为一系列节点,包括元素、属性、文本等。Java中的`javax.xml.parsers.DocumentBuilderFactory`和`...

    WebApi返回xml格式时去除命名空间

    默认情况下,WebAPI生成的XML数据会包含命名空间信息,这可能导致客户端处理数据时的不便。本文将深入探讨如何在C#中使用WebAPI去除返回XML数据时的命名空间。 首先,我们需要了解XML命名空间的作用。XML命名空间是...

    dds xml_api1.1

    在这个“dds xml_api1.1”主题中,我们将深入探讨DDS API的XML接口及其在版本1.1中的关键特性。 首先,DDS API通常分为两大部分:IDL(Interface Definition Language)API和XML API。IDL API主要用于编写DDS数据...

    Dom4j学习教程+API+xml实用大全+xml学习笔记+htc

    "XML实用大全"和"xml学习笔记"将帮助读者全面理解XML,而"Dom4j学习教程+API"则专门针对Java中的XML处理,"htc.doc"则可能提供与HTC相关的技术信息。通过阅读和实践这些文档,开发者能够提升XML处理技能,尤其是使用...

    Simple API for XML(SAX)详解与实例

    **Simple API for XML (SAX)** 是一种轻量级的解析XML文档的API,它以事件驱动的方式处理XML数据。SAX不存储整个XML文档于内存中,而是逐行读取,这使得它在处理大型XML文件时比DOM(Document Object Model)更高效...

    WebApi去除XML命名空间

    在开发WebAPI应用程序时,我们可能会遇到返回的XML数据包含有命名空间的问题。这可能导致客户端解析数据时出现困难,特别是当客户端不期望或无法处理这些命名空间时。本篇文章将详细探讨如何在VS2013及更高版本的...

    xml api reference

    Oracle 9i XML API Reference-XDK and Oracle XMLDB文档详细介绍了如何使用Oracle 9i中的XML API及其相关技术,包括XDK和Oracle XML DB。这些技术为开发者提供了强大而灵活的工具,可用于处理各种XML相关的任务。...

    Generate XML String with Parser API.zip_API_saltucl_xml

    在LabVIEW环境中,"Generate XML String with Parser API.vi"可能是一个虚拟仪器(VI),实现了上述XML处理功能。用户可以通过交互界面输入数据,生成XML字符串,同时也可以加载已有的XML配置文件进行查看和编辑。 ...

    stax-api-1.0.1 java 操作 xml 文件 一个很好用的包

    STAX(Streaming API for XML)是Java平台上的一个XML处理API,它提供了高效且灵活的方式来读取和写入XML文档。STAX的核心理念是事件驱动,即解析XML时,每遇到一个XML元素或属性,都会触发一个相应的事件,程序通过...

    Java SE 6 新特性: XML API 与 Web 服务

    - **StAX(Streaming API for XML)**:Java SE 6引入了StAX,一个流式API,允许开发人员以迭代方式读取和写入XML,提高了性能和内存效率,特别适用于处理大型XML文档。 - **DOM Level 3**:Document Object Model...

    淘宝API的使用与XML使用

    淘宝API是淘宝开放平台提供的一系列接口,允许开发者通过这些接口与淘宝系统进行交互,实现各种功能,如商品管理、订单处理、用户信息获取等。5ufnali可能是特定的API调用标识或者一个特定的功能模块。XML...

Global site tag (gtag.js) - Google Analytics