code: function element() {
    var args = mlutil.asArray.apply(null, arguments);
    switch(args.length) {
    case 0:
      throw new Error('missing element name');
    case 1:
      if (args[0] instanceof QNameDef) {
        return new ElementDef(args[0]);
      }
      return new ElementDef(new QNameDef(null, args[0]));
    case 2:
      return new ElementDef(new QNameDef(args[0], args[1]));
    default:
      throw new Error('too many arguments for element identifier: '+args.length);
   }
  }
docs: Specifies an XML element for a query.  A name without a namespace can be
  expressed as a string.  A namespaced name can be expressed as a two-item
  array with uri and name strings or as an object returned by the
  {@link queryBuilder#qname} function.
  @method
  @since 1.0
  @memberof queryBuilder#
  @param {string|string[]|queryBuilder.QName} name - the name of the element
  @returns {queryBuilder.IndexedName} an indexed name for specifying a query