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

xsl:apply-templates

普段はほとんどXSLT2.0を使っていますが、どうしても使えない場合が多々あります.どういう場合かと言いますともう10年越しで運用しているXSLT1.0のスタイルシートをメンテナンスするような時です.もちろんXSLT2.0に書き直すに越したことはないのですが、そ…

DITA-OTのリビルド

DITA-OTをリビルドするのはまだ開発がsourceforgeで行われていた頃一回やったことがありましたが、GitHubに移ってからはやったことがありませんでした.今回お客様からの要望を実現するためにDITA-OTをリビルドする機会がありましたので紹介します.と言って…

Team Geek (1)

このまえ「チーム開発実践入門」という本を読んだのですが、チームをキーワードにした本をまた買ってしまいました. (出版元のO'Reilly画像をお借りしました.) 名前は[Team Geek」.原著副題には「A Software Developer's Guide to Working Well with Othe…

required-cleanupの裏技(?)

もう6年前の自分のコードを読んでいたのですがどうにもわからない点が出てきてしまいました. それはtopicの上位にrequired-cleanupがあるがごときのコーディングが存在することです.おぼろげな記憶をたどってみたのですが、確かに何かお客様から指摘されて…

チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド"

ずっと長い間ほぼ一人で開発してきたのでこのような本のごやっかいになることはありませんでした.でも最近一緒にやる人がいてくれるようになり、私が書いたコードを他の人がメンテして、それをまた私が引き継いでというようなことができてきます.そうする…

猫の共同保育(?)

家に野良猫のタマ(と呼んでいる)が居ついてもう4年くらいになります.タマとその何度目かの子猫がおなかが大きくなって両方が赤ちゃんを産みました. この画像は、庭の大きな栗の木のうろの中に5~6匹赤ちゃんが寝ているところです.たまに(どちらかが…

F#のmatch式

久しぶりにVisual Studioを立ち上げて、F#での要素+属性のマッチングを試してみました. この前Scalaでやってみた教訓は、 1.XMLパターンがあるが、どうもネームスペースがちゃんとサポートされていないみたい. 2.XMLパターンには属性までマッチングさ…

best way to go from DITA to attractive PDF? (2)

前回挙げた 1.もっとXSLTスタイルシートの技術がなくとも出力スタイルをカスタマイズできるようにすること. 2.部分的なスタイルの変更をDITAの特殊化やスタイルシート自体の修正なしにできるようにすること. という試作品として、これを可能とするため…

Best way to go from DITA to attractive PDF?

少し前のDITA Usersに次のような表題の投稿がありました. best way to go from DITA to attractive PDF? https://groups.yahoo.com/neo/groups/dita-users/conversations/topics/34717 いわく「DITAから魅力的なPDFを作る最も良い方法は?」というものです…

DITA-OTのプロファイルリング

DITA-OTを使っておられるお客様から「最近遅いんだよね~」などという話をうかがうことがあります。 DITA-OTは[DITA-OT]/build.xmlとそこから呼ばれる[DITA-OT]/plugins/[プラグインフォルダの名前]/build.xmlで定義される処理を順に実行するApache antを使…

DITAと多言語組版

以前からやろうとして出来なかったことに多言語組版があります。一つのスタイルシートで、いくつもの言語を扱えるようにするという多言語組版ではなくて、一つのドキュメント中に複数の言語のパートが存在して、それを一つのスタイルシートでちゃんとハンド…

DITAの変更履歴(4)

oXygenのサポートに聞いてみました。すぐにRaduさんから回答が返ってきて、saxon:parseを2回使えばエスケープを元に戻せること!ナルホドそうですね! 次のようなサンプルを作ってみてうまくゆきました。削除された内容で要素が入れ子になっても大丈夫です。 <xsl:template match="processing-instruction('oxy_delete')" priority="2"></xsl:template>…

DITAの変更履歴(3)

それでも一度は挑戦してみました。oXygenのoxy_delete処理命令からの要素の復元です。 ことの発端は、XSL Listにあった投稿でparse-xml-fragment()という関数が使えそうだと言うことでした。 で以下のようなスタイルシートを作ってみました。

5576-003

垂涎の5576-003です。しかもなんと新品!消費税増税前だとこういうのも出るんですねェ。 http://page6.auctions.yahoo.co.jp/jp/auction/f138170315?al=11 開始価格は\5,000ですが、現在は\16,680です。たぶん最終的には軽く¥30,000か¥40,000…

DITAの変更履歴(2)

oXygenのchange tracking機能は削除の結果を処理命令の中に保存して、PDFに出してもXMLインスタンスとしては最新の状態で見られるようになっています。処理命令は通常はコンテンツとしては無視されるからです。これは優れていると同時に逆に処理命令を解釈し…

5576-A01

由緒ある5576-A01でなんとリコーロゴ!、しかも一部キー欠損の傷物だったので、もしかしたら落とせるのではないか?とじっと狙っていましたが、開始価格\4,800だったものが終了間際にあっというまに跳ね上がり、なんと¥36,500(!)で落札されてしま…

XSL-FOに入力XMLの階層を出力する。

XSL-FOに出力するのですが、入力XMLが複雑すぎて、どのFOが何から作られているのかわからなくなる場合があります。このようなときに、そのオブジェクトを作った元のデータの階層をxsl:commentでFOに出しておくと解析に便利です。 例えば <xsl:template match="~"> <xsl:comment><xsl:value-of select="ahf:getHistory(.)"></xsl:value-of></xsl:comment> <fo:block-container> ... </fo:block-container> </xsl:template> などとやり…

XSLT3.0への道(18) XML Prague 2014

XSL-Listに紹介されていましたが、XML Prague 2014におけるXSLT3.0のStreamingに関するMichael Kayの講演がYou Tubeに載っています。 http://www.youtube.com/watch?v=kAUPzeeW4Xg&t=186m18s しかしリスニング能力に欠けた私ではなかなか聞くのは大変でした…

DITAの変更履歴

お客様からスタイルシートの仕様をPDFでいただくのですが、元はDITAで作成しているそうです。プロジェクトが進むに従いQ&Aのやり取りを反映して、仕様書も改訂されてゆきます。それ自体はよい事なのですが、私の方では新しいPDFを受け取るたびにため息が出て…

日本語のindexterm

普段はスタイルシートばかり作っていて、DITAでオーサリングするという機会はほとんどありませんでした。たまたまDITAでオーサリングするお仕事があり、普段はスキーマに沿ってテストデータを作るくらいにしかつかわないoXygen XML Authorでオーサリングしま…

本当は怖いtopicref

DITAを初めて最初の頃にmapの中のtopicrefでprint="no"というのがあったら「印刷対象からはずしてください」とのリクエストがありました。まだまだ無知だったので、topicref[string(@print) eq "no"]のtopicrefは前処理で消してしまうようにしました。 でも…

topicのid属性

topicのid属性は実は過去ずっとユニークでなけれればならないと思ってきました.それはなぜかというとDTDで次のようにtopic/@idはID扱いになっていたからです.

DocBookのDTD表示

先日DocBookのDTDを見せていただく機会がありました.DTDというのは簡単な構造だったらそのまま見てもなんとかなりますが、DocBookクラスになると、直にDTDを見ているととても理解するのに大変です.ましてやたいていの場合DocBookのDTDをそのままで使うこと…

Unicodeのブラウザ

いくらXMLがUnicodeを採用しているからと言って、必ずしも様々な言語を使用したりオーサリングしたりすることはそう機会はないのではと思います.私も実際に使うのは日本語と英語がせいぜいでした.でも企業の中には各国語に精通していなければならない部署…

DITA-OTでのSaxonの起動方法(2)

スタイルシートのテンプレートのスタイルが安定していれば滅多にでないのですが、新たに機能追加を行って毛色の違うテンプレートをインポートしたりすると次のようなエラーに出くわす場合があります. [xslt] Loading stylesheet D:\DITA-OT1.7.5\plugins\pd…

DITA-OTでのSaxonの起動方法

今のDITA-OTではXSLTプロセッサはSaxon-B 9.1というXSLT2.0プロセッサが標準になっています.昔はSaxon 6.5やXalan 2.7.1というXSLT 1.0のプロセッサが標準でした.最新のSaxonは9.5なのでもうちょっと古いバージョンになります.何故このバージョンになって…