📄 xquery_functions.asp
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>XQuery Functions</title>
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="Keywords" content="xml,tutorial,html,dhtml,css,xsl,xhtml,javascript,asp,ado,vbscript,dom,sql,colors,soap,php,authoring,programming,training,learning,beginner's guide,primer,lessons,school,howto,reference,examples,samples,source code,tags,demos,tips,links,FAQ,tag list,forms,frames,color table,w3c,cascading style sheets,active server pages,dynamic html,internet,database,development,Web building,Webmaster,html guide" />
<meta name="Description" content="Free HTML XHTML CSS JavaScript DHTML XML DOM XSL XSLT RSS AJAX ASP ADO PHP SQL tutorials, references, examples for web building." />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<link rel="stylesheet" type="text/css" href="../stdtheme.css" />
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "../../https@ssl./default.htm" : "../../www./default.htm");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-3855518-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
</head>
<body>
<a name="top"></a>
<table cellpadding="0" cellspacing="0" width="100%" bgcolor="#808080">
<tr>
<td width="234" valign="top">
<a href="../default.htm"><img src="../images/w3default80.jpg" border="0" alt="W3Schools" /></a>
</td>
<th valign="middle" align="left" class="right">
<script type="text/javascript"><!--
google_ad_client = "pub-3440800076797949";
/*txtimg*/
google_ad_slot = "5330033957";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript" src="../../pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<noscript>
<a href="../default.asp" target="_blank"><img src="../banners/w6.gif" border="0" alt="W3Schools" /></a>
</noscript>
<br /></th>
</tr>
</table>
<table style="margin-left:1px" width="800px" border="0" cellpadding="0" cellspacing="2">
<tr>
<td width="137" class="content" valign="top"><br />
<a class="left" href="../default.asp" target="_top">
<img src="../images/homeicon.gif" border="0" alt="home" /></a>
<a class="left" href="../default.asp" target="_top">
<b>HOME</b></a>
<br /><br />
<b>XQuery Basic</b><br />
<a class="left" target="_top" href="default.asp" >XQuery HOME</a><br />
<a class="left" target="_top" href="xquery_intro.asp" >XQuery Intro</a><br />
<a class="left" target="_top" href="xquery_example.asp" >XQuery Example</a><br />
<a class="left" target="_top" href="xquery_flwor.asp" >XQuery FLWOR</a><br />
<a class="left" target="_top" href="xquery_flwor_html.asp" >XQuery HTML</a><br />
<a class="left" target="_top" href="xquery_terms.asp" >XQuery Terms</a><br />
<a class="left" target="_top" href="xquery_syntax.asp" >XQuery Syntax</a><br />
<br />
<b>XQuery Advanced</b><br />
<a class="left" target="_top" href="xquery_add.asp" >XQuery Add</a><br />
<a class="left" target="_top" href="xquery_select.asp" >XQuery Select</a><br />
<a class="left" target="_top" href="xquery_functions.asp" style='font-weight:bold;'>XQuery Functions</a><br />
<a class="left" target="_top" href="xquery_summary.asp" >XQuery Summary</a><br />
<br />
<b>XQuery Reference</b><br />
<a class="left" target="_top" href="xquery_reference.asp" >XQuery Reference</a><br />
<br />
<b>Selected Reading</b><br />
<a class="left" target="_top" href="../browsers/browsers_stats.asp">Web Statistics</a><br />
<a class="left" target="_top" href="../site/site_glossary.asp">Web Glossary</a><br />
<a class="left" target="_top" href="../hosting/default.asp">Web Hosting</a><br />
<a class="left" target="_top" href="../quality/default.asp">Web Quality</a><br /><br />
<a class="left" target="_top" href="../forum/default.asp">W3Schools Forum</a><br /><br />
<a class="left" target="_top" href="../about/about_helping.asp">Helping W3Schools</a><br /><br />
<script type="text/javascript"><!--
google_ad_client = "pub-3440800076797949";
/*LeftLinkUnit*/
google_ad_slot = "4854527104";
google_ad_width = 120;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="../../pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td>
<td valign="top">
<table style="border: 1px solid gray" width="100%" bgcolor="#FFFFFF" border="0" cellpadding="5" cellspacing="0">
<tr>
<td>
<h1>XQuery Functions</h1>
<a href="xquery_select.asp"><img alt="previous" border="0" src="../images/btn_previous.gif" /></a>
<a href="xquery_summary.asp"><img alt="next" border="0" src="../images/btn_next.gif" width="100" height="20" /></a>
<hr />
<p class="intro">XQuery 1.0, XPath 2.0, and XSLT 2.0 share the same functions library.</p>
<hr />
<h2>XQuery Functions</h2>
<p>XQuery includes over 100 built-in functions. There are
functions for string values, numeric values, date and time comparison, node and QName manipulation, sequence manipulation, Boolean
values, and
more. You can also define your own functions in XQuery.</p>
<hr />
<h2>XQuery Built-in Functions</h2>
<p>The URI of the XQuery function namespace is:<br />
http://www.w3.org/2005/02/xpath-functions</p>
<p>The default prefix for the function namespace is fn:.</p>
<p><b>Tip:</b> Functions are often called with the fn: prefix, such as fn:string().
However, since fn: is the default prefix of the namespace, the function names do
not need to be prefixed when called.</p>
<p><a href="../xpath/xpath_functions.asp">The reference of all the built-in XQuery 1.0 functions is located
in our XPath tutorial</a>.</p>
<hr />
<h2>Examples of Function Calls</h2>
<p>A call to a function can appear where an expression may appear. Look at the
examples below:</p>
<p>Example 1: In an element</p>
<table width="100%" border="1" class="ex" cellspacing="0" id="table14">
<tr>
<td>
<pre><name>{uppercase($booktitle)}</name></pre>
</td>
</tr>
</table>
<p>Example 2: In the predicate of a path expression</p>
<table width="100%" border="1" class="ex" cellspacing="0" id="table15">
<tr>
<td>
<pre>doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']</pre>
</td>
</tr>
</table>
<p>Example 3: In a let clause</p>
<table width="100%" border="1" class="ex" cellspacing="0" id="table16">
<tr>
<td>
<pre>let $name := (substring($booktitle,1,4))</pre>
</td>
</tr>
</table>
<br />
<hr />
<h2>XQuery User-Defined Functions</h2>
<p>If you cannot find the XQuery function you need, you can write
your own.</p>
<p>User-defined functions can be defined in the query or in a separate library.</p>
<h3>Syntax</h3>
<table width="100%" border="1" class="ex" cellspacing="0" id="table13">
<tr>
<td>
<pre>declare function <i>prefix:function_name</i>($<i>parameter </i>AS<i> datatype</i>)
AS <i>returnDatatype</i>
{</pre>
<pre>(: ...function code here... :)</pre>
<pre>};</pre>
</td>
</tr>
</table>
<p>Notes on user-defined functions: </p>
<ul>
<li>Use the declare function keyword</li>
<li>The name of the function must be prefixed</li>
<li>The data type of the parameters are mostly the same as the data types
defined in XML Schema</li>
<li>The body of the function must be surrounded by curly braces</li>
</ul>
<h3>Example of a User-defined Function Declared in the Query</h3>
<table width="100%" border="1" class="ex" cellspacing="0" id="table17">
<tr>
<td>
<pre>declare function local:minPrice(
$price as xs:decimal?,
$discount as xs:decimal?)
AS xs:decimal?
{
let $disc := ($price * $discount) div 100
return ($price - $disc)
};</pre>
<pre>(: Below is an example of how to call the function above :)</pre>
<pre><minPrice>{local:minPrice($book/price, $book/discount)}</minPrice></pre>
</td>
</tr>
</table>
<br />
<hr />
<a href="xquery_select.asp"><img alt="previous" border="0" src="../images/btn_previous.gif" width="100" height="20" /></a>
<a href="xquery_summary.asp"><img alt="next" border="0" src="../images/btn_next.gif" width="100" height="20" /></a>
<br />
<hr />
<!-- **** SPOTLIGHTS 1 **** -->
<iframe src="../banners/aspallframe.asp" height="110" width="485"
marginwidth="0" marginheight="0" frameborder="0" scrolling="no">
Your browser does not support inline frames or is currently configured not to display inline frames.
</iframe>
<hr />
<!-- **** SPOTLIGHTS 2 **** -->
<h2><a target="_blank" href="../../www.altova.com/ref/@s=w3s_spotlight&q=xmlspy">
Altova
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -