code: function buildXmlInput(options) {
    debug('buildXmlInput', options);
  
    var data = {}, root;
    var params = options.params || {};
  
    root = data[options.opType + 'Request'] = [];   // e.g. <GetOrdersRequest>
  
    if (options.serviceName === 'Finding') {
      root.push({'_attr': {'xmlns': 'http://www.ebay.com/marketplace/search/v1/services'}});
    }
    else {
      root.push({'_attr': {'xmlns': 'urn:ebay:apis:eBLBaseComponents'}});
    }
  
    if (options.authToken) {
      root.push({ 'RequesterCredentials': [ { 'eBayAuthToken' : options.authToken } ] });
    }
  
    // concat
    root.push.apply(root, deepToArray(params));
  
    debug('Converting to XML', data);
  
    var xmlBody =
      '<?xml version="1.0" encoding="UTF-8"?>\n' +
      xmlBuilder([data], true);
  
    debug('XML body', xmlBody);
  
    return xmlBody;
  }
docs: /*
  build XML input for XML requests (POST).
  @param {object} options: request context. see `xmlRequest()` docs.
  for repeatable fields, use an array value (see below).