public interface LSParser
LSParser
提供一个API来解析XML和建立相应的DOM文档结构。一个LSParser
实例可以通过调用DOMImplementationLS.createLSParser()
方法得到的。
在[ DOM Level 3 Core ]的规定,当一个文件是第一个提供了通过LSParser:
value
和nodeValue
属性的Attr
节点开始返回XML 1.0 normalized value。然而,如果参数“ validate-if-schema”和“ datatype-normalization”设置为true
,取决于所用的属性归一化,属性值可能不同于XML 1属性归一化得到的。如果参数“ datatype-normalization”设置为false
,XML 1属性的规范化是保证发生,如果属性列表不包含命名空间声明,对Element
节点attributes
属性代表XML Information Set ] [定义属性[属性]。异步LSParser
对象预计也实现events::EventTarget
界面,事件监听器可以异步LSParser
注册的对象。
通过异步LSParser
对象支持的事件:
LSParser
完成加载文件。又见的
LSLoadEvent
接口的定义。
LSParser
进展的信号数据解析。此规范不试图定义在要发送的进程事件时的确切情况。这是故意留下作为执行依赖。这里有一个应用程序如何调度进度事件的示例:一旦解析器开始接收数据,则发送一个进度事件以指示解析启动。从那里,一个进度事件被发送每4096个字节的数据,接收和处理。这只是一个例子,但是,实现可以选择在解析过程中随时调度进度事件,或者根本不进行调度。又见的
LSProgressEvent
接口的定义。
注:所有事件本规范中定义的命名空间URI使用"http://www.w3.org/2002/DOMLS"
。
分析输入源的同时,报告错误的应用程序通过错误处理程序(LSParser.domConfig
“ error-handler”参数)。该规范并没有试图定义在解析XML或任何其他标记时可能发生的所有可能的错误,但定义了一些常见的错误案例。类型(DOMError.type
)错误和警告的规范定义:
"check-character-normalization-failure" [error]
"doctype-not-allowed" [fatal]
true
和DOCTYPE遇到。
"no-input-specified" [fatal]
LSInput
对象指定。
"pi-base-uri-not-preserved" [warning]
false
和下面的XML文件解析:
<!DOCTYPE根[ <!实体系统的子目录/ myentity。耳鼻喉] > <根> 和E;< /根> 根>和
subdir/myentity.ent
包含:
<一> <两个 个> >?PI 3.14159?> <更多>更多> 两个> 一>
"unbound-prefix-in-entity" [warning]
true
和未绑定命名空间前缀是一个实体的替换文本中遇到了。这个警告不是强制执行以来提高一些现有的解析器可能不认识在实体替换文本绑定命名空间前缀。
"unknown-character-denormalization" [fatal]
false
和字符时,处理器无法确定归一化特性。
"unsupported-encoding" [fatal]
"unsupported-media-type" [fatal]
true
遇到不支持的媒体类型。
除了提高定义错误和警告,实现将提高对任何其他错误和警告的情况下如IO错误实施的具体错误和警告(未找到文件,没有权限,…),XML的格式错误,等等。
又见Document Object Model (DOM) Level 3 Load and Save Specification。
Modifier and Type | Field and Description |
---|---|
static short |
ACTION_APPEND_AS_CHILDREN
附加分析操作的结果作为上下文节点的子节点。
|
static short |
ACTION_INSERT_AFTER
将解析操作的结果插入上下文节点的紧随其后的兄弟姐妹。
|
static short |
ACTION_INSERT_BEFORE
将解析操作的结果插入上下文节点的立即前面的兄弟姐妹。
|
static short |
ACTION_REPLACE
用解析操作的结果替换上下文节点。
|
static short |
ACTION_REPLACE_CHILDREN
用解析操作的结果替换上下文节点的所有子节点。
|
Modifier and Type | Method and Description |
---|---|
void |
abort()
有关文件,目前正在由
LSParser 加载的加载。
|
boolean |
getAsync()
true 如果
LSParser 是异步的,
false 如果是同步的。
|
boolean |
getBusy()
true 如果
LSParser 目前正在忙于加载文件,否则
false 。
|
DOMConfiguration |
getDomConfig()
的
DOMConfiguration 对象用于分析输入源。
|
LSParserFilter |
getFilter()
当一个过滤器设置,实现将呼唤过滤器是构造DOM树结构。
|
Document |
parse(LSInput input)
解析一个XML文件从资源的
LSInput 鉴定。
|
Document |
parseURI(String uri)
解析一个XML文件从一个位置的URI引用[
IETF RFC 2396 ]确定。
|
Node |
parseWithContext(LSInput input, Node contextArg, short action)
解析从资源的
LSInput 确定一个XML片段,插入到现有的文档内容在指定位置与
context 和
action 参数。
|
void |
setFilter(LSParserFilter filter)
当一个过滤器设置,实现将呼唤过滤器是构造DOM树结构。
|
static final short ACTION_APPEND_AS_CHILDREN
Element
或
DocumentFragment
。
static final short ACTION_REPLACE_CHILDREN
Element
,一
Document
,或
DocumentFragment
。
static final short ACTION_INSERT_BEFORE
Element
或
DocumentFragment
。
static final short ACTION_INSERT_AFTER
Element
或
DocumentFragment
。
static final short ACTION_REPLACE
Element
或
DocumentFragment
。
DOMConfiguration getDomConfig()
DOMConfiguration
对象用于分析输入源。这
DOMConfiguration
具体分析操作。从这个
DOMConfiguration
对象的任何参数值是通过自动对
Document
,创建的
DOMConfiguration
对象或使用,通过分析操作。DOM应用程序负责传递所需的参数值,从这个
DOMConfiguration
对象的
DOMConfiguration
Document
对象引用的对象。除了参数确认对[
DOM Level 3 Core ]定义的
DOMConfiguration接口
LSParser
的
DOMConfiguration
对象添加或修改下列参数:
"charset-overrides-xml-encoding"
true
LSInput
重写任何编码的协议。
false
"disallow-doctype"
true
false
"ignore-unknown-character-denormalizations"
"infoset"
DOMConfiguration
参数定义。不同于[
DOM Level 3 Core ],此参数将默认为
LSParser
true
。
"namespaces"
true
false
"resource-resolver"
LSResourceResolver
对象,或空。如果该参数的值不为空时,外部资源(如外部XML实体或一个XML Schema的位置)时,执行将要求该参数引用的
LSResourceResolver
解决资源。
"supported-media-types-only"
true
false
"validate"
DOMConfiguration
参数定义。不同于[
DOM Level 3 Core ],其内部子集的处理一直是多才多艺的,即使这个参数设置为
false
。
"validate-if-schema"
DOMConfiguration
参数定义。不同于[
DOM Level 3 Core ],其内部子集的处理一直是多才多艺的,即使这个参数设置为
false
。
"well-formed"
DOMConfiguration
参数定义。不同于[
DOM Level 3 Core ],此参数不能设置为
false
。
LSParserFilter getFilter()
DOMConfiguration
参数要求操作后已应用。例如,如果“
validate”设置为
true
,验证调用过滤器之前完成。
void setFilter(LSParserFilter filter)
DOMConfiguration
参数要求操作后已应用。例如,如果“
validate”设置为
true
,验证调用过滤器之前完成。
boolean getAsync()
true
如果
LSParser
是异步的,
false
如果是同步的。
boolean getBusy()
true
如果
LSParser
目前正在忙于加载文件,否则
false
。
Document parse(LSInput input) throws DOMException, LSException
LSInput
鉴定。
input
-
LSInput
从文档的来源是读。
LSParser
是同步
LSParser
,新创建的和密集的
Document
返回。如果
LSParser
是异步的,
null
从文档对象可能尚未建成时,此方法返回返回。
DOMException
- invalid_state_err:如果
LSParser
的
LSParser.busy
属性
true
提出。
LSException
- parse_err:如果
LSParser
无法加载XML文件了。DOM应用程序应该附上一
DOMErrorHandler
使用参数“
error-handler“如果他们希望得到的错误信息。
Document parseURI(String uri) throws DOMException, LSException
uri
- XML文档被阅读的位置。
LSParser
是同步
LSParser
,新创建的和密集的
Document
返回,或
null
如果发生错误。如果
LSParser
是异步的,
null
从文档对象可能尚未建成时,此方法返回返回。
DOMException
- invalid_state_err:提出如果
LSParser.busy
属性
true
。
LSException
- parse_err:如果
LSParser
无法加载XML文件了。DOM应用程序应该附上一
DOMErrorHandler
使用参数“
error-handler“如果他们希望得到的错误信息。
Node parseWithContext(LSInput input, Node contextArg, short action) throws DOMException, LSException
LSInput
确定一个XML片段,插入到现有的文档内容在指定位置与
context
和
action
参数。当解析输入流,上下文节点(或其母公司,根据结果将被插入)是用来解决绑定命名空间前缀。上下文节点的
ownerDocument
节点(或节点本身如果型
DOCUMENT_NODE
节点)是用来解决默认属性和实体引用。
Document
节点和行动是
ACTION_REPLACE_CHILDREN
,然后文件是作为上下文节点通过将改变这样的
xmlEncoding
,
documentURI
,
xmlVersion
,
inputEncoding
,
xmlStandalone
,和所有其他属性都设置为他们将设置当输入源解析使用
LSParser.parse()
。
LSParser
是异步的(
LSParser.async
是
true
)。
ErrorHandler
实例相关联的“
error-handler”的
DOMConfiguration
参数。
parseWithContext
呼叫时,下列配置参数将被忽略,其默认值是相反的价值观:“
validate”、“
validate-if-schema”、和“
element-content-whitespace”。其他参数将被视为正常,和分析器预计称
LSParserFilter
就像整个文档被解析。
input
-
LSInput
从源文件被读取。源文件必须是一个XML片段,即除了一个完整的XML文档(除非类型
DOCUMENT_NODE
,上下文节点和动作
ACTION_REPLACE_CHILDREN
),一个DOCTYPE(内部子集),实体声明(S),符号声明(S),或XML或文本声明(S)。
contextArg
的节点作为被解释的上下文的数据。该节点必须是一
Document
节点,一个
DocumentFragment
节点或节点的类型可以作为一个
Element
节点的子节点,它不能成为一个
Attribute
节点。
action
-这个参数描述应该采取的动作节点插入新的设置和上下文节点之间存在的孩子。可能的动作集是定义在
ACTION_TYPES
以上。
DOMException
- hierarchy_request_err:如果内容不能代替了,被插入前,后,或作为一个上下文节点的孩子(见[
DOM Level 3 Core ]也
Node.insertBefore
或
Node.replaceChild
)。
LSParser
不支持此方法提高了,或者如果上下文节点的类型是
Document
和DOM实现不支持更换的
DocumentType
Element
孩子或孩子。
LSParser.busy
属性
true
提出。
LSException
- parse_err:如果
LSParser
无法加载XML片段了。DOM应用程序应该附上一
DOMErrorHandler
使用参数“
error-handler“如果他们希望得到的错误信息。
void abort()
LSParser
加载的加载。如果
LSParser
目前不忙,调用这个方法不会。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.