2011-01-01から1年間の記事一覧

岡山行き

こんど進学する下の子のアパート探しで岡山県まで行って来ました.中央道、名神、山陽道とのりついてやっとのことたどり着きました.岡山といっても岡山市のお隣の倉敷です.なんとかアパートを予約して、せっかくだからと倉敷の町まで出て大原美術館を見学…

XSLT3.0への道(3) 訂正 xsl:evaluate

すみません.xsl:evaluateの記述と例は誤りがありました. > xsl:evaluateの@xpathからは、xsl:variableやxsl:paramを参照することができないとされています. > 参照するには、xsl:evaluateの下位要素のxsl:with-paramを使います. は、誤りです.@xpathの…

春のしるし

先週は4日間にわたって大雪が降りました.私の住んでいる長野県南部は比較的雪が少なく、天気予報で県庁所在地の長野市が雪でも、こちらは晴れていることが多いのです.東西の山だけは雪で真っ白ですが、ふもとは全然積もっていないこともめずらしくありませ…

XSLT3.0への道(2) xsl:try, xsl:catch

XSLT3.0からはXSLTスタイルシートでも、一般のプログラミング言語でいうところのtry、catchが使えるようになります.これはXSLT2.0で変数やパラメータの型定義が導入され、テンプレートのパラメータの必須有無、またテンプレートの戻り値も型定義できるよう…

直前のノードが無視可能か調べる!

DITAというのは、うまく言えませんが非常にルーズな側面があります.例えば、セクション(section)のデータモデルは、 ( text data or ph or codeph or synph or filepath or msgph or userinput or systemoutput or b or u or i or tt or sup or sub or ui…

XSLT3.0への道(1) xsl:evaluate

会社で開発用にSaxonをバージョンアップしました.Professional Edition (PE)ですが、XSLT3.0の機能の一部が使えます.せっかくXSLT3.0のワーキングドラフトも出ていることなので、少しXSLT3.0の例を紹介したいと思います.ただし、あくまでもW3Cのワーキン…

<oXygen/> XML Editor version 12.1

この前お客さんの所に会議でうかがった際にDITAのDTDの修正の話になりました.DTDの特殊化の作業は私がやっているのですが、CMSベンダーの方から、DTDの修正をCMS環境の方でもできるようにして欲しいとの要望が出されたのです.今まで私がやっているのはDITA…

閑話休題:XSLT3.0への道

ひどいことにW3CのXSLのホームページは2009年11月からちっとも更新されていません.このページではXSL、XPath、XSLTをカバーしているはずなのですが、最新の動向は何もないように見えます. http://www.w3.org/Style/XSL/ しかしページが更新されていなくと…

Word2010で苦戦(その3)

またWord2010で苦戦しています.こんどはWord2010のWordML(.xml)出力です.Word2010のネイティブ出力形式はOpen XML(.docx)ですから、WordML出力は過去のWord2003との互換性のためだけにあると言ってもおかしくありません.でもいくらそうであってもビックリ…

XSLT 2.0で便利になった機能(41) treat as演算子

今回はtreat as演算子を紹介します.treat as演算子はちょっと難しい概念の中で定義されています.それは、XPathの式の処理系のインプリメントに関係しています. XPathの式処理は、勧告によれば「static analysis phase」と「dynamic evaluation phase」の…

Word2010で苦戦(その2)

Word2010のActive-Xコントロールの件ですが、やっと原因がわかりました.なんとActive-Xの実装の問題でした. 解析してみたのですが次のようになります.まずWord2010ですが、ALT+I+Oでオブジェクトの挿入ダイアログを出すと、ExcelなどのOLEサーバーアプリ…

XSLT 2.0で便利になった機能(40) instance of演算子

今回はinstance of演算子を紹介します.instance of演算子は、例えば組み込み型で使ってみると以下のようになります. 5 instance of xs:integer は true を返します. 5 instance of xs:positiveInteger は false を返します(!). "5" instance of xs:int…

DITA Open ToolkitのCMS組込み

昨年仕事で作成したDITA Open Toolkit用のplug-inを納品したのですが、これとDITA Open ToolkitををCMSに組み込むためお客様のところにはるばるヨーロッパからCMSのベンダーの方がやってきました.私の方は組み込みのための作業についてレクチャーをしていた…

XSLT 2.0で便利になった機能(39) ","演算子

今回は","演算子を紹介します.","演算子は両辺のアイテムかシーケンスを結合して新たにシーケンスを作成してくれます.今までの例の中では、 <xsl:variable name="dayOfWeek" select="'Sunday','Monday','Tuesday','Wednesday',Thurseday','Friday','Saturday'" as="xs:string*"/> <xsl:if test="$day = $dayOfWeek"> ... <xsl:if> というような形で","演算子でシーケンスを作って利用してきました.また、実務上では私はもっぱらxsl:mes…</xsl:if></xsl:if></xsl:variable>

XSLT 2.0で便利になった機能(38) union、intersect、except演算子

今回は、union、intersect、except演算子について紹介します.これらの演算子はnode()*をオペランドとして使用します.この3つの中で、XSLT1.0では、union演算子がサポートされていました.実はunionと"|"は同じです.例えばXSLT1.0では <xsl:apply-templates select="frontmatter | chapter | part | appendix | backmatter"/> というように使用</xsl:apply-templates>…