LoginSignup
0
1

More than 3 years have passed since last update.

XSLTはフロントエンド技術の完成の最後にして最大のピースになる

Last updated at Posted at 2020-08-29

XSLTはXML(XSLT3.0の現在ではJSONも含む)の変換を記述する技術だ。
だが、この技術は1999年の登場から3.0まで進化したが現状ではあまり注目されていない。
しかし、私はこの技術がフロントエンドの最後の主要技術になり、これをもってフロントエンドの技術が完成すると考えている。この記事ではその理由について書く。

フロントエンド

まずはフロントエンドの話をしよう。
HTML、CSS、JavaScriptがありそれぞれ変化を遂げてきた。特にCSS、JavaScriptでは画期的なフレームワークの登場が開発の進歩をもたらした。

フレームワークの使用
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<link rel="stylesheet" href="https://www.jsdelivr.com/package/npm/bulma">
(somecode)
</head>
<body>(somecode)</body>
</html>

これらのコードは現在ではあまりに見慣れたものだろう。

ブラウザの挙動

その前にブラウザの挙動をまとめてみよう。現在のよく知られた技術なら大まかにこうなる。

  1. 指定されたURLのサーバからファイルをダウンロード
  2. ダウンロードしたものがHTMLならエンジンで解析
  3. CSSやJavaScriptのダウンロード
  4. レンダリング
  5. JavaScriptの実行など

XSLT

そして、これ以外にもあまり知られていないフロントエンドの技術がある。それがXSLTの適用テクニックである。
XSLTはXMLにとある記述をすることで、それがブラウザから読み込まれた時に変換を行うようXSLTプロセッサに指令を出せる。

XSLTの呼出し
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="application/xml" href="framexs.xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml">
(somecode)
</html>

この記述によってブラウザはXMLをそのままパースするのではなくframexs.xslによって変換された後の出力結果を内部で受け取り、それがHTMLであった場合などは必要に応じてパースやレンダリングをするようになる。
その流れを整理しよう。

  1. 指定されたURLのサーバからファイルをダウンロード
  2. ダウンロードしたものがXMLならエンジンで解析
  3. XSLTを行うよう命令されていたならばXSLをダウンロード
  4. XSLT処理を行う
  5. 出力先のタイプがHTMLだとしたらHTMLとして解析
  6. CSSやJavaScriptのダウンロード
  7. レンダリング
  8. JavaScriptの実行など

framexs

この仕組みを利用して構成を記述したXHTMLとモデルとなるXHTMLを合成してHTMLを出力するフレームワークがある。
それが私が開発したframexsだ。
このフレームワークはまるでMVCアーキテクチャのようにHTMLを生成する。
詳しくはHTML5はXHTMLで楽に書ける?XSLTによるMVCライクなフレームワーク framexs を開発したので解説するよで書いているので参照されたい。

終わりに

現在のフロントエンドは開発が急速に進むとともに混迷の度合いを深めている。そして、XSLTは今までフロントエンドの技術としてほとんど注目を浴びることはなかった。
しかし、framexsの登場と開発によってそれも変わっていくと私は期待している。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1