TEI P5における スキーマの 生 成 TEIとXSLのカスタマイズ Espen S. Ore Unit for Digital Documentation Dept. of Linguistics and Scandinavian Studies University of Oslo, Norway 翻 訳 改 訂 増 補 永 崎 研 宣 ( 一 般 財 団 法 人 人 文 情 報 学 研 究 所 ) 1 >
はじめのはじめに この 資 料 は oxygenを 用 いてTEI/XMLに 準 拠 した 文 書 を 作 成 する 方 法 を 理 解 するためのチュートリアルです oxygenは 事 前 にインストールしておいてください まず oxygenでtei P5のスキーマを 用 いたファイル 作 成 を 行 い oxygenによる 検 証 (verification)の 便 利 さを 確 認 し Romaを 使 ったスキーマのカスタマイズの 方 法 を 学 びます その 後 XSLの 使 い 方 の 基 本 を 学 びます XML スキーマ XSLについては XMLの 初 歩 のガイドブックならどれ にでも 解 説 してありますのでそこまでは 自 分 で 学 習 してください 2 >
はじめに まずはシンプルなTEIスキーマからはじめましょう ブラウザで 以 下 のURLにアクセスしてください http://www.tei-c.org/roma/ デフォルトのままで start をクリックしてください デフォルトの 値 はそのままにして トップメニューの Schema タブをクリックしてください デフォルトの 値 はそのままで Generate をクリックしてください.rncという 拡 張 子 のファイルをハードディスクに 保 存 してください (どこに 保 存 したかも 忘 れずに) Romaで Save customization を 選 んで.xmlという 拡 張 子 のファイルを 保 存 してください (Romaのページはそのまま 開 いておいてください ) 3 >
TEI 文 書 の 作 成 Oxygenで File メニューから New を 選 んでください ダイアログ 中 の New Document をクリックして 表 示 されるツリーの 中 の XML Document をクリックして 選 んでください ダイアログの 下 の Customize> というボタンをクリックしてください 次 に Customize editor というダイアログが 出 るのでSchema URLで 先 ほどRoma からダウンロードしたスキーマを 指 定 してください Schema Type:で Relax NG compact syntax タブを 選 択 し compact syntax を 選 んでください ダイアログの 下 の create ボタンをクリックしてください ( 新 規 ファイルが 開 きますので 次 に 画 面 下 部 に 並 んでいる テキスト グリッド 作 者 という3つのボタンの 中 の テキスト をクリックしてください 4 >
正 しいteiHeader を 作 ってみましょう 文 書 (の 形 式 )が(スキーマに 対 して) 妥 当 となるように 必 要 なヘッダエレメントを 付 け 加 えて TEIヘッダを 編 集 してみてください (TEIでは 文 書 に 関 する 様 々な 説 明 をヘッダに 付 けておくためのルールがあります このルールに 従 うことで 文 書 に 関 する 様 々な 付 帯 情 報 をやりとりしようとしています ) <teiheader> <filedesc> <titlestmt> <title></title> </titlestmt> <publicationstmt><p>a short publicationstatement</p></publicationstmt> <sourcedesc><p>and another short header element</p></sourcedesc> </filedesc> </teiheader> 5 >
文 書 にテキスト 本 文 を 追 加 する <text>エレメントの 中 に<body>エレメントを 一 つ 追 加 してください <body>エレメントの 中 で まずは<p>sometext</p>というエレメントを 作 ってみて そ れから 以 下 のエレメントを 付 け 加 えてください <newelement> Text for new elementtype</newelement> この 場 合 はエラーが 表 示 されます 6 >
スキーマの 変 更 先 ほどのRomaの 画 面 ( Set your parameters )で 一 番 左 の New をクリックしてください ( 最 初 の 画 面 に 戻 ります ) Open existing customization を 選 び 最 初 に 保 存 したxmlファイルを 選 択 してから start をクリックし てください (A) Add Elements タブを 選 んでから Name のところに newelement と 入 力 し model の 一 覧 から model.common をチェックして 一 番 下 のセレクトメニューから Text を 選 択 してから save をクリックしてください Webページの 上 部 に Create new element New element newelement successfully created と 表 示 され るはずです 最 初 の 手 順 と 同 様 にして schema タブをクリックして 画 面 下 部 の Generate をクリックしてファイルを 保 存 ください (さっきとは 違 うファイル 名 で 保 存!) Romaの Customize タブを 選 んで Namespace for new elements の 行 をコピーしておいてください ( 例 :http://www.example.org/ns/nontei ) では Oxygenに 戻 りましょう 7 >
スキーマの 変 更 2 現 在 のスキーマ 参 照 の 行 を 削 除 してください ( <?oxygen RNGSchema= mytei.rnc" type="compact"?> ) ファイルメニューの Documentation からサブメニューの Schema を 選 んでから Associate Schema を 選 び そこで RelaxNG Schema タブをクリックして 先 ほど 保 存 した 新 しいスキーマファイルを 選 択 してください ルートエレメント(<TEI >)の xmlns= http://www.tei-c.org/ns/ という 属 性 の 後 に 一 つ 半 角 スペースを 入 れてから xmlns:nontei= 先 ほどコピーした Namespace for new elementsの 行 を 追 加 してください xmlns については http://www.kanzaki.com/docs/sw/names.html を 参 照 文 書 中 の<newlement>を<nonTEI:newelement> と 書 き 換 えてください ( 終 了 タグ は 自 動 的 に 変 更 されるはずなのでそのままにしておいてください ) これでエラーが 消 えるはずです 文 書 を 検 証 ボ タンを 押 すと 8 > こうなります
テキストの 整 形 :XSLのデフォルト Oxygenで Documentation メニューから Transformation Configure Transformation Scenario を 選 んでくださ い 以 下 のウインドウから XHTML を 選 び Transform now を 選 んでください デフォルト 設 定 のWeb ブラウザが 開 いてこん な 感 じに 表 示 されるは ずです 9 >
テキストの 整 形 :XSLのデフォルト 次 に Oxygenで <newelement>の 行 の 次 に <p>element with <hi rend="italic">highlighted</hi> text.</p> と 入 力 してから 先 ほどの 手 順 で 変 換 してみてください すると このように イタリックで 表 示 されます 10 >
XSLを 一 から 書 いてみましょう(1) Oxygenで File New を 選 んでから XSLT Stylesheet を 選 んで 次 に Version 2.0 を 選 んでください version = 2.0 の 後 に 以 下 のものを 追 加 してください xpath-default-namespace=http://www.tei-c.org/ns/1.0 xmlns:nontei="http://www.example.org/ns/nontei" 11 >
XSLを 一 から 書 いてみましょう(2) 終 了 タグ</stylesheet>(もしくは</xsl:stylesheet>)の 前 に 以 下 のものを 追 加 してくださ い <xsl:output method="html"/> <xsl:template match="/"> <html> <head><title>test document</title></head> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="teiheader"/> 次 頁 に 続 きます 12 >
XSLを 一 から 書 いてみましょう(3) 終 了 タグ</stylesheet>(もしくは</xsl:stylesheet>)の 前 に 以 下 のものも 追 加 してください <xsl:template match="div p"> <xsl:apply-templates/> </xsl:template> <xsl:template match="hi"> <i> <xsl:apply-templates/> </i> </xsl:template> <xsl:template match="nontei:newelement"> <b> <xsl:apply-templates/> </b> </xsl:template> 13 >
XSLを 一 から 書 いてみましょう(4)-1 このxslファイルを 保 存 してください ( 保 存 した 場 所 とファイル 名 を 忘 れないようにしてく ださい ) Oxygenで さきほど 作 成 したxmlファイルのタブを 選 択 して xmlファイルを 開 いてくださ い 次 に さきほどと 同 様 に document メニューから 作 業 中 の 複 数 ファイルは タブで 切 り 替 えられます Transformation Configure Transformation Scenario を 選 んでください Configure Transformation Scenario ダイアログで new ボタンを クリックしてください 14 >
XSLを 一 から 書 いてみましょう(4)-2 そうすると New Scenario ウインドウが 開 きますので 先 ほど 保 存 した XSLファイルをXSL URLのところで 指 定 してください (この 行 の 右 側 のフォ ルダアイコンをクリックするとファイル 名 の 指 定 ができます) Transformer:のところで Saxon PE 9.3 を 選 んでください 次 に Output タブをクリックして ください 15 >
XSLを 一 から 書 いてみましょう(5) Save as を 選 んで 右 側 の 欄 に test.html と 入 力 してください Open in browser にチェックを 入 れてください 次 に OK をクリックすると Configure Transformation Scenario ダイアログに 戻 ります ここで Transform now ボタンをクリックしてください そうすると 先 ほど 作 成 した XSLファイルによる 変 換 が 行 われ Webブラウザに 表 示 されます 16 >
XSLを 一 から 書 いてみましょう(6) Oxygen 上 で 先 ほどのxslファイルに 戻 ってください (タブの 切 り 替 えだけでできる はずです ) </xsl:stylesheet>の 前 に 以 下 のものを 追 加 してください <xsl:template match="title"> <h1> <xsl:apply-templates/> </h1> </xsl:template> このxslファイルを 保 存 してください 先 ほどのxmlファイルに 戻 ってください (タブの 切 り 替 えで) 先 ほどの 手 順 で 変 換 を 行 ってみてください 17 >