タグ別アーカイブ: oXygen

XMLエディタで始めるリッチなMarkdown入門?

Markdown記法とその派生は様々にあり、使用される場面もブログポストの原稿であったり、
Wiki記法(この記事ではHTMLへ変換される簡易記法、と考えてください)の1つであったりするので、「Markdownドキュメント」といっただけではどんな文書なのかはよくわかりません。「Markdown記法を使用して書かれている箇所があるドキュメント」くらいにはいえるのかもしれませんが。とはいえ、基本的な記法については共通しています。なので一度基本を覚えてしまえばその部分は他の派生へも通じ、その学習コストを下げることができます。

さて本題です。
「Markdownは分からないが手元にリッチなXMLエディタがある」そんなことはないでしょうか。

XML技術を駆使するDITAというドキュメントのアーキテクチャがあります。
いきなり導入するにはなかなか重量級な仕様と哲学があるので、
OASISのDITA CommitteeのSub Committeで、DITAやXMLを未だ使っていない層に向けたLightweight DITA(LwDITA)というものが考案されています[1]。
LwDITAはDITAの複雑な仕様から基本的なものを抽出し、XML、HTML5、Markdown(派生)の3つの形式でほぼ同じ表現力の記述を可能にしたものです。
特にHTML5、Markdownの形式(HDITA、MDITA)は、XML離れが激しい層へのアプローチ手法として考案された側面があり、XMLに触れなくともある程度のDITA体験が可能になっています。MDITAは単体ではGitHub Flavored Markdown(GFM)のサブセットのように扱えるので、GFMに対応したアプリケーションである程度執筆・編集のサポートが受けられます。

一方Oxygen[2]やXMetaL[3]といった、DITAをサポートするXMLエディタも
LwDITAもサポートし始めています。既にDITAのパワーをXMLエディタでフル活用されている方にはLwDITAの表現力は物足りないかもしれません。とはいえ、せっかくサポートされている機能です。もし手元に既にMarkdown対応のXMLエディタがあれば、試しに使ってみてはどうでしょうか。

参考資料

  1. [1] OASIS Lightweight DITA SubCommitteeのページ https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=dita-lightweight-dita
  2. [2] アンテナハウスの Oxygen情報ページ https://www.antenna.co.jp/oxygen/
  3. [3] アンテナハウスの XMetaL情報ページ https://www.antenna.co.jp/xmetal/

DITA/XML Service Antenna House

関連記事

  1. MDITA(LwDITA uses Markdown)の書き方
  2. DITAとしてのMDITA
  3. Markdown DITAとMDITA
  4. MDITAをDITAに変換する

oXygen XML Editor 20.0 の販売を開始いたしました!

mb_author

 oXygen XML Editor 20.0 の販売を2018年03月16日から開始いたしました。

oXygen XML Editor は先進のXMLオーサリング・開発機能とグラフィカルな編集プラットホームを提供し、世界各国で愛用されています。
Windows、Mac OS X、Linuxに対応し、ユーザーインタフェースには日本語版も用意されています。

oXygen XML Editor にはDITAで書かれた文章を、HTMLで構成された WebHelp(Webページ)に変換する機能を備えています。

例えば以下のように書かれたDITA文書を WebHelpに変換すると・・
oXygen XML Editor01

 

ボタンひとつで、このようなWebページを作成することができます。
oXygen XML Editor02

 

先ほどのDITA文書をPDFに変換することもできますよ。
こちらレイアウトにはアンテナハウスで開発した pdf5.mlを使用しています。

oXygen XML Editor03

ひとつの文章から、Webページを作成したり、PDFを作成したり、色々なことができます。

oXygen XML Editor の WebHelpは最初からレイアウトのテンプレートが用意されているので、簡単にレイアウトを変更することができます。
例えば、空と雲をモチーフとしたレイアウト。
oXygen XML Editor04

 

テクノロジーをモチーフとしたレイアウト。
oXygen XML Editor05

 

もちろんスタンダードでシンプルな青色をモチーフとしたレイアウトもあります。
oXygen XML Editor06

 

他にも色々なテンプレートが用意されています。
テクニカルな要素は増えますが、自分でテンプレートを作成することもできます。

テンプレートの作成方法(英語)
https://www.oxygenxml.com/doc/versions/20.0/ug-editor/topics/whr_publishing_template_contents.html

WebHelpはレスポンシブデザインで設計されているので、モバイル機器の表示にも対応しています。すごい!

