Sophie

Sophie

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

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: XMLAGG - Virtuoso Functions Guide" />
  <meta name="dc.subject" content="Function: XMLAGG - 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: XMLAGG - 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_XMLAGG" />
    <img src="../images/misc/logo.jpg" alt="" />
    <h1>22. Virtuoso Functions Guide - XMLAGG</h1>
  </div>
  <div id="navbartop">
   <div>
      <a class="link" href="functions.html">Chapter Contents</a> | <a class="link" href="fn_xte_nodebld_init.html" title="xte_nodebld_init">Prev</a> | <a class="link" href="fn_XMLATTRIBUTES.html" title="XMLATTRIBUTES">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 class="selected" href="fn_XMLAGG.html">xmlagg</a>
    </div>
    <div>
        <a href="fn_XMLATTRIBUTES.html">xmlattributes</a>
    </div>
    <div>
        <a 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>XMLAGG</h2>
    <div class="refpurpose">Produces a forest of elements from a collection of XML values</div>
    <div class="funcsynopsis">
        <span class="funcdef">vector <span class="function">XMLAGG</span>
      </span>
        (<span class="paramdef">
        <span class="parameter">value_expression</span> any</span>);
      </div>
  
  
  
  <div class="refsect1">
      <div class="refsect1title">Description</div>
    <p>
   <span class="computeroutput">XMLAGG</span> is aggregate function that produces a forest of XML elements from the given list of xml elements.
   It concatenates the values returned from one column of multiple rows, unlike <span class="computeroutput">XMLCONCAT</span>, 
   which concatenates the values returned from multiple columns in the same row.
    </p>
    <p>
The order of element in the result of <span class="computeroutput">XMLAGG</span> is defined by the order of retrieval of the source data rows.
It is important to remember that the order of rows in an SQL resultset defined only if there&#39;s an explicit ORDER BY clause.
Hence if the order of elements in the resulting forest is important then XMLAGG should be applied to data that comes from
inner SELECT statement that has an ORDER BY clause, not e.g. from a table reference.
    </p>
    <p>
    Note that <span class="computeroutput">XMLAGG</span> is actually declared as <span class="computeroutput">DB.DBA.XMLAGG</span>
    but it is not important for plain use:
    for compatibility with other systems, any call of <span class="computeroutput">XMLAGG</span> in any SQl statement
    is always replaced with the call of <span class="computeroutput">DB.DBA.XMLAGG</span>, no matter
    which qualifier and user name are in use.
    </p>
  </div>
  <div class="refsect1">
      <div class="refsect1title">Parameters</div>
    <div class="refsect2">
        <span class="refsect2title">value_expression – </span>
       the result of one of the following functions <span class="computeroutput">XMLAGG</span>, 
            <span class="computeroutput">XMLCONCAT</span>, <span class="computeroutput">XMLELEMENT</span>, or <span class="computeroutput">XMLFOREST</span>.
      
    </div>
  </div>
  <div class="refsect1">
      <div class="refsect1title">Parameters</div>
    <p>The aggregate returns a vector that is a suitable input for functions <span class="computeroutput">XMLELEMENT</span>,
 <span class="computeroutput">XMLCONCAT</span> and <span class="computeroutput">xml_tree_doc</span>.
    </p>
  </div>
  <div class="refsect1">
      <div class="refsect1title">Examples</div>
    <a name="ex_XMLAGG_1" />
      <div class="example">
        <div class="exampletitle">XMLAGG() enclosed in XMLELEMENT()</div>
      <p>
The following example produces an &#39;Emp&#39; element with attribute &#39;Title&#39;
and a list of all employees having 
the title &#39;Sales Representative&#39; as element content.
</p>
      <div>
          <pre class="screen">
