code: function(applyNode) {
  		var xPath = AnnotationParser._oXPath;
  
  		var mApply = {
  			Name: applyNode.getAttribute('Function'),
  			Parameters: []
  		};
  
  		var oParameterNodes = xPath.selectNodes("./d:*", applyNode);
  		for (var i = 0; i < oParameterNodes.length; i += 1) {
  			var oParameterNode = xPath.nextNode(oParameterNodes, i);
  			var mParameter = {
  				Type:  oParameterNode.nodeName
  			};
  
  			if (oParameterNode.nodeName === "Apply") {
  				mParameter.Value = AnnotationParser.getApplyFunctions(oParameterNode);
  			} else if (oParameterNode.nodeName === "LabeledElement") {
  				mParameter.Value = AnnotationParser.getPropertyValue(oParameterNode);
  
  				// Move the name attribute up one level to keep compatibility with earlier implementation
  				mParameter.Name = mParameter.Value.Name;
  				delete mParameter.Value.Name;
  			} else if (mMultipleArgumentDynamicExpressions[oParameterNode.nodeName]) {
  				mParameter.Value = AnnotationParser.getPropertyValue(oParameterNode);
  			} else {
  				mParameter.Value = xPath.getNodeText(oParameterNode);
  			}
  
  			mApply.Parameters.push(mParameter);
  		}
  
  		return mApply;
  	}
docs: /*
  @static
  @private