Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 71d40963b505df4524269198e237b3e3 > files > 685

virtuoso-opensource-doc-6.1.4-2.fc14.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
 <head profile="http://internetalchemy.org/2003/02/profile">
  <link rel="foaf" type="application/rdf+xml" title="FOAF" href="http://www.openlinksw.com/dataspace/uda/about.rdf" />
  <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
  <meta name="dc.title" content="Function: wsdl_import_udt - Virtuoso Functions Guide" />
  <meta name="dc.subject" content="Function: wsdl_import_udt - Virtuoso Functions Guide" />
  <meta name="dc.creator" content="OpenLink Software Documentation Team ;&#10;" />
  <meta name="dc.copyright" content="OpenLink Software, 1999 - 2009" />
  <link rel="top" href="index.html" title="OpenLink Virtuoso Universal Server: Documentation" />
  <link rel="search" href="/doc/adv_search.vspx" title="Search OpenLink Virtuoso Universal Server: Documentation" />
  <link rel="parent" href="functions.html" title="Chapter Contents" />
  <link rel="prev" href="appendixa.html" title="Appendix" />
  <link rel="next" href="functions.html#.html" title="" />
  <link rel="shortcut icon" href="../images/misc/favicon.ico" type="image/x-icon" />
  <link rel="stylesheet" type="text/css" href="doc.css" />
  <link rel="stylesheet" type="text/css" href="/doc/translation.css" />
  <title>Function: wsdl_import_udt - Virtuoso Functions Guide</title>
  <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" />
  <meta name="author" content="OpenLink Software Documentation Team ;&#10;" />
  <meta name="copyright" content="OpenLink Software, 1999 - 2009" />
  <meta name="keywords" content="" />
  <meta name="GENERATOR" content="OpenLink XSLT Team" />
 </head>
 <body>
  <div id="header">
    <a name="fn_wsdl_import_udt" />
    <img src="../images/misc/logo.jpg" alt="" />
    <h1>22. Virtuoso Functions Guide - wsdl_import_udt</h1>
  </div>
  <div id="navbartop">
   <div>
      <a class="link" href="functions.html">Chapter Contents</a> | <a class="link" href="fn_vsp_calculate_digest.html" title="vsp_calculate_digest">Prev</a> | <a class="link" href="fn_USER_KEY_LOAD.html" title="USER_KEY_LOAD">Next</a>
   </div>
  </div>
  <div id="currenttoc">
   <form method="post" action="/doc/adv_search.vspx">
    <div class="search">Keyword Search: <br />
        <input type="text" name="q" /> <input type="submit" name="go" value="Go" />
    </div>
   </form>
   <div>
      <a href="http://www.openlinksw.com/">www.openlinksw.com</a>
   </div>
   <div>
      <a href="http://docs.openlinksw.com/">docs.openlinksw.com</a>
   </div>
    <br />
   <div>
      <a href="index.html">Book Home</a>
   </div>
    <br />
   <div>
      <a href="contents.html">Contents</a>
   </div>
   <div>
      <a href="preface.html">Preface</a>
   </div>
    <br />
   <div>
      <a class="selected" href="functions.html">Virtuoso Functions Guide</a>
   </div>
    <br />
   <div>
      <a href="functions.html#admin">Administration</a>
   </div>
   <div>
      <a href="functions.html#aggr">Aggregate Functions</a>
   </div>
   <div>
      <a href="functions.html#array">Array Manipulation</a>
   </div>
   <div>
      <a href="functions.html#bpel">BPEL APIs</a>
   </div>
   <div>
      <a href="functions.html#backup">Backup</a>
   </div>
   <div>
      <a href="functions.html#compression">Compression</a>
   </div>
   <div>
      <a href="functions.html#cursors">Cursor</a>
   </div>
   <div>
      <a href="functions.html#time">Date &amp; Time Manipulation</a>
   </div>
   <div>
      <a href="functions.html#debug">Debug</a>
   </div>
   <div>
      <a href="functions.html#dict">Dictionary Manipulation</a>
   </div>
   <div>
      <a href="functions.html#encoding">Encoding &amp; Decoding</a>
   </div>
   <div>
      <a href="functions.html#file">File Manipulation</a>
   </div>
   <div>
      <a href="functions.html#ft">Free Text</a>
   </div>
   <div>
      <a href="functions.html#hash">Hashing / Cryptographic</a>
   </div>
   <div>
      <a href="functions.html#ldap">LDAP</a>
   </div>
   <div>
      <a href="functions.html#localization">Locale</a>
   </div>
   <div>
      <a href="functions.html#mail">Mail</a>
   </div>
   <div>
      <a href="functions.html#misc">Miscellaneous</a>
   </div>
   <div>
      <a href="functions.html#number">Number</a>
   </div>
   <div>
      <a href="functions.html#phrz">Phrases</a>
   </div>
   <div>
      <a href="functions.html#rdf">RDF data</a>
   </div>
   <div>
      <a href="functions.html#rmt">Remote SQL Data Source</a>
   </div>
   <div>
      <a href="functions.html#repl">Replication</a>
   </div>
   <div>
      <a href="functions.html#soap">SOAP</a>
   </div>
   <div>
      <a href="functions.html#sql">SQL</a>
   </div>
   <div>
      <a href="functions.html#string">String</a>
   </div>
   <div>
      <a href="functions.html#txn">Transaction</a>
   </div>
   <div>
      <a href="functions.html#type">Type Mapping</a>
   </div>
   <div>
      <a href="functions.html#uddi">UDDI</a>
   </div>
   <div>
      <a href="functions.html#udt">User Defined Types &amp; The CLR</a>
   </div>
   <div>
      <a href="functions.html#vad">VAD</a>
   </div>
   <div>
      <a href="functions.html#jvmpl">Virtuoso Java PL API</a>
   </div>
   <div>
      <a href="functions.html#bif">Virtuoso Server Extension Interface (VSEI)</a>
   </div>
   <div>
      <a class="selected" href="functions.html#ws">Web &amp; Internet</a>
   </div>
   <div class="selected">
    <div>
        <a href="fn_dav_api_add.html">dav add &amp; update fun...</a>
    </div>
    <div>
        <a href="fn_dav_api_lock.html">dav lock manipulatio...</a>
    </div>
    <div>
        <a href="fn_dav_api_change.html">dav manipulation fun...</a>
    </div>
    <div>
        <a href="fn_dav_api_search.html">dav search functions</a>
    </div>
    <div>
        <a href="fn_dav_exp.html">dav_exp</a>
    </div>
    <div>
        <a href="fn_lfs_exp.html">lfs_exp</a>
    </div>
    <div>
        <a href="fn_serv_queue_top.html">serv_queue_top</a>
    </div>
    <div>
        <a href="fn_urlrewrite_create_regex_rule.html">urlrewrite_create_re...</a>
    </div>
    <div>
        <a href="fn_USER_KEY_LOAD.html">user_key_load</a>
    </div>
    <div>
        <a href="fn_vhost_define.html">vhost_define</a>
    </div>
    <div>
        <a href="fn_vhost_remove.html">vhost_remove</a>
    </div>
    <div>
        <a href="fn_dav_api_user.html">webdav users &amp; group...</a>
    </div>
    <div>
        <a href="fn_client_attr.html">client_attr</a>
    </div>
    <div>
        <a href="fn_connection_get.html">connection_get</a>
    </div>
    <div>
        <a href="fn_connection_id.html">connection_id</a>
    </div>
    <div>
        <a href="fn_connection_is_dirty.html">connection_is_dirty</a>
    </div>
    <div>
        <a href="fn_connection_set.html">connection_set</a>
    </div>
    <div>
        <a href="fn_connection_vars.html">connection_vars</a>
    </div>
    <div>
        <a href="fn_connection_vars_set.html">connection_vars_set</a>
    </div>
    <div>
        <a href="fn_dbname.html">dbname</a>
    </div>
    <div>
        <a href="fn_ftp_get.html">ftp_get</a>
    </div>
    <div>
        <a href="fn_ftp_ls.html">ftp_ls</a>
    </div>
    <div>
        <a href="fn_ftp_put.html">ftp_put</a>
    </div>
    <div>
        <a href="fn_get_certificate_info.html">get_certificate_info</a>
    </div>
    <div>
        <a href="fn_get_keyword.html">get_keyword</a>
    </div>
    <div>
        <a href="fn_get_keyword_ucase.html">get_keyword_ucase</a>
    </div>
    <div>
        <a href="fn_http.html">http</a>
    </div>
    <div>
        <a href="fn_http_acl_get.html">http_acl_get</a>
    </div>
    <div>
        <a href="fn_http_acl_remove.html">http_acl_remove</a>
    </div>
    <div>
        <a href="fn_http_acl_set.html">http_acl_set</a>
    </div>
    <div>
        <a href="fn_http_body_read.html">http_body_read</a>
    </div>
    <div>
        <a href="fn_http_client.html">http_client</a>
    </div>
    <div>
        <a href="fn_http_client_ext.html">http_client_ext</a>
    </div>
    <div>
        <a href="fn_http_client_ip.html">http_client_ip</a>
    </div>
    <div>
        <a href="fn_http_debug_log.html">http_debug_log</a>
    </div>
    <div>
        <a href="fn_http_enable_gz.html">http_enable_gz</a>
    </div>
    <div>
        <a href="fn_http_file.html">http_file</a>
    </div>
    <div>
        <a href="fn_http_flush.html">http_flush</a>
    </div>
    <div>
        <a href="fn_http_get.html">http_get</a>
    </div>
    <div>
        <a href="fn_http_header.html">http_header</a>
    </div>
    <div>
        <a href="fn_http_header_get.html">http_header_get</a>
    </div>
    <div>
        <a href="fn_http_kill.html">http_kill</a>
    </div>
    <div>
        <a href="fn_http_listen_host.html">http_listen_host</a>
    </div>
    <div>
        <a href="fn_http_lock.html">http_lock</a>
    </div>
    <div>
        <a href="fn_http_map_get.html">http_map_get</a>
    </div>
    <div>
        <a href="fn_http_map_table.html">http_map_table</a>
    </div>
    <div>
        <a href="fn_http_param.html">http_param</a>
    </div>
    <div>
        <a href="fn_http_path.html">http_path</a>
    </div>
    <div>
        <a href="fn_http_pending_req.html">http_pending_req</a>
    </div>
    <div>
        <a href="fn_http_physical_path.html">http_physical_path</a>
    </div>
    <div>
        <a href="fn_http_proxy.html">http_proxy</a>
    </div>
    <div>
        <a href="fn_http_request_get.html">http_request_get</a>
    </div>
    <div>
        <a href="fn_http_request_header.html">http_request_header</a>
    </div>
    <div>
        <a href="fn_http_request_status.html">http_request_status</a>
    </div>
    <div>
        <a href="fn_http_rewrite.html">http_rewrite</a>
    </div>
    <div>
        <a href="fn_http_root.html">http_root</a>
    </div>
    <div>
        <a href="fn_http_unlock.html">http_unlock</a>
    </div>
    <div>
        <a href="fn_http_url.html">http_url</a>
    </div>
    <div>
        <a href="fn_http_value.html">http_value</a>
    </div>
    <div>
        <a href="fn_http_xslt.html">http_xslt</a>
    </div>
    <div>
        <a href="fn_json_parse.html">json_parse</a>
    </div>
    <div>
        <a href="fn_ses_connect.html">ses_connect</a>
    </div>
    <div>
        <a href="fn_ses_disconnect.html">ses_disconnect</a>
    </div>
    <div>
        <a href="fn_ses_read_line.html">ses_read_line</a>
    </div>
    <div>
        <a href="fn_ses_write.html">ses_write</a>
    </div>
    <div>
        <a href="fn_tcpip_gethostbyaddr.html">tcpip_gethostbyaddr</a>
    </div>
    <div>
        <a href="fn_tcpip_gethostbyname.html">tcpip_gethostbyname</a>
    </div>
    <div>
        <a href="fn_vsp_calculate_digest.html">vsp_calculate_digest</a>
    </div>
    <div>
        <a class="selected" href="fn_wsdl_import_udt.html">wsdl_import_udt</a>
    </div>
   </div>
   <div>
      <a href="functions.html#xml">XML</a>
   </div>
   <div>
      <a href="functions.html#XPATH">XPATH &amp; XQUERY</a>
   </div>
    <br />
   <div>
      <a href="functionidx.html">Functions Index</a>
   </div>
    <br />
  </div>
  <div id="text">
    <h2>wsdl_import_udt</h2>
    <div class="refpurpose">Returns a string containing a UDT definition</div>
    <div class="funcsynopsis">
        <span class="funcdef">varchar <span class="function">WSDL_IMPORT_UDT</span>
      </span>
        (<span class="paramdef">in <span class="parameter">url</span> varchar</span>, 
        <span class="paramdef">in <span class="parameter">f</span> varchar</span>, 
        <span class="paramdef">in <span class="parameter">exec</span> any</span>);
      </div>
  
  
  
  <div class="refsect1">
    <div class="refsect1title">Description</div>
    <p>This function is used to create a user defined type (UDT) definition 
    automatically based on a WSDL file.  The source WSDL is supplied via a URL.</p>
    <p>The returned definition can be saved to a file and/or executed automatically 
    to provide instant access to the new UDT.</p>
    <div class="note">
        <div class="notetitle">Note:</div>
    <p>To save the file you must have an appropriate ACL defined.</p>
    </div>
  </div>
  <div class="refsect1">
      <div class="refsect1title">Parameters</div>
    <div class="refsect2">
        <span class="refsect2title">url – </span>
      The URI of the target WSDL file to build a UDT definition of.</div>
    <div class="refsect2">
        <span class="refsect2title">f – </span>
      The name of the file if the definition is to be saved.  This will produce a 
      file on the file system under the server root directory.
