code: function mergeAnnotations(oSchema, mAnnotations, bPrivileged) {
  		var sTarget;
  
  		/*
  		 * "PUT" semantics on term/qualifier level, only privileged sources may overwrite.
  		 *
  		 * @param {object} oTarget
  		 *   The target object (which is modified)
  		 * @param {object} oSource
  		 *   The source object
  		 */
  		function extend(oTarget, oSource) {
  			var sName;
  
  			for (sName in oSource) {
  				if (bPrivileged || !(sName in oTarget)) {
  					oTarget[sName] = oSource[sName];
  				}
  			}
  		}
  
  		for (sTarget in oSchema.$Annotations) {
  			if (!(sTarget in mAnnotations)) {
  				mAnnotations[sTarget] = {};
  			}
  			extend(mAnnotations[sTarget], oSchema.$Annotations[sTarget]);
  		}
  		delete oSchema.$Annotations;
  	}
docs: Merges the given schema's annotations into the root scope's $Annotations.
  
  @param {object} oSchema
  a schema; schema children are ignored because they do not contain $Annotations
  @param {object} mAnnotations
  the root scope's $Annotations
  @param {boolean} [bPrivileged=false]
  whether the schema has been loaded from a privileged source and thus may overwrite
  existing annotations