|
XML見習所
XMLの表示
■書式情報を与えるスタイルシート
●CSSをXMLに適用する
<?xml-stylesheet type="text/css" href="CSSファイル名.css"?> |
◆CSSで指定できる主な属性
指定できる属性 |
内容 |
display |
基本になる表示形式を指定する |
margin |
余白を指定する |
border-color |
境界線の色を指定する |
border-style |
境界線のスタイルを指定する |
border-width |
境界線の太さを指定する |
text-align |
テキストの位置を指定する |
text-indent |
テキストの字下げを指定する |
line-height |
行送りを指定する |
list-style-image |
箇条書きの画像を指定する |
list-style-type |
箇条書きのマークを指定する |
font-family |
フォントの書体を指定する |
font-size |
フォントのサイズを指定する |
font-style |
フォントのスタイルを指定する |
font-weight |
フォントの太さを指定する |
color |
色を指定する |
background-attachment |
背景をスクロールするか指定する |
background-color |
背景色を指定する |
background-image |
背景画像を指定する |
●XSLをXMLに適用する
XMLはXML文書用のスタイルシートとして開発された仕様で、それ自体がXMLの文法に従っている整形式文書になっています。
CSSと同じような書式情報を表す「XSLFO」と、文章中の要素などを変換操作し、データを加工する機能を持つXSLTがあります。
◆XSLTの指定
<xsl:template match="/">
<xsl:value-of/>
</xsl:template> |
◆XSLTをXMLに適用する
<?xml-stylesheet type="text/css" href="XMLファイル名.xsl"?> |
■XSLTのルート要素
●「xsl:stylesheet」要素をルート要素にします
XSLTでは、名前空間の仕組みを使っています。つまり、xslをプレフィックスとして使っているわけです。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/Transform">
</xsl:stylesheet> |
◆パターンとテンプレート
XSLTでは「与えられたXML文書のうちの「この部分」に対して「このような変換操作」を行う」という規則を指定していきます。このうち「この部分」を指定する方法の事をパターンといいます。パターンの指定方法は、XPathという基準に従って記述します。また、XMLTの変換規則を表す仕組みをテンプレートといいます。もとのXML文章から文字データを取り出したり、要素を付け加えたりといったXML文書の加工方法を指定します。つまり、XSLTで記述されたファイルは、パターンに当てはまるXML文書の部分を変換操作するテンプレートの集まりから成り立っているのです。
■パターン
●XPath
XMLTでは、与えられたXMLの要素や属性のうち、「どの部分を変更するのか」という指定をXPathという標準にしたがって指定します。以下では、パターンの部分をXPathで表します。XPathは、「/」等の記号を使ってXMLの要素や属性・文字などを指定する方式です。要素や属性など、XML文書の単位となっているものをXPathではノード(node)と呼んでいます。
<xsl:template match="パターン" |
記号 |
意味 |
/ |
ルートノード |
* |
全ての要素 |
. |
現在処理中のノード |
要素1 |
全ての要素1 |
要素1/ |
要素1のこの要素2 |
要素1//要素2 |
要素1の下にある要素2 |
要素1|要素2 |
要素1または要素2 |
@属性1 |
属性1 |
@* |
全ての属性 |
要素1[@属性1="△"] |
属性1の値が△である要素1 |
■テンプレート
XMLTでは、指定したXML文書の部分について「どのように変換するか」という規則を記述していきます。この規則の部分をテンプレートといいます。XSLT文書は、XML文書を変換するためのテンプレートの集まりになっています。
テンプレートは「xsl:template」という要素を使って表します。
<xsl:template match="パターン">
</xsl:template> |
■要素などを作成する
作成されるノード一覧
作成されるノード |
作成方法 |
要素 |
<xsl:element name="要素名">要素の内容</xsl:element> |
属性 |
<xsl:attribute name="属性名">属性の値</xsl:attribute> |
コメント |
<xsl:comment>要素の内容</xsl:comment> |
処理命令 |
<xsl:pi name="処理命令名">処理命令の値</xsl:pi> |
処理中のノード |
<xsl:copy/> |
■繰り返しを処理する
<xsl:for-each select="繰り返しの対象">
....
</xsl:for-each> |
■条件判断を処理する
式が成り立つときのみ処理
<xsl:if test="式">
....式が成り立つときに繰り返される場所
</xsl:if> |
式が成り立つときも、成り立たないときも処理
<xsl:choose>
<xsl:when test="式">
....式が成り立つときに繰り返される場所
</xsl:when>
<xsl:otherwise>
....式が成り立つときに繰り返される場所
</xsl:otherwise>
</xsl:choose> |
■ソートする
<xsl:sort select="式" order="ascending"/> |
|