HTML5でのクライアント側XSLT変換の使い方と仕様のポイント
HTML5におけるクライアントサイドXSLT処理
クライアント側で動作するXSLTProcessor APIは、HTML5のスクリプティング仕様の一部として定義されています。これにより、サーバーに依存することなく、ブラウザ上でXMLデータをXSLTスタイルシートによって変換し、結果をDOMとして操作できるようになります。
仕様で定められたスクリプトの扱い
HTML5仕様では、XSLT変換に関連するscript要素の動作について以下のように規定されています。
処理命令(processing instruction)によってXSLT変換が起動され、ブラウザがDOMへの直接変換を実装している場合、XSLTプロセッサによって生成されたscript要素には「parser-inserted(パーサー挿入)」のマークが必要であり、ドキュメントの順序に従って実行されなければなりません。
さらに、XSLTProcessor.transformToDocument()メソッドについては、次のような特別な扱いが定められています。
- このメソッドは、ブラウジングコンテキストを持たないDocumentに対して要素を追加します。
- そのため、生成されたscript要素はスクリプト準備アルゴリズムにおいて「already started(実行済み)」フラグが設定され、実際には決して実行されません(スクリプティングは無効化されます)。
- ただし、asyncコンテンツ属性が存在しない場合にasync IDL属性がfalseを返すよう、これらのscript要素も引き続き「parser-inserted」としてマークされる必要があります。
この仕様により、transformToDocument()で生成した文書内のスクリプトが意図せず実行されることを防ぎつつ、属性の挙動については一貫性が保たれるようになっています。
モバイルブラウザでのXSLTサポート状況
XSLTはモバイル環境においても幅広く利用可能です。具体的には、以下のプラットフォームでクライアント側XSLT変換がサポートされています。
- Android 4.0:標準でXSLTをサポート
- iOS 2.0以降:初期のiPhone OSの時点からXSLTに対応
つまり、主要なスマートフォンのブラウザでもクライアント側XSLT変換を実用的に活用できるため、XMLベースのコンテンツを端末側で柔軟にレンダリングしたい場合に有効な手段となります。
-
JavaScriptでリンクリストに要素を挿入する方法をわかりやすく解説
はじめに リンクリスト(連結リスト)では、指定した位置にデータを挿入するための関数 insert(data, position) を用意する必要があります。本記事では、その実装手順とサンプルコードを初心者にもわかるように解説します。 挿入処理の基本手順 insert(data, position) の内部では、以下のステップを実行します。 新しいノード(Node)を作成します。 リストが空かどうかを確認します。空の場合は、作成したノードをheadに設定して処理を終了します。 空でない場合は、currNode を使って挿入したい位置までリストをたどります。リンクリストの走査は「currNod
-
PowerShellスクリプトでWindows Updateクライアントを完全リセットする方法
Windows Updateは通常、問題なく動作していますが、状況によってはさまざまなトラブルが発生することがあります。たとえば、更新プログラムが利用可能なのに検出・インストールされない、インストールが正常に完了せず不具合が残る、Windows Updateサービスが「更新中」のまま固まって進まない、といった症状です。 システムの再起動やWindows Updateサービスの再起動、可能であれば以前の更新プログラムのロールバック、Windows Updateトラブルシューティングツールの実行などを試しても、必ずしも解決するとは限りません。手動でWindows Updateコンポーネントをデフォ