code: function (oSchema, oAnnotations, sArrayName, fnCallback, iIndex) {
  			var aParents = oSchema[sArrayName];
  
  			function visitParent(oParent, j) {
  				var sQualifiedName = oSchema.namespace + "." + oParent.name,
  					mChildAnnotations = Utils.getChildAnnotations(oAnnotations, sQualifiedName,
  						sArrayName === "entityContainer");
  
  				Utils.liftSAPData(oParent);
  				// @see sap.ui.model.odata.ODataMetadata#_getEntityTypeByName
  				oParent.namespace = oSchema.namespace;
  				oParent.$path = oSchema.$path + "/" + sArrayName + "/" + j;
  
  				fnCallback(oParent, mChildAnnotations);
  				// merge V4 annotations after child annotations are processed
  				jQuery.extend(oParent, oAnnotations[sQualifiedName]);
  			}
  
  			if (!aParents) {
  				return;
  			}
  			if (iIndex !== undefined) {
  				visitParent(aParents[iIndex], iIndex);
  			} else {
  				aParents.forEach(visitParent);
  			}
  		}
docs: Visits all parents (or a single parent) inside the current schema's array of given name,
  lifts "SAPData" extensions, inlines OData V4 annotations, and adds <code>$path</code>
  for each parent.
  
  @param {object} oSchema
  OData data service schema
  @param {object} oAnnotations
  annotations "JSON"
  @param {string} sArrayName
  name of array of parents
  @param {function} fnCallback
  mandatory callback for each parent, child annotations are passed in
  @param {number} [iIndex]
  optional index of a single parent to visit; default is to visit all