Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

newbie xml tags can you explain

Help
Gavin
2011-09-28
2013-06-06
  • Gavin
    Gavin
    2011-09-28

    Hi,

    I've got a basic SOAP server and client working.  Can someone please explain to me why the tags are named like this below and how I can change my code to match a particular spec I require. e.g why does this tag <ns7099:getStockQuote xmlns:ns7099="http://tempuri.org"> have ns7099 in it ?  

    CLIENT

    <?php
    // Pull in the NuSOAP code
    require_once('./lib/nusoap.php');
    // Create the client instance
    $client = new Nusoap_client("http://services.helloOCPP.php");
    // Check for an error
    $err = $client->getError();
    if ($err) {
        // Display the error
        echo '<p><b>Constructor error: ' . $err . '</b></p>';
        // At this point, you know the call that follows will fail
    }
    // Call the SOAP method
    $result = $client->call('hello', array('idTag' => '5t'));
    // Check for a fault
    if ($client->fault) {
        echo '<p><b>Fault: ';
        print_r($result);
        echo '</b></p>';
    } else {
        // Check for errors
        $err = $client->getError();
        if ($err) {
            // Display the error
            echo '<p><b>Error: ' . $err . '</b></p>';
        } else {
            // Display the result
            print_r($result);
        }
    }
    // Display the request and response
    echo '<h2>Request</h2>';
    echo '<pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
    echo '<h2>Response</h2>';
    echo '<pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
    // Display the debug messages
    echo '<h2>Debug</h2>';
    echo '<pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';
    ?>
    

    SERVER

    <?php
    // Pull in the NuSOAP code
    require_once('./lib/nusoap.php');
    // Create the server instance
    $server = new soap_server;
    // Register the method to expose
    $server->register('hello');
    // Define the method as a PHP function
    function hello($idTag) {
            return 'Tag, ' . $idTag;
    }
    // Use the request to (try to) invoke the service
    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
    $server->service($HTTP_RAW_POST_DATA);
    ?>
    

    XML REQUEST LOOKS LIKE

    <?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns7099:getStockQuote xmlns:ns7099="http://tempuri.org"><symbol xsi:type="xsd:string">DEF</symbol></ns7099:getStockQuote></SOAP-ENV:Body></SOAP-ENV:Envelope>
    

    XML RESPONSE LOOKS LIKE

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
    <SOAP-ENV:Body><ns1:getStockQuoteResponse xmlns:ns1="http://tempuri.org">
    <return xsi:type="xsd:decimal">45.00</return></ns1:getStockQuoteResponse>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>