Package org.jdom

Class Attribute

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable

    public class Attribute
    extends java.lang.Object
    implements java.io.Serializable, java.lang.Cloneable
    An XML attribute. Methods allow the user to obtain the value of the attribute as well as namespace and type information.
    Version:
    $Revision: 1.56 $, $Date: 2007/11/10 05:28:58 $
    Author:
    Brett McLaughlin, Jason Hunter, Elliotte Rusty Harold, Wesley Biggs, Victor Toni
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int CDATA_TYPE
      Attribute type: the attribute value is a string.
      static int ENTITIES_TYPE
      Attribute type: the attribute value is a list of entity names.
      static int ENTITY_TYPE
      Attribute type: the attribute value is the name of an entity.
      static int ENUMERATED_TYPE
      Attribute type: the attribute value is a name token from an enumeration.
      static int ID_TYPE
      Attribute type: the attribute value is a unique identifier.
      static int IDREF_TYPE
      Attribute type: the attribute value is a reference to a unique identifier.
      static int IDREFS_TYPE
      Attribute type: the attribute value is a list of references to unique identifiers.
      protected java.lang.String name
      The local name of the Attribute
      protected Namespace namespace
      The Namespace of the Attribute
      static int NMTOKEN_TYPE
      Attribute type: the attribute value is a name token.
      static int NMTOKENS_TYPE
      Attribute type: the attribute value is a list of name tokens.
      static int NOTATION_TYPE
      Attribute type: the attribute value is the name of a notation.
      protected Element parent
      Parent element, or null if none
      protected int type
      The type of the Attribute
      static int UNDECLARED_TYPE
      Attribute type: the attribute has not been declared or type is unknown.
      protected java.lang.String value
      The value of the Attribute
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Attribute()
      Default, no-args constructor for implementations to use if needed.
        Attribute​(java.lang.String name, java.lang.String value)
      This will create a new Attribute with the specified (local) name and value, and does not place the attribute in a Namespace.
        Attribute​(java.lang.String name, java.lang.String value, int type)
      This will create a new Attribute with the specified (local) name, value and type, and does not place the attribute in a Namespace.
        Attribute​(java.lang.String name, java.lang.String value, int type, Namespace namespace)
      This will create a new Attribute with the specified (local) name, value, and type, and in the provided Namespace.
        Attribute​(java.lang.String name, java.lang.String value, Namespace namespace)
      This will create a new Attribute with the specified (local) name and value, and in the provided Namespace.
    • Constructor Detail

      • Attribute

        protected Attribute()
        Default, no-args constructor for implementations to use if needed.
      • Attribute

        public Attribute​(java.lang.String name,
                         java.lang.String value,
                         Namespace namespace)
        This will create a new Attribute with the specified (local) name and value, and in the provided Namespace.
        Parameters:
        name - String name of Attribute.
        value - String value for new attribute.
        namespace - Namespace namespace for new attribute.
        Throws:
        IllegalNameException - if the given name is illegal as an attribute name or if if the new namespace is the default namespace. Attributes cannot be in a default namespace.
        IllegalDataException - if the given attribute value is illegal character data (as determined by Verifier.checkCharacterData(java.lang.String)).
      • Attribute

        public Attribute​(java.lang.String name,
                         java.lang.String value,
                         int type,
                         Namespace namespace)
        This will create a new Attribute with the specified (local) name, value, and type, and in the provided Namespace.
        Parameters:
        name - String name of Attribute.
        value - String value for new attribute.
        type - int type for new attribute.
        namespace - Namespace namespace for new attribute.
        Throws:
        IllegalNameException - if the given name is illegal as an attribute name or if if the new namespace is the default namespace. Attributes cannot be in a default namespace.
        IllegalDataException - if the given attribute value is illegal character data (as determined by Verifier.checkCharacterData(java.lang.String)) or if the given attribute type is not one of the supported types.
      • Attribute

        public Attribute​(java.lang.String name,
                         java.lang.String value)
        This will create a new Attribute with the specified (local) name and value, and does not place the attribute in a Namespace.

        Note: This actually explicitly puts the Attribute in the "empty" Namespace (Namespace.NO_NAMESPACE).

        Parameters:
        name - String name of Attribute.
        value - String value for new attribute.
        Throws:
        IllegalNameException - if the given name is illegal as an attribute name.
        IllegalDataException - if the given attribute value is illegal character data (as determined by Verifier.checkCharacterData(java.lang.String)).
      • Attribute

        public Attribute​(java.lang.String name,
                         java.lang.String value,
                         int type)
        This will create a new Attribute with the specified (local) name, value and type, and does not place the attribute in a Namespace.

        Note: This actually explicitly puts the Attribute in the "empty" Namespace (Namespace.NO_NAMESPACE).

        Parameters:
        name - String name of Attribute.
        value - String value for new attribute.
        type - int type for new attribute.
        Throws:
        IllegalNameException - if the given name is illegal as an attribute name.
        IllegalDataException - if the given attribute value is illegal character data (as determined by Verifier.checkCharacterData(java.lang.String)) or if the given attribute type is not one of the supported types.
    • Method Detail

      • getParent

        public Element getParent()
        This will return the parent of this Attribute. If there is no parent, then this returns null.
        Returns:
        parent of this Attribute
      • getDocument

        public Document getDocument()
        This retrieves the owning Document for this Attribute, or null if not a currently a member of a Document.
        Returns:
        Document owning this Attribute, or null.
      • setParent

        protected Attribute setParent​(Element parent)
        This will set the parent of this Attribute.
        Parameters:
        parent - Element to be new parent.
        Returns:
        this Attribute modified.
      • detach

        public Attribute detach()
        This detaches the Attribute from its parent, or does nothing if the Attribute has no parent.
        Returns:
        Attribute - this Attribute modified.
      • getName

        public java.lang.String getName()
        This will retrieve the local name of the Attribute. For any XML attribute which appears as [namespacePrefix]:[attributeName], the local name of the attribute would be [attributeName]. When the attribute has no namespace, the local name is simply the attribute name.

        To obtain the namespace prefix for this attribute, the getNamespacePrefix() method should be used.

        Returns:
        String - name of this attribute, without any namespace prefix.
      • setName

        public Attribute setName​(java.lang.String name)
        This sets the local name of the Attribute.
        Parameters:
        name - the new local name to set
        Returns:
        Attribute - the attribute modified.
        Throws:
        IllegalNameException - if the given name is illegal as an attribute name.
      • getQualifiedName

        public java.lang.String getQualifiedName()
        This will retrieve the qualified name of the Attribute. For any XML attribute whose name is [namespacePrefix]:[elementName], the qualified name of the attribute would be everything (both namespace prefix and element name). When the attribute has no namespace, the qualified name is simply the attribute's local name.

        To obtain the local name of the attribute, the getName() method should be used.

        To obtain the namespace prefix for this attribute, the getNamespacePrefix() method should be used.

        Returns:
        String - full name for this element.
      • getNamespacePrefix

        public java.lang.String getNamespacePrefix()
        This will retrieve the namespace prefix of the Attribute. For any XML attribute which appears as [namespacePrefix]:[attributeName], the namespace prefix of the attribute would be [namespacePrefix]. When the attribute has no namespace, an empty String is returned.
        Returns:
        String - namespace prefix of this attribute.
      • getNamespaceURI

        public java.lang.String getNamespaceURI()
        This returns the URI mapped to this Attribute's prefix. If no mapping is found, an empty String is returned.
        Returns:
        String - namespace URI for this Attribute.
      • getNamespace

        public Namespace getNamespace()
        This will return this Attribute's Namespace.
        Returns:
        Namespace - Namespace object for this Attribute
      • setNamespace

        public Attribute setNamespace​(Namespace namespace)
        This sets this Attribute's Namespace. If the provided namespace is null, the attribute will have no namespace. The namespace must have a prefix.
        Parameters:
        namespace - the new namespace
        Returns:
        Element - the element modified.
        Throws:
        IllegalNameException - if the new namespace is the default namespace. Attributes cannot be in a default namespace.
      • getValue

        public java.lang.String getValue()
        This will return the actual textual value of this Attribute. This will include all text within the quotation marks.
        Returns:
        String - value for this attribute.
      • getAttributeType

        public int getAttributeType()
        This will return the actual declared type of this Attribute.
        Returns:
        int - type for this attribute.
      • setAttributeType

        public Attribute setAttributeType​(int type)
        This will set the type of the Attribute.
        Parameters:
        type - int type for the attribute.
        Returns:
        Attribute - this Attribute modified.
        Throws:
        IllegalDataException - if the given attribute type is not one of the supported types.
      • toString

        public java.lang.String toString()
        This returns a String representation of the Attribute, suitable for debugging.
        Overrides:
        toString in class java.lang.Object
        Returns:
        String - information about the Attribute
      • equals

        public final boolean equals​(java.lang.Object ob)
        This tests for equality of this Attribute to the supplied Object.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        ob - Object to compare to.
        Returns:
        boolean - whether the Attribute is equal to the supplied Object.
      • hashCode

        public final int hashCode()
        This returns the hash code for this Attribute.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        int - hash code.
      • clone

        public java.lang.Object clone()
        This will return a clone of this Attribute.
        Overrides:
        clone in class java.lang.Object
        Returns:
        Object - clone of this Attribute.
      • getBooleanValue

        public boolean getBooleanValue()
                                throws DataConversionException
        This gets the effective boolean value of the attribute, or throws a DataConversionException if a conversion can't be performed. True values are: "true", "on", "1", and "yes". False values are: "false", "off", "0", and "no". Values are trimmed before comparison. Values other than those listed here throw the exception.
        Returns:
        boolean value of attribute.
        Throws:
        DataConversionException - when conversion fails.