<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://www.typea.info/tips_/index.php?action=history&amp;feed=atom&amp;title=DB2_XQuery</id>
	<title>DB2 XQuery - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://www.typea.info/tips_/index.php?action=history&amp;feed=atom&amp;title=DB2_XQuery"/>
	<link rel="alternate" type="text/html" href="https://www.typea.info/tips_/index.php?title=DB2_XQuery&amp;action=history"/>
	<updated>2026-05-05T11:00:09Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://www.typea.info/tips_/index.php?title=DB2_XQuery&amp;diff=5914&amp;oldid=prev</id>
		<title>2020年2月16日 (日) 04:24にPirotoによる</title>
		<link rel="alternate" type="text/html" href="https://www.typea.info/tips_/index.php?title=DB2_XQuery&amp;diff=5914&amp;oldid=prev"/>
		<updated>2020-02-16T04:24:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://www.typea.info/tips_/index.php?title=DB2_XQuery&amp;amp;diff=5914&amp;amp;oldid=4827&quot;&gt;差分を表示&lt;/a&gt;</summary>
		<author><name>Piroto</name></author>
		
	</entry>
	<entry>
		<id>https://www.typea.info/tips_/index.php?title=DB2_XQuery&amp;diff=4827&amp;oldid=prev</id>
		<title>2020年2月15日 (土) 08:34にPirotoによる</title>
		<link rel="alternate" type="text/html" href="https://www.typea.info/tips_/index.php?title=DB2_XQuery&amp;diff=4827&amp;oldid=prev"/>
		<updated>2020-02-15T08:34:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2020年2月15日 (土) 08:34時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;1行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==DB2 XQuery==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==DB2 XQuery==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[XML]][[XQuery]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[XML]] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;| &lt;/ins&gt;[[XQuery]] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;| &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*DB2 XML DB (pureXML)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*DB2 XML DB (pureXML)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Piroto</name></author>
		
	</entry>
	<entry>
		<id>https://www.typea.info/tips_/index.php?title=DB2_XQuery&amp;diff=4015&amp;oldid=prev</id>
		<title>2020年2月15日 (土) 08:19にPirotoによる</title>
		<link rel="alternate" type="text/html" href="https://www.typea.info/tips_/index.php?title=DB2_XQuery&amp;diff=4015&amp;oldid=prev"/>
		<updated>2020-02-15T08:19:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2020年2月15日 (土) 08:19時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;1行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==DB2 XQuery==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==DB2 XQuery==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[XML][XQuery]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[XML]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;][&lt;/ins&gt;[XQuery]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*DB2 XML DB (pureXML)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*DB2 XML DB (pureXML)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Piroto</name></author>
		
	</entry>
	<entry>
		<id>https://www.typea.info/tips_/index.php?title=DB2_XQuery&amp;diff=3109&amp;oldid=prev</id>
		<title>2020年2月15日 (土) 08:01にPirotoによる</title>
		<link rel="alternate" type="text/html" href="https://www.typea.info/tips_/index.php?title=DB2_XQuery&amp;diff=3109&amp;oldid=prev"/>
		<updated>2020-02-15T08:01:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://www.typea.info/tips_/index.php?title=DB2_XQuery&amp;amp;diff=3109&amp;amp;oldid=1816&quot;&gt;差分を表示&lt;/a&gt;</summary>
		<author><name>Piroto</name></author>
		
	</entry>
	<entry>
		<id>https://www.typea.info/tips_/index.php?title=DB2_XQuery&amp;diff=1816&amp;oldid=prev</id>
		<title>Piroto: ページの作成:「==DB2 XQuery==  [XML][XQuery]    *DB2 XML DB (pureXML)    *[http://www-05.ibm.com/e-business/linkweb/puc/jsp/index.jsp?country=760&amp;language=JPN IBM のマニュアル]…」</title>
		<link rel="alternate" type="text/html" href="https://www.typea.info/tips_/index.php?title=DB2_XQuery&amp;diff=1816&amp;oldid=prev"/>
		<updated>2020-02-15T07:31:31Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「==DB2 XQuery==  [XML][XQuery]    *DB2 XML DB (pureXML)    *[http://www-05.ibm.com/e-business/linkweb/puc/jsp/index.jsp?country=760&amp;amp;language=JPN IBM のマニュアル]…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==DB2 XQuery==&lt;br /&gt;
[XML][XQuery]&lt;br /&gt;
&lt;br /&gt;
*DB2 XML DB (pureXML)&lt;br /&gt;
&lt;br /&gt;
*[http://www-05.ibm.com/e-business/linkweb/puc/jsp/index.jsp?country=760&amp;amp;language=JPN IBM のマニュアル] からのメモ&lt;br /&gt;
*World Wide Web Consortium (W3C) によって設計された機能プログラミング言語&lt;br /&gt;
==XMLデータ==&lt;br /&gt;
=====柔軟=====&lt;br /&gt;
*XMLデータは柔軟で、予測不能で、散在しており、自己記述的&lt;br /&gt;
=====XQueryを使うしかない局面=====&lt;br /&gt;
*階層のどのレベルにあるか不明なオブジェクトのXMLを検索&lt;br /&gt;
*データにタイして構造変換を実行&lt;br /&gt;
*タイプが混合した結果を戻す&lt;br /&gt;
*既存のXMLを更新&lt;br /&gt;
==照会のコンポーネント==&lt;br /&gt;
===プロローグと照会本体からなる===&lt;br /&gt;
*プロローグには、照会処理環境を定義する一連の宣言&lt;br /&gt;
 &amp;lt;!-- プロローグ --&amp;gt;&lt;br /&gt;
 xquery version &amp;quot;1.0&amp;quot;;&lt;br /&gt;
 declare default element namespace &amp;quot;http://posample.org&amp;quot;;&lt;br /&gt;
 &amp;lt;!-- 照会本体 --&amp;gt;&lt;br /&gt;
 &amp;lt;price_list&amp;gt;{for $prod in db2-fn:xmlcolumn(&amp;quot;PRODUCT.DESCRIPTION&amp;quot;)/product/description&lt;br /&gt;
   order by xs:decimal($prod/price) descending&lt;br /&gt;
   return &amp;lt;product&amp;gt;{$prod/name, $prod/price}&amp;lt;/product&amp;gt;}&lt;br /&gt;
 &amp;lt;/price_list&amp;gt;&lt;br /&gt;
==XQuery と SQL/XML==&lt;br /&gt;
*XQuery を直接呼び出す照会は、キーワード XQUERY で始まる。&lt;br /&gt;
*SQL/XMLでは、以下の関数と述部を指定してSQLからXQueryを呼び出す&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!キーワード/関数/述部&lt;br /&gt;
!内容&lt;br /&gt;
|-&lt;br /&gt;
|XQUERY&lt;br /&gt;
|XQueryが使用されることを示し、大/小文字を区別する規則をサーバーに指示&lt;br /&gt;
|-&lt;br /&gt;
|XMLQUERY&lt;br /&gt;
|引数としてXQuery式を使用し、XMLシーケンスを戻す関数&lt;br /&gt;
|-&lt;br /&gt;
|XMLTABLE&lt;br /&gt;
|XQuery式を使用してXMLデータからSQLの表を生成関数&lt;br /&gt;
|-&lt;br /&gt;
|XMLEXISTS&lt;br /&gt;
|XQuery式が1つ以上の項目のシーケンスを戻すか判別する述部&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==XQuery 関数を使用したDB2データの検索==&lt;br /&gt;
*XQuery では以下のいずれかの関数でDB2からXMLデータを取得できる&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!関数&lt;br /&gt;
!概要&lt;br /&gt;
!例&lt;br /&gt;
|-&lt;br /&gt;
|db2-fn:xmlcolumn&lt;br /&gt;
|XML列を識別するリテラル引数を使用&lt;br /&gt;
|db2-fn:xmlcolumn('BUSINESS.ORDERS.PURCHASE_ORDER')/shipping_address/city&lt;br /&gt;
|-&lt;br /&gt;
|db2-fn:sqlquery&lt;br /&gt;
|fullselectを表す引数を使用。SQLの機能を使用できる&lt;br /&gt;
|db2-fn:sqlquery(&amp;quot;SELECT purchase_order FROM business.orders WHERE ship_date = '2005-06-15' &amp;quot;)/shipping_address/city&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;SQLは大文字、小文字を区別しないが、XMLは区別する。SQLは通常、自動的に大文字に変換されるが、XMLと混在する場合は明示的に大文字として記述する必要がある。ただし、二重引用符で囲むことで、SQLでも大文字小文字を区別するようにすることもできる。&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==XQuery および XPath のデータ・モデル==&lt;br /&gt;
===XDM===&lt;br /&gt;
*XQuery 式は、XQuery およぼ XPath のデータモデル XDM のインスタンスに対して作動し、XDMのインスタンスを戻す。&lt;br /&gt;
*XDMはアトミック値およびノードのシーケンスで説明される&lt;br /&gt;
===シーケンスおよび項目===&lt;br /&gt;
*シーケンスとは 0個以上の項目の順序づけられたコレクション&lt;br /&gt;
*項目はアトミック値またはノード&lt;br /&gt;
====シーケンスの記法====&lt;br /&gt;
*各項目はカンマで区切る&lt;br /&gt;
*全体は括弧で囲む&lt;br /&gt;
*空の括弧は、空のシーケンス&lt;br /&gt;
*単独の項目は、一つの項目を含むシーケンスと等価&lt;br /&gt;
*ネストできない&lt;br /&gt;
=====例=====&lt;br /&gt;
*36&lt;br /&gt;
*&amp;lt;dog/&amp;gt;&lt;br /&gt;
*(2,3,4)&lt;br /&gt;
*(36,&amp;lt;dog/&amp;gt;,&amp;quot;cat&amp;quot;)&lt;br /&gt;
*()&lt;br /&gt;
===アトミック値===&lt;br /&gt;
*組み込みアトミックデータ・タイプの1つのインスタンス&lt;br /&gt;
*ストリング、整数、10進数、日付などこれ以上分割できない&lt;br /&gt;
===ノード階層===&lt;br /&gt;
*シーケンスのノードは、1つ以上の階層を形成する。&lt;br /&gt;
*DB2は、文書、エレメント、属性、テキスト、処理命令、コメント ノードをサポート&lt;br /&gt;
 &amp;lt;products&amp;gt;&lt;br /&gt;
   &amp;lt;product pid=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;description&amp;gt;&lt;br /&gt;
     &amp;lt;name&amp;gt;Fleece jacket&amp;lt;/name&amp;gt;&lt;br /&gt;
     &amp;lt;price&amp;gt;19.99&amp;lt;/price&amp;gt;&lt;br /&gt;
     &amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;/product&amp;gt;&lt;br /&gt;
   &amp;lt;product pid=&amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;description&amp;gt;&lt;br /&gt;
       &amp;lt;name&amp;gt;Nylon pants&amp;lt;/name&amp;gt;&lt;br /&gt;
       &amp;lt;price&amp;gt;9.99&amp;lt;/price&amp;gt;&lt;br /&gt;
     &amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;/product&amp;gt;&lt;br /&gt;
 &amp;lt;/products&amp;gt;&lt;br /&gt;
*products というルートエレメントが含まれる&lt;br /&gt;
*ルートエレメントに product エレメントが含まれる&lt;br /&gt;
*product エレメントには、pid という属性と、description という子エレメントを持つ&lt;br /&gt;
&lt;br /&gt;
===ノードのプロパティ===&lt;br /&gt;
*各ノードは以下の1つ以上のプロパティを持つことができる&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!プロパティ&lt;br /&gt;
!内容&lt;br /&gt;
|-&lt;br /&gt;
|node-name&lt;br /&gt;
|QName として表現されるノードの名前&lt;br /&gt;
|-&lt;br /&gt;
|parent&lt;br /&gt;
|現行ノードの親ノード&lt;br /&gt;
|-&lt;br /&gt;
|type-name&lt;br /&gt;
|ノードの動的タイプ&lt;br /&gt;
|-&lt;br /&gt;
|children&lt;br /&gt;
|現行ノードの子であるノードのシーケンス&lt;br /&gt;
|-&lt;br /&gt;
|attributes&lt;br /&gt;
|現行ノードに属する属性ノードのセット&lt;br /&gt;
|-&lt;br /&gt;
|string-value&lt;br /&gt;
|ノードから抽出可能なストリング値&lt;br /&gt;
|-&lt;br /&gt;
|typead-value&lt;br /&gt;
|ノードから抽出可能な0個以上のアトミック値のシーケンス&lt;br /&gt;
|-&lt;br /&gt;
|in-scope namespaces&lt;br /&gt;
|ノードに関連づけられた範囲のネーム・スペース&lt;br /&gt;
|-&lt;br /&gt;
|content&lt;br /&gt;
|ノードの内容&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===DB2がサポートする6つのノード種類===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!ノード種類&lt;br /&gt;
!内容&lt;br /&gt;
|-&lt;br /&gt;
|文章ノード&lt;br /&gt;
|XML文章をカプセル化&lt;br /&gt;
|-&lt;br /&gt;
|エレメントノード&lt;br /&gt;
|XMLエレメントをカプセル化&lt;br /&gt;
|-&lt;br /&gt;
|属性ノード&lt;br /&gt;
|XML属性を意味する&lt;br /&gt;
|-&lt;br /&gt;
|テキストノード&lt;br /&gt;
|XMLの文字内容をカプセル化&lt;br /&gt;
|-&lt;br /&gt;
|処理命令ノード&lt;br /&gt;
|XML処理命令をカプセル化&lt;br /&gt;
|-&lt;br /&gt;
|コメントノード&lt;br /&gt;
|XMLコメントをカプセル化&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===XDMのシリアライゼーション===&lt;br /&gt;
*XQuery式の結果はXDMのインスタンスだが、シリアライゼーションを行い、XML表記に変換可能&lt;br /&gt;
*XMLSERIALIZE関数でも実行できる&lt;br /&gt;
&lt;br /&gt;
==XMLネームスペースと QName==&lt;br /&gt;
*XMLネームスペースは、命令の衝突を回避&lt;br /&gt;
*XMLネームスペースは、URIによって識別される名前のコレクション&lt;br /&gt;
*XQueryのエレメント、属性、データタイプ、関数に使用される名前の修飾方法が提供される&lt;br /&gt;
&amp;lt;blockquote&amp;gt;ネームスペース接頭部で修飾された名前が修飾名(QName)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
===QNameの構成===&lt;br /&gt;
*オプションのネームスペース接頭部＋ローカル名 (:で区切る)で構成&lt;br /&gt;
*照会の処理時に、ネームスペース接頭部にバインドされているURIを解決&lt;br /&gt;
&amp;lt;blockquote&amp;gt;QName は、W3C勧告　Namespace in XML で定義される構文に準拠&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
====静的に既知のネームスペース====&lt;br /&gt;
=====事前宣言されたネームスペース=====&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!接頭部&lt;br /&gt;
!XML&lt;br /&gt;
|-&lt;br /&gt;
|xml&lt;br /&gt;
|http://www.w3.org/XML/1998/namespace&lt;br /&gt;
|-&lt;br /&gt;
|xs&lt;br /&gt;
|http://www.w3.org/2001/XMLSchema&lt;br /&gt;
|-&lt;br /&gt;
|xsi&lt;br /&gt;
|http://www.w3.org/2001/XMLSchema-instance&lt;br /&gt;
|-&lt;br /&gt;
|fn&lt;br /&gt;
|http://www.w3.org/2005/xpath-functions&lt;br /&gt;
|-&lt;br /&gt;
|xdt&lt;br /&gt;
|http://www.w3.org/2005/xpath-datatypes&lt;br /&gt;
|-&lt;br /&gt;
|db2-fn&lt;br /&gt;
|http://www.ibm.com/xmlns/prod/db2/functions&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=====静的に既知のネームスペースセットを提供=====&lt;br /&gt;
*ネーム・スペース宣言またはデフォルト・ネーム・スペース宣言を使用&lt;br /&gt;
 declare namespace ns1 = &amp;quot;http://mycompany.com&amp;quot;;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;接頭部 ns1  が URI  http://mycompany.com  と関連付けられる&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*エレメント・コンストラクターのネーム・スペース宣言属性によって宣言&lt;br /&gt;
 &amp;lt;ns2:price xmlns:ns2=&amp;quot;http://mycompany.com&amp;quot;&amp;gt;14.99&amp;lt;/ns2:price&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;エレメントの有効範囲内で接頭部 ns2  を URI http://mycompany.com  にバインド&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*SQL/XML  によって提供&lt;br /&gt;
**SQL/XMLの事前宣言されたネーム・スペース&lt;br /&gt;
**SQL/XML  コンストラクターおよびその他の SQL/XML  式で宣言されるネーム・スペース&lt;br /&gt;
&lt;br /&gt;
==タイプ・システム==&lt;br /&gt;
*XQuery は強く型付けされた言語&lt;br /&gt;
*XQuery のタイプ・システムには、XMLスキーマの組み込みタイプおよび、XQueryの事前定義タイプが含まれる&lt;br /&gt;
*XML スキーマの組み込みタイプは、http://www.w3.org/2001/XMLScheme にあり、接頭部 xs を持つ&lt;br /&gt;
**xs:integer、xs:string など&lt;br /&gt;
*XQuery 事前定義タイプは、http://www.w3.org/2005/xpath-datatypes にあり、接頭部 xdt を持つ&lt;br /&gt;
**xdt:untypedAtomic、xdt:yearMonthDuration など&lt;br /&gt;
===タイプ階層===&lt;br /&gt;
*すべてのアトミック・タイプは、データ・タイプ xdt:anyAtomicType  から派生&lt;br /&gt;
{{ref xdt_hierarchy.jpg}}&lt;br /&gt;
&lt;br /&gt;
==プロローグ==&lt;br /&gt;
*照会の処理環境を定義する一連の宣言&lt;br /&gt;
&lt;br /&gt;
===宣言===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!宣言&lt;br /&gt;
!内容&lt;br /&gt;
!例&lt;br /&gt;
|-&lt;br /&gt;
|バージョン宣言&lt;br /&gt;
|XQuery の構文およびセマンティクスのバージョン&lt;br /&gt;
|xquery version &amp;quot;1.0&amp;quot;;&lt;br /&gt;
|-&lt;br /&gt;
|境界スペース宣言&lt;br /&gt;
|エレメント・コンストラクターによる境界空白の処理方法&lt;br /&gt;
|declare boundary-space preserve;&lt;br /&gt;
|-&lt;br /&gt;
|構成宣言&lt;br /&gt;
|構成モードを設定&lt;br /&gt;
|declare construction strip;&lt;br /&gt;
|-&lt;br /&gt;
|Copy-namespaces  宣言&lt;br /&gt;
|ネーム・スペースのバインディングを制御&lt;br /&gt;
|declare copy-namespaces preserve，inherit;&lt;br /&gt;
|-&lt;br /&gt;
|デフォルトのエレメント/タイプのネーム・スペース宣言&lt;br /&gt;
|接頭部なしの QNamesに使用するネーム・スペースを指定&lt;br /&gt;
|declare default element namespace &amp;quot;http://posample.org&amp;quot;;&lt;br /&gt;
|-&lt;br /&gt;
|デフォルトの関数ネーム・スペース宣言&lt;br /&gt;
|関数呼び出しの接頭部が付かない関数に使用されるネーム・スペース URI  を指定&lt;br /&gt;
|declare default function namespace &amp;quot;http://www.ibm.com/xmlns/prod/db2/functions&amp;quot;;&lt;br /&gt;
|-&lt;br /&gt;
|空の順序宣言&lt;br /&gt;
|FLWOR 式の order by 節が処理されるときの空のシーケンスまたは NaNの最大最小としての解釈&lt;br /&gt;
|declare default order empty greatest;&lt;br /&gt;
|-&lt;br /&gt;
|順序付けモード宣言&lt;br /&gt;
|照会の順序付けモード&lt;br /&gt;
|declare ordering unordered;&lt;br /&gt;
|-&lt;br /&gt;
|ネーム・スペース宣言&lt;br /&gt;
|ネーム・スペース接頭部を宣言&lt;br /&gt;
|declare namespace ns1 = &amp;quot;http://posample.org&amp;quot;;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==式==&lt;br /&gt;
*照会の基本的なビルディング・ブロック&lt;br /&gt;
*単独で使用することも、他の式と組み合わせて複合照会を形成することも可能&lt;br /&gt;
*いくつかの操作は、式の処理によく含められる。&lt;br /&gt;
*更新式は変換式の modify  節内でのみ使用できる&lt;br /&gt;
===動的コンテキストおよびフォーカス===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!フォーカスの構成要素&lt;br /&gt;
!内容&lt;br /&gt;
|-&lt;br /&gt;
|コンテキスト・アイテム&lt;br /&gt;
|現在処理中のアトミック値またはノード。ドット&amp;quot;.&amp;quot;でアイテムを検索可能&lt;br /&gt;
|-&lt;br /&gt;
|コンテキストの位置&lt;br /&gt;
|コンテキスト・アイテムの位置。fn:position()  関数によって検索可&lt;br /&gt;
|-&lt;br /&gt;
|コンテキスト・サイズ&lt;br /&gt;
|アイテム数。fn:last()関数によって検索可&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===基本式===&lt;br /&gt;
====リテラル====&lt;br /&gt;
*アトミック値の直接構文表記&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!リテラル&lt;br /&gt;
!タイプ&lt;br /&gt;
!内容&lt;br /&gt;
|-&lt;br /&gt;
|数値&lt;br /&gt;
|xs:integer、xs:decimal、xs:double&lt;br /&gt;
|数値、 e  または E 、小数点からなる&lt;br /&gt;
|-&lt;br /&gt;
|ストリング&lt;br /&gt;
|xs:string&lt;br /&gt;
|単一引用符 (')または二重引用符(&amp;quot;)に囲まれたアトミック値。単一引用符で区切られたストリング・リテラル内に単一引用符を含めるには、2  つの連続する単一引用符を指定&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
===変数参照===&lt;br /&gt;
*変数参照は、ドル記号 ($)  が先頭に付加された NCName&lt;br /&gt;
====変数を有効範囲内に追加====&lt;br /&gt;
*ホスト言語環境、SQL/XML、XMLQUERY  関数、 XMLTABLE  関数、または XMLEXISTS  述部によって有効範囲内変数に追加&lt;br /&gt;
*XQuery  式によって変数を値にバインド&lt;br /&gt;
**変数をバインドできる式は、FLWOR  式および量化式&lt;br /&gt;
**関数呼び出しも、関数本体を実行する前に、関数の仮パラメーターに値をバインド&lt;br /&gt;
**バインドされた式全体を通して有効範囲内&lt;br /&gt;
&lt;br /&gt;
=====例=====&lt;br /&gt;
*FLWOR  式が、変数 $seq をシーケンス (10,  20,  30)  にバインド&lt;br /&gt;
 let $seq := (10, 20, 30)&lt;br /&gt;
 return $seq[2];&lt;br /&gt;
&amp;lt;blockquote&amp;gt;戻り値は 20&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
===コンテキスト・アイテム式===&lt;br /&gt;
*1  個のピリオド文字 (.)  から構成&lt;br /&gt;
*現在処理中の項目 (コンテキスト・アイテム)  に評価&lt;br /&gt;
=====例=====&lt;br /&gt;
*範囲式 1 to 100 で戻されるシーケンスのすべての項目に係数演算子を呼び出すコンテキスト・アイテム式&lt;br /&gt;
 (1 to 100)[. mod 5 eq 0]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;1  から 100  までの数字で、5  で均等に割り切れる整数のシーケンス&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
===関数呼び出し===&lt;br /&gt;
*QName  と、その後に続く括弧で囲んだ 0  個以上の式のリスト(これを引数と呼びます)  で構成&lt;br /&gt;
**組み込み XQuery  関数、 DB2  固有の関数の呼び出しをサポート&lt;br /&gt;
====例====&lt;br /&gt;
=====ストリング引数を使用した関数呼び出し=====&lt;br /&gt;
*引数を取り、すべての文字が大文字である xs:string  タイプの値を戻&lt;br /&gt;
 fn:upper-case($ns1_customerinfo/ns1:addr/@country)&lt;br /&gt;
=====シーケンス引数を使用した関数呼び出し=====&lt;br /&gt;
*単一引数として、シーケンス (1,  2,  3)  を取ります&lt;br /&gt;
 fn:max((1, 2, 3))&lt;br /&gt;
===パス式===&lt;br /&gt;
*XML  ツリー内のノードを識別&lt;br /&gt;
*XPath  2.0  の構文に基づく&lt;br /&gt;
*パス式は、スラッシュ (/)  またはダブルスラッシュ (//)  文字で区切られた 1  つ以上のステップで構成&lt;br /&gt;
====構文====&lt;br /&gt;
*各ステップは、軸ステップまたはフィルター式のいずれか&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!パス式&lt;br /&gt;
!内容&lt;br /&gt;
|-&lt;br /&gt;
|軸ステップ&lt;br /&gt;
|指定された軸によってコンテキスト・ノードから到達できるノードのシーケンスを戻す&lt;br /&gt;
|-&lt;br /&gt;
|フィルター式&lt;br /&gt;
|基本式と、それに続く 0  個以上の述部で構成&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[File:0337_xpath_expression.jpg]]&lt;br /&gt;
 &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!記号&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|/&lt;br /&gt;
|パスが、コンテキスト・ノードを含むツリーのルート・ノードから開始されることを示す。パス式内のスラッシュ文字は、ステップを分離&lt;br /&gt;
|-&lt;br /&gt;
|//&lt;br /&gt;
|パスが、コンテキスト・ノードを含むツリーのルート・ノードと、そのルート・ノードのすべての子孫で構成される初期ノード・シーケンスから開始されることを示す。ステップ間のダブルスラッシュ文字は、省略構文参照&lt;br /&gt;
|-&lt;br /&gt;
|axis&lt;br /&gt;
|XML  文書またはフラグメントの移動方向。child、descendant、attribute、self、descendant-or-self、parent などをサポート&lt;br /&gt;
|-&lt;br /&gt;
|node-test&lt;br /&gt;
|軸ステップによって選択される各ノードについて true  でなければならない条件&lt;br /&gt;
|-&lt;br /&gt;
|PrimaryExpression&lt;br /&gt;
|基本式&lt;br /&gt;
|-&lt;br /&gt;
|PredicateExpression&lt;br /&gt;
|シーケンスの項目が保持されているか、廃棄されているかを判別する式&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
====例====&lt;br /&gt;
=====2つの述部を含む軸ステップ=====&lt;br /&gt;
*secretary 子エレメントおよび assistant 子エレメントの両方を持つ、コンテキスト・ノードの子であるすべての employee を選択&lt;br /&gt;
 child::employee[secretary][assistant]&lt;br /&gt;
=====パス式内のステップとしてフィルター式を使用=====&lt;br /&gt;
*指定された book  内で複数の footnote  を含むすべての chapter  または appendixを戻す&lt;br /&gt;
 $book/(chapter | appendix)[fn:count(footnote)&amp;gt; 1]&lt;br /&gt;
===軸ステップ===&lt;br /&gt;
=====構成=====&lt;br /&gt;
*軸、ノード・テスト、述部の 3  つの部分から構成&lt;br /&gt;
*オプションの軸 は、移動の方向を指定&lt;br /&gt;
*ノード・テストは、ノードの選択に使用する基準を指定&lt;br /&gt;
*軸ステップの結果は、常にゼロ以上のノードのシーケンス&lt;br /&gt;
=====フォワード・ステップとリバース・ステップ=====&lt;br /&gt;
*軸ステップは、フォワード・ステップまたはリバース・ステップに分けられる&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!ステップ&lt;br /&gt;
!内容&lt;br /&gt;
|-&lt;br /&gt;
|フォワード・ステップ&lt;br /&gt;
|コンテキスト・ノードから開始し、文書の順序で XMLツリーを移動&lt;br /&gt;
|-&lt;br /&gt;
|リバース・ステップ&lt;br /&gt;
|コンテキスト・ノードから開始し、文書の順序の逆で XML  ツリーを移動&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=====例=====&lt;br /&gt;
*child が軸の名前、para がこの軸上で選択されるエレメント・ノードの名前&lt;br /&gt;
 child::para&lt;br /&gt;
&amp;lt;blockquote&amp;gt;この例の軸ステップでは、コンテキスト・ノードの子であるすべての para エレメントを選択&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
===軸===&lt;br /&gt;
*XML  文書内を移動する方向を指定する軸ステップの一部&lt;br /&gt;
*軸は、フォワード軸またはリバース軸のいずれかに分類&lt;br /&gt;
&lt;br /&gt;
====DB2 XQuery でサポートされる軸====&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!軸&lt;br /&gt;
!方向&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|child&lt;br /&gt;
|順&lt;br /&gt;
|コンテキスト・ノードの子&lt;br /&gt;
|-&lt;br /&gt;
|descendant&lt;br /&gt;
|順&lt;br /&gt;
|コンテキスト・ノードの子孫&lt;br /&gt;
|-&lt;br /&gt;
|属性&lt;br /&gt;
|順方&lt;br /&gt;
|コンテキスト・ノードの属性&lt;br /&gt;
|-&lt;br /&gt;
|self&lt;br /&gt;
|順&lt;br /&gt;
|コンテキスト・ノードのみ&lt;br /&gt;
|-&lt;br /&gt;
|descendant-or-self&lt;br /&gt;
|順&lt;br /&gt;
|コンテキスト・ノードおよびコンテキスト・ノードの子孫&lt;br /&gt;
|-&lt;br /&gt;
|parent&lt;br /&gt;
|逆&lt;br /&gt;
|コンテキスト・ノードの親&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
==ノード・テスト==&lt;br /&gt;
*軸ステップにより選択される各ノードについて true  でなければならない条件&lt;br /&gt;
*名前テストまたは種類テスト&lt;br /&gt;
===名前テスト===&lt;br /&gt;
*QName  またはワイルドカードで構成&lt;br /&gt;
*軸ステップで名前テストが指定されると、ステップは、QName  またはワイルドカードに一致する指定された軸上のノードを選択&lt;br /&gt;
====DB2  XQuery  でサポートされる名前テスト====&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!テスト&lt;br /&gt;
!説明&lt;br /&gt;
!例&lt;br /&gt;
!例の説明&lt;br /&gt;
|-&lt;br /&gt;
|QName&lt;br /&gt;
|QNameに等しい(指定された軸上の)任意のノードに一致&lt;br /&gt;
|child::para&lt;br /&gt;
|名前テスト para は、子軸上のすべての paraエレメントを選択&lt;br /&gt;
|-&lt;br /&gt;
|*&lt;br /&gt;
|指定された軸上のすべてのノードに一致&lt;br /&gt;
|child::*&lt;br /&gt;
|子軸上のすべてのエレメントに一致&lt;br /&gt;
|-&lt;br /&gt;
|NCName:*&lt;br /&gt;
|QName  の接頭部部分を表す NCNameを指定&lt;br /&gt;
|child::ns1:*&lt;br /&gt;
|接頭部 ns1 にバインドされているネーム・スペースに関連付けられた子軸上のすべてのエレメントに一致&lt;br /&gt;
|-&lt;br /&gt;
|*:NCName&lt;br /&gt;
|QName  のローカル部分を表すNCNameを指定&lt;br /&gt;
|child::*:customerinfo&lt;br /&gt;
|エレメント名に関連付けられたネーム・スペースには関係なく、ローカル名 customerinfo を持つ、子軸上のすべてのエレメントに一致&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
===種類テスト===&lt;br /&gt;
*種類テストに一致する指定された軸上のノードのみを選択&lt;br /&gt;
==== DB2  XQuery でサポートされる種類テスト====&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!テスト&lt;br /&gt;
!説明&lt;br /&gt;
!例&lt;br /&gt;
!例説明&lt;br /&gt;
|-&lt;br /&gt;
|node()&lt;br /&gt;
|指定された軸上の任意のノード&lt;br /&gt;
|child::node()&lt;br /&gt;
|子軸上の任意のノードを選択&lt;br /&gt;
|-&lt;br /&gt;
|text()&lt;br /&gt;
|指定された軸上の任意のテキスト・ノードに一致&lt;br /&gt;
|child::text()&lt;br /&gt;
|子軸上の任意のテキスト・ノードを選択&lt;br /&gt;
|-&lt;br /&gt;
|comment()&lt;br /&gt;
|指定された軸上の任意のコメント・ノードに一致&lt;br /&gt;
|child::comment()&lt;br /&gt;
|子軸上の任意のコメント・ノードを選択&lt;br /&gt;
|-&lt;br /&gt;
|processing-instruction()&lt;br /&gt;
|指定された軸上の任意の処理命令ノードに一致&lt;br /&gt;
|child::processing-instruction()&lt;br /&gt;
|子軸上の任意の処理命令ノードを選択&lt;br /&gt;
|-&lt;br /&gt;
|element() または element(*)&lt;br /&gt;
|指定された軸上の任意のエレメント・ノードに一致し&lt;br /&gt;
|child::element()&lt;br /&gt;
|子軸上の任意のエレメント・ノードを選択&lt;br /&gt;
|-&lt;br /&gt;
|attribute() または attribute(*)&lt;br /&gt;
|指定された軸上の任意の属性ノードに一致&lt;br /&gt;
|child::attribute()&lt;br /&gt;
|子軸上の任意の属性ノードを選択&lt;br /&gt;
|-&lt;br /&gt;
|document-node()&lt;br /&gt;
|指定された軸上の任意の文書ノードに一致&lt;br /&gt;
|self::document-node()&lt;br /&gt;
|コンテキスト・ノードである文書ノードを選択&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===パス式の省略構文===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!省略構文&lt;br /&gt;
!説明&lt;br /&gt;
!省略例&lt;br /&gt;
!元構文&lt;br /&gt;
|-&lt;br /&gt;
|軸の指定なし&lt;br /&gt;
|ノード・テストとして軸ステップがattribute() を指定したとき以外は、child::の省略形。軸ステップが属性テストを指定するときは、省略される軸は、attribute:: の省略形です。&lt;br /&gt;
|section/para&lt;br /&gt;
|child::section/child::para&lt;br /&gt;
|-&lt;br /&gt;
|@&lt;br /&gt;
|attribute:: の省略形&lt;br /&gt;
|section/@id&lt;br /&gt;
|child::section/attribute::id&lt;br /&gt;
|-&lt;br /&gt;
|//&lt;br /&gt;
|パス式の先頭にあるとき以外は、/descendant-or-self::node()/ の省略形&lt;br /&gt;
|div1//para&lt;br /&gt;
|child::div1/descendant-or-self::node() /child::para&lt;br /&gt;
|-&lt;br /&gt;
|..&lt;br /&gt;
|parent::node() の省略形&lt;br /&gt;
|../title&lt;br /&gt;
|parent::node()/child::title&lt;br /&gt;
|-&lt;/div&gt;</summary>
		<author><name>Piroto</name></author>
		
	</entry>
</feed>