code: function(mOptions) {
  			EventProvider.apply(this, arguments);
  
  			if (arguments.length !== 1) {
  				// Old constructor argument syntax
  				if (typeof arguments[2] === "object") {
  					mOptions = arguments[2];
  				}
  
  				mOptions.urls = arguments[0];
  				mOptions.metadata = arguments[1];
  			}
  
  			this.oMetadata = mOptions.metadata;
  			this.oAnnotations = mOptions.annotationData ? mOptions.annotationData : {};
  			this.bLoaded = false;
  			this.bAsync = mOptions && mOptions.async;
  			this.xPath = null;
  			this.oError = null;
  			this.bValidXML = true;
  			this.oRequestHandles = [];
  			this.oLoadEvent = null;
  			this.oFailedEvent = null;
  			this.mCustomHeaders = mOptions.headers ? jQuery.extend({}, mOptions.headers) : {};
  
  			if (mOptions.urls) {
  				this.addUrl(mOptions.urls);
  
  				if (!this.bAsync) {
  					// Synchronous loading, we can directly check for errors
  					assert(
  						!jQuery.isEmptyObject(this.oMetadata),
  						"Metadata must be available for synchronous annotation loading"
  					);
  					if (this.oError) {
  						Log.error(
  							"OData annotations could not be loaded: " + this.oError.message
  						);
  					}
  				}
  			}
  		}
docs: constructor : function(aAnnotationURI, oMetadata, mParams) {