XMLStyleSheet

「XMLStyleSheet」の編集履歴(バックアップ)一覧はこちら

XMLStyleSheet」(2008/10/03 (金) 16:04:43) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

・XMLをXSLで表示するには2つの手順が必要 ①XML文書を変換(transformation) ②書式情報を与える(formating) →XSLFOとCSSがあるがXSLFOは高度なため普及していない ・XSLスタイルシート:XML文書をどのように変換するのかという情報(.xsl) ・XSLスタイルシート全体は整形式XML文書の形をとる ・XSLの名前空間には「http://www.w3.org/1999/XSL/Transform」を使う ・XSLスタイルシートのルート要素には「xsl:stylesheet」を使う ・テンプレートルール:XML文書を変換するためのルール ①XML文書の「どの部分」を →パターン ②「どのように」変換するのか →テンプレート ・スタイルシートの中では「文書」に当てはまるテンプレートルールが一番最初に選択される ・<xsl:output method="xml" encoding="文字コード"/> ↓ →結果文書の文字コードを指定 →結果文書の形式を指定 *結果に付け加えられるXML宣言となる ・テンプレ-ト内は原則として上から順に処理される ・<xsl:apply-templates select="文書"/> →ここの処理に飛ぶ ・CSS:レイアウトを指定、テキストエディタで作れる(.css) ------------CSSの指定----------------------------- セレクタ{ 属性1:値1;  属性1の書式を値1にする 属性2:値2; } -------------------------------------------------- ・セレクタ:XML文書のどの部分に書式情報を与えるのか ・CSSの属性(property):セレクタに対してどの部分の書式を与えるか ---------------CSSの属性---------------------------------------- display 基本となる表示形式を指定 margin 余白を指定する border-color 境界線の色を指定する border-style 境界線のスタイルを指定する border-width 境界線の太さを指定する text-align テキストの位置を指定する text-indent テキストの字下げを指定する line-hight 行送りを指定する font-family 使用するフォントを指定する font-size 文字のサイズを指定する font-weight 文字の太さを指定する color 色を指定する background-attachement 背景をスクロールするか指定する background-color 背景の色をしえ治する background-image 背景の画像を指定する ---------------------------------------------------------------- ・CSSを与える:<?xml-stylesheet type="text/css" href="Sample.css"?> ・<?と?>で囲まれた指定を処理命令(PI)と呼ぶ ・CSSを利用したスタイルシートには以下の文章が必要 <xsl:processing-instruction name="xml-stylesheet"> type"text/css" href="Sample.css" </xsl:processing-instruction> XPath -------ルートノードから指定する(絶対位置指定)------------- ① / ルートノード ② /要素名A ルート要素A ③ /要素名A/要素名B ②の子である要素B ④ //要素名C 文書内のすべての要素C ⑤ /要素名A/要素名B/@属性D ③の属性D ---------------------------------------------------------- ・カレントノード:現在処理中のノード -------カレントノードから指定する(相対位置指定)----------- ⑥ . カレントノード ⑦ 要素名E ⑥の子である要素E ⑧ 要素名E/要素名F ⑦の子である要素F ⑨ 要素名E//要素名G ⑦の子の要素G ⑩ 要素名E/@要素名H ⑦の子の属性H ---------------------------------------------------------- ・<xsl:copy-of select="式"/> →式で指定したノード以下をコピーする ・<xsl:value-of select="式"/> →式で指定したノード以下をテキストに変換 ・<xsl:copy> カレントノードだけをコピー ・「*」(ワイルドカード)を記述すると、すべての名前を表すことができる ・XPathの式の最後の部分に[]をつけてノードを絞り込むことができる <xsl:apply-templates select="cars/car[2]"/> →2番目の「car」要素だけ処理する ---------XPathの演算子----------------- = イコール != ノットイコール &gt; > &gt;= >= &lt; < &lt;= <= --------------------------------------- ・「xsl:element」要素などを使って、要素を作成できる <xsl:element name="car">日本車</xsl:element> ・属性を追加 <xsl:attribute name="company">カーバンク社</xsl:attribute> ・テキストを追加 <xsl:text>車のデータです。</xsl:text> ・合計を計算 <xsl:value-of select="sum(price)"/> →価格の合計を計算 ・データの数を数える <xsl:value-of select="count(car)"/> →ノード数を数える --------XPathの関数------------------------------------------------------------------------ round(数値) 数値に最も近い整数を返す floor(数値) 数値に最も近い数値より小さい整数を返す ceiling(数値) 数値に元も近い数値より大きい数値を返す sum(式) 式で指定されたノードの集合を数値にして合計値を返す last() カレントノードの集合の個数を返す position() カレントノードの集合の中での現在のノード位置を返す count(式) 式で指定したノードの集合の個数を返す string-length(文字列) 文字列の長さを返す substring(文字列1、数値1、数値2) 文字列から、「数値1」の位置より後ろの文字を 「数値2」個分抜き出して返す starts-with(文字列1、文字列2) 文字列1が文字列2で始まれば真を返す contains(文字列1、文字列2) 文字列1が文字列2が含まれれば真を返す translate(文字列、文字リスト1、文字リスト2) 文字列の中の文字リスト1を文字リスト2に 置換したものを返す ------------------------------------------------------------------------------------------- ・XPathの式はロケーションステップと呼ばれる単位から成り立っている →軸、ノードテスト、述語 ---------------軸:基準となるノードとの関係を示すもの------------------ self:: カレントノード自身 child:: 子 parent:: 親 decendant:: 子孫 ancestor:: 先祖 decendant-or-self:: 子孫とカレントノード自身 ancestor-or-self:: 先祖とカレントノード自身 preceding-sibiling:: 兄 following-sibiling:: 弟 preceding:: カレントノードの前 following:: カレントノードの後 attribute:: 属性 namespace:: 名前空間 ------------------------------------------------------------------------ ---------ノードテスト:ノードの名前または種類を指定--------------------- node() すべてのノード comment() コメントノード text() テキストノード processing-instruction() 処理命令ノード ------------------------------------------------------------------------ 述語:ノードの絞込みをする条件。[]でくくって指定する ---------簡易表記------------------------------------------------------- 詳細 範囲 意味 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ child: (指定なし) 子 self::node() . カレントノード parent::node() .. 親 attribute:: @ 属性 [position()=数値] [数値] ノードの順序 ------------------------------------------------------------------------ --------XSLの主な要素と属性--------------------------------------------------------------- xsl:comment コメントを作成する xsl:processing-instruction name="式" 式で指定したターゲット名を持つ処理命令を作成する xsl:if test="式" 式の条件が成り立つときに処理する xsl:choose,xsl:when,xsl:otherwise 場合分けして処理する(下に詳細) xsl:for-each select="式" 式で指定された複数のノードを繰り返して処理する xsl:sort select="式" 式を手がかりにソートをする xsl:number 番号を振る xsl:variable name="式" 式で指定した名前の変数を定義する ------------------------------------------------------------------------------------------ xsl:when →要素の条件が成り立つ場合(if) xsl:otherwise →whenの条件が成り立たない場合(else) -------xsl:sort要素の属性---------------------------------- select="XPathの式" 式の値で並べ替える data-type="number" 数値として並べ替える ="text" テキストとして並べ替える order="ascending" 昇順 ="descending" 降順 (無指定だとascending) ----------------------------------------------------------- ---------xsl:number要素の主な属性-------------------------------------------------- label="single" 章番号のように番号を振る ="multiple" 「章、節、項」のように番号を振る(上のレベルの番号もつける) ="any" 登場順に番号を振る (省略した時はsingle) count="XPathの式" カウントするノードを指定する (省略した時はカレントノードと同じパターン) from="XPathの式" カウントを始めるノードを指定する format="番号の形式"   1 1,2,3 A A,B,C ア ア、イ、ウ value="XPathの式" 独自の数値とする ------------------------------------------------------------------------------------ <xsl:variable name="名前"/> ・・・ </xsl:variable> ・・・ <xsl:copy-of select="$名前"/> 上の"名前"の中身をさす <xsl:value-of select="$名前"/>

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。