code: function (fnVisitor, sNamespace, sLocalName) {
  			var fnOldVisitor = mVisitors[sNamespace];
  
  			if (fnVisitor !== null && typeof fnVisitor !== "function"
  					|| fnVisitor === visitNodeWrapper) {
  				throw new Error("Invalid visitor: " + fnVisitor);
  			}
  			if (!sNamespace || sNamespace === sNAMESPACE || sNamespace === "sap.ui.core"
  					|| sNamespace.indexOf(" ") >= 0) {
  				throw new Error("Invalid namespace: " + sNamespace);
  			}
  			Log.debug("Plug-in visitor for namespace '" + sNamespace + "', local name '"
  				+ sLocalName + "'", fnVisitor, sXMLPreprocessor);
  			if (sLocalName) {
  				sNamespace = sNamespace + " " + sLocalName;
  				fnOldVisitor = mVisitors[sNamespace] || fnOldVisitor;
  			}
  			mVisitors[sNamespace] = fnVisitor;
  			return fnOldVisitor || visitNodeWrapper;
  		}
docs: Plug-in the given visitor which is called for each matching XML element.
  
  @param {function} [fnVisitor]
  Visitor function, will be called with the matching XML DOM element and a
  {@link sap.ui.core.util.XMLPreprocessor.ICallback callback interface} which uses a map
  of currently known variables; must return <code>undefined</code>.
  Must be either a function or <code>null</code>, nothing else.
  @param {string} sNamespace
  The expected namespace URI; must not contain spaces;
  "http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1" and "sap.ui.core" are
  reserved
  @param {string} [sLocalName]
  The expected local name; if it is missing, the local name is ignored for a match.
  @returns {function}
  The visitor function which previously matched elements with the given namespace and
  local name, or a function which calls "visitNode" but never <code>null</code> so that
  you can safely delegate to it.
  In general, you cannot restore the previous state by calling <code>plugIn</code> again
  with this function.
  @throws {Error}
  If visitor or namespace is invalid
  
  @private