Interstage Shunsaku Data Manager アプリケーション開発ガイド - Microsoft(R) Windows(R) 2000/ Microsoft(R) Windows Server(TM) 2003 - - UNIX共通 - |
目次
索引
![]() ![]() |
付録B 検索式、リターン式およびソート式の書式 | > B.4 リターン式 |
以下にリターン式の例を示します。
文書
<doc> <companyname>fujitsu</companyname> <employee position="manager"> <name>tanaka</name> <id>2000</id> <age>30才</age> </employee> </doc> |
返信される形式ごとの指定例を以下に示します。
リターン項目にパス式を指定した場合、該当する要素ノードをXML形式で返信します。
リターン項目に複数のパス式を指定した場合、指定した順に要素を返信します。
文書ごとにルートタグで囲んで返信します。
該当する要素が存在しない場合、要素は返信されません。
例1
リターン式
/結果:レコード全体を返信します。
<doc> <companyname>fujitsu</companyname> <employee position="manager"> <name>tanaka</name> <id>2000</id> <age>30才</age> </employee> </doc>
例2
リターン式
/doc/employee/name結果
<doc><name>tanaka</name></doc>
例3
リターン式
/doc/employee結果
<doc><employee position="manager"><name>tanaka</name><id>2000</id><age>30才</age></employee></doc>
例4
リターン式
/doc/companyname,/doc/employee/id結果
<doc><companyname>fujitsu</companyname><id>2000</id></doc>
例1
一部の要素が存在しない場合、どの要素が存在しないのか判断できません。この例では、/doc/president/nameが存在しないため、/doc/employee/nameだけが返却されます。このように、返却された要素が/doc/president/nameなのか、/doc/employee/nameなのか判断できません。リターン式
/doc/president/name,/doc/employee/name
結果
<doc><name>tanaka</name></doc>例2
取り出された要素のパスが判断できません。この例では、どちらのname要素が、/doc/president/nameなのか/doc/employee/nameなのか判断できません。文書
以下のXML文書がヒットしたものとして説明します。
<doc> <companyname>fujitsu</companyname> <president> <name>kurokawa</name> <id>1849</id> <age>61才</age> </president> <employee> <name>tanaka</name> <id>2000</id> <age>30才</age> </employee> </doc>リターン式
//name結果
<doc><name>kurokawa</name><name>tanaka</name></doc>
リターン項目にテキスト式、属性式または単一行関数指定を指定した場合、該当するテキスト式、属性式または単一行関数指定の結果を文字列で返信します。
リターン項目に複数のパス式を指定した場合、指定した順に文字列を返信します。
該当する要素が存在しない場合は、空エントリとして区切り文字で区切られます。
以下の例では、文字コード“\001”の文字は“\1”、文字コード“\002”の文字は“\2”と表現します。
例1 リターン項目の例
リターン式
/doc/employee/name/text()結果
Java APIの場合
tanaka.NET APIの場合
tanakaC APIの場合
tanaka \1
例2 リターン項目に属性式を指定した場合の例
リターン式
/doc/employee/@position結果
Java APIの場合
manager.NET APIの場合
managerC APIの場合
manager \1
例3 リターン項目にテキスト式、単一行関数指定、属性式を混在した場合の例
リターン式
/doc/employee/name/text(),val(/doc/employee/age/text()),/doc/employee/@position結果
Java APIの場合
tanaka,30,manager.NET APIの場合
tanaka \1 30 \1 managerC APIの場合
tanaka \1 30 \1 manager \1
リターン式に複数の要素が該当するような指定(複数のパス式指定や、“//”,“*”の指定など)をした場合、取り出された各要素の対応関係をアプリケーションで判断できなくなります。例
以下の文書では、suzukiには“age要素ノード”がないため、3つ目のリターン項目に対する結果の“30”が、tanakaのデータなのか、suzukiのデータなのかわかりません。文書
<doc> <companyname>fujitsu</companyname> <employee> <name>tanaka</name> <id>2000</id> <age>30才</age> </employee> <employee> <name>suzuki</name> <id>1000</id> </employee> </doc>リターン式
/doc/companyname/text(),/doc/employee/name/text(),val(/doc/employee/age/text())結果
Java APIの場合
fujitsu,tanaka|suzuki,30.NETの場合
fujitsu \1 tanaka \2 suzuki \1 30C APIの場合
fujitsu \1 tanaka \2 suzuki \1 30 \1
目次
索引
![]() ![]() |