code: void constructNode(
            String nodeName, String prefix, String nodeNamespace, TransformerImpl transformer)
              throws TransformerException
    {
  
      if(null != nodeName && nodeName.length() > 0)
      {
        SerializationHandler rhandler = transformer.getSerializationHandler();
  
        // Evaluate the value of this attribute
        String val = transformer.transformToString(this);
        try 
        {
          // Let the result tree handler add the attribute and its String value.
          String localName = QName.getLocalPart(nodeName);
          if(prefix != null && prefix.length() > 0){
              rhandler.addAttribute(nodeNamespace, localName, nodeName, "CDATA", val, true);
          }else{
              rhandler.addAttribute("", localName, nodeName, "CDATA", val, true);
          }
        }
        catch (SAXException e)
        {
        }
      }
    }
docs: Construct a node in the result tree.  This method is overloaded by
  xsl:attribute. At this class level, this method creates an element.
  
  @param nodeName The name of the node, which may be null.
  @param prefix The prefix for the namespace, which may be null.
  @param nodeNamespace The namespace of the node, which may be null.
  @param transformer non-null reference to the the current transform-time state.
  @param sourceNode non-null reference to the <a href="http://www.w3.org/TR/xslt#dt-current-node">current source node</a>.
  @param mode reference, which may be null, to the <a href="http://www.w3.org/TR/xslt#modes">current mode</a>.
  
  @throws TransformerException