public interface Attr extends Node
Attr接口表示在一个
Element对象属性。通常,属性的允许值在与文档相关联的模式中定义。
Attr对象继承Node接口,但实际上并没有他们描述的元素的子节点,DOM不考虑它们的文档树的一部分。因此,该Node属性parentNode,previousSibling,和nextSibling有Attr对象null价值。DOM认为,属性的元素,而不是与他们有联系的元素具有一个独立的身份;这就要实现这样的功能更有效的与一个给定类型的所有元素的默认属性。此外,Attr节点可能不是一个DocumentFragment直系子女。然而,他们可以被包含在一个DocumentFragment Element节点关联。总之,用户和DOM的实现者需要注意的是Attr节点有一些共同的东西与其他对象继承Node接口,但也完全不同。
属性的有效值如下:如果这个属性已被明确指定任何值,该值是属性的有效值;否则,如果有这个属性的声明,该声明包括一个默认值,那么默认值是该属性的有效值;否则,该属性不存在该结构模型中的元素,直到它已显式添加。注意在Attr实例的Node.nodeValue属性也可用于检索属性值的字符串版本(S)。
如果属性没有明确给出实例文档中的值却与文档相关联的模式提供的默认值,一个属性节点将设立specified设置false。删除属性节点的默认值是在架构中定义生成一个新的属性节点的默认值设置为false和specified。如果在调用Document.normalizeDocument()发生验证,与specified属性节点等于false重新计算,根据该模式提供的默认属性值。如果没有默认值与模式中的此属性关联,则将属性节点丢弃。
在XML中,其中一个属性的值可以包含实体引用,该Attr节点的子节点可以是Text或EntityReference节点(这些都是在使用;看到EntityReference讨论说明)。
DOM核心代表所有属性值为简单的字符串,即使与文档相关联的DTD或Schema声明他们特定类型如标记化。
属性值标准化的DOM实现的表现方式取决于实施知道使用方案。通常情况下,一个节点的value和Attr nodeValue属性最初返回标准值由解析器给出。也正是如此Document.normalizeDocument()后称为(假设正确的选项已经设定)。但这不可能是突变后的情况下,独立的突变是否是通过设置字符串值直接或通过改变Attr子节点进行。特别是,这是真的character references参与,因为他们不是DOM中的代表和他们的影响的属性值规范化。另一方面,如果实现知道在使用模式时,属性值的改变,它是一个比CDATA类型不同,它可以规范了当时。这是专门的DOM实现尤其如此,如SVG DOM实现,存储属性值在内部形成不同的从一个字符串。
下表给出了一些在原始文档的属性值之间的关系的例子(解析属性值),DOM中的暴露,和值的序列化:
| Examples | Parsed attribute value | Initial Attr.value |
Serialized attribute value |
|---|---|---|---|
| Character reference | "x²=5" |
"x�=5" |
"x²=5" |
| Built-in character entity | "y<6" |
"y<6" |
"y<6" |
| Literal newline between | "x=5 y=6" |
"x=5 y=6" |
"x=5 y=6" |
| Normalized newline between | "x=5 y=6" |
"x=5 y=6" |
"x=5 y=6" |
Entity e with literal newline |
<!ENTITY e '... ...'> [...]> "x=5&e;y=6" |
Dependent on Implementation and Load Options | Dependent on Implementation and Load/Save Options |
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE| Modifier and Type | Method and Description |
|---|---|
String |
getName()
返回此属性的名称。
|
Element |
getOwnerElement()
Element节点的属性是附加到或
null如果这个属性没有被使用。
|
TypeInfo |
getSchemaTypeInfo()
与此属性关联的类型信息。
|
boolean |
getSpecified()
True如果该属性是明确给出实例文档中的一个值,
false否则。
|
String |
getValue()
在检索过程中,属性的值作为字符串返回。
|
boolean |
isId()
返回这个属性是否是已知的类型标识(即
|
void |
setValue(String value)
在检索过程中,属性的值作为字符串返回。
|
appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserDataString getName()
Node.localName不同于
null,这个属性是一个合格的名字。
boolean getSpecified()
True如果该属性是明确给出实例文档中的一个值,
false否则。如果应用程序改变这个属性节点的值(即使它最终具有相同的值作为默认值)然后将
true。实现可以与其他模式同样可应用程序应该使用
Document.normalizeDocument()保证这些信息是最新的默认值属性。
String getValue()
getAttribute在
Element接口。
Text节点,即任何字符的XML处理器可以识别标记而不是作为文本。又见法
Element.setAttribute()。
void setValue(String value) throws DOMException
getAttribute在
Element接口。
Text节点,即任何字符的XML处理器可以识别标记而不是作为文本。又见法
Element.setAttribute()。
DOMException - no_modification_allowed_err:提出的节点时,只读。
Element getOwnerElement()
Element节点的属性是附加到或
null如果这个属性没有被使用。
TypeInfo getSchemaTypeInfo()
Document.normalizeDocument()是正确的,
schemaTypeInfo不得如果节点移动是可靠的。
boolean isId()
ownerElement可以使用
Document.getElementById检索方法。实现可以使用几种方法来判断一个属性节点是已知含有标识符:
Document.normalizeDocument()发生验证后架构验证Infoset的贡献(PSVI贡献)值来确定如果此属性确定ID模式属性使用 schema-determined ID定义[ XPointer ]。Document.normalizeDocument()发生验证,各[类型定义]值用于确定如果此属性确定ID属性定义DTD使用 DTD-determined ID [ XPointer ]。Element.setIdAttribute(),Element.setIdAttributeNS(),使用或Element.setIdAttributeNode(),即确定ID属性的用户;注: XPointer框架(见第3.2节在[ XPointer ])考虑DOM用户确定的ID属性作为外部确定的XPointer ID定义部分。
Document.normalizeDocument()发生验证,确定所有用户ID属性重置所有属性节点的身份信息,然后再根据架构使用。因此,如果
Attr.schemaTypeInfo属性包含一个ID类型,
isId将始终返回true。
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.