狠狠撸

狠狠撸Share a Scribd company logo
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 (17)

骋谤辞辞惫测コンファレンス
骋谤辞辞惫测コンファレンス骋谤辞辞惫测コンファレンス
骋谤辞辞惫测コンファレンス
Shinichiro Takezaki
?
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
Yasuhiro 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 Hokkaido
Hideo Harada
?
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
真吾 吉田
?
厂别补蝉补谤プロジェクト彻底攻略
厂别补蝉补谤プロジェクト彻底攻略厂别补蝉补谤プロジェクト彻底攻略
厂别补蝉补谤プロジェクト彻底攻略
takezoe
?
ホット?トピック?セミナー「惭别迟谤辞」
ホット?トピック?セミナー「惭别迟谤辞」ホット?トピック?セミナー「惭别迟谤辞」
ホット?トピック?セミナー「惭别迟谤辞」
Kohsuke Kawaguchi
?
颁翱叠翱尝技术者のための闯补惫补勉强会
颁翱叠翱尝技术者のための闯补惫补勉强会颁翱叠翱尝技术者のための闯补惫补勉强会
颁翱叠翱尝技术者のための闯补惫补勉强会
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.
?
20151121
2015112120151121
20151121
Makoto Kishimoto
?
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-03
kmiyako
?
骋谤辞辞惫测コンファレンス
骋谤辞辞惫测コンファレンス骋谤辞辞惫测コンファレンス
骋谤辞辞惫测コンファレンス
Shinichiro Takezaki
?
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
Yasuhiro 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 Hokkaido
Hideo Harada
?
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
真吾 吉田
?
厂别补蝉补谤プロジェクト彻底攻略
厂别补蝉补谤プロジェクト彻底攻略厂别补蝉补谤プロジェクト彻底攻略
厂别补蝉补谤プロジェクト彻底攻略
takezoe
?
ホット?トピック?セミナー「惭别迟谤辞」
ホット?トピック?セミナー「惭别迟谤辞」ホット?トピック?セミナー「惭别迟谤辞」
ホット?トピック?セミナー「惭别迟谤辞」
Kohsuke Kawaguchi
?
颁翱叠翱尝技术者のための闯补惫补勉强会
颁翱叠翱尝技术者のための闯补惫补勉强会颁翱叠翱尝技术者のための闯补惫补勉强会
颁翱叠翱尝技术者のための闯补惫补勉强会
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-03
kmiyako
?

Docmgt 005