/// <summary>
        /// Creates a new SifXPathContext
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="context"></param>
        private SifXPathContext( SifXPathContext parent, SifElement context )
        {
            if ( parent != null )
            {
                fContext = parent.fContext;
            }
            else
            {
                fContext = new SifXsltContext();
                fContext.AddFunctions( "adk", new ClassFunctions( typeof ( AdkFunctions ), null ) );
            }

            SifVersion version = context.SifVersion;
            if( version == null )
            {
                version = SifVersion.LATEST;
            }

            fContextElement = context;
            fContextPointer = new SifElementPointer( null, fContextElement, version );
            fDefaultNavigator = new SifXPathNavigator( fContext, fContextPointer );
        }
        /// <summary>
        /// Creates a new SifXPathContext
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="context"></param>
        private SifXPathContext(SifXPathContext parent, SifElement context)
        {
            if (parent != null)
            {
                fContext = parent.fContext;
            }
            else
            {
                fContext = new SifXsltContext();
                fContext.AddFunctions("adk", new ClassFunctions(typeof(AdkFunctions), null));
            }

            SifVersion version = context.SifVersion;

            if (version == null)
            {
                version = SifVersion.LATEST;
            }

            fContextElement   = context;
            fContextPointer   = new SifElementPointer(null, fContextElement, version);
            fDefaultNavigator = new SifXPathNavigator(fContext, fContextPointer);
        }
 /// <summary>
 /// Creates an instance of SIFXPathNavigator
 /// </summary>
 /// <param name="context">The SIFXPathContext around this navigator</param>
 /// <param name="pointer">The pointer that this navigator initial points to </param>
 internal SifXPathNavigator(SifXsltContext context, INodePointer pointer)
 {
     fParentContext = context;
     fNameTable     = new NameTable();
     fCursor        = new RootCursor(pointer);
 }
 /// <summary>
 /// Creates an instance of SIFXPathNavigator
 /// </summary>
 /// <param name="context">The SIFXPathContext around this navigator</param>
 /// <param name="nameTable">The nametable</param>
 /// <param name="cursor">The cursor</param>
 private SifXPathNavigator(SifXsltContext context, XmlNameTable nameTable, INavCursor cursor)
 {
     fParentContext = context;
     fNameTable     = nameTable;
     fCursor        = cursor;
 }