else if ((!m_name_atv.isSimple()) && (!isValidNCName(piName)))
else if ((!m_name_atv.isSimple()) && (!XMLChar.isValidNCName(piName)))
  public void execute(          TransformerImpl transformer)            throws TransformerException  {    if (TransformerImpl.S_DEBUG)      transformer.getTraceManager().fireTraceEvent(this);    XPathContext xctxt = transformer.getXPathContext();    int sourceNode = xctxt.getCurrentNode();        String piName = m_name_atv == null ? null : m_name_atv.evaluate(xctxt, sourceNode, this);        // Ignore processing instruction if name is null    if (piName == null) return;    if (piName.equalsIgnoreCase("xml"))    {     	transformer.getMsgMgr().warn(        this, XSLTErrorResources.WG_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML,              new Object[]{ Constants.ATTRNAME_NAME, piName });		return;    }        // Only check if an avt was used (ie. this wasn't checked at compose time.)    // Ignore processing instruction, if invalid    else if ((!m_name_atv.isSimple()) && (!isValidNCName(piName)))    {     	transformer.getMsgMgr().warn(        this, XSLTErrorResources.WG_PROCESSINGINSTRUCTION_NOTVALID_NCNAME,              new Object[]{ Constants.ATTRNAME_NAME, piName });		return;    	    }    // Note the content model is:    // <!ENTITY % instructions "    // %char-instructions;    // | xsl:processing-instruction    // | xsl:comment    // | xsl:element    // | xsl:attribute    // ">    String data = transformer.transformToString(this);    try    {      transformer.getResultTreeHandler().processingInstruction(piName, data);    }    catch(org.xml.sax.SAXException se)    {      throw new TransformerException(se);    }        if (TransformerImpl.S_DEBUG)      transformer.getTraceManager().fireTraceEndEvent(this);  }