def command(*args, &_block)
      builder do |xml|
        xml.command do
          if block_given?
            yield xml
          else
            command = args.shift
            command.call(xml)
            args.each do |ext|
              xml.extension do
                ext.call(xml)
              end
            end
          end
          xml.clTRID(clTRID)
        end
      end
    end
def command(*args, &_block)
      builder do |xml|
        xml.command do
          if block_given?
            yield xml
          else
            command = args.shift
            command.call(xml)
            args.each do |ext|
              xml.extension do
                ext.call(xml)
              end
            end
          end
          xml.clTRID(clTRID)
        end
      end
    end
Creates the xml for the command.

 You can either pass a block to it, in that case, it's the command body,
 or a series of procs, the first one being the commands, the other ones
 being the extensions.

   command do |xml|
       xml.logout
   end

 or

   command(lambda do |xml|
       xml.logout
     end, lambda do |xml|
       xml.extension
     end)