2010-07-01から1ヶ月間の記事一覧
ここではunparsed-text()でスタイルシートからテキストファイルにアクセスできることを実例で紹介したいと思います.目的はもちろんテキストからのXML化です. ■ 最初は「超」簡単な例. テキストファイルを改行(U+000A)で区切り<p>~</p>で囲んで出力します. [入…
私の住んでいるところは天竜川をはさんで東西にアルプスがあり、河岸段丘沿いに湧き水が豊富です.そんな湧き水からきれいな小川が流れ出しています.暑い今日の午後、用事でお訪ねした家の前の小川は冷たい水がさらさらと流れて、脇は一面のかわいらしい白…
今回はURI関係の関数です.XSLT1.0ではこの分野の関数はありませんでした.様々な関数が追加されていますがどのようなものがあるでしょうか? ■ base-uri() base-uri()はnode()?をパラメータとして、そのbase-URIを返します.一般的にはnode()が入力XMLファ…
むくげ、好きな夏の花です.職場の南側に木立をつくっています.暑い夏の日差しの中、風にそよいでいました.「槿」と書くより「無窮花」の方がロマンを感じさせてくれます.韓国の国花だそうです.お隣の国なのに知りませんでした.
数値関係の関数について紹介したいと思います.XSLT1.0では数値を表す型が倍精度浮動小数点型のみだったのに対して、XSLT2.0ではXSL Schemaで定義された様々な数値型が使えるように拡張されています.xs:integer,xs:decimal,xs:float,xs:doubleやそれから派…
落雷ですっかり家の光のルータをやられてしまいました.気がついたのは出張の前夜、いくらメールを取り出したくてもどうにもなりません.NTTの故障受付センターはつながりっぱなしで、なかなか通じません.メッセージを残しておいたら、連絡を携帯にいただい…
ちょっと前に戻って、ちょっとだけ便利になった話をしたいと思います.テーマは is オペレータです. 新しく導入されたis オペレータは前後にノードのオペランドをもち、そのノードが同一か判定し結果をxs:booleanで返します.ここで「ノードが同一」という…
XSLT1.0では日付/時刻関係の関数がなく、各ベンダーごとに独自拡張が用意されていたり、MSXMLだったらJScript/VBScriptで、SaxonやXalanだったらJavaでと拡張関数を書いて呼び出しました.これらの集大成がhttp://www.exslt.org/date/index.htmlに詳しく残っ…
家を建てたときに、古くからあった井戸を埋めてももったいないと使えるようにしたのですが、十年以上も経つともう天板が腐ってボロボロ状態.今日は大工さんに来てもらって、井戸の修理です.井戸のポンプとパイプを取り天板を替えて塗装すると、なんとか形…
梅雨時の花といえばやはり紫陽花です.紫陽花という名前は、唐の詩人・白居易が別の花につけた名前を平安時代にこの名前を誤って当てはめてしまったことからついたそうです.でも昨日梅雨が明けました、強い夏の日差しのなかで、風にそよぐ姿を見ると「紫陽…
XSLT2.0では多くのstring関係の関数が追加されています.新しくなった関数についてまとめてみました.(本来XPath2.0の関数というべきなのかもしれませんが、そこはご容赦を!) ■ codepoints-to-string(),string-to-codepoint() 「XSLT2.0で便利になった機…
2010年の初め、XSL関係のメーリングリストとして有名な xsl-list@lists.mulberrytech.com に、Abel Braaksma氏から"Definite list of XSLT 2.0 processors? "と題するポストがありました. これは、以下のリストアーカイーブで見ることができます. http://w…
TYS125FでT山に登ったときの写真がPCの片隅に残っていました.あぁ、今思い起こせばいいバイクだったなあ.今のTLMを見るたびにそう思います.でも当時の感触では、腕のある人なら全日本も戦えるポテンシャルを持ったバイクだったんですが、野武士の私にとっ…
ふだんはあまり気にすることがないのですが、例えば同じ文章をXML化するとき、必ずしも同じ結果が得られる保障はありません.まずはエンコーディング、Shift_JIS、UTF-16から、UTF-8など、決まりを作っておかねば、いろいろなXML文書が作れてしまいます.ま…
先だって文字列の比較について紹介しましたが、XSLT2.0では文字列と整数(ユニコードのcodepoint値)の相互変換もできるようになりました. xs:integer*からxs:stringへは、codepoints-to-string() xs:string?からxs:integer*へは、string-to-codepoints() …
梅雨の晴れ間で、夕方にはひぐらしが鳴いています.子供が小さいときに植えたびわの木、寒い土地ということもあり、ずっと葉ばかりの木だったのですが、今年はかわいらしい実をつけてくれました.
出張で東京に行ってきました.行き先は田町ですが、実は私が最初に就職した会社があったところで、とても懐かしいところです.いつも慶応側にしか降りたことがなかったのですが、今日は芝浦口でした.芝浦口のほうがとてもにぎやかなのですね.初めて芝浦運…
XSLT1.0(XPath 1.0)では、文字列の大小比較はできませんでした.今考えると大変不便な話だったのですが、よくなんの疑問もなく使ったものです.XSLT2.0ではバッチリできるようになっています. 復習してみますとXSLT1.0では文字列の比較といえば、一致判定の <xsl:if test="$x = 'abc'"></xsl:if>…
会社の近くの休耕田に一面にけしの花が咲いているところがあります.毎年訪れていたのですが、今年はもう時期を過ぎてしまっていました.それでも後咲きの花できれいです.
every,some式は、言ってみれば「一発屋」ではないかと思います.例えば非常に簡単ですが、次のような例を考えてみましょう. <xsl:variable name="price" as="xs:integer+" select="(1000,980,900,800,790,700)"/> このときすべてのpriceの要素が1000以下であることをチェックするのには、every式をつかえば <xsl:if test="every $p in $price satisfies $p le 1000"> で済みます.でもこの例ではあまり</xsl:if></xsl:variable>…
以前castable asで整数のデータチェックをやる例を紹介しましたが、sequenceを使えば文字列がチェックできる例を紹介します. 変数$dayに"Sun","Mon","Tue","Wed","Thu","Fri","Sat"のいずれかの文字列が入っているかチェックするとします.まずXSLT1.0では…