/// <summary>
        /// Create a new instance of the <see cref="XmlMappingEngine" /> class.
        /// </summary>
        /// <param name="factory">Factory to use.s</param>
        public XmlMappingEngine(IXmlMapperFactory factory)
        {
            this.factory = factory;
            xmlTypes     = new ConcurrentDictionary <Tuple <string, string>, Type>();

            XmlNamespaceManager = new XmlNamespaceManager(new NameTable());
            NamespaceManager    = new BaseNamespaceManager(XmlNamespaceManager);

            // Always register value that allows us to declare XML types.
            RegisterNamespace(XsiPrefix, XsiNamespace);
        }
        /// <summary>
        /// Initialize the internal namespace/xpath managers.
        /// </summary>
        /// <param name="navigator"></param>
        protected virtual void InitializeManagers(XPathNavigator navigator)
        {
            Navigator           = navigator;
            XmlNamespaceManager = new XmlNamespaceManager(Navigator.NameTable);

            // TODO: Any easy way of inject this one??
            NamespaceManager = new BaseNamespaceManager(XmlNamespaceManager);
            if (XPathManager == null)
            {
                XPathManager = new XPathManager(NamespaceManager);
            }
        }