void constructNode(String nodeName,String prefix,String nodeNamespace,TransformerImpl transformer) throws TransformerException {
  boolean shouldAddAttrs;
  try {
    SerializationHandler rhandler=transformer.getResultTreeHandler();
    if (null == nodeName) {
      shouldAddAttrs=false;
    }
 else {
      if (null != prefix) {
        rhandler.startPrefixMapping(prefix,nodeNamespace,true);
      }
      rhandler.startElement(nodeNamespace,QName.getLocalPart(nodeName),nodeName);
      super.execute(transformer);
      shouldAddAttrs=true;
    }
    transformer.executeChildTemplates(this,shouldAddAttrs);
    if (null != nodeName) {
      rhandler.endElement(nodeNamespace,QName.getLocalPart(nodeName),nodeName);
      if (null != prefix) {
        rhandler.endPrefixMapping(prefix);
      }
    }
  }
 catch (  SAXException se) {
    throw new TransformerException(se);
  }
}

void constructNode ( String nodeName , String prefix , String nodeNamespace , TransformerImpl transformer ) throws TransformerException { boolean shouldAddAttrs ; try { SerializationHandler rhandler = transformer . getResultTreeHandler ( ) ; if ( null == nodeName ) { shouldAddAttrs = false ; } else { if ( null != prefix ) { rhandler . startPrefixMapping ( prefix , nodeNamespace , true ) ; } rhandler . startElement ( nodeNamespace , QName . getLocalPart ( nodeName ) , nodeName ) ; super . execute ( transformer ) ; shouldAddAttrs = true ; } transformer . executeChildTemplates ( this , shouldAddAttrs ) ; if ( null != nodeName ) { rhandler . endElement ( nodeNamespace , QName . getLocalPart ( nodeName ) , nodeName ) ; if ( null != prefix ) { rhandler . endPrefixMapping ( prefix ) ; } } } catch ( SAXException se ) { throw new TransformerException ( se ) ; } }
construct a node in the result tree . this method is overloaded by xsl : attribute . at this class level , this method creates an element . if the node is null , we instantiate only the content of the node in accordance with section 7 . 1 . 2 of the xslt 1 . 0 recommendation .
