code: function qname() {
    var args = mlutil.asArray.apply(null, arguments);
    switch(args.length) {
    case 0:
      throw new Error('missing name for QName identifier');
    case 1:
      return new QNameDef(null, args[0]);
    case 2:
      return new QNameDef(args[0], args[1]);
    default:
      throw new Error('too many arguments for QName identifier: '+args.length);
    }
  }
docs: A namespaced name for an element or attribute returned
  by the {@link queryBuilder#qname} function.
  @typedef {object} queryBuilder.QName
  @since 1.0
   
  Specifies an XML qualified name.
  @method
  @since 1.0
  @memberof queryBuilder#
  @param {string|string[]} parts - the namespace URI and name
  for the QName supplied either as two strings or as an array with
  two strings.
  @returns {queryBuilder.QName} a QName for identifying
  an element or attribute