XSLT3.0
「XMLの鬼門:処理命令」で、oXygenなどのエディタが生成する処理命令は通常のXSLTスタイルシートでは処理が難しいことを説明しました. ではこれを解決するのは何か?恥ずかしながら、以下のSaxonのドキュメントを見るまで知りませんでした. saxon:assign …
XMLを処理する上で普段めったにお目にかからないのが処理命令です. 普通オーサリングで意図的に処理命令を書く人はまずいらっしゃらないでしょう?ではどのような場面で処理命令は使われるのでしょうか? OxygenやXMetaLなんかのXMLエディタを使うとTrackin…
普段Javaなんてめったに使わないのですが、たまたまコーディングをせざるを得なくなり、同業の女房の持っている本を見たら「Javaによる関数プログラミング」というのがあったので読んでみました. Java8になって追加されたメソッドを使い、コレクションをス…
よくDITAの導入時にお客様と議論することがあります. 「どの要素・属性を使用されるのですか?それがわからないとプラグインのスタイルシートなんて書けません!」 でも、必死にExcelでDITA 1.3の要素/属性一覧を作ってお客様に記入してもらっても、結果は…
XSLT 3.0はやはり実際の開発現場で使ってみるべきだと思います.そうしないとなかなか感触というものがわからない.(もちろん顧客の条件でおいそれとXSLTのバージョンを上げるわけにはゆかない場合もあるでしょうが) ちなみにXSLT勧告上の従来の2.0との違…
ちょっと進んで(?)次のように複数のパッケージを試してみます. [test-pkg-xslt3.xsl]
2017年の4月頃からずっとxsl:packageに興味を持ちいろいろやってみたのですが、仕様を読む力不足でなかなか動くところまでたどり着きませんでした.すこしだけですが試せるところまで来れたので、紹介します. まずxsl:packageを作るのは、それほど難しくあ…
XSLT 3.0は2017年7月8日にW3C勧告となりました.以下はxsl-listに投稿されたEditorのMichael Kayのものです.せっかくなので日本語訳してみました. Subject: [ANN] XSLT 3.0 and Saxon 9.8 From: Michael Kay <mike@saxonica.com> Date: 2017/06/09 2:26 To: xsl-list <xsl-list@lists.mulberrytech.com> XSLT 3.</xsl-list@lists.mulberrytech.com></mike@saxonica.com>…
そもそもパッケージとは何なのでしょうか? Saxonのメーリングリストなんかを見ているとMichael Kay博士はまずXSLT 3.0の記述を読んでほしいといっています.という訳で、2.8 Packages and Modulesを自分なりに訳してみました. In previous versions of the…
XSLT 2.0はxsl:functionが導入されて、これがXPathの中から呼び出せるのでずいぶんと便利になったものです.よくある関数の再帰でも、例えばxのn乗を求める場合、 <xsl:function name="ahf:powerOfY" as="xs:integer"> <xsl:param name="prmX" as="xs:integer"/> <xsl:param name="prmY" as="xs:integer"/> <xsl:choose> <xsl:when test="0 lt $prmY -1"> </xsl:when></xsl:choose></xsl:param></xsl:param></xsl:function>
XSLT 3.0ではパッケージが導入されます.そしてどうもパッケージについては、いろいろと勉強しなければならないことが多そうです. まず初めにXSLT 2.0までのXSLTスタイルシートの開発方法について振り返ってみました.例えばDITA-OTのプラグインのスタイル…
XSLT 3.0は2月にW3Cの勧告候補(Candidate Recommendation)も出て佳境の感じがします.実は私がXSLT 3.0に期待していることの一つにパッケージ機能があります.これは機会があったらまた書きたいと思いますが、今までのXSLTのxsl:include/xsl:importによる…
もう昔なので確たる年は忘れてしまいましたが社長から「XMLに命をかけろ(!?)」と言われて、XSLTの勉強をしだしたのが2000年頃だっと思います.XSLT 1.0は1999年11月に勧告になっていましたが、そのころ和書でXSLTが載っている本と言えばこのCD-ROMがオマケ…
前にも述べましたがXSLT 3.0の「高階関数」の機能はオープンソースのSaxon HEでは使えません.と思っていたら最新のoXygenで外部プラグインとして、最新の9.7.0.15が使用できるとのメールがありました.早速ダウンロードして見ると次のように組み込むことが…
次々と技術が進化するのでとてもキャッチアップできませんが、2月7日はXSLT 3.0にとって特別な日になったようです. XSL Transformations (XSLT) Version 3.0 W3C Candidate Recommendation 7 February 2017 https://www.w3.org/TR/2017/CR-xslt-30-20170207…
プログラミングで良く使用するデータ構造に、キーと値の関連性を保持するものがあります.多くのプログラミング言語ではmapという名前でこの機能をサポートしています.XSLT 3.0でもmapという「データ型」がサポートされるようになりました.今回はこれを簡…
xsl-listで話題になっているDimitre Novatchevさんのトレーニングコースのお話です.現在次のようなコースがあります. http://www.pluralsight.com/search/?searchTerm=Dimitre%20Novatchev - What's New in XSLT 3.0: Part 1 - The Evolution of XPath: Wh…
XSLT 3.0にずっと触れる機会がありませんでした.先日たまたま<xsl:styleeheet version="3.0">とコーディングする機会があり、久しぶりに3.0の機能を使ってみました.W3Cを見ると昨年の10月でWorking DraftのLast Callという状態になっていますね. さてせっかくなので3.0で便利になった機</xsl:styleeheet>…
XSL-Listに紹介されていましたが、XML Prague 2014におけるXSLT3.0のStreamingに関するMichael Kayの講演がYou Tubeに載っています。 http://www.youtube.com/watch?v=kAUPzeeW4Xg&t=186m18s しかしリスニング能力に欠けた私ではなかなか聞くのは大変でした…
もしこれを読まれたあなたがDimitre Novatchevさんをご存知だったら相当のXSLTに憧憬が深い勉強家じゃないかと思います.Dimitre Novatchevさんは、XSLT/XPathの世界ではとても有名な「オタク」です.すごいプログラムばっかり書いています.私もWEBを探しに…
ほったらかしにしていて閑話休題もないですが、 http://blogs.yahoo.co.jp/tnakita/13569767.html で紹介した.Exeltの開発が進んでいるようです. A distributed, streaming XSLT 3.0 processor .Net Exelt http://www.exselt.net/ 7月22日にprivate betaの…
前々回で関数を返す関数というのをつくってみました. <xsl:function name="ahf:getFunc" as="function(*)"> <xsl:param name="prmFuncName" as="xs:QName"/> <xsl:param name="prmArity" as="xs:integer"/> <xsl:sequence select="function-lookup($prmFuncName,$prmArity)"/> </xsl:function> しかしこの関数は、パラメータ与えられた関数名と引数の数を持った関数をfu…
XSLT2.0のインプリメンテーションが事実上SaxonとAltovaくらいしかないさびしい状況であることを以前書きました.ともかくマイクロソフトがXSLT2.0を放棄してしまったことが大きいです.私の周りでも、XSLTプロセッサといえばあのMSXMLと信じて相変わらずXSL…
oXygenを毎日使っていたのですが恥ずかしいことにSaxsonが9.3⇒9.4になっているのに気がつきませんでした.いろいろとこれでXSLT3.0について試すことができます.今回はXSLT3.0での関数について少し紹介してみます. まず関数の位置づけです.きわめてそっけ…
ちょっと遅くなってしまいましたが、この間XSLTをめぐっては、進展がありました.まず昨年の12月13日に、XPath3.0とXPath and XQuery Functions and Operators 3.0のドラフトが出ました.またXML Schema 1.1はProposed Recommendationから、この4月5日にReco…
Saxonのメーリングリストで、oXygenに搭載のSaxon9.3でストリーミングをやった話が載っていました.私も昔試してみた覚えがあったのですが、そもそもXSL3.0がエディタでのコンパイル通らなかったのであきらめたように覚えています.でも今の13.2は出来るよう…
XSLT3.0ではストリーミング機能が導入されますがそれに関連する関数が追加されています.今回はこれを紹介したいと思います.これらの関数には、copy-of、snapshot、outermost、innermost、haschildrenがあります.機能を読んでみましたが、ちょっと今までの…
次にPathPatternで変更されている点にRootedPatternの追加があります.RootedPatternは次のように定義されます. [7] RootedPattern ::= ( VarRefRoot | DocCall | IdCall | ElementWithIdCall | KeyCall ) (('/' | '//') RelativePathPattern)? [8] VarRefR…
パターンとはxsl:templateのmatch属性に書く条件のことです.XSLT3.0ではこのパターンがグンと拡張されます.どれくらい変わったかというと定義をみれば歴然とします.次が今のXSLT2.0でのパターンの定義です.きわめてシンプルでした. [1] Pattern ::= Pat…
現在まで紹介したXSLT3.0の要素ですがこれらはすでにSaxon9.3に実装されているものです.Saxon9.3の実装状況は次のURLで確認できます. http://www.saxonica.com/documentation/changes/intro/xslt30-93.xml ここではSaxon PEでは使えなかったり、またまだSa…