protected void CompileOnceTemplate(Compiler compiler) {
NavigatorInput input = compiler.Input;
if (input.NodeType == XPathNodeType.Element) {
string nspace = input.NamespaceURI;
if (Keywords.Equals(nspace, input.Atoms.XsltNamespace)) {
compiler.PushNamespaceScope();
CompileInstruction(compiler);
compiler.PopScope();
}
else {
compiler.PushLiteralScope();
compiler.InsertExtensionNamespace();
if (compiler.IsExtensionNamespace(nspace)) {
AddAction(compiler.CreateNewInstructionAction());
}
else {
CompileLiteral(compiler);
}
compiler.PopScope();
}
}
else {
CompileLiteral(compiler);
}
}