2013-09-01から1ヶ月間の記事一覧

XSLT2.0で便利になった機能(52) xsl:param/@as属性

もう前に一回書いている気もしますが、XSLT2.0ではxsl:paramで関数やテンプレートにパラメータを記述するときに、as属性でパラメータの型を記述することができます. <xsl:param name="prmMax" as="xsl:integer" required="yes"/> <xsl:param name="prmInputStr" as="xsl:string" required="yes"/> ※ required="yes"が書けるのはxsl:templateの場合のみです.xsl:functionでは元々必須で</xsl:param></xsl:param>…

XSLT2.0で便利になった機能(52) xsl:template(続き)

テンプレートから複数の種類のitem()から成るシーケンスを返す例を紹介します.例えば次のような要望があったと考えます. ① section/divという要素構造がある.sectionはdivから構成され、divがテキストを持つ. ② divの文字数が一定数以上のものを抽出した…

XSLT2.0で便利になった機能(51) xsl:template

いまさらですが、xsl:templateについて考え直してみました.XSLT2.0でテンプレートはどのように変わったのでしょうか?これは仕様でどのようにテンプレートが定義されているかを見ればわかります. [XSLT1.0] <xsl:template match = pattern name = qname priority = number mode = qname> </xsl:template> 5.3 Defining Templa…

CALSのテーブルとオーサリングツール

たまたまお客様から問い合わせがあってわかったのですが、DITAのテーブルの処理はオーサリングツールや出力によって様々なようです. 試しにサンプルを作ってみました.次のような少々変なテーブルのデータです. <concept id="concept_ab01c"> <title>Table colsep/rowsep test</title> <shortdesc/> </shortdesc/></concept>

プログラミング言語とXPath(6) Scala

では期待のScalaはどうでしょうか?実はScalaにできることは、おおよそ以下のようなプログラムで示されることです. import scala.xml.XML import scala.xml.Elem object Main { def main(args: Array[String]) { val root = XML.loadFile("MusicLibrary.xml…

プログラミング言語とXPath(5) F#

.NETのVBをやったのでF#がどうなのか試しておきます.最初にXPathSelectElementsを使う例です.これは簡単でVBと同じです. open System.Xml.XPath open System.Xml.Linq [<EntryPoint>] let main argv = let xd = XDocument.Load("MusicLibrary.xml") (* XPathSelectEle</entrypoint>…

プログラミング言語とXPath(4)

.NETでLINQのXDocumentに対してXPathSelectElementsにXPath式を指定してノードを選択する例を示します.非常に単純でドキュメントノードに対してXPathSelectElementsを適用するだけです. Imports System.Xml.Linq Imports System.Xml.XPath.Extensions Modu…