async _requestDocumentationRef(oBinding) {
			if (oBinding.isDestroyed()) {
				return undefined;
			}

			let sResolvedPath = oBinding.getResolvedPath();
			if (!sResolvedPath || sResolvedPath.includes("#") /*meta model path*/
					|| sResolvedPath.includes("@") /*annotation path*/) {
				return undefined;
			}

			const oMetaModelInterface = FieldHelp._getMetamodelInterface(oBinding.getModel());
			if (!oMetaModelInterface) {
				return undefined;
			}

			let sDocumentationRefValue;
			try {
				const sFieldHelpPath = await this._requestIDPropertyPath(oMetaModelInterface, sResolvedPath);
				sResolvedPath = sFieldHelpPath; // for message logged in case of errors below
				sDocumentationRefValue = oMetaModelInterface.getDocumentationRef(sFieldHelpPath);
			} catch (oError) {
				Log.error(`Failed to request '${sDocumentationRef}' annotation for path '${sResolvedPath}'`,
					oError, sClassName);
			}
			return sDocumentationRefValue;
		}
Requests the <code>String</code> value of the <code>com.sap.vocabularies.Common.v1.DocumentationRef</code>
annotation for the given binding.

@param {sap.ui.model.Binding} oBinding The binding
@returns {Promise<string|undefined>}
  If the binding is destroyed, or does not belong to an OData model, or the resolved path of the binding is a
  meta model path or referencing an annotation, a promise resolving with <code>undefined</code> is returned;
  if the binding belongs to an OData model the <code>com.sap.vocabularies.Common.v1.DocumentationRef</code>
  annotation value for the binding is asynchronously requested via the OData meta model and the resulting
  <code>Promise</code> either resolves with the <code>String</code> value of that annotation or with
  <code>undefined</code> if the annotation is not available; the <code>Promise</code> never rejects