The default value is NULL, which will not create a file.</div>
    <div class="refsect2">
        <span class="refsect2title">exec – </span>
      This flag indicates whether the definition should be immediately 
      executed upon import.  This takes the form of 0 or 1.  The default value
      of 0 will not execute the definition.</div>
  </div>
  <div class="refsect1">
      <div class="refsect1title">Return Types</div>
    <p>This function returns the text of the UDT definition as a varchar.</p>
  </div>

  <div class="refsect1">
    <div class="refsect1title">Examples</div>
    <a name="ex_wsdl_import_udt" />
      <div class="example">
        <div class="exampletitle">Simple example of a WSDL driven UDT</div>
      <p>Web Service proxy wrapper for Redcoal SMS SOAP interface:</p>

<div>
          <pre class="programlisting">
SQL&gt; WSDL_IMPORT_UDT (&#39;http://xml.redcoal.com/soapserver.dll/wsdl/ISoapServer&#39;, &#39;redcoal.sql&#39;);   
</pre>
        </div>

<p>This will create the following file on file system called <span class="computeroutput">redcoal.sql</span>:</p>
      <div>
          <pre class="screen">
-- Automatically generated code 
-- imported from WSDL URI: &quot;http://xml.redcoal.com/soapserver.dll/wsdl/ISoapServer&quot; 
-- UDT class 
drop type &quot;ISOAPServerservice&quot; 
;
 
create type &quot;ISOAPServerservice&quot; 
  as 
    ( 
      debug int default 0, 
      url varchar default &#39;http://xml.redcoal.com/soapserver.dll/soap/ISoapServer&#39;, 
      request varchar, 
      response varchar 
    ) 
-- Binding: &quot;http://tempuri.org/:ISOAPServerbinding&quot; 
 
method &quot;SendTextSMS&quot; 
       ( 
        &quot;strInSerialNo&quot; any, 
        &quot;strInSMSKey&quot; any, 
        &quot;strInRecipients&quot; any, 
        &quot;strInMessageText&quot; any, 
        &quot;strInReplyEmail&quot; any, 
        &quot;strInOriginator&quot; any, 
        &quot;iInType&quot; any, 
        &quot;strOutMessageIDs&quot; any, 
        &quot;return&quot; any 
       ) returns any, 

.... more methods follows ; do not supplied for brevity        
 
method &quot;RedWebServiceVersion&quot; 
       ( 
        &quot;return&quot; any 
       ) returns any, 
 
method style () returns any 
;
 
-- Methods 
 
create method &quot;SendTextSMS&quot; 
       ( 
        in &quot;strInSerialNo&quot; any, 
        in &quot;strInSMSKey&quot; any, 
        in &quot;strInRecipients&quot; any, 
        in &quot;strInMessageText&quot; any, 
        in &quot;strInReplyEmail&quot; any, 
        in &quot;strInOriginator&quot; any, 
        in &quot;iInType&quot; any, 
        inout &quot;strOutMessageIDs&quot; any, 
        out &quot;return&quot; any 
       ) for &quot;ISOAPServerservice&quot; 
{ 
  declare action, namespace, enc varchar; 
  declare style int; 
  declare _result, _body, xe any; 
  action := &#39;urn:SOAPServerImpl-ISOAPServer#SendTextSMS&#39;; 
   
  namespace := &#39;urn:SOAPServerImpl-ISOAPServer&#39;; 
   
  style := 0; 
   
  if (self.debug) 
    style := style + 2; 
  _result := SOAP_CLIENT ( 
	        url=&gt;self.url, 
		operation=&gt;&#39;SendTextSMS&#39;, 
 		soap_action=&gt;action, 
	        target_namespace=&gt;namespace, 
 		parameters=&gt;vector 
    ( 
     vector(&#39;strInSerialNo&#39;, &#39;http://www.w3.org/2001/XMLSchema:string&#39;), &quot;strInSerialNo&quot; , 
     vector(&#39;strInSMSKey&#39;, &#39;http://www.w3.org/2001/XMLSchema:string&#39;), &quot;strInSMSKey&quot; , 
     vector(&#39;strInRecipients&#39;, &#39;http://www.w3.org/2001/XMLSchema:string&#39;), &quot;strInRecipients&quot; , 
     vector(&#39;strInMessageText&#39;, &#39;http://www.w3.org/2001/XMLSchema:string&#39;), &quot;strInMessageText&quot; , 
     vector(&#39;strInReplyEmail&#39;, &#39;http://www.w3.org/2001/XMLSchema:string&#39;), &quot;strInReplyEmail&quot; , 
     vector(&#39;strInOriginator&#39;, &#39;http://www.w3.org/2001/XMLSchema:string&#39;), &quot;strInOriginator&quot; , 
     vector(&#39;iInType&#39;, &#39;http://www.w3.org/2001/XMLSchema:int&#39;), &quot;iInType&quot; , 
     vector(&#39;strOutMessageIDs&#39;, &#39;http://www.w3.org/2001/XMLSchema:string&#39;), &quot;strOutMessageIDs&quot;  
    ), 
		style=&gt;style 
               ); 
  if (self.debug) 
    { 
      _body := _result[0]; 
      self.request := _result[1]; 
      self.response := _result[2]; 
    } 
  else 
    _body := _result; 
  xe := xml_cut (xml_tree_doc (_body)); 
  &quot;strOutMessageIDs&quot; := xml_cut (xpath_eval (&#39;//strOutMessageIDs&#39;, xe, 1)); 
  &quot;strOutMessageIDs&quot; := soap_box_xml_entity_validating (&quot;strOutMessageIDs&quot;, 
    &#39;http://www.w3.org/2001/XMLSchema:string&#39;, 0); 
  &quot;return&quot; := xml_cut (xpath_eval (&#39;//return&#39;, xe, 1)); 
  &quot;return&quot; := soap_box_xml_entity_validating (&quot;return&quot;, &#39;http://www.w3.org/2001/XMLSchema:int&#39;, 0); 
 
  return _result; 
} 
;

.... more method definitions follows ; not supplied for brevity
 
create method &quot;RedWebServiceVersion&quot; 
       ( 
        out &quot;return&quot; any 
       ) for &quot;ISOAPServerservice&quot; 
{ 
  declare action, namespace, enc varchar; 
  declare style int; 
  declare _result, _body, xe any; 
  action := &#39;urn:SOAPServerImpl-ISOAPServer#RedWebServiceVersion&#39;; 
   
  namespace := &#39;urn:SOAPServerImpl-ISOAPServer&#39;; 
   
  style := 0; 
   
  if (self.debug) 
    style := style + 2; 
  _result := SOAP_CLIENT ( 
	        url=&gt;self.url, 
		operation=&gt;&#39;RedWebServiceVersion&#39;, 
 		soap_action=&gt;action, 
	        target_namespace=&gt;namespace, 
 		parameters=&gt;vector 
                        ( 
 
			), 
		style=&gt;style 
               ); 
  if (self.debug) 
    { 
      _body := _result[0]; 
      self.request := _result[1]; 
      self.response := _result[2]; 
    } 
  else 
    _body := _result; 
  xe := xml_cut (xml_tree_doc (_body)); 
  &quot;return&quot; := xml_cut (xpath_eval (&#39;//return&#39;, xe, 1)); 
  &quot;return&quot; := soap_box_xml_entity_validating (&quot;return&quot;, 
    &#39;http://www.w3.org/2001/XMLSchema:string&#39;, 0); 
 
  return _result; 
} 
;

</pre>
        </div>
<p>This script, executed via the ISQL tool, or automatically if the &#39;exec&#39; flag is set to &#39;true&#39;,
will define the desired UDT in database.  Developing a simple application for checking the Redcoal SMS SOAP interface 
could be done as follows using a stored procedure:
</p>

      <div>
          <pre class="screen">
create procedure
redcoaltest ()
{
  declare svc &quot;ISOAPServerservice&quot;;
  declare res nvarchar;
  svc := new &quot;ISOAPServerservice&quot; ();
  svc.&quot;RedWebServiceVersion&quot; (res);
  result_names (res);
  result (res);
}
;

</pre>
        </div>

<p>Which could have the following output:</p>

      <div>
          <pre class="screen">
SQL&gt; redcoaltest();
res
NVARCHAR
____________________________________________

5.0

1 Rows. -- 1974 msec.

</pre>
        </div>
    </div>
  </div>
  <div class="refsect1">
    <div class="refsect1title">See Also</div>
      <p>The <a href="udt.html#udtcnsmsoap" /> section.</p>
  </div>
</div>
  <div id="footer">
    <div>Copyright© 1999 - 2009 OpenLink Software All rights reserved.</div>
   <div id="validation">
    <a href="http://validator.w3.org/check/referer">
        <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" />
    </a>
    <a href="http://jigsaw.w3.org/css-validator/">
        <img src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" height="31" width="88" />
    </a>
   </div>
  </div>
 </body>
</html>