ここまでくると、もはやエディタという感覚ではなく、システムという感覚に近いですね。

oXygen XML Editor 20.0 で追加された主な機能は以下です。

・ DITA

  • 未参照のキー定義をレポートする
    [DITA マップ 完全度の確認]ダイアログボックスに新しく[参照されていないキー定義を報告する]が追加され、 参照されていないキー定義をレポートすることができます。
  • 未参照の再利用可能な要素をレポートする
    [DITA マップ 完全度の確認]ダイアログボックスに新しく[参照されていない再利用可能な要素をレポートする]が追加され、 どこにも参照されない潜在的な再利用可能な要素をレポートすることができます。
    これらは、ID属性を持ち、リソースのみとしてマークされたトピック、または他の要素が再利用されるトピックで定義される要素です。

・ WebHelp

  • 公開テンプレート
    WebHelpレスポンシブ出力のルックアンドフィール(レイアウトとスタイル)を定義します。 これらのテンプレートは、チームと簡単に共有できるカスタマイズパッケージを表します。
  • ビルトイン公開テンプレートギャラリー
    oXygenには組み込みの公開テンプレートが付属しています。 これは、WebHelp変換シナリオの[ テンプレート ]タブで利用できます。 フィルタリングオプションとテンプレートプレビュー画像を使用して、 必要なテンプレートを簡単に見つけることができます。

・・・などなど、これらが追加された機能の一部となります。(追加機能が多すぎて書ききれません!)
詳細はアンテナハウスのホームページをご覧ください。
https://www.antenna.co.jp/oxygen/#v20.0

oXygen XML Editor はバージョンアップの度に、沢山の機能が追加されます。
こちらのページでは oXygen XML Editor 19.0 19.1 20.0 に追加された機能を紹介しています。
https://www.antenna.co.jp/oxygen/new-feature190-200.html

  • マスターファイルサポート
  •  DITA再利用コンポーネントビュー
  • PDFとXHTML出力のフロート画像
  • DITAトピックタイプの変換
  • oXygen WebHelp テンプレート

DITAやWebHelpに関する機能がとても充実していますね!

