Community articlegetAttribute method
Added by IBM contributorIBM on July 26, 2013
Rate this article 1 starsRate this article 2 starsRate this article 3 starsRate this article 4 starsRate this article 5 stars


This method returns the value of an attribute in a node. For example, in the XFDL fragment shown, the mimedata node has an attribute called encoding with the value base64.
   <mimedata encoding="base64"></mimedata>


   public String getAttribute(String theNamespaceURI,
      String theAttribute
   ) throws UWIException;


Table 1. Method parameters
theNamespaceURIStringThe namespace URI for the attribute. For example:

theAttributeStringThe local name of the attribute. For example, encoding.


The attribute's value or throws a generic exception (UWIException) if an error occurs. If the attribute is empty or does not exist, the method returns null.

Usage details

If you refer to an attribute with a namespace prefix, getAttribute first looks for a complete match, including both prefix and attribute name. If it does not find a match, it will look for a matching attribute name that has no prefix but whose containing element has the same namespace.
For example, assume that the custom namespace and the test namespace both resolve to the same URI. In the following case, looking for the id attribute would locate the second attribute (test:id), since it has an explicit namespace declaration:
   <a xmlns:custom="ABC" xmlns:test="ABC">
      <custom:myElement id="1" test:id="2">

However, in the next case, the id attribute does not have an explicit namespace declaration. Instead, it inherits the custom namespace. However, since the inherited namespace resolves to the same URI, the id attribute is still located:
   <custom:myElement id="1">

Special attributes
Forms generally use three special attributes that are not in an explicitly defined namespace and which require special commands to retrieve.
The first is the default namespace attribute, which looks like this:

To retrieve this attribute, you must use a namespace URI of null and the attribute name xmlns.
The second special attribute is a namespace declaration, which looks like this:

To retrieve this sort of attribute, you must use the namespace URI and the appropriate attribute name, such as custom.
Finally, there is the language attribute, which looks like this:

To retrieve this sort of attribute, you must use the namespace URI and the attribute name lang.


The following example shows a method that gets the value of the encoding attribute for a node. The node is passed to the method which calls getAttribute to get the value of encoding attribute. This sample method assumes that the attribute is always in the XFDL namespace.
   private static String getEncodingType(FormNodeP theNode) throws Exception
   String theEncodingType;
      theEncodingType = theNode.getAttribute(
         "", "encoding")

Parent topic:
FormNodeP class