Enviar una solicitud de publicación XML a un servidor web con CURL

Estoy intentando enviar una solicitud a un servidor web utilizando php y curl. No he hecho algo como esto antes y, aunque hay muchos buenos ejemplos en línea, tengo algunas dificultades para entender algunos de los comandos de curl.

Esto es lo que quiero hacer: hay un servicio web establecido (por ejemplo: servicio de mapas web) y quiero que mi código php envíe una solicitud de envío de XML a este servicio. Como respuesta quiero obtener un archivo XML.

Esto es lo que tengo hasta ahora:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, ''); 
    /*curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));*/
    /* curl_setopt($ch, CURLOPT_HEADER, 0);*/
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
    /*curl_setopt($ch, CURLOPT_REFERER, '');*/
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $ch_result = curl_exec($ch);
    curl_close($ch);
    echo $ch_result;

Como dije, soy bastante nuevo en PHP y también en el uso de curl y creo que me faltan algunos conceptos. Mis preguntas son: 1) ¿Cuál es la cadena (enlace) que tengo que poner en el:

          curl_setopt($ch, CURLOPT_URL, ''); 

¿Es el nombre de host del servicio al que quiero enviar la solicitud?

2) En la fila 6, la variable $ xml contiene el archivo xml que quiero enviar como solicitud. ¿Es correcto o se supone que esta variable contiene algo más?

3) En qué casos necesito usar un encabezado o encabezado (fila3 y fila4);

Gracias por la ayuda. Dimitris

Respuestas a la pregunta(2)

Su respuesta a la pregunta