code: function (oInterface, oPathValue) {
  			var oCondition = Expression.parameter(oInterface, oPathValue, 0, "Edm.Boolean"),
  				oThen = Expression.parameter(oInterface, oPathValue, 1),
  				oElse = Expression.parameter(oInterface, oPathValue, 2),
  				sType = oThen.type,
  				bWithType = oPathValue.withType;
  
  			if (oThen.type === "edm:Null") {
  				sType = oElse.type;
  			} else if (oElse.type !== "edm:Null" && oThen.type !== oElse.type) {
  				Basics.error(oPathValue,
  					"Expected same type for second and third parameter, types are '" + oThen.type
  					+ "' and '" + oElse.type + "'");
  			}
  			return {
  				result : "expression",
  				type : sType,
  				value : Basics.resultToString(Expression.wrapExpression(oCondition), true, false)
  					+ "?" + Basics.resultToString(Expression.wrapExpression(oThen), true, bWithType)
  					+ ":" + Basics.resultToString(Expression.wrapExpression(oElse), true, bWithType)
  			};
  		}
docs: Handling of "14.5.6 Expression edm:If".
  
  @param {sap.ui.core.util.XMLPreprocessor.IContext|sap.ui.model.Context} oInterface
  the callback interface related to the current formatter call
  @param {object} oPathValue
  path and value information pointing to the parameters array (see Expression object).
  The first parameter element is the conditional expression and must evaluate to an
  Edm.Boolean. The second and third child elements are the expressions, which are
  evaluated conditionally.
  @returns {object}
  the result object