oXygen XML Editor に関してはアンテナハウスまで お問い合わせ ください!(oxygen@antenna.co.jp


focheck を使って XSL-FO のマークアップの妥当性を検証する

海外営業担当です。
本日は弊社アイルランドの社員 Tony Graham が開発しました focheck についてご紹介させていただきます。oXygen XML Editor をお使いの方必見です。最後までお読みいただくと focheck の使い方がわかります。ぜひお使いになってください。

XSL-FO を oXygen XML Editor でチェック

XSL-FO は、まずフォーマットオブジェクトとそのプロパティを表すために設計されました。 スキーマに準拠するようには設計されておらず、検証技術を考慮して設計されていませんでした。 その結果、XSL-FO ドキュメントの正当性をチェックする最良の方法は、AH Formatter でフォーマットしてログファイルを確認することでした。
Antenna House の focheck フレームワーク は、oXygen XML Editor を使用中に、Antenna House 拡張機能も含め、XSL-FO ファイルをチェックして修正することをついに可能としました。

フォーマッティングオブジェクトの構造

それぞれの FO に含めることができるものを定義する XSL 1.1 勧告 のコンテンツモデルは、単純です。 しかし、勧告にある記述は、しばしばコンテンツモデルに含まれない FO をも許容しています。
fo:marker はコンテンツモデルには表示されませんが、ほとんどの(ただしすべてではありません)FO の最初の子として使用が可能です。

1-focheck-marker.png
fo:change-bar-begin と fo:change-bar-end は、コンテンツモデルには表示されませんが、ほぼどこでも許可される、 地点を定義する  FO です。

2-focheck-change-bar-begin.png

fo:change-bar-begin と fo:change-bar-end には、スキーマで表現できないプロパティの制約もあります。
XSL 1.1 には、一部のFOが特定のタイプのFOの祖先または子孫として許可されないという制約も更に含まれています。 たとえば、fo:footnote は子孫として別の fo:footnote を持つことはできません。 明らかに、fo:footnote の祖先を持つこともできません。

3-focheck-footnote.png

プロパティ値

各 XSL-FO プロパティで許可されるタイプは、XSL 1.1 勧告で定義されています。 ただし、XSL-FO ファイルのプロパティ値は、必ずしも単一の値であるとは限りません。 ほとんどのプロパティは、 ‘2pt + 6em’ のような式にすることもできます。 AH Formatter は  ‘2pt + 6em’ を評価してから結果が正しいかどうかを判断する必要があります。 focheck は、AH Formatter のように、式を解析するパーサーを含んでいます。 focheck はプロパティ値の式を評価し、結果のタイプをチェックします。 ‘ from-table-column()’ などの XSL 1.1 で定義されているすべての関数名や Antenna House 拡張機能を認識し、パラメータをチェックしますが、まだ関数を評価していません。 AH Formatter とは異なり、focheck は、 ‘font-family’ や  ‘border’ など、異なる構文を使用するプロパティを一部解析しません。

4-focheck-property.png

警告を追加

focheck は、エラーではない条件についても警告することができるので、AH Formatter には問題はありませんが、おそらく意図したものではありません。 たとえば、fo:flow または fo:static-content に非標準の  ‘flow-name’ 値があり、 ‘region-name’ の値が一致するページ領域がない場合は、エラーではありません。fo:flow または fo:static-content は単に使用されないだけです。 これは設計によってというよりも偶発的に発生する可能性が高いため、focheck はこれらの不一致と、決して使用されない ‘region-name’ の値について警告します。

5-focheck-flow-name.png

XSL-FO のリストは、’provisional-label-separation’ と ‘provisional-distance-between-starts’ プロパティをfo:list-blockに設定し、なおかつ 各 fo:list-item-label  に ’end-indent’ を、各 fo:list-item-body に ’start-indent’ を設定してリスト項目のラベルと本文との間隔を指定します。 これらのいずれかが見つからない場合は、エラーにはなりません。 AH Formatter は、XSL 1.1 勧告に従って、各プロパティに対して継承または初期値を使用します。 しかし、これはおそらく期待したものではないので、プロパティのいずれかが見つからないときに focheck が警告します。

6-focheck-list.png

オーサリングのサポート

XSL-FO は手作業で作成することを目的としたものではありません。 ほとんどの人は XSLT を使用して XSL-FO を生成しています。開発者以外や、サポートスタッフあるいは AH Formatter をテストまたは文書化している人以外に手作業で XSL-FO をオーサリングする必要のある人はほとんどいません。 ほとんどの人にとって、XSL-FO をオーサリングする唯一の理由は、後で XSLT 変換の出力として自動的に生成されるものを試作することです。

XSL-FO をオーサリングする必要がある場合、focheck は、現時点で許可されている FO またはプロパティのリストを提供してくれるので、役に立ちます。

7-focheck-structure-editing.png

また、FO 又はプロパティを説明するポップアップツールチップを表示することもできます。

8-focheck-tool-tip.png

また、focheck では問題の報告だけでなく、XSL-FO の一般的な問題をいくつか修正する「クイック修正」も行うことができるようになっています。例えば、上記のような警告があれば、クイック修正をします。

focheck を入手する

focheck は、2015年にリリースされた oXygen 17 以降の oXygen XML Editor にバンドルされています。ただし、oXygen の focheck バージョンは 2015 年以降に更新されていません。最新の focheck バージョンを入手して、 oXygen アドオンとして focheck をインストールすることができます。
GitHub から focheck をインストールするには:

  1.  [ヘルプ] メニューから [新しいアドオンをインストールする] を選択します。 9-focheck-help-new-add-on-install.png
  2. アドオンの場所にhttps://github.com/AntennaHouse/focheck/raw/master/add-on-ja.xml を入力し、「focheck」を選択してインストールを続行します。10-focheck-new-add-on-install.png

仕組みの説明

focheck は、RELAX NG スキーマと Schematron を oXygen フレームワークに同梱しています。 RELAX NG スキーマは、FO の構造に関する規則の大部分、およびプロパティがどの FO に適用されるかの規則を提供しています。 Schematron は、プロパティ値の解析など、RELAX NG で表現できない制約をチェックします。 パーサーは、XSLT として実装され、それは REx パーサジェネレータによる言語構文用の EBNF のバージョンから生成しています。
正確度を保証するために、RELAX NG、Schematron for XSL 1.1 FO およびプロパティの大部分は、XSL 1.1 勧告の XML バージョンにある XSLT を実行することによって自動的に生成します。

ライセンス

focheck はオープンソースであり、Apache License、Version 2.0 の元、ライセンス許容されています。

アンテナハウス海外サイト
http://www.antennahouse.com/
http://rainbowpdf.com/

AH Formatter関連ページ:focheck(oXygen アドオン) – XSL-FO と AH Formatter 拡張仕様のバリデータ