Module java.desktop

Class IIOMetadataNode

java.lang.Object
javax.imageio.metadata.IIOMetadataNode
所有已实现的接口:
Element, Node, NodeList

public class IIOMetadataNode extends Object implements Element, NodeList
代表元数据树中节点的类,实现了org.w3c.dom.Element接口,并通过getUserObjectsetUserObject方法允许存储非文本对象。

此类不适用于一般的XML处理。特别是,在Image I/O API中创建的Element节点与Sun标准实现的org.w3.dom API创建的节点不兼容。具体而言,该实现针对简单用途进行了调整,可能不适用于密集处理。

此实现中忽略了命名空间。术语“标签名”和“节点名”始终被视为同义词。注意: DOM Level 3规范添加了许多新方法到NodeElementAttr接口,这些方法对IIOMetadataNode的实现或规范没有价值。在IIOMetadataNode上调用这些方法,或者从IIOMetadataNode返回的Attr实例将导致抛出DOMException

参见:
  • Constructor Details

    • IIOMetadataNode

      public IIOMetadataNode()
      构造一个空的IIOMetadataNode
    • IIOMetadataNode

      public IIOMetadataNode(String nodeName)
      构造具有给定节点名称的IIOMetadataNode
      参数:
      nodeName - 节点名称,作为String
  • Method Details

    • getNodeName

      public String getNodeName()
      返回与此节点关联的节点名称。
      指定者:
      getNodeName 在接口 Node
      返回:
      节点名称,作为String
    • getNodeValue

      public String getNodeValue()
      返回与此节点关联的值。
      指定者:
      getNodeValue 在接口 Node
      返回:
      节点值,作为String
    • setNodeValue

      public void setNodeValue(String nodeValue)
      设置与此节点关联的String值。
      指定者:
      setNodeValue 在接口 Node
    • getNodeType

      public short getNodeType()
      返回节点类型,始终为ELEMENT_NODE
      指定者:
      getNodeType 在接口 Node
      返回:
      shortELEMENT_NODE
    • getParentNode

      public Node getParentNode()
      返回此节点的父节点。如果节点是其自身树的根,则返回null值。要将节点添加到现有树中,请使用insertBeforereplaceChildappendChild方法之一。
      指定者:
      getParentNode 在接口 Node
      返回值:
      父节点,作为一个Node
      参见:
    • getChildNodes

      public NodeList getChildNodes()
      返回一个包含此节点所有子节点的NodeList。如果没有子节点,则这是一个不包含任何节点的NodeList
      指定者:
      getChildNodes 在接口 Node
      返回值:
      子节点作为一个NodeList
    • getFirstChild

      public Node getFirstChild()
      返回此节点的第一个子节点,如果节点没有子节点则返回null
      指定者:
      getFirstChild 在接口 Node
      返回值:
      第一个子节点,作为一个Node,或null
    • getLastChild

      public Node getLastChild()
      返回此节点的最后一个子节点,如果节点没有子节点则返回null
      指定者:
      getLastChild 在接口 Node
      返回值:
      最后一个子节点,作为一个Node,或null
    • getPreviousSibling

      public Node getPreviousSibling()
      返回此节点的前一个同级节点,如果此节点没有前一个同级节点则返回null
      指定者:
      getPreviousSibling 在接口 Node
      返回值:
      前一个同级节点,作为一个Node,或null
    • getNextSibling

      public Node getNextSibling()
      返回此节点的下一个同级节点,如果节点没有下一个同级节点则返回null
      指定者:
      getNextSibling 在接口 Node
      返回值:
      下一个同级节点,作为一个Node,或null
    • getAttributes

      public NamedNodeMap getAttributes()
      返回包含此节点属性的NamedNodeMap
      指定者:
      getAttributes 在接口 Node
      返回值:
      包含此节点属性的NamedNodeMap
    • getOwnerDocument

      public Document getOwnerDocument()
      返回null,因为IIOMetadataNode不属于任何Document
      指定者:
      getOwnerDocument 在接口 Node
      返回值:
      null
    • insertBefore

      public Node insertBefore(Node newChild, Node refChild)
      在现有子节点refChild之前插入节点newChild。如果refChildnull,则在子节点列表的末尾插入newChild
      指定者:
      insertBefore 在接口 Node
      参数:
      newChild - 要插入的Node
      refChild - 参考Node
      返回值:
      被插入的节点。
      抛出:
      IllegalArgumentException - 如果newChildnull
    • replaceChild

      public Node replaceChild(Node newChild, Node oldChild)
      newChild替换子节点oldChild在子节点列表中,并返回oldChild节点。
      指定者:
      replaceChild 在接口 Node
      参数:
      newChild - 要插入的Node
      oldChild - 要替换的Node
      返回值:
      被替换的节点。
      抛出:
      IllegalArgumentException - 如果newChildnull
    • removeChild

      public Node removeChild(Node oldChild)
      从子节点列表中移除由oldChild指示的子节点,并返回它。
      指定者:
      removeChild 在接口 Node
      参数:
      oldChild - 要移除的Node
      返回值:
      被移除的节点。
      抛出:
      IllegalArgumentException - 如果oldChildnull
    • appendChild

      public Node appendChild(Node newChild)
      将节点newChild添加到此节点的子节点列表的末尾。
      指定者:
      appendChild 在接口 Node
      参数:
      newChild - 要插入的Node
      返回值:
      添加的节点。
      抛出:
      IllegalArgumentException - 如果newChildnull
    • hasChildNodes

      public boolean hasChildNodes()
      如果此节点有子节点,则返回true
      指定者:
      hasChildNodes 在接口 Node
      返回值:
      如果此节点有子节点则返回true
    • cloneNode

      public Node cloneNode(boolean deep)
      返回此节点的副本。副本节点没有父节点(getParentNode返回null)。如果正在执行浅克隆(deepfalse),新节点将不具有任何子节点或同级节点。如果正在执行深克隆,新节点将形成完整克隆子树的根。
      指定者:
      cloneNode 在接口 Node
      参数:
      deep - 如果为true,递归克隆指定节点下的子树;如果为false,只克隆节点本身。
      返回值:
      克隆的节点。
    • normalize

      public void normalize()
      不执行任何操作,因为IIOMetadataNode不包含Text子节点。
      指定者:
      normalize 在接口 Node
    • isSupported

      public boolean isSupported(String feature, String version)
      返回false,因为不支持DOM特性。
      指定者:
      isSupported 在接口 Node
      参数:
      feature - 一个被忽略的String
      version - 一个被忽略的String
      返回值:
      false
    • getNamespaceURI

      public String getNamespaceURI() throws DOMException
      返回null,因为不支持命名空间。
      指定者:
      getNamespaceURI 在接口 Node
      抛出:
      DOMException
    • getPrefix

      public String getPrefix()
      返回null,因为不支持命名空间。
      指定者:
      getPrefix 在接口 Node
      返回值:
      null
      参见:
    • setPrefix

      public void setPrefix(String prefix)
      不执行任何操作,因为不支持命名空间。
      指定者:
      setPrefix 在接口 Node
      参数:
      prefix - 一个被忽略的String
      参见:
    • getLocalName

      public String getLocalName()
      等同于getNodeName
      指定者:
      getLocalName 在接口 Node
      返回:
      节点名称,作为一个String
    • getTagName

      public String getTagName()
      等同于getNodeName
      指定者:
      getTagName 在接口 Element
      返回:
      节点名称,作为一个String
    • getAttribute

      public String getAttribute(String name)
      通过名称检索属性值。
      指定者:
      getAttribute 在接口 Element
      参数:
      name - 要检索的属性的名称
      返回:
      作为字符串的Attr值,如果该属性没有指定或默认值,则为空字符串
    • getAttributeNS

      public String getAttributeNS(String namespaceURI, String localName)
      等同于getAttribute(localName)
      指定者:
      getAttributeNS 在接口 Element
      参数:
      namespaceURI - 要检索的属性的命名空间URI
      localName - 要检索的属性的本地名称
      返回:
      作为字符串的Attr值,如果该属性没有指定或默认值,则为空字符串
      参见:
    • setAttribute

      public void setAttribute(String name, String value)
      从接口复制的描述: Element
      添加一个新属性。如果元素中已经存在具有该名称的属性,则其值将更改为value参数的值。该值是一个简单的字符串;在设置时不会被解析。因此,任何标记(例如被识别为实体引用的语法)都将被视为文字文本,并且在写出时需要由实现适当地转义。为了分配包含实体引用的属性值,用户必须创建一个Attr节点以及任何TextEntityReference节点,构建适当的子树,并使用setAttributeNode将其分配为属性的值。
      要设置具有限定名称和命名空间URI的属性,请使用setAttributeNS方法。
      指定者:
      setAttribute 在接口 Element
      参数:
      name - 要创建或更改的属性的名称
      value - 要以字符串形式设置的值
    • setAttributeNS

      public void setAttributeNS(String namespaceURI, String qualifiedName, String value)
      等同于setAttribute(qualifiedName, value)
      指定者:
      setAttributeNS 在接口 Element
      参数:
      namespaceURI - 要创建或更改的属性的命名空间URI
      qualifiedName - 要创建或更改的属性的限定名称
      value - 要以字符串形式设置的值
      参见:
    • removeAttribute

      public void removeAttribute(String name)
      从接口复制的描述: Element
      通过名称删除属性。如果在DTD中为要删除的属性定义了默认值,则在删除的属性立即出现时,将出现一个新属性,其值为默认值以及相应的命名空间URI、本地名称和(如果适用)前缀。实现可能类似地处理来自其他模式的默认值,但应用程序应使用Document.normalizeDocument()来保证此信息是最新的。
      如果找不到具有此名称的属性,则此方法不起作用。
      要通过本地名称和命名空间URI删除属性,请使用removeAttributeNS方法。
      指定者:
      removeAttribute 在接口 Element
      参数:
      name - 要删除的属性的名称
    • removeAttributeNS

      public void removeAttributeNS(String namespaceURI, String localName)
      等同于removeAttribute(localName)
      指定者:
      removeAttributeNS 在接口 Element
      参数:
      namespaceURI - 要删除的属性的命名空间URI
      localName - 要删除的属性的本地名称
    • getAttributeNode

      public Attr getAttributeNode(String name)
      从接口复制的描述: Element
      通过名称检索属性节点。
      要通过限定名称和命名空间URI检索属性节点,请使用getAttributeNodeNS方法。
      指定者:
      getAttributeNode 在接口 Element
      参数:
      name - 要检索的属性的名称(nodeName
      返回:
      具有指定名称(nodeName)的Attr节点,如果没有这样的属性,则返回null
    • getAttributeNodeNS

      public Attr getAttributeNodeNS(String namespaceURI, String localName)
      等同于getAttributeNode(localName)
      指定者:
      getAttributeNodeNS 在接口 Element
      参数:
      namespaceURI - 要检索的属性的命名空间URI
      localName - 要检索的属性的本地名称
      返回:
      具有指定属性本地名称和命名空间URI的Attr节点,如果没有这样的属性,则返回null
      参见:
    • setAttributeNode

      public Attr setAttributeNode(Attr newAttr) throws DOMException
      从接口复制的描述: Element
      添加一个新属性节点。如果元素中已经存在具有该名称(nodeName)的属性,则将其替换为新属性。将属性节点替换为自身不会产生任何效果。
      要添加具有限定名称和命名空间URI的新属性节点,请使用setAttributeNodeNS方法。
      指定者:
      setAttributeNode 在接口 Element
      参数:
      newAttr - 要添加到属性列表的Attr节点
      返回:
      如果newAttr属性替换了现有属性,则返回替换的Attr节点,否则返回null
      抛出:
      DOMException - WRONG_DOCUMENT_ERR: 如果newAttr是从创建元素的不同文档创建的,则引发
      NO_MODIFICATION_ALLOWED_ERR: 如果此节点是只读的,则引发
      INUSE_ATTRIBUTE_ERR: 如果newAttr已经是另一个Element对象的属性,则引发。DOM用户必须显式克隆Attr节点以在其他元素中重用它们。
    • setAttributeNodeNS

      public Attr setAttributeNodeNS(Attr newAttr)
      等同于setAttributeNode(newAttr)
      指定由:
      setAttributeNodeNS 在接口 Element
      参数:
      newAttr - 要添加到属性列表的Attr节点。
      返回:
      如果newAttr属性替换了具有相同本地名称和命名空间URI的现有属性,则返回被替换的Attr节点,否则返回null
      参见:
    • removeAttributeNode

      public Attr removeAttributeNode(Attr oldAttr)
      从接口复制的描述: Element
      删除指定的属性节点。如果在DTD中为已删除的Attr节点定义了默认值,则新节点将立即出现,其默认值以及相应的命名空间URI、本地名称和前缀(如果适用)。实现可能类似地处理来自其他模式的默认值,但应用程序应使用Document.normalizeDocument()来确保此信息是最新的。
      指定由:
      removeAttributeNode 在接口 Element
      参数:
      oldAttr - 要从属性列表中删除的Attr节点。
      返回:
      被移除的Attr节点。
    • getElementsByTagName

      public NodeList getElementsByTagName(String name)
      从接口复制的描述: Element
      返回具有给定标记名称的所有后代ElementsNodeList,按文档顺序排列。
      指定由:
      getElementsByTagName 在接口 Element
      参数:
      name - 要匹配的标记名称。特殊值"*"匹配所有标记。
      返回:
      匹配的Element节点列表。
    • getElementsByTagNameNS

      public NodeList getElementsByTagNameNS(String namespaceURI, String localName)
      等同于getElementsByTagName(localName)
      指定由:
      getElementsByTagNameNS 在接口 Element
      参数:
      namespaceURI - 要匹配的元素的命名空间URI。特殊值"*"匹配所有命名空间。
      localName - 要匹配的元素的本地名称。特殊值"*"匹配所有本地名称。
      返回:
      包含所有匹配的Elements的新NodeList对象。
    • hasAttributes

      public boolean hasAttributes()
      从接口复制的描述: Node
      返回此节点(如果是元素)是否具有任何属性。
      指定由:
      hasAttributes 在接口 Node
      返回:
      如果此节点具有任何属性,则返回true,否则返回false
    • hasAttribute

      public boolean hasAttribute(String name)
      从接口复制的描述: Element
      当在此元素上指定具有给定名称的属性或具有默认值时,返回true,否则返回false
      指定由:
      hasAttribute 在接口 Element
      参数:
      name - 要查找的属性的名称。
      返回:
      如果在此元素上指定具有给定名称的属性或具有默认值,则返回true,否则返回false
    • hasAttributeNS

      public boolean hasAttributeNS(String namespaceURI, String localName)
      等同于hasAttribute(localName)
      指定由:
      hasAttributeNS 在接口 Element
      参数:
      namespaceURI - 要查找的属性的命名空间URI。
      localName - 要查找的属性的本地名称。
      返回:
      如果在此元素上指定具有给定本地名称和命名空间URI的属性或具有默认值,则返回true,否则返回false
    • getLength

      public int getLength()
      从接口复制的描述: NodeList
      列表中的节点数。有效子节点索引的范围是从0到length-1
      指定由:
      getLength 在接口 NodeList
    • item

      public Node item(int index)
      从接口复制的描述: NodeList
      返回集合中的第index个项目。如果index大于或等于列表中的节点数,则返回null
      指定由:
      item 在接口 NodeList
      参数:
      index - 集合中的索引。
      返回:
      NodeList中第index个位置的节点,如果这不是有效索引,则返回null
    • getUserObject

      public Object getUserObject()
      返回与此节点关联的Object值。
      返回:
      用户Object
      参见:
    • setUserObject

      public void setUserObject(Object userObject)
      设置与此节点关联的值。
      参数:
      userObject - 用户Object
      参见:
    • setIdAttribute

      public void setIdAttribute(String name, boolean isId) throws DOMException
      此DOM Level 3方法不支持IIOMetadataNode,将引发DOMException
      指定由:
      setIdAttribute 在接口 Element
      参数:
      name - 属性的名称。
      isId - 属性是否为ID类型。
      抛出:
      DOMException - 总是。
    • setIdAttributeNS

      public void setIdAttributeNS(String namespaceURI, String localName, boolean isId) throws DOMException
      此DOM Level 3方法不支持IIOMetadataNode,将引发DOMException
      指定由:
      setIdAttributeNS 在接口 Element
      参数:
      namespaceURI - 属性的命名空间URI。
      localName - 属性的本地名称。
      isId - 属性是否为ID类型。
      抛出:
      DOMException - 总是。
    • setIdAttributeNode

      public void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException
      此DOM Level 3方法不支持IIOMetadataNode,将引发DOMException
      指定由:
      setIdAttributeNode 在接口 Element
      参数:
      idAttr - 属性节点。
      isId - 属性是否为ID类型。
      抛出:
      DOMException - 总是。
    • getSchemaTypeInfo

      public TypeInfo getSchemaTypeInfo() throws DOMException
      此DOM Level 3方法不支持IIOMetadataNode,将引发DOMException
      指定者:
      getSchemaTypeInfo 在接口 Element
      抛出:
      DOMException - 总是。
    • setUserData

      public Object setUserData(String key, Object data, UserDataHandler handler) throws DOMException
      这个DOM Level 3方法不支持IIOMetadataNode,会抛出一个DOMException
      指定者:
      setUserData 在接口 Node
      参数:
      key - 要关联对象的键。
      data - 要关联到给定键的对象,或者null以删除与该键的任何现有关联。
      handler - 要与该键关联的处理程序,或null
      返回:
      返回此节点上先前关联到给定键的DOMUserData,如果没有则返回null
      抛出:
      DOMException - 总是。
    • getUserData

      public Object getUserData(String key) throws DOMException
      这个DOM Level 3方法不支持IIOMetadataNode,会抛出一个DOMException
      指定者:
      getUserData 在接口 Node
      参数:
      key - 与对象关联的键。
      返回:
      返回此节点上关联到给定键的DOMUserData,如果没有则返回null
      抛出:
      DOMException - 总是。
    • getFeature

      public Object getFeature(String feature, String version) throws DOMException
      这个DOM Level 3方法不支持IIOMetadataNode,会抛出一个DOMException
      指定者:
      getFeature 在接口 Node
      参数:
      feature - 请求的特性名称。请注意,在特定方法上忽略的任何加号“+”将被忽略,因为在此方法的上下文中它不重要。
      version - 这是要测试的特性的版本号。
      返回:
      返回一个实现指定特性和版本的专用API的对象,如果有的话,或者如果没有实现与该特性相关联的接口的对象,则返回null。如果此方法返回的DOMObject实现了Node接口,则它必须委托给主要核心Node,并且不得返回与主要核心Node不一致的结果,例如属性、childNodes等。
      抛出:
      DOMException - 总是。
    • isSameNode

      public boolean isSameNode(Node node) throws DOMException
      这个DOM Level 3方法不支持IIOMetadataNode,会抛出一个DOMException
      指定者:
      isSameNode 在接口 Node
      参数:
      node - 要与之进行比较的节点。
      返回:
      如果节点相同则返回true,否则返回false
      抛出:
      DOMException - 总是。
    • isEqualNode

      public boolean isEqualNode(Node node) throws DOMException
      这个DOM Level 3方法不支持IIOMetadataNode,会抛出一个DOMException
      指定者:
      isEqualNode 在接口 Node
      参数:
      node - 要与之比较相等性的节点。
      返回:
      如果节点相等则返回true,否则返回false
      抛出:
      DOMException - 总是。
    • lookupNamespaceURI

      public String lookupNamespaceURI(String prefix) throws DOMException
      这个DOM Level 3方法不支持IIOMetadataNode,会抛出一个DOMException
      指定者:
      lookupNamespaceURI 在接口 Node
      参数:
      prefix - 要查找的前缀。如果此参数为null,则方法将返回默认的命名空间URI(如果有)。
      返回:
      返回关联的命名空间URI,如果找不到则返回null
      抛出:
      DOMException - 总是。
    • isDefaultNamespace

      public boolean isDefaultNamespace(String namespaceURI) throws DOMException
      这个DOM Level 3方法不支持IIOMetadataNode,会抛出一个DOMException
      指定者:
      isDefaultNamespace 在接口 Node
      参数:
      namespaceURI - 要查找的命名空间URI。
      返回:
      如果指定的namespaceURI是默认命名空间则返回true,否则返回false
      抛出:
      DOMException - 总是。
    • lookupPrefix

      public String lookupPrefix(String namespaceURI) throws DOMException
      这个DOM Level 3方法不支持IIOMetadataNode,会抛出一个DOMException
      指定者:
      lookupPrefix 在接口 Node
      参数:
      namespaceURI - 要查找的命名空间URI。
      返回:
      如果找到关联的命名空间前缀则返回,否则返回null。如果有多个前缀与命名空间前缀相关联,则返回的命名空间前缀是实现相关的。
      抛出:
      DOMException - 总是。
    • getTextContent

      public String getTextContent() throws DOMException
      这个DOM Level 3方法不支持IIOMetadataNode,会抛出一个DOMException
      指定者:
      getTextContent 在接口 Node
      抛出:
      DOMException - 总是。
    • setTextContent

      public void setTextContent(String textContent) throws DOMException
      这个DOM Level 3方法不支持IIOMetadataNode,会抛出一个DOMException
      指定者:
      setTextContent 在接口 Node
      抛出:
      DOMException - 总是。
    • compareDocumentPosition

      public short compareDocumentPosition(Node other) throws DOMException
      这个DOM Level 3方法不支持IIOMetadataNode,会抛出一个DOMException
      指定者:
      compareDocumentPosition 在接口 Node
      参数:
      other - 要与参考节点比较的节点。
      返回:
      返回节点相对于参考节点的位置。
      抛出:
      DOMException - 总是。
    • getBaseURI

      public String getBaseURI() throws DOMException
      这个DOM Level 3方法不支持IIOMetadataNode,会抛出一个DOMException
      指定者:
      getBaseURI 在接口 Node
      抛出:
      DOMException - 总是。