new ValueOfNode(null, null, new Selector(Selector.SELF, tests),
new ValueOfNode(new Selector(Selector.SELF, tests),
  Stylesheet(TransformerFactoryImpl factory,             Stylesheet parent,             Document doc,             String systemId,             int precedence)    throws TransformerConfigurationException  {    this.factory = factory;    this.systemId = systemId;    this.precedence = precedence;    this.parent = parent;    extensionElementPrefixes = new HashSet();    excludeResultPrefixes = new HashSet();    stripSpace = new LinkedHashSet();    preserveSpace = new LinkedHashSet();    outputCdataSectionElements = new LinkedHashSet();    xpath = (XPathImpl) factory.xpathFactory.newXPath();    if (parent == null)      {        bindings = new Bindings(this);        attributeSets = new LinkedList();        variables = new LinkedList();        namespaceAliases = new LinkedHashMap();        templates = new LinkedList();        keys = new LinkedList();        decimalFormats = new LinkedHashMap();        initDefaultDecimalFormat();        xpath.setNamespaceContext(this);        xpath.setXPathFunctionResolver(this);      }    else      {        /* Test for import circularity */        for (Stylesheet ctx = this; ctx.parent != null; ctx = ctx.parent)          {            if (systemId != null && systemId.equals(ctx.parent.systemId))              {                String msg = "circularity importing " + systemId;                throw new TransformerConfigurationException(msg);              }          }        /* OK */        Stylesheet root = getRootStylesheet();        bindings = root.bindings;        attributeSets = root.attributeSets;        variables = root.variables;        namespaceAliases = root.namespaceAliases;        templates = root.templates;        keys = root.keys;        decimalFormats = root.decimalFormats;        xpath.setNamespaceContext(root);        xpath.setXPathFunctionResolver(root);      }    xpath.setXPathVariableResolver(bindings);    Test anyNode = new NodeTypeTest((short) 0);    List tests = Collections.singletonList(anyNode);    builtInNodeTemplate =      new ApplyTemplatesNode(null, null,                             new Selector(Selector.CHILD, tests),                             null, null, null, true);    builtInTextTemplate =      new ValueOfNode(null, null,                      new Selector(Selector.SELF, tests),                      false);        parse(doc.getDocumentElement(), true);    current = doc; // Alow namespace resolution during processing        debug = ("yes".equals(System.getProperty("xsl.debug")));    if (debug)      {        System.err.println("Stylesheet: " + doc.getDocumentURI());        for (Iterator i = templates.iterator(); i.hasNext(); )          {            Template t = (Template) i.next();            t.list(System.err);            System.err.println("--------------------");          }      }  }