Sophie

Sophie

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

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: XMLAddAttribute - Virtuoso Functions Guide" />
  <meta name="dc.subject" content="Function: XMLAddAttribute - 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: XMLAddAttribute - 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_XMLAddAttribute" />
    <img src="../images/misc/logo.jpg" alt="" />
    <h1>22. Virtuoso Functions Guide - XMLAddAttribute</h1>
  </div>
  <div id="navbartop">
   <div>
      <a class="link" href="functions.html">Chapter Contents</a> | <a class="link" href="fn_XMLATTRIBUTES.html" title="XMLATTRIBUTES">Prev</a> | <a class="link" href="fn_XMLAppendChildren.html" title="XMLAppendChildren">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 href="functions.html#ws">Web &amp; Internet</a>
   </div>
   <div>
      <a class="selected" href="functions.html#xml">XML</a>
   </div>
   <div class="selected">
    <div>
        <a href="fn_XMLAGG.html">xmlagg</a>
    </div>
    <div>
        <a href="fn_XMLATTRIBUTES.html">xmlattributes</a>
    </div>
    <div>
        <a class="selected" href="fn_XMLAddAttribute.html">xmladdattribute</a>
    </div>
    <div>
        <a href="fn_XMLAppendChildren.html">xmlappendchildren</a>
    </div>
    <div>
        <a href="fn_XMLCONCAT.html">xmlconcat</a>
    </div>
    <div>
        <a href="fn_XMLELEMENT.html">xmlelement</a>
    </div>
    <div>
        <a href="fn_XMLFOREST.html">xmlforest</a>
    </div>
    <div>
        <a href="fn_XMLInsertAfter.html">xmlinsertafter</a>
    </div>
    <div>
        <a href="fn_XMLInsertBefore.html">xmlinsertbefore</a>
    </div>
    <div>
        <a href="fn_XMLReplace.html">xmlreplace</a>
    </div>
    <div>
        <a href="fn_XMLType.XMLType.html">xmltype.xmltype</a>
    </div>
    <div>
        <a href="fn_XMLType.createNonSchemaBasedXML.html">xmltype.createnonsch...</a>
    </div>
    <div>
        <a href="fn_XMLType.createSchemaBasedXML.html">xmltype.createschema...</a>
    </div>
    <div>
        <a href="fn_XMLType.createXML.html">xmltype.createxml</a>
    </div>
    <div>
        <a href="fn_XMLType.existsNode.html">xmltype.existsnode</a>
    </div>
    <div>
        <a href="fn_XMLType.extract.html">xmltype.extract</a>
    </div>
    <div>
        <a href="fn_XMLType.getClobVal.html">xmltype.getclobval</a>
    </div>
    <div>
        <a href="fn_XMLType.getNamespace.html">xmltype.getnamespace</a>
    </div>
    <div>
        <a href="fn_XMLType.getNumVal.html">xmltype.getnumval</a>
    </div>
    <div>
        <a href="fn_XMLType.getRootElement.html">xmltype.getrooteleme...</a>
    </div>
    <div>
        <a href="fn_XMLType.getSchemaURL.html">xmltype.getschemaurl</a>
    </div>
    <div>
        <a href="fn_XMLType.getStringVal.html">xmltype.getstringval</a>
    </div>
    <div>
        <a href="fn_XMLType.isFragment.html">xmltype.isfragment</a>
    </div>
    <div>
        <a href="fn_XMLType.isSchemaBased.html">xmltype.isschemabase...</a>
    </div>
    <div>
        <a href="fn_XMLType.isSchemaValid.html">xmltype.isschemavali...</a>
    </div>
    <div>
        <a href="fn_XMLType.isSchemaValidated.html">xmltype.isschemavali...</a>
    </div>
    <div>
        <a href="fn_XMLType.schemaValidate.html">xmltype.schemavalida...</a>
    </div>
    <div>
        <a href="fn_XMLType.setSchemaValidated.html">xmltype.setschemaval...</a>
    </div>
    <div>
        <a href="fn_XMLType.toObject.html">xmltype.toobject</a>
    </div>
    <div>
        <a href="fn_XMLType.transform.html">xmltype.transform</a>
    </div>
    <div>
        <a href="fn_XMLUpdate.html">xmlupdate</a>
    </div>
    <div>
        <a href="fn_xper_right_sibling.html">xper navigation</a>
    </div>
    <div>
        <a href="fn_createXML.html">createxml</a>
    </div>
    <div>
        <a href="fn_isentity.html">isentity</a>
    </div>
    <div>
        <a href="fn_serialize_to_UTF8_xml.html">serialize_to_utf8_xm...</a>
    </div>
    <div>
        <a href="fn_tidy_html.html">tidy_html</a>
    </div>
    <div>
        <a href="fn_tidy_list_errors.html">tidy_list_errors</a>
    </div>
    <div>
        <a href="fn_updateXML.html">updatexml</a>
    </div>
    <div>
        <a href="fn_xml_add_system_path.html">xml_add_system_path</a>
    </div>
    <div>
        <a href="fn_xml_auto.html">xml_auto</a>
    </div>
    <div>
        <a href="fn_xml_auto_dtd.html">xml_auto_dtd</a>
    </div>
    <div>
        <a href="fn_xml_auto_schema.html">xml_auto_schema</a>
    </div>
    <div>
        <a href="fn_xml_create_tables_from_mapping_schema_decl.html">xml_create_tables_fr...</a>
    </div>
    <div>
        <a href="fn_xml_cut.html">xml_cut</a>
    </div>
    <div>
        <a href="fn_xml_doc_output_option.html">xml_doc_output_optio...</a>
    </div>
    <div>
        <a href="fn_xml_get_system_paths.html">xml_get_system_paths</a>
    </div>
    <div>
        <a href="fn_xml_load_mapping_schema_decl.html">xml_load_mapping_sch...</a>
    </div>
    <div>
        <a href="fn_xml_load_schema_decl.html">xml_load_schema_decl</a>
    </div>
    <div>
        <a href="fn_xml_namespace_scope.html">xml_namespace_scope</a>
    </div>
    <div>
        <a href="fn_xml_persistent.html">xml_persistent</a>
    </div>
    <div>
        <a href="fn_xml_set_ns_decl.html">xml_set_ns_decl</a>
    </div>
    <div>
        <a href="fn_xml_template.html">xml_template</a>
    </div>
    <div>
        <a href="fn_xml_tree.html">xml_tree</a>
    </div>
    <div>
        <a href="fn_xml_tree_doc.html">xml_tree_doc</a>
    </div>
    <div>
        <a href="fn_xml_tree_doc_media_type.html">xml_tree_doc_media_t...</a>
    </div>
    <div>
        <a href="fn_xml_uri_get.html">xml_uri_get</a>
    </div>
    <div>
        <a href="fn_xml_validate_dtd.html">xml_validate_dtd</a>
    </div>
    <div>
        <a href="fn_xml_validate_schema.html">xml_validate_schema</a>
    </div>
    <div>
        <a href="fn_xml_view_dtd.html">xml_view_dtd</a>
    </div>
    <div>
        <a href="fn_xml_view_schema.html">xml_view_schema</a>
    </div>
    <div>
        <a href="fn_xmlsql_update.html">xmlsql_update</a>
    </div>
    <div>
        <a href="fn_xpath_eval.html">xpath_eval</a>
    </div>
    <div>
        <a href="fn_xper_cut.html">xper_cut</a>
    </div>
    <div>
        <a href="fn_xper_doc.html">xper_doc</a>
    </div>
    <div>
        <a href="fn_xper_locate_words.html">xper_locate_words</a>
    </div>
    <div>
        <a href="fn_xpf_extension.html">xpf_extension</a>
    </div>
    <div>
        <a href="fn_xpf_extension_remove.html">xpf_extension_remove</a>
    </div>
    <div>
        <a href="fn_xquery_eval.html">xquery_eval</a>
    </div>
    <div>
        <a href="fn_xslt.html">xslt</a>
    </div>
    <div>
        <a href="fn_xslt_format_number.html">xslt_format_number</a>
    </div>
    <div>
        <a href="fn_xslt_sheet.html">xslt_sheet</a>
    </div>
    <div>
        <a href="fn_xslt_stale.html">xslt_stale</a>
    </div>
    <div>
        <a href="fn_xte_head.html">xte_head</a>
    </div>
    <div>
        <a href="fn_xte_node.html">xte_node</a>
    </div>
    <div>
        <a href="fn_xte_node_from_nodebld.html">xte_node_from_nodebl...</a>
    </div>
    <div>
        <a href="fn_xte_nodebld_acc.html">xte_nodebld_acc</a>
    </div>
    <div>
        <a href="fn_xte_nodebld_final.html">xte_nodebld_final</a>
    </div>
    <div>
        <a href="fn_xte_nodebld_init.html">xte_nodebld_init</a>
    </div>
    <div>
        <a href="fn_xtree_doc.html">xtree_doc</a>
    </div>
   </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>XMLAddAttribute</h2>
    <div class="refpurpose">Add an attribute to the given node of an XML tree document</div>
    <div class="funcsynopsis">
        <span class="funcdef">integer <span class="function">XMLAddAttribute</span>
      </span>
	(<span class="paramdef">inout <span class="parameter">source</span> any</span>, 
	<span class="paramdef">in <span class="parameter">mode</span> integer</span>, 
	<span class="paramdef">in <span class="parameter">attr_name</span> any</span>, 
	<span class="paramdefoptional">[in <span class="optional">attr_value</span> any]</span>);
      </div>
  
  
  
  <div class="refsect1">
    <div class="refsect1title">Description</div>
    <p>The function modifies the <span class="computeroutput">source</span> document by adding an
