ugrás a tartalomhoz

XML-RPC introspection

w3net · 2007. Nov. 27. (K), 13.08
Az xmlrpc bõvítmény-t használom és szeretném implementálni a
system.listMethods
system.methodSignature

metódusokat (cikk az XMLRPC-ről).

Ime a kód:
  1. function _introspection_cb($userdata){  
  2.     return file_get_contents('meta.xml');  
  3. }  
  4.   
  5. $request_data = file_get_contents('php://input');  
  6. $rpcserver = xmlrpc_server_create();  
  7. ...  
  8. $ret = xmlrpc_server_register_introspection_callback($rpcserver'_introspection_cb');  
Az implementált függvények leirása a meta.xml fájlban vannal:
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <introspection version="1.0">  
  3.     <methodList>  
  4.   
  5. <!-- auth.accounts.getinfo -->  
  6.         <methodDescription name="auth.accounts.getinfo">  
  7.             <purpose>Returns account information.</purpose>  
  8.             <signatures>  
  9.                 <signature>  
  10.                     <params>  
  11.                         <value type="string">Unique identifier for a user</value>  
  12.                     </params>  
  13.                     <params>  
  14.                         <value type="int">unique account ID in database</value>  
  15.                         <value type="base64">unique account ID in database</value>  
  16.                     </params>  
  17.                     <returns>  
  18.                         <value type="boolean" descr=""></value>  
  19.                     </returns>  
  20.                 </signature>  
  21.                   
  22.                 <signature>  
  23.                     <params>  
  24.                         <value type="int">unique account ID in database</value>  
  25.                         <value type="base64">unique account ID in database</value>  
  26.                     </params>  
  27.                     <returns>  
  28.                         <value type="double"></value>  
  29.                     </returns>  
  30.                 </signature>  
  31.                   
  32.             </signatures>  
  33.         </methodDescription>  
  34.   
  35.     </methodList>  
  36. </introspection>  
A system.methodSignature eljárás //$client->Call('system.methodSignature',"auth.accounts.getinfo") ezt adja vissza:
  1. Array(  
  2.     Array  
  3.     (  
  4.         [0] => boolean  
  5.         [1] => string  
  6.         [2] => double  
  7.         [3] => int  
  8.         [4] => base64  
  9.     )  
  10.     Array  
  11.     (  
  12.         [0] => boolean  
  13.         [1] => string  
  14.         [2] => double  
  15.         [3] => int  
  16.         [4] => base64  
  17.     )  
  18. )  
szerintem pedig ezt kellene vissaadnia:
  1. Array(  
  2.     Array  
  3.     (  
  4.         [0] => boolean  
  5.         [1] => string  
  6.     )  
  7.     Array  
  8.     (  
  9.         [2] => double  
  10.         [3] => int  
  11.         [4] => base64  
  12.     )  
  13. )  
A kérdésem a következő:
Helyesen írtam meg a meta.xml fájl tartalmát?
Másnak is így működik, vagy ez valami bug?

Előre is köszönöm a segítséget.