xml

ENTITY使ってますか

xml

全国のXMLerの皆さん、ENTITY使ってますか。DTDをそらで書ける皆さんなら当然使ってますよね。たとえば、Androidの設定ファイルなんかでも、 main.xml

Visual Studio 2008 Epress Edition の XML 関連機能制限

XML インスタンス ドキュメントからの XML スキーマの作成 XML エディタからの XSLT 出力の表示 XSLT スタイル シート編集中の自動検証 XML スキーマ エクスプローラ XSLT デバッガ らしい。ソースは知らん。 無料Visual Studioで始めるSilverlight 2超入門…

preceding-sibling軸が気になるお年頃

やっぱりきもいんだよなあ……。 XML <ひだまり荘> <ゆの/> <宮子/> <ヒロ/> <沙英/> </ひだまり荘> XPath //沙英/preceding-sibling::*[3] result <ゆの/> じゃんすか。文書出現順とは逆に辿る。でも、 XQuery for $_ in fn:doc()//沙英/preceding-sibling::* return $_ re…

XMLマスター:プロフェッショナル(データベース) 出題傾向【予想】

教科書(緑本)第4章、練習問題4-8以降要注意。タプルストリームをイメージすることが大事。復習すること。ただ、練習問題4-11からは教科書に、実際の試験ではここまでのクエリー式の解読は要求されないでしょうとある。 練習問題4-9 選択肢Cの結果はこうなる…

XMLマスター:プロフェッショナル(データベース) 出題傾向【予想】

これも長いクエリー式の中にさらりと出そう。つまらないミスは絶対にできない。 @attr/text() 属性値の取得にtext()は使えないっす。 fn:string(@attr) fn:string()関数を使いませう。

SXML

http://homepage1.nifty.com/blankspace/scheme/nsx.html id:javascripter:20080820:1219186386 これはおもしろい。JSONやYAMLもいいけど、Lisperにはこれジャマイカ。でも、id:javascripterさんには恐縮ですが、わざわざJavaScriptで実装する必要はない気が…

XMLマスター:プロフェッショナル(データベース) 出題傾向【予想】