attribute to the current node of <span class="computeroutput">source</span> entity. The
<span class="computeroutput">source</span> should be an XML tree entity, not &quot;persistent XML&quot; one,
should be an element entity (not attribute, text etc.) and should not be a root entity.
Parameters <span class="computeroutput">attr_name</span> and <span class="computeroutput">attr_value</span>
can be of any types that can be casted to string.
<span class="computeroutput">attr_name</span> can be an attribute entity, in this case both the
name and the value of <span class="computeroutput">attr_name</span> attribute is used and
<span class="computeroutput">attr_value</span> parameter must be omitted.
</p>
    <p>
The <span class="computeroutput">mode</span> specifies how to resolve duplicate attribute names, if
an <span class="computeroutput">source</span> entity already has an attribute whose name is equal to
<span class="computeroutput">attr_name</span>.
Mode 0 is similar to &quot;insert into&quot;:
the function signals an error if an attribute already exists.
Mode 1 is similar to &quot;insert soft&quot;:
the function do nothing if an attribute already exists and not signalling an error.
Mode 2 is similar to &quot;insert replacing&quot;:
the function either adds a new attribute or replacing the value of existing attribute.
</p>
  </div>
  <div class="refsect1">
    <div class="refsect1title">Parameters</div>
    <div class="refsect2">
        <span class="refsect2title">source – </span>
      The XML tree entity to change.
    </div>
    <div class="refsect2">
        <span class="refsect2title">mode – </span>
      The mode of resolving duplicate attribute names.
    </div>
    <div class="refsect2">
        <span class="refsect2title">attr_name – </span>
      The name of a new attribute (or an attribute XML entity that specifies both name and value of an attribute.
    </div>
    <div class="refsect2">
        <span class="refsect2title">attr_value – </span>
      The value of a new attribute
    </div>
  </div>
  <div class="refsect1">
      <div class="refsect1title">Return Types</div>
    <p>The function returns integer that indicate the actual operation performed.
The zero value means that there was no change (&quot;insert soft&quot; when an attribute already exists).
The value one means that a new attribute was added, the value two means that an existing attribute was
replaced.</p>
  </div>

  <div class="refsect1">
    <div class="refsect1title">Examples</div>
    <a name="ex_XMLAddAttribute" />
      <div class="example">
        <div class="exampletitle">Different modes of calling XMLAddAttribute</div>
      <p>The sample procedure contains three calls of <span class="computeroutput">XMLAddAttribute</span> with
different values of <span class="computeroutput">mode</span>, for &quot;insert into&quot;, &quot;insert soft&quot; and
&quot;insert replacing&quot; behaviour.
      </p>
      <div>
          <pre class="screen">
create procedure XMLAddAttribute_demo ()
{
  declare DESCRIPTION varchar (33);
  declare XMLENTITY, ent any;
  result_names (DESCRIPTION, XMLENTITY);
  result (&#39;EXAMPLE 1&#39;, &#39;Adding a new attribute&#39;);
  ent := xpath_eval (&#39;//b&#39;, xtree_doc(&#39;&lt;a&gt;&lt;b attrX=&quot;x&quot; attrY=&quot;y&quot;/&gt;&lt;/a&gt;&#39;));
  result (&#39;The document to modify:&#39;, xpath_eval(&#39;/&#39;, ent));
  result (&#39;An element node to change:&#39;, ent);
  XMLAddAttribute (ent, 0, &#39;attrZ&#39;, &#39;z&#39;);
  result (&#39;The document after modification:&#39;, xpath_eval(&#39;/&#39;, ent));
  result (&#39;EXAMPLE 2&#39;, &#39;Failed adding of an (existing) attribute&#39;);
  ent := xpath_eval (&#39;//b&#39;, xtree_doc(&#39;&lt;a&gt;&lt;b attrX=&quot;x&quot; attrY=&quot;y&quot;/&gt;&lt;/a&gt;&#39;));
  result (&#39;The document to modify:&#39;, xpath_eval(&#39;/&#39;, ent));
  result (&#39;An element node to change:&#39;, ent);
  XMLAddAttribute (ent, 1, &#39;attrX&#39;, &#39;xNEW&#39;);
  result (&#39;The document after modification:&#39;, xpath_eval(&#39;/&#39;, ent));
  result (&#39;EXAMPLE 3&#39;, &#39;Successful replacing of an existing attribute&#39;);
  ent := xpath_eval (&#39;//b&#39;, xtree_doc(&#39;&lt;a&gt;&lt;b attrX=&quot;x&quot; attrY=&quot;y&quot;/&gt;&lt;/a&gt;&#39;));
  result (&#39;The document to modify:&#39;, xpath_eval(&#39;/&#39;, ent));
  result (&#39;An element node to change:&#39;, ent);
  XMLAddAttribute (ent, 2, &#39;attrX&#39;, &#39;xNEW&#39;);
  result (&#39;The document after modification:&#39;, xpath_eval(&#39;/&#39;, ent));
}


Done. -- 00000 msec.

XMLAddAttribute_demo()
DESCRIPTION                                  XMLENTITY
VARCHAR                                      VARCHAR
_______________________________________________________________________________

EXAMPLE 1                          Adding a new attribute
The document to modify:            &lt;a&gt;&lt;b attrX=&quot;x&quot; attrY=&quot;y&quot; /&gt;&lt;/a&gt;
An element node to change:         &lt;b attrX=&quot;x&quot; attrY=&quot;y&quot; /&gt;
The document after modification:   &lt;a&gt;&lt;b attrX=&quot;x&quot; attrY=&quot;y&quot; attrZ=&quot;z&quot; /&gt;&lt;/a&gt;
EXAMPLE 2                          Failed adding of an (existing) attribute
The document to modify:            &lt;a&gt;&lt;b attrX=&quot;x&quot; attrY=&quot;y&quot; /&gt;&lt;/a&gt;
An element node to change:         &lt;b attrX=&quot;x&quot; attrY=&quot;y&quot; /&gt;
The document after modification:   &lt;a&gt;&lt;b attrX=&quot;x&quot; attrY=&quot;y&quot; /&gt;&lt;/a&gt;
EXAMPLE 3                          Successful replacing of an existing attribute
The document to modify:            &lt;a&gt;&lt;b attrX=&quot;x&quot; attrY=&quot;y&quot; /&gt;&lt;/a&gt;
An element node to change:         &lt;b attrX=&quot;x&quot; attrY=&quot;y&quot; /&gt;
The document after modification:   &lt;a&gt;&lt;b attrX=&quot;xNEW&quot; attrY=&quot;y&quot; /&gt;&lt;/a&gt;

12 Rows. -- 00000 msec.

</pre>
        </div>
    </div>
  </div>
  <div class="refsect1">
    <div class="refsect1title">See Also</div>
<p>
        <a href="fn_XMLReplace.html">XMLReplace</a>
      </p>
<p>
        <a href="fn_XMLAppendChildren.html">XMLAppendChildren</a>
      </p>
<p>
        <a href="fn_XMLInsertBefore.html">XMLInsertBefore</a>
      </p>
<p>
        <a href="fn_XMLInsertAfter.html">XMLInsertAfter</a>
      </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>