select XMLELEMENT (&#39;Emp&#39;, XMLATTRIBUTES (&#39;Sales Representative&#39; as &quot;Title&quot;),
  XMLAGG (XMLELEMENT (&#39;Name&#39;, &quot;FirstName&quot;, &#39; &#39;, &quot;LastName&quot;)))
  from &quot;Demo&quot;.&quot;demo&quot;.&quot;Employees&quot;
  where &quot;Title&quot; = &#39;Sales Representative&#39;;

callret
VARCHAR
_______________________________________________________________________________
 
&lt;Emp Title=&quot;Sales Representative&quot;&gt;
  &lt;Name&gt;Nancy Davolio&lt;/Name&gt;
  &lt;Name&gt;Janet Leverling&lt;/Name&gt;
  &lt;Name&gt;Margaret Peacock&lt;/Name&gt;
  &lt;Name&gt;Michael Suyama&lt;/Name&gt;
  &lt;Name&gt;Robert King&lt;/Name&gt;
  &lt;Name&gt;Anne Dodsworth&lt;/Name&gt;
&lt;/Emp&gt;
 
1 Rows. 
       </pre>
        </div>
    </div>
    <a name="ex_XMLAGG_2" />
      <div class="example">
        <div class="exampletitle">XMLAGG() that produces a sorted document</div>
      <p>
The result of the previous example contains an unsorted list of names.
This is because data rows were retrieved from &quot;Demo&quot;.&quot;demo&quot;.&quot;Employees&quot;
in primary key order, and this order has nothing common with fields &quot;FirstName&quot; and &quot;LastName&quot;.
To produce the sorted result, the query should contain ORDER BY in a subquery.
These two variants will work identically if &quot;FirstName&quot; never contains whitespaces
or nonprintable control characters, but the last one is formally more correct.
</p>
      <div>
          <pre class="screen">
select XMLELEMENT (&#39;Emp&#39;, XMLATTRIBUTES (&#39;Sales Representative&#39; as &quot;Title&quot;),
  XMLAGG (XMLELEMENT (&#39;Name&#39;, &quot;FirstName&quot;, &#39; &#39;, &quot;LastName&quot;)))
  from
    (select &quot;FirstName&quot;, &quot;LastName&quot;
     from &quot;Demo&quot;.&quot;demo&quot;.&quot;Employees&quot;
     where &quot;Title&quot;= &#39;Sales Representative&#39;
     order by 1, 2) as subq;

callret
VARCHAR
_______________________________________________________________________________
 
&lt;Emp Title=&quot;Sales Representative&quot;&gt;
  &lt;Name&gt;Anne Dodsworth&lt;/Name&gt;
  &lt;Name&gt;Janet Leverling&lt;/Name&gt;
  &lt;Name&gt;Margaret Peacock&lt;/Name&gt;
  &lt;Name&gt;Michael Suyama&lt;/Name&gt;
  &lt;Name&gt;Nancy Davolio&lt;/Name&gt;
  &lt;Name&gt;Robert King&lt;/Name&gt;
&lt;/Emp&gt;
 
1 Rows. 

select XMLELEMENT (&#39;Emp&#39;, XMLATTRIBUTES (&#39;Sales Representative&#39; as &quot;Title&quot;),
  XMLAGG (XMLELEMENT (&#39;Name&#39;, full_name)))
  from
    (select concat (&quot;FirstName&quot;, &#39; &#39;, &quot;LastName&quot;) as full_name
     from &quot;Demo&quot;.&quot;demo&quot;.&quot;Employees&quot;
     where &quot;Title&quot;= &#39;Sales Representative&#39;
     order by 1) as subq;

callret
VARCHAR
_______________________________________________________________________________
 
&lt;Emp Title=&quot;Sales Representative&quot;&gt;
  &lt;Name&gt;Anne Dodsworth&lt;/Name&gt;
  &lt;Name&gt;Janet Leverling&lt;/Name&gt;
  &lt;Name&gt;Margaret Peacock&lt;/Name&gt;
  &lt;Name&gt;Michael Suyama&lt;/Name&gt;
  &lt;Name&gt;Nancy Davolio&lt;/Name&gt;
  &lt;Name&gt;Robert King&lt;/Name&gt;
&lt;/Emp&gt;
 
1 Rows. 
        </pre>
        </div>
    </div>
  </div>
  <div class="refsect1">
      <div class="refsect1title">See Also</div>
    <p>
        <a href="fn_XMLELEMENT.html">XMLELEMENT()</a>
      </p>
    <p>
        <a href="fn_XMLATTRIBUTES.html">XMLATTRIBUTES()</a>
      </p>
    <p>
        <a href="fn_XMLFOREST.html">XMLFOREST()</a>
      </p>
    <p>
        <a href="fn_XMLCONCAT.html">XMLCONCAT()</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>