Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP-SOAP und NAMESPACE-Problem, Namespace wird ignoriert

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP-SOAP und NAMESPACE-Problem, Namespace wird ignoriert

    Hallo liebe Leute,

    Folgendes möchte ich gerne erreichen, und beisse auf Granit:

    Ich möchte, dass der Namespace, den ich generiere, einen Einfluss auf den SOAP-XML-Output hat:


    Ich habe einen Webservice:
    PHP-Code:
     class MyService
    {
        public function 
    add($x$y)
        {
            return 
    $x $y;
        }
    }
    $options = array(
       
    'uri'=>"http://vm519.rz.uni-osnabrueck.de/soap/namespace.xsd",
      
    'encoding'=>'UTF-8',
      
    'soap_version'=>SOAP_1_2
    );
    $server = new SOAPServer(null$options);
    $server->setObject(new MyService());
    $server->handle(); 
    Und einen Klienten:
    PHP-Code:
      $soap = new SoapClient(
     
    null,
     array(
           
    "location" =&gt"http://vm519.rz.uni-osnabrueck.de/soap/webservice.php",
           
    "uri" =&gt"http://vm519.rz.uni-osnabrueck.de/soap/namespace.xsd",
      
    'encoding'=>'UTF-8',
      
    'soap_version'=>SOAP_1_2 ,
      
    'trace'=>1
          
    )
     );
    echo 
    $soap->add(410);
      echo 
    "<br>";
    print 
    "Request :\n".htmlspecialchars($soap->__getLastRequest()) ."<p>";
     print 
    "Request :\n".htmlspecialchars($soap->__getLastRequestHeaders()) ."<p>";
    print 
    "Response:\n".htmlspecialchars($soap->__getLastResponse())."<p>";
     print 
    "Response:\n".htmlspecialchars($soap->__getLastResponseHeaders())."<p>"
    Wenn ich den Klienten aufrufe, dann möchte ich gerne über meinen Namespace den XML-Output beeinflussen.

    Der namespace.xsd lautet:
    Code:
     <?xml version="1.0"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="note">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="zahl1" type="xs:int"/>
          <xs:element name="zahl2" type="xs:int"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    </xs:schema>

    In meinem Klienten kann ich ja über
    PHP-Code:
    print "Response:\n".htmlspecialchars($soap->__getLastResponse())."<p>"
    ...die Serverantwort ausgeben.

    Dort steht aber regelmässig:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://vm519.rz.uni-osnabrueck.de/soap/namespace.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:addResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:int">14</return></ns1:addResponse></env:Body></env:Envelope>
    <p>


    ...das heisst, meine namespace.xsd scheint igoniert zu werden?
    Kann ich denn den XML-SOAP-Output garnicht beeinflussen?

  • #2
    http://phpforum.de/forum/showthread.php?p=1601235

    Kommentar


    • #3
      [geschlossen: http://www.php.de/forum/webentwicklu..._Multipostings]
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar

      Lädt...
      X