public interface DOMConfiguration
DOMConfiguration接口表示文档的配置,并维护已识别参数的表。
使用上述结构,能够改变Document.normalizeDocument()行为,如更换CDATASection与节点Text节点或指定的验证时必须使用的模式的类型Document被请求。
DOMConfiguration对象也在DOMParser和DOMSerializer接口中的[ DOM Level 3 Load and Save ]中使用。
DOMConfiguration对象使用的参数名称在DOM Level 3规范中定义。 名称不区分大小写。 为了避免可能的冲突,作为惯例,引用在DOM规范之外定义的参数的名称应该是唯一的。 因为参数是公开的,因为名称中的属性建议遵循5.16标识符[Unicode],添加字符' - '(HYPHEN-MINUS),但不被DOM实现强制执行。 DOM 3级核心实现需要识别本规范中定义的所有参数。 某些参数值也可能需要由实现支持。 参考参数的定义来知道是否必须支持一个值。
注意:参数与SAX2 [ SAX ]中使用的特征和属性相似。
DOM中定义的以下参数列表:
"canonical-form"
true
DocumentType节点(如果有),或从每个元素中删除多余的命名空间声明。
请注意,这仅限于DOM中可以表示的内容;
特别是没有办法在DOM中指定属性的顺序。
此外,将此参数设置为true还将设置下列参数的状态。
之后对其中一个参数的更改将会将“规范形式”恢复为false 。
参数设置为false :“entities”,“normalize-characters”,“cdata-sections”。
参数设置为true :“namespaces”,“namespace-declaration”,“well-formed”,“element-content-whitespace”。
除非在参数说明中明确指定,否则其他参数不会更改。
false
"cdata-sections"
true
CDATASection个节点。
false
CDATASection的文档中的节点到Text节点。
然后将新的Text节点与任何相邻的Text节点组合。
"check-character-normalization"
true
DOMError.type等于“检查字符归一化失败”的错误。
false
"comments"
true
Comment个节点。
false
Comment节点。
"datatype-normalization"
true
true 。
有了这个参数启动时“验证”是false没有效果,没有模式规范化会发生。
注意:由于文档包含XML 1.0处理的结果,该参数不适用于[ XML 1.0 ] 3.3.3节中定义的属性值归一化,仅适用于文档类型定义(DTD)以外的模式语言。
false
"element-content-whitespace"
true
false
Text包含空格中元素的含量,如在描述的节点是[element content whitespace] 。
预期该实现将使用属性Text.isElementContentWhitespace来确定Text节点是否应被丢弃。
"entities"
true
EntityReference个节点。
false
EntityReference个节点,将实体扩展直接放在其位置。
Text节点是归一化的,如在限定的Node.normalize 。
文件中只保留unexpanded entity references 。
注意:此参数不影响Entity节点。
"error-handler"
DOMErrorHandler对象。
如果在文档中遇到错误时,实现将回调DOMErrorHandler使用此参数注册。
该实现可以提供默认的DOMErrorHandler对象。
当调用时, DOMError.relatedData将包含最接近发生错误的节点。
如果实现无法确定发生错误的节点, DOMError.relatedData将包含Document节点。
在错误处理程序内对文档的突变将导致执行依赖的行为。
"infoset"
true
false :“validate-if-schema”,“entities”,“datatype-normalization”,“cdata-sections” 。这将强制以下参数为true :“namespace-declaration”,“well-formed”,“element-content-whitespace”,“comments”,“namespaces”。其他参数不会更改,除非在参数。
请注意,仅当适当设置上述指定的参数时,使用getParameter查询此参数getParameter返回true 。
false
infoset到false没有任何效果。
"namespaces"
true
false
"namespace-declarations"
false 。
true
false
false ,命名空间前缀( Node.prefix )仍保留。
"normalize-characters"
true
false
"schema-location"
DOMString对象,该列表由空格分隔(与第2.3节[ XML 1.0 ]中定义的nonterminal production S匹配的字符 ),表示应发生验证的模式,即当前模式。
在此列表中的必须使用指定的类型相匹配引用的架构的schema-type ,否则实现的行为不确定。
使用此属性指定的模式优先于文档本身指定的模式信息。
对于名称空间感知模式,如果使用此属性指定的模式和文档实例中指定的架构(即使用schemaLocation属性)在模式文档中(即使用模式import机制)共享相同的targetNamespace ,则由用户指定的模式使用将使用此属性。
如果使用此属性指定的两个模式共享相同的targetNamespace或没有命名空间,行为是依赖于实现的。
如果没有提供位置,则此参数为null 。
注意: "schema-location"参数被忽略,除非设置了“模式类型”参数值。 强烈建议Document.documentURI会进行设置,以便实现可以成功解析所引用的任何外部实体。
"schema-type"
DOMString对象,并表示用于验证文档的模式语言的类型。
请注意,绝对URI上不进行词法检查。
如果未设置此参数,则可以根据支持的模式语言和加载时使用的模式语言,由实现提供默认值。
如果没有提供值,则此参数为null 。
注意:对于XML Schema [ XML Schema Part 1 ],应用程序必须使用值"http://www.w3.org/2001/XMLSchema" 。 对于XML DTD [ XML 1.0 ],应用程序必须使用值"http://www.w3.org/TR/REC-xml" 。 其他模式语言不在W3C的范围之内,因此应该推荐使用绝对URI来使用此方法。
"split-cdata-sections"
true
DOMError.type等于"cdata-sections-splitted"和DOMError.relatedData等于第一CDATASection节点按文档顺序从分割得到的。
false
CDATASection包含无法表示的字符,则发出错误信号。
"validate"
true
true ,否则不会根据所使用的架构公开模式归一化值。
此参数将重新评估:
Attr.specified等于false ,如在的说明书中指定Attr接口; Text节点的属性Text.isElementContentWhitespace的值; Attr节点的属性Attr.isId的值; Element.schemaTypeInfo和Attr.schemaTypeInfo 。 注意: “validate-if-schema”和“validate”是互斥的,将其中一个设置为true将另一个设置为false 。 在验证文档时,应用程序还应考虑将参数“well-formed”设置为true ,该选项是该选项的默认值。
false
true则验证可能仍会发生。
"validate-if-schema"
true
true具有相同的行为。
注意: “validate-if-schema”和“validate”是互斥的,将其中一个设置为true将另一个设置为false 。
false
true ,则仍必须进行验证。
"well-formed"
true
Document.xmlVersion :
Node.nodeName包含无效字符根据其节点类型,并生成一个DOMError类型的"wf-invalid-character-in-node-name" ,具有DOMError.SEVERITY_ERROR严重程度,如果必要的话; Attr , Element , Comment , Text , CDATASection的无效字符节点,并生成一个DOMError类型的"wf-invalid-character" ,具有DOMError.SEVERITY_ERROR严重程度,如果必要的话; ProcessingInstruction的无效字符节点,并生成一个DOMError类型的"wf-invalid-character" ,具有DOMError.SEVERITY_ERROR严重程度,如果必要的话; false
与实体相关联的系统标识符的分辨率使用Document.documentURI完成。 然而,当DOM实现支持[ DOM Level 3 Load and Save ]中定义的功能“LS”时,参数“resource-resolver”也可以在Document节点附加的DOMConfiguration对象上使用。 如果设置了此参数, Document.normalizeDocument()将调用资源解析器,而不是使用Document.documentURI 。
| Modifier and Type | Method and Description |
|---|---|
boolean |
canSetParameter(String name, Object value)
检查是否将参数设置为特定值。
|
Object |
getParameter(String name)
如果已知,返回参数的值。
|
DOMStringList |
getParameterNames()
此
DOMConfiguration对象支持的参数列表,并且应用程序可以
DOMConfiguration至少设置一个值。
|
void |
setParameter(String name, Object value)
设置参数的值。
|
void setParameter(String name, Object value) throws DOMException
name - 要设置的参数的名称。
value -新值,或null如果用户希望取消设置该参数。
虽然value参数的类型定义为DOMUserData ,但对象类型必须与参数定义所定义的类型相匹配。
例如,如果参数为“error-handler”,则该值必须为DOMErrorHandler 。
DOMException - NOT_FOUND_ERR:无法识别参数名时引发。
Object getParameter(String name) throws DOMException
name - 参数的名称。
null如果没有对象已关联)或参数不受支持。
DOMException - NOT_FOUND_ERR:无法识别参数名称时引发。
boolean canSetParameter(String name, Object value)
name - 要检查的参数的名称。
value - 一个对象。
如果null ,则返回值为true 。
true如果该参数可以成功设置为指定的值,或false如果该参数不认可或不支持请求的值。
这不会改变参数本身的当前值。
DOMStringList getParameterNames()
DOMConfiguration object and for which at least one value can be set by the application. Note that this list can also contain parameter names defined outside this specification.
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.