まず、ダメな例を挙げます。 let $_ := /* return ( if (fn:true()) then () else () if (fn:true()) then () else () ) さて、どこがダメでしょう。正解は、ひとつ目のif式のあとに「,」がないこと。正しくは、 let $_ := /* return ( if (fn:true()) then …

XMLマスター:プロフェッショナル(データベース) 出題傾向【予想】

どうやら、「return節には、単一式しか書けないよ!」と、たったこれだけのことを覚えているかどうかを確かめるために、クエリー式の些細な違いを探すような、いやらしい問題が出そうな気配。例を挙げると…… let $_ := /* return (<hoge/>, <piyo/>, <fuga/>) これはいいけど、 le</fuga/></piyo/></hoge/>…

FLWOR式return節メモ

あーあー、return節単体じゃ書けないのか。 FLWORExpr ::= (ForClause | LetClause)+ WhereClause? OrderByClause? "return" ExprSingle http://www.w3.org/TR/xquery/#id-grammar for節か、let節が必ずひとつ以上要るのね。 はあ……これくらいならいいけど、…

Modules and Prologs

http://www.w3.org/TR/xquery/#id-query-prolog これの実装ないですかって社内MLに投げたら、「SAXONで行けるかも」(QuiPってのでもいけるらしい。google:QuiP XQuery)って教えてもらって、ぐぐったらMozFxの拡張が出てきた。 https://addons.mozilla.org/ja…

合格者体験談

XMLマスター:プロフェッショナル(データベース)合格者の貴重な意見。道は険しそうだな……。やっぱり普段から業務で使いたいよう><。 http://wobble.blog70.fc2.com/blog-entry-15.html http://www.xmlmaster.org/voice/#proDB xmlmaster.org、フィード吐け…

FLWOR式let節メモ

んんー、こんな使い方もできるのかっていう。 courseLIst.xml <courseList> <course genreNo="00"> <master instructorNo="00"/> </course> <course genreNo="01"> <master instructorNo="01"/> </course> </courseList> instructorList.xml <instructorList> <instructor no="00"><last>master</last><first>hoge</first></instructor> </instructorlist>

プロローグ

プロローグにいろいろ書けるらしい。 関数・変数・名前空間 XQueryのバージョン 文字符号化方式の宣言 モジュールやスキーマのインポート 関数 関数名は特定の名前空間に属する必要がある。ただし、クエリー内のみで使用する場合、定義済みの接頭辞「local」…

計算コンストラクタ

XQueryには、コンストラクタが2種類ある。 直接コンストラクタ return節などで記述したコンストラクタ もうひとつは、計算コンストラクタで、XDMの6種類に対応。 ノード コンストラクタ document document { 式 } element element QName { 式 } attribute at…

ネイティブXMLDB要らない子

あああ、学習を進めれば進めるほど、ネイティブXMLDBからXQueryでごにょごにょしながらデータ取ってくるより、そっくり取ってきてXSLTのほうが便利っぽい……。よって、ネイティブXMLDBは要らない……。

グルーピング

data.xml <movies> <movie> <title>ミケの冒険</title> <cat>ミケ</cat> <cat>トラ</cat> <cat>クロ</cat> </movie> <movie> <title>タマの冒険</title> <cat>タマ</cat> <cat>ミケ</cat> <cat>トラ</cat> </movie> </movies> 重複除去 fn:distinct-values(シーケンスのアイテム順は実装依存)を使って、バインド。 for $cat in fn:distinct-values(fn:doc("data.xml")/movies/mov…

XPath関数メモ fn:string()

hoge.xml <course> <master><last>中林</last><first>太郎</first></master> <master><last>中</last><first>林太郎</first></master> </course> hoge.xq for $master in fn:doc("hoge.xml")/course/master return <result> <master>{ fn:string($master) }</master> </result> 結果XMLデータ <result> <master>中林太郎</master> </result> …

FLWOR式for節メモ

うう、また教科書にきもい仕様が書いてある……。何なんだよFLWOR式。あ、ちなみにFLWORって、for, let, where, order by, returnの略ですう。 for $x1 in fn:doc("data.xml")/abc/def[1]/x, $x2 in fn:doc("data.xml")/abc/def[2]/x return <result>{ $x1, $x2 }</result> これ…

XQueryメモ

量化式 シーケンスの各アイテムについて論理和。 some $変数名 in 式 satisfies テスト式 シーケンスの各アイテムについて論理積。 every $変数名 in 式 satisfies テスト式

XQueryメモ

式を書くときは属性を最初に書く。これはOK。 { $course/@genre, $course/code, $course/name } これはNG。 { $course/code, $course/@genre, $course/name }

XPathで忘れがちなこと

ノードシーケンスの結合 - except演算子 シーケンス差をとる。 data8.xml <abc> <x>1</x> <x>2</x> <def/> <x>3</x> <x>4</x> <def/> </abc> chap3-25.xq fn:doc("data8.xml")//x[. << ../def[2]] except fn:doc("data8.xml")//x[. << ../def[1]] 結果 <x>3</x> <x>4</x>

XPathで忘れがちなこと

ノードシーケンスの結合 - intersect演算子 シーケンス積をとる。 data7.xml <abc> <def g="1"/> <x>1</x> <def g="2"/> <def g="3"/> <x>1</x> <def g="4"/> </abc> chap3-24.xq fn:doc("data7.xml")//def[. >> ../x[1]] intersect fn:doc("data7.xml")//def[. << ../x[2]] 結果 <def g="2"/> <def g="3"/></def></def>

XPathで忘れがちなこと

ノードシーケンスの結合 - union演算子 シーケンス和をとる。 data6.xml <abc> <x>1</x> <x>2</x> <def/> <x>3</x> <def/> <x>4</x> <x>5</x> </abc> chap3-23.xq fn:doc("data6.xml")//x[. << ../def[2]] union fn:doc("data6.xml")//x[. >> ../def[1]] 結果 <x>1</x> <x>2</x> <x>3</x> <x>4</x> <x>5</x>

XPathで忘れがちなこと

述部の話。 [. != ""][. <= 4]の結果と、 [. != "" and . <= 4]の結果は一致するとは限らない。and演算子は左辺と右辺、どちらを先に評価するか実装依存だから。

XPathで忘れがちなこと

パス式内での軸の使用 - preceding-sibling軸 preceding-sibling軸に()使うときもい。 ※註: eXistでクエリー投げても下記の結果にはなりません。あくまで仕様上の話。 data1.xml <abc> <x>1</x> <x>2</x> <def> <x>3</x> <x>4</x> <x>5</x> <x>6</x> </def> <x>7</x> <x>8</x> <def> <x>9</x> <x>10</x> </def> </abc> chap3-11.xq fn:doc("data1.xml")//x[4]/(precedi…

XPathで忘れがちなこと

あるいは、知らなかったこと。よくXMLマスター:プロフェッショナル(アプリケーション開発)受かったな。 パス式内での()の使用 うわー。使ったことない。やばい。 data1.xml <abc> <x>1</x> <x>2</x> <def> <x>3</x> <x>4</x> <x>5</x> <x>6</x> </def> <x>7</x> <x>8</x> <def> <x>9</x> <x>10</x> </def> </abc> chap3-08.xq fn:doc("data1.xml")/abc/(def/x)[5] 結果 <x></x>…

eXistのごくごく簡単な使い方

インストール JDK 6 Update 6 http://java.sun.com/javase/ja/6/download.html JDK 5.0 Update 15 http://java.sun.com/j2se/1.5.0/ja/download.html J2SE v 1.4.2_17 SDK http://java.sun.com/j2se/1.4.2/ja/download.html よしなに。 eXist 1.2.3 http://e…

XDMで追加されたデータ型

xs:untyped xs:anyAtomicType xs:untypedAtmic xs:yearMonthDuration xs:dayTimeDuration

XPath式メモ(基礎)

XPath 2.0式 「,」でつながれてない式 単一式(Single Expressions) 「,」でつながれた式 式(Expressions) 以下、スキーマによって型付けされていない場合の式メモ。 算術式 1 + 2 → 3 1 + <x>2</x> → 3 <x>1</x> + <x>2</x> → 3 1 + <x>abc</x> → error 値比較式 演算子 説明 eq equal ne…

XDM原子値

あとで書く。まだ理解不足。