Not sure how ur server is structured
but 1: yes xamp > htdocs > yoursite
copy this to root of your server public_html (usually again not sure how your server is structured)-paste the content of (yoursite) unless you want to have something like url/yoursite
Yes it copies everything
Second : when u setup your local for > yoursite > you would have added the DB info and you would have phpmyadmin which has the DB for (yoursite) dump the sql from it (this database sql dump would have links to your localhost which needs to be found and replaced with your new domain- would suggest using a DB find and replace script to do it than just simple find and replace)
3: Once you have this dump and u have uploaded your site on to your live server – go to your server control panel create the database dump the sql save the username password and your server hostname on a document and go to your ftp/file manager > (yoursite) > wp-config.php update the database connection info with your new one
4: i also suggest and use it personally as well before shifting go to your (yoursite) dashboard > tools > export > this exports your all posts, categories, basically your content and media