SlideShare a Scribd company logo
1 of 10
Download to read offline
2014.01  /  アゼロス
概要(このプレゼンの趣旨)
XSLTの持つ、⽂文書コンテンツの⾼高度度なライブラリ化機能
ただし⼊入出⼒力力およびそれらに対するフローを表現をできない
パイプラインを組み込み、フローを表現、コードの抽象化も
1.
2.
3.
XSLT+パイプラインで
⼊入出⼒力力のフローを表現する
2014.01  /  アゼロス
⽣生き抜くためのマークアップ技術
〜~  ツールの解説編(補⾜足)  〜~
	
 
<vox:src>get:simple.xml</vox:src><!--	
 内容を読む	
 -->	
 
<vox:via>app:simple.xsl</vox:via><!--	
 体裁を適用	
 -->	
 
<vox:dst>set:simple.htm</vox:dst><!--	
 結果を生成	
 -->	
 
⼿手順(フロー):simple.xml
2014.01  /  アゼロス
背景
XSLTのフロー:  順次/分岐/反覆
プログラミング⾔言語であるXSLT
	
 
	
 	
 <xsl:if	
 test=""><!--	
 条件分岐	
 -->	
 
	
 	
 	
 	
 ...	
 
	
 	
 </xsl:if>	
 
	
 
	
 	
 <xsl:apply-templates	
 select="..."/><!--	
 繰り返し	
 -->	
 
	
 	
 	
 	
 ...	
 
	
 	
 <xsl:tempate	
 match="...">	
 
	
 	
 	
 	
 ...	
 
	
 	
 </xsl:template>	
 
⼿手順(フロー):
2014.01  /  アゼロス
問題
XSLTの⼊入出⼒力力:  ファイルのみ
XSLTには⼊入出⼒力力がほとんどない
	
 
	
 	
 <xsl:...="document(...)"	
 ...><!--	
 ファイルの読み込み	
 -->	
 
	
 
	
 	
 <xsl:result-document	
 href="..."	
 ...><!--	
 ファイルの書き出し(2.0	
 )	
 -->	
 
⼿手順(フロー):
2014.01  /  アゼロス
対策
UNIXパイプラインの⼊入出⼒力力:  ファイル、メール、ウェ
ブブラウザ、データベース、ネットワーク、……
パイプラインのシンプルな⼊入出⼒力力
	
 
	
 	
 ...	
 |	
 A	
 |	
 B	
 |	
 C	
 |	
 ...	
 #	
 入出力(さまざまなフィルタとパイプからなる)	
 	
 	
 
⼿手順(フロー):
2014.01  /  アゼロス
対策
XSLTでパイプラインをふくむスクリプト⽂文書を⽣生成、解
釈器にあたえる:
⽂文書の⽣生成器であるXSLT
	
 
	
 	
 <xsl:if	
 test=""><!--	
 条件分岐	
 -->	
 
	
 	
 	
 	
 A	
 |	
 B	
 |	
 C	
 #	
 入出力	
 
	
 	
 </xsl:if>	
 
	
 
	
 	
 <xsl:apply-templates	
 select="..."/><!--	
 繰り返し	
 -->	
 
	
 	
 	
 	
 ...	
 
	
 	
 <xsl:tempate	
 match="...">	
 
	
 	
 	
 	
 E	
 |	
 F	
 |	
 G	
 #	
 入出力	
 
	
 	
 </xsl:template>	
 
⼿手順(フロー):
2014.01  /  アゼロス
対策
XMLで疑似パイプラインを表現、さらに⼊入⼒力力の結合と出⼒力力
の分配も:
パイプラインをXMLで表現する
	
 
	
 	
 <...	
 xmlns:vox="http://...">	
 
	
 
	
 	
 <vox:src>A</vox:src><!--	
 入力を結合(XML形式)	
 -->	
 
	
 	
 <vox:via>B</vox:via><!--	
 経由	
 -->	
 
	
 	
 <vox:dst>C</vox:dst><!--	
 出力を分配	
 -->	
 
⼿手順(フロー):
2014.01  /  アゼロス
対策
XSLT+(XML形式の)疑似パイプラインで⼊入出⼒力力のフ
ローを記述、解釈器にあたえる:
XSLT+パイプラインで⼊入出⼒力力のフローを表現
	
 
	
 	
 <xsl:if	
 test=""><!--	
 条件分岐	
 -->	
 
	
 	
 	
 	
 <vox:src>A</vox:src><!--	
 入力を結合(XML形式)	
 -->	
 
	
 	
 	
 	
 <vox:via>B</vox:via><!--	
 経由	
 -->	
 
	
 	
 	
 	
 <vox:dst>C</vox:dst><!--	
 出力を分配	
 -->	
 
	
 	
 </xsl:if>	
 
	
 
	
 	
 <xsl:apply-templates	
 select="..."/><!--	
 繰り返し	
 -->	
 
	
 	
 	
 	
 ...	
 
	
 	
 <xsl:tempate	
 match="...">	
 
	
 	
 	
 	
 <vox:src>E</vox:src><!--	
 入力を結合(XML形式)	
 -->	
 
⼿手順(フロー):
2014.01  /  アゼロス
効果#1
定義するタグの意味(セマンティクス)に動的な内容をふく
めることが容易易に:
XSLTで⼊入出⼒力力フロー  →  タグの意味を拡張する
・  定義するタグの意味=静的な内容
・  かぎられた⼊入出⼒力力+フロー(XML形式で記述されたファイル群のみを扱える)
・  定義するタグの意味=静的な内容+動的な内容
・  制限のない⼊入出⼒力力+フロー(あらゆる形式で記述されたあらゆる媒体を扱える)
    XML+XSLT
    XML+XSLT+パイプライン
2014.01  /  アゼロス
コントローラのフ
ロー/モデルのロ
ジック層など
ビュー(プレゼン
テーション層の⼀一
部)への変換など
コントローラの⼊入⼒力力
部/モデルのデータ
アクセス層など
効果#2
XSLTで⼊入出⼒力力フロー  →  コードを抽象化/可搬
解釈器⼊入出⼒力力:汎⽤用(低レベル)のフィルタ〜~専⽤用(⾼高レベル)のオブジェクト
各種媒体(ファイル、メール、ウェブブラウザ、データベース、ネットワーク、……)
⽣生成⽂文書
フロー
⽂文書変換/スタイル
XSLT
XSLT  +  pipeline  (XML  format)
Ruby,  Haskell,  JavaScript,  Perl,  ...
XML,  RDB,  NoSQL,  JSON,  string,  stream,  ...
HTML,  CSS,  RDF,  Microdata,  Markdown,  mail,  MT,  WP,  ...
XML

More Related Content

Similar to Docmgt 005

Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Yasuhiro Horiuchi
 
ざっくり DDD 入門!!
ざっくり DDD 入門!!ざっくり DDD 入門!!
ざっくり DDD 入門!!Yukei Wachi
 
Map server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 HokkaidoMap server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 HokkaidoHideo Harada
 
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発真吾 吉田
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
 
ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」Kohsuke Kawaguchi
 
COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会naka hide
 
エンタープライズワークロードにおけるAmazon Auroraの活用
エンタープライズワークロードにおけるAmazon Auroraの活用エンタープライズワークロードにおけるAmazon Auroraの活用
エンタープライズワークロードにおけるAmazon Auroraの活用Amazon Web Services Japan
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説do_aki
 
OpenStack-Ansibleで作るOpenStack HA環境 Kilo版
OpenStack-Ansibleで作るOpenStack HA環境 Kilo版OpenStack-Ansibleで作るOpenStack HA環境 Kilo版
OpenStack-Ansibleで作るOpenStack HA環境 Kilo版VirtualTech Japan Inc.
 
Pgxユーザー勉強会#5 パスクエリを使ったトラバース
Pgxユーザー勉強会#5 パスクエリを使ったトラバースPgxユーザー勉強会#5 パスクエリを使ったトラバース
Pgxユーザー勉強会#5 パスクエリを使ったトラバースYuki Tagami
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会ShuheiUda
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門Daiyu Hatakeyama
 
XSLT 2010-03-03
XSLT 2010-03-03XSLT 2010-03-03
XSLT 2010-03-03kmiyako
 

Similar to Docmgt 005 (17)

Groovyコンファレンス
GroovyコンファレンスGroovyコンファレンス
Groovyコンファレンス
 
Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013
 
ざっくり DDD 入門!!
ざっくり DDD 入門!!ざっくり DDD 入門!!
ざっくり DDD 入門!!
 
Map server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 HokkaidoMap server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 Hokkaido
 
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」
 
COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会
 
エンタープライズワークロードにおけるAmazon Auroraの活用
エンタープライズワークロードにおけるAmazon Auroraの活用エンタープライズワークロードにおけるAmazon Auroraの活用
エンタープライズワークロードにおけるAmazon Auroraの活用
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 
OpenStack-Ansibleで作るOpenStack HA環境 Kilo版
OpenStack-Ansibleで作るOpenStack HA環境 Kilo版OpenStack-Ansibleで作るOpenStack HA環境 Kilo版
OpenStack-Ansibleで作るOpenStack HA環境 Kilo版
 
20151121
2015112120151121
20151121
 
Pgxユーザー勉強会#5 パスクエリを使ったトラバース
Pgxユーザー勉強会#5 パスクエリを使ったトラバースPgxユーザー勉強会#5 パスクエリを使ったトラバース
Pgxユーザー勉強会#5 パスクエリを使ったトラバース
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
 
XSLT 2010-03-03
XSLT 2010-03-03XSLT 2010-03-03
XSLT 2010-03-03
 
Ssaw08 0617
Ssaw08 0617Ssaw08 0617
Ssaw08 0617
 

Docmgt 005