precedence, priority, mode);
precedence, p, mode);
  final Template parseTemplate(Node node, NamedNodeMap attrs)    throws TransformerConfigurationException, XPathExpressionException  {    String n = getAttribute(attrs, "name");    QName name = (n == null) ? null : getQName(n);    String m = getAttribute(attrs, "match");    Pattern match = null;    if (m != null)      {        try          {            match = (Pattern) xpath.compile(m);          }        catch (ClassCastException e)          {            String msg = "illegal pattern: " + m;            throw new TransformerConfigurationException(msg);          }      }    String p = getAttribute(attrs, "priority");    String mm = getAttribute(attrs, "mode");    QName mode = (mm == null) ? null : getQName(mm);    double priority = (p == null) ? Template.DEFAULT_PRIORITY :      Double.parseDouble(p);    Node children = node.getFirstChild();    return new Template(this, name, match, parse(children),                        precedence, priority, mode);  }