Class XMLElement

  • All Implemented Interfaces:
    java.io.Serializable, IXMLElement

    public class XMLElement
    extends java.lang.Object
    implements IXMLElement, java.io.Serializable
    XMLElement is an XML element. The standard NanoXML builder generates a tree of such elements.
    Author:
    Marc De Scheemaecker
    See Also:
    StdXMLBuilder, Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int NO_LINE
      No line number defined.
    • Constructor Summary

      Constructors 
      Constructor Description
      XMLElement()
      Creates an empty element to be used for #PCDATA content.
      XMLElement​(java.lang.String fullName)
      Creates an empty element.
      XMLElement​(java.lang.String fullName, java.lang.String namespace)
      Creates an empty element.
      XMLElement​(java.lang.String fullName, java.lang.String systemID, int lineNr)
      Creates an empty element.
      XMLElement​(java.lang.String fullName, java.lang.String namespace, java.lang.String systemID, int lineNr)
      Creates an empty element.
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void addChild​(IXMLElement child)
      Adds a child element.
      IXMLElement createElement​(java.lang.String fullName)
      Creates an empty element.
      IXMLElement createElement​(java.lang.String fullName, java.lang.String namespace)
      Creates an empty element.
      IXMLElement createElement​(java.lang.String fullName, java.lang.String systemID, int lineNr)
      Creates an empty element.
      IXMLElement createElement​(java.lang.String fullName, java.lang.String namespace, java.lang.String systemID, int lineNr)
      Creates an empty element.
      IXMLElement createPCDataElement()
      Creates an element to be used for #PCDATA content.
      java.util.Enumeration enumerateAttributeNames()
      Returns an enumeration of all attribute names.
      java.util.Enumeration enumerateChildren()
      Returns an enumeration of all child elements.
      boolean equals​(java.lang.Object rawElement)
      Returns true if the element equals another element.
      boolean equalsXMLElement​(IXMLElement elt)
      Returns true if the element equals another element.
      protected void finalize()
      Cleans up the object when it's destroyed.
      java.lang.String getAttribute​(java.lang.String name)
      Deprecated.
      As of NanoXML/Java 2.1, replaced by getAttribute(java.lang.String,java.lang.String) Returns the value of an attribute.
      int getAttribute​(java.lang.String name, int defaultValue)
      Returns the value of an attribute.
      java.lang.String getAttribute​(java.lang.String name, java.lang.String defaultValue)
      Returns the value of an attribute.
      int getAttribute​(java.lang.String name, java.lang.String namespace, int defaultValue)
      Returns the value of an attribute.
      java.lang.String getAttribute​(java.lang.String name, java.lang.String namespace, java.lang.String defaultValue)
      Returns the value of an attribute.
      int getAttributeCount()
      Returns the number of attributes.
      java.lang.String getAttributeNamespace​(java.lang.String name)
      Returns the namespace of an attribute.
      java.util.Properties getAttributes()
      Returns all attributes as a Properties object.
      java.util.Properties getAttributesInNamespace​(java.lang.String namespace)
      Returns all attributes in a specific namespace as a Properties object.
      java.lang.String getAttributeType​(java.lang.String name)
      Returns the type of an attribute.
      java.lang.String getAttributeType​(java.lang.String name, java.lang.String namespace)
      Returns the type of an attribute.
      IXMLElement getChildAtIndex​(int index)
      Returns the child at a specific index.
      java.util.Vector getChildren()
      Returns a vector containing all the child elements.
      int getChildrenCount()
      Returns the number of children.
      java.util.Vector getChildrenNamed​(java.lang.String name)
      Returns a vector of all child elements named name.
      java.util.Vector getChildrenNamed​(java.lang.String name, java.lang.String namespace)
      Returns a vector of all child elements named name.
      java.lang.String getContent()
      Return the #PCDATA content of the element.
      IXMLElement getFirstChildNamed​(java.lang.String name)
      Searches a child element.
      IXMLElement getFirstChildNamed​(java.lang.String name, java.lang.String namespace)
      Searches a child element.
      java.lang.String getFullName()
      Returns the full name (i.e.
      int getLineNr()
      Returns the line number in the data where the element started.
      java.lang.String getName()
      Returns the name of the element.
      java.lang.String getNamespace()
      Returns the namespace of the element.
      IXMLElement getParent()
      Returns the parent element.
      java.lang.String getSystemID()
      Returns the system ID of the data where the element started.
      boolean hasAttribute​(java.lang.String name)
      Returns whether an attribute exists.
      boolean hasAttribute​(java.lang.String name, java.lang.String namespace)
      Returns whether an attribute exists.
      boolean hasChildren()
      Returns whether the element has children.
      void insertChild​(IXMLElement child, int index)
      Inserts a child element.
      boolean isLeaf()
      Returns whether the element is a leaf element.
      void removeAttribute​(java.lang.String name)
      Removes an attribute.
      void removeAttribute​(java.lang.String name, java.lang.String namespace)
      Removes an attribute.
      void removeChild​(IXMLElement child)
      Removes a child element.
      void removeChildAtIndex​(int index)
      Removes the child located at a certain index.
      void setAttribute​(java.lang.String name, java.lang.String value)
      Sets an attribute.
      void setAttribute​(java.lang.String fullName, java.lang.String namespace, java.lang.String value)
      Sets an attribute.
      void setContent​(java.lang.String content)
      Sets the #PCDATA content.
      void setName​(java.lang.String name)
      Sets the full name.
      void setName​(java.lang.String fullName, java.lang.String namespace)
      Sets the name.
      • Methods inherited from class java.lang.Object

        clone, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • XMLElement

        public XMLElement()
        Creates an empty element to be used for #PCDATA content.
      • XMLElement

        public XMLElement​(java.lang.String fullName)
        Creates an empty element.
        Parameters:
        fullName - the name of the element.
      • XMLElement

        public XMLElement​(java.lang.String fullName,
                          java.lang.String systemID,
                          int lineNr)
        Creates an empty element.
        Parameters:
        fullName - the name of the element.
        systemID - the system ID of the XML data where the element starts.
        lineNr - the line in the XML data where the element starts.
      • XMLElement

        public XMLElement​(java.lang.String fullName,
                          java.lang.String namespace)
        Creates an empty element.
        Parameters:
        fullName - the full name of the element
        namespace - the namespace URI.
      • XMLElement

        public XMLElement​(java.lang.String fullName,
                          java.lang.String namespace,
                          java.lang.String systemID,
                          int lineNr)
        Creates an empty element.
        Parameters:
        fullName - the full name of the element
        namespace - the namespace URI.
        systemID - the system ID of the XML data where the element starts.
        lineNr - the line in the XML data where the element starts.
    • Method Detail

      • createElement

        public IXMLElement createElement​(java.lang.String fullName)
        Creates an empty element.
        Specified by:
        createElement in interface IXMLElement
        Parameters:
        fullName - the name of the element.
      • createElement

        public IXMLElement createElement​(java.lang.String fullName,
                                         java.lang.String systemID,
                                         int lineNr)
        Creates an empty element.
        Specified by:
        createElement in interface IXMLElement
        Parameters:
        fullName - the name of the element.
        systemID - the system ID of the XML data where the element starts.
        lineNr - the line in the XML data where the element starts.
      • createElement

        public IXMLElement createElement​(java.lang.String fullName,
                                         java.lang.String namespace)
        Creates an empty element.
        Specified by:
        createElement in interface IXMLElement
        Parameters:
        fullName - the full name of the element
        namespace - the namespace URI.
      • createElement

        public IXMLElement createElement​(java.lang.String fullName,
                                         java.lang.String namespace,
                                         java.lang.String systemID,
                                         int lineNr)
        Creates an empty element.
        Specified by:
        createElement in interface IXMLElement
        Parameters:
        fullName - the full name of the element
        namespace - the namespace URI.
        systemID - the system ID of the XML data where the element starts.
        lineNr - the line in the XML data where the element starts.
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Cleans up the object when it's destroyed.
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable
      • getParent

        public IXMLElement getParent()
        Returns the parent element. This method returns null for the root element.
        Specified by:
        getParent in interface IXMLElement
      • getFullName

        public java.lang.String getFullName()
        Returns the full name (i.e. the name including an eventual namespace prefix) of the element.
        Specified by:
        getFullName in interface IXMLElement
        Returns:
        the name, or null if the element only contains #PCDATA.
      • getName

        public java.lang.String getName()
        Returns the name of the element.
        Specified by:
        getName in interface IXMLElement
        Returns:
        the name, or null if the element only contains #PCDATA.
      • getNamespace

        public java.lang.String getNamespace()
        Returns the namespace of the element.
        Specified by:
        getNamespace in interface IXMLElement
        Returns:
        the namespace, or null if no namespace is associated with the element.
      • setName

        public void setName​(java.lang.String name)
        Sets the full name. This method also sets the short name and clears the namespace URI.
        Specified by:
        setName in interface IXMLElement
        Parameters:
        name - the non-null name.
      • setName

        public void setName​(java.lang.String fullName,
                            java.lang.String namespace)
        Sets the name.
        Specified by:
        setName in interface IXMLElement
        Parameters:
        fullName - the non-null full name.
        namespace - the namespace URI, which may be null.
      • addChild

        public void addChild​(IXMLElement child)
        Adds a child element.
        Specified by:
        addChild in interface IXMLElement
        Parameters:
        child - the non-null child to add.
      • insertChild

        public void insertChild​(IXMLElement child,
                                int index)
        Inserts a child element.
        Parameters:
        child - the non-null child to add.
        index - where to put the child.
      • removeChild

        public void removeChild​(IXMLElement child)
        Removes a child element.
        Specified by:
        removeChild in interface IXMLElement
        Parameters:
        child - the non-null child to remove.
      • removeChildAtIndex

        public void removeChildAtIndex​(int index)
        Removes the child located at a certain index.
        Specified by:
        removeChildAtIndex in interface IXMLElement
        Parameters:
        index - the index of the child, where the first child has index 0.
      • enumerateChildren

        public java.util.Enumeration enumerateChildren()
        Returns an enumeration of all child elements.
        Specified by:
        enumerateChildren in interface IXMLElement
        Returns:
        the non-null enumeration
      • isLeaf

        public boolean isLeaf()
        Returns whether the element is a leaf element.
        Specified by:
        isLeaf in interface IXMLElement
        Returns:
        true if the element has no children.
      • hasChildren

        public boolean hasChildren()
        Returns whether the element has children.
        Specified by:
        hasChildren in interface IXMLElement
        Returns:
        true if the element has children.
      • getChildrenCount

        public int getChildrenCount()
        Returns the number of children.
        Specified by:
        getChildrenCount in interface IXMLElement
        Returns:
        the count.
      • getChildren

        public java.util.Vector getChildren()
        Returns a vector containing all the child elements.
        Specified by:
        getChildren in interface IXMLElement
        Returns:
        the vector.
      • getChildAtIndex

        public IXMLElement getChildAtIndex​(int index)
                                    throws java.lang.ArrayIndexOutOfBoundsException
        Returns the child at a specific index.
        Specified by:
        getChildAtIndex in interface IXMLElement
        Parameters:
        index - the index of the child
        Returns:
        the non-null child
        Throws:
        java.lang.ArrayIndexOutOfBoundsException - if the index is out of bounds.
      • getFirstChildNamed

        public IXMLElement getFirstChildNamed​(java.lang.String name)
        Searches a child element.
        Specified by:
        getFirstChildNamed in interface IXMLElement
        Parameters:
        name - the full name of the child to search for.
        Returns:
        the child element, or null if no such child was found.
      • getFirstChildNamed

        public IXMLElement getFirstChildNamed​(java.lang.String name,
                                              java.lang.String namespace)
        Searches a child element.
        Specified by:
        getFirstChildNamed in interface IXMLElement
        Parameters:
        name - the name of the child to search for.
        namespace - the namespace, which may be null.
        Returns:
        the child element, or null if no such child was found.
      • getChildrenNamed

        public java.util.Vector getChildrenNamed​(java.lang.String name)
        Returns a vector of all child elements named name.
        Specified by:
        getChildrenNamed in interface IXMLElement
        Parameters:
        name - the full name of the children to search for.
        Returns:
        the non-null vector of child elements.
      • getChildrenNamed

        public java.util.Vector getChildrenNamed​(java.lang.String name,
                                                 java.lang.String namespace)
        Returns a vector of all child elements named name.
        Specified by:
        getChildrenNamed in interface IXMLElement
        Parameters:
        name - the name of the children to search for.
        namespace - the namespace, which may be null.
        Returns:
        the non-null vector of child elements.
      • getAttributeCount

        public int getAttributeCount()
        Returns the number of attributes.
        Specified by:
        getAttributeCount in interface IXMLElement
      • getAttribute

        public java.lang.String getAttribute​(java.lang.String name)
        Deprecated.
        As of NanoXML/Java 2.1, replaced by getAttribute(java.lang.String,java.lang.String) Returns the value of an attribute.
        Specified by:
        getAttribute in interface IXMLElement
        Parameters:
        name - the non-null name of the attribute.
        Returns:
        the value, or null if the attribute does not exist.
      • getAttribute

        public java.lang.String getAttribute​(java.lang.String name,
                                             java.lang.String defaultValue)
        Returns the value of an attribute.
        Specified by:
        getAttribute in interface IXMLElement
        Parameters:
        name - the non-null full name of the attribute.
        defaultValue - the default value of the attribute.
        Returns:
        the value, or defaultValue if the attribute does not exist.
      • getAttribute

        public java.lang.String getAttribute​(java.lang.String name,
                                             java.lang.String namespace,
                                             java.lang.String defaultValue)
        Returns the value of an attribute.
        Specified by:
        getAttribute in interface IXMLElement
        Parameters:
        name - the non-null name of the attribute.
        namespace - the namespace URI, which may be null.
        defaultValue - the default value of the attribute.
        Returns:
        the value, or defaultValue if the attribute does not exist.
      • getAttribute

        public int getAttribute​(java.lang.String name,
                                int defaultValue)
        Returns the value of an attribute.
        Specified by:
        getAttribute in interface IXMLElement
        Parameters:
        name - the non-null full name of the attribute.
        defaultValue - the default value of the attribute.
        Returns:
        the value, or defaultValue if the attribute does not exist.
      • getAttribute

        public int getAttribute​(java.lang.String name,
                                java.lang.String namespace,
                                int defaultValue)
        Returns the value of an attribute.
        Specified by:
        getAttribute in interface IXMLElement
        Parameters:
        name - the non-null name of the attribute.
        namespace - the namespace URI, which may be null.
        defaultValue - the default value of the attribute.
        Returns:
        the value, or defaultValue if the attribute does not exist.
      • getAttributeType

        public java.lang.String getAttributeType​(java.lang.String name)
        Returns the type of an attribute.
        Specified by:
        getAttributeType in interface IXMLElement
        Parameters:
        name - the non-null full name of the attribute.
        Returns:
        the type, or null if the attribute does not exist.
      • getAttributeNamespace

        public java.lang.String getAttributeNamespace​(java.lang.String name)
        Returns the namespace of an attribute.
        Specified by:
        getAttributeNamespace in interface IXMLElement
        Parameters:
        name - the non-null full name of the attribute.
        Returns:
        the namespace, or null if there is none associated.
      • getAttributeType

        public java.lang.String getAttributeType​(java.lang.String name,
                                                 java.lang.String namespace)
        Returns the type of an attribute.
        Specified by:
        getAttributeType in interface IXMLElement
        Parameters:
        name - the non-null name of the attribute.
        namespace - the namespace URI, which may be null.
        Returns:
        the type, or null if the attribute does not exist.
      • setAttribute

        public void setAttribute​(java.lang.String name,
                                 java.lang.String value)
        Sets an attribute.
        Specified by:
        setAttribute in interface IXMLElement
        Parameters:
        name - the non-null full name of the attribute.
        value - the non-null value of the attribute.
      • setAttribute

        public void setAttribute​(java.lang.String fullName,
                                 java.lang.String namespace,
                                 java.lang.String value)
        Sets an attribute.
        Specified by:
        setAttribute in interface IXMLElement
        Parameters:
        fullName - the non-null full name of the attribute.
        namespace - the namespace URI of the attribute, which may be null.
        value - the non-null value of the attribute.
      • removeAttribute

        public void removeAttribute​(java.lang.String name)
        Removes an attribute.
        Specified by:
        removeAttribute in interface IXMLElement
        Parameters:
        name - the non-null name of the attribute.
      • removeAttribute

        public void removeAttribute​(java.lang.String name,
                                    java.lang.String namespace)
        Removes an attribute.
        Specified by:
        removeAttribute in interface IXMLElement
        Parameters:
        name - the non-null name of the attribute.
        namespace - the namespace URI of the attribute, which may be null.
      • enumerateAttributeNames

        public java.util.Enumeration enumerateAttributeNames()
        Returns an enumeration of all attribute names.
        Specified by:
        enumerateAttributeNames in interface IXMLElement
        Returns:
        the non-null enumeration.
      • hasAttribute

        public boolean hasAttribute​(java.lang.String name)
        Returns whether an attribute exists.
        Specified by:
        hasAttribute in interface IXMLElement
        Parameters:
        name - the non-null name of the attribute.
        Returns:
        true if the attribute exists.
      • hasAttribute

        public boolean hasAttribute​(java.lang.String name,
                                    java.lang.String namespace)
        Returns whether an attribute exists.
        Specified by:
        hasAttribute in interface IXMLElement
        Parameters:
        name - the non-null name of the attribute.
        namespace - the namespace URI of the attribute, which may be null.
        Returns:
        true if the attribute exists.
      • getAttributes

        public java.util.Properties getAttributes()
        Returns all attributes as a Properties object.
        Specified by:
        getAttributes in interface IXMLElement
        Returns:
        the non-null set.
      • getAttributesInNamespace

        public java.util.Properties getAttributesInNamespace​(java.lang.String namespace)
        Returns all attributes in a specific namespace as a Properties object.
        Specified by:
        getAttributesInNamespace in interface IXMLElement
        Parameters:
        namespace - the namespace URI of the attributes, which may be null.
        Returns:
        the non-null set.
      • getSystemID

        public java.lang.String getSystemID()
        Returns the system ID of the data where the element started.
        Specified by:
        getSystemID in interface IXMLElement
        Returns:
        the system ID, or null if unknown.
        See Also:
        getLineNr()
      • getLineNr

        public int getLineNr()
        Returns the line number in the data where the element started.
        Specified by:
        getLineNr in interface IXMLElement
        Returns:
        the line number, or NO_LINE if unknown.
        See Also:
        NO_LINE, getSystemID()
      • getContent

        public java.lang.String getContent()
        Return the #PCDATA content of the element. If the element has a combination of #PCDATA content and child elements, the #PCDATA sections can be retrieved as unnamed child objects. In this case, this method returns null.
        Specified by:
        getContent in interface IXMLElement
        Returns:
        the content.
      • setContent

        public void setContent​(java.lang.String content)
        Sets the #PCDATA content. It is an error to call this method with a non-null value if there are child objects.
        Specified by:
        setContent in interface IXMLElement
        Parameters:
        content - the (possibly null) content.
      • equals

        public boolean equals​(java.lang.Object rawElement)
        Returns true if the element equals another element.
        Specified by:
        equals in interface IXMLElement
        Overrides:
        equals in class java.lang.Object
        Parameters:
        rawElement - the element to compare to
      • equalsXMLElement

        public boolean equalsXMLElement​(IXMLElement elt)
        Returns true if the element equals another element.
        Specified by:
        equalsXMLElement in interface IXMLElement
        Parameters:
        rawElement - the element to compare to