<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>gSOAP level-2 DOM: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.8 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>soap_dom_attribute Member List</h1>This is the complete list of members for <a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a>, including all inherited members.<p><table>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#a2">begin</a>()</td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#o3">data</a></td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#a3">end</a>()</td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#a4">find</a>(const char *nstr, const char *name)</td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#w0">iterator</a> typedef</td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#o2">name</a></td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#o0">next</a></td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#o1">nstr</a></td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#a0">set</a>(const char *nstr, const char *name)</td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#a1">set</a>(const char *data)</td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#o5">soap</a></td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#a6">soap_dom_attribute</a>()</td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#a7">soap_dom_attribute</a>(struct soap *soap)</td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#a8">soap_dom_attribute</a>(struct soap *soap, const char *nstr, const char *name, const char *data)</td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#a5">unlink</a>()</td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#o4">wide</a></td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="structsoap__dom__attribute.html#a9">~soap_dom_attribute</a>()</td><td><a class="el" href="structsoap__dom__attribute.html">soap_dom_attribute</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Sat Aug 20 12:24:36 2005 for gSOAP level-2 DOM by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.8 </small></address>
</body>
</html>
