ぼんさい塾

ぼんさいノートと補遺に関する素材や注釈です.ミスが多いので初稿から1週間を経た重要な修正のみ最終更新日を残しています.

XML (4)

2012-04-27 16:12:45 | 暮らし
IT-s.pdf,
記事一覧.
著作権を考慮し,参考資料の参照を前提とした簡単な説明にしています.

4.変数とパラメータ

[4-3] の例の主要部分に [4-4] のファイル分割を適用した例を次に示します.これは
  http://www.hakurei-isl.org/m-miyata/xml/manyo4.xml
で確認できます.[4-1] には select 属性で定義する方法も書かれています.


//manyo4.xml--------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="manyo40.xsl"?>

<manyosyu>

<poem pno="0008">
  <mkana>熟田津尓 船乗世武登 月待者 潮毛可奈比沼 今者許藝乞菜</mkana>
  <poet>額田王(ぬかたのおおきみ)</poet>
  <yomi>熟田津(にきたつ)に、船(ふな)乗りせむと、月待てば、潮もかなひぬ、今は漕(こ)ぎ出(い)でな</yomi>
  <mean>熟田津(にきたつ)で、船を出そうと月を待っていると、いよいよ潮の流れも良くなってきた。
  さあ、いまこそ船出するのです。</mean>
</poem>

<poem pno="0020">
  <mkana>茜草指 武良前野逝 標野行 野守者不見哉 君之袖布流</mkana>
  <poet>額田王(ぬかたのおおきみ)</poet>
  <yomi>茜(あかね)さす、紫野行き標野(しめの)行き、野守(のもり)は見ずや、君が袖振る</yomi>
  <mean>(茜色の光に満ちている)紫野、天智天皇御領地の野で、あぁ、あなたはそんなに袖を振ってらして、
  野守が見るかもしれませんよ。</mean>
</poem>

</manyosyu>
//manyo40.xsl-------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:variable name="manyo_url">http://www6.airnet.ne.jp/manyo/main/one/m</xsl:variable>

<xsl:template match="/">
<html><body>
  <p align="center">万葉集第1巻抜粋: <strong>xsl:with-param</strong>でtemplateにデータを渡す</p>
  <xsl:apply-templates />
</body></html>
</xsl:template>

<xsl:template match="manyosyu/poem">

<table border="0" width="500" align="center">
<tr>
  <th>
    <xsl:call-template name="link_url"><xsl:with-param name="contents">
      <xsl:value-of select="concat('歌番号: ', @pno)" />
    </xsl:with-param></xsl:call-template>
  </th> 
  <th><xsl:value-of select="poet" /></th>
</tr><tr>
  <td>
    <xsl:call-template name="link_url"><xsl:with-param name="contents">
      <xsl:value-of select="yomi" />
    </xsl:with-param></xsl:call-template>
  </td><td>
    <xsl:call-template name="image" />
  </td>
</tr>
</table>
</xsl:template>

<xsl:include href="manyo41.xsl" />

<xsl:template name="image">
  <xsl:element name="img">
    <xsl:attribute name="src">
      <xsl:value-of select="concat('image/m', @pno, '.jpg')" />
    </xsl:attribute>
  </xsl:element>
</xsl:template>

</xsl:stylesheet>
//manyo41.xsl-------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns="http://www.w3.org/1999/xhtml">

<xsl:template name="link_url">
  <xsl:param name="contents">規定値なし</xsl:param>
  <xsl:element name="a">
    <xsl:attribute name="href">
      <xsl:value-of select="concat($manyo_url, @pno, '.html')" />
    </xsl:attribute>
    <xsl:value-of select="$contents" />
  </xsl:element>
</xsl:template>

</xsl:stylesheet>
//------------------------------------------------


[4-1] XMLをIEで表示(基礎編) xsl:variable
  http://www6.airnet.ne.jp/manyo/xml/xslt/step19.html
[4-2] XMLをIEで表示(基礎編) xsl:call-template
  http://www6.airnet.ne.jp/manyo/xml/xslt/step20.html
[4-3] XMLをIEで表示(基礎編) xsl:with-param
  http://www6.airnet.ne.jp/manyo/xml/xslt/step21.html
[4-4] XSLT基礎編: xsl:includeで他のXSLTスタイルシートを組込む
  http://www6.airnet.ne.jp/manyo/xml/xslt/step29.html
[4-5] 5. 変数とパラメータ 1 | TECHSCORE(テックスコア)
  http://www.techscore.com/tech/XML/XSLT/Xslt5/xslt05.html
[4-6] XML 変数を作成および使用する
  http://otndnld.oracle.co.jp/document/products/workshop/docs70/help/guide/xmlmap/conCreatingandUsingXMLVariables.html
[4-7] サンプルで覚えるXSLTプログラミング
  http://www.atmarkit.co.jp/fxml/tanpatsu/xslt/xslt04.html
  <xsl:apply-templates>, <xsl:call-template>
[4-8] テンプレートのmodeを使う
  http://www.abe.or.jp/yuragi/gsxslt/p006/p006.asp
[4-9] @IT:XMLテクニック集 - 外部のXML Schemaをインクルード/インポート ...
  http://www.atmarkit.co.jp/fxml/tecs/030xsd/30.html
  同一の名前空間なら<xsd:include>, 異なる名前空間では<xsd:import>



XML (3)

2012-04-14 12:26:31 | 暮らし
IT-s.pdf,
記事一覧.

3.要素の表示

[3-3] に XSLT Version1.0 のスタイルシートの要素が説明があります.ここでは
[3-1] の xsl:attribute に [3-4] の xsl:choose を組み合わせた例 manyo3c.xsl と,
[3-2] の xsl:sort の例 manyo3d.xsl を示します.これらは
 http://www.hakurei-isl.org/m-miyata/xml/manyo3c.xml
 http://www.hakurei-isl.org/m-miyata/xml/manyo3d.xml
で確認できます.

//manyo3c.xml--------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="manyo3c.xsl "?> 
<manyosyu>
<volume no="1">
<poem>
<pno>8</pno>
<mkana>熟田津尓 船乗世武登 月待者 潮毛可奈比沼 今者許藝乞菜</mkana>
<poet>額田王(ぬかたのおおきみ)</poet>
<yomi>熟田津に船乗りせむと月待てば潮もかなひぬ今は漕ぎ出でな</yomi>
<image>image/m0008.jpg</image>
<mean>熟田津(にきたつ)で、船を出そうと月を待っていると、いよいよ潮の流れも良くなってきた。
さあ、いまこそ船出するのです。</mean>
</poem>
<poem>
<pno>20</pno> 
<mkana>茜草指 武良前野逝 標野行 野守者不見哉 君之袖布流</mkana> 
<poet>額田王(ぬかたのおおきみ)</poet> 
<yomi>茜(あかね)さす、紫野行き標野(しめの)行き、野守(のもり)は見ずや、君が袖振る</yomi> 
<image>image/m0020.jpg</image> 
<mean>(茜色の光に満ちている)紫野、天智天皇御領地の野で、あぁ、あなたはそんなに袖を振ってらして、
野守が見るかもしれませんよ。</mean> 
</poem>
</volume>
</manyosyu>
//manyo3c.xsl--------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
 <html>
   <head><title>たのしいXML: XSLTスタイルシート例-3</title></head>
   <body><xsl:apply-templates /></body>
 </html>
</xsl:template>

<xsl:template match="poem">
<table border="0" width="600" align="center">

  <xsl:choose>
  <xsl:when test="pno[number(.) >= 10]">
    <xsl:comment>何もしない</xsl:comment>
  </xsl:when>
  <xsl:otherwise>

  <tr><td>
    <xsl:value-of select="pno" />: <xsl:value-of select="yomi" />
  </td></tr>
  <tr><td><img>
    <xsl:attribute name="src"><xsl:value-of select="image" /></xsl:attribute>
  </img></td></tr>

  </xsl:otherwise>
  </xsl:choose>

</table>
</xsl:template>

</xsl:stylesheet> 
//------------------------------------------------

//manyo3d.xml--------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="manyo3c.xsl "?> 
<manyosyu>
・・・・・
//manyo3d.xsl-------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
 <html>
   <head><title>たのしいXML: XSLTスタイルシート例-3</title></head>
   <body><xsl:apply-templates /></body>
 </html>
</xsl:template>

<xsl:template match="volume">
<table border="0" width="600" align="center">
<xsl:for-each select="poem">
  <xsl:sort select="pno" data-type="number" order="descending" />

  <tr><td>
    <xsl:value-of select="pno" />: <xsl:value-of select="yomi" />
  </td></tr>

</xsl:for-each>
</table>
</xsl:template>

</xsl:stylesheet> 
//------------------------------------------------


[3-1] xsl:value-of で要素の内容を表示
 http://www6.airnet.ne.jp/manyo/xml/xslt/step8.html
[3-2] xsl:attribute で属性を作る
 http://www6.airnet.ne.jp/manyo/xml/xslt/step9.html
[3-3] XSLTスタイルシートの要素
 http://www6.airnet.ne.jp/manyo/xml/xslt/step10.html
[3-4] XMLドキュメントをIEで表示(基礎編): 内容によって表示を変える
 http://www6.airnet.ne.jp/manyo/xml/xslt/step11.html
 http://www6.airnet.ne.jp/manyo/xml/xslt/step11-1.html
[3-5] XSLT基礎編: xsl:commentでコメントを生成
  http://www6.airnet.ne.jp/manyo/xml/xslt/step28.html


XML (2)

2012-04-10 17:48:08 | 暮らし
IT-s.pdf,
記事一覧.

2.XML から HTML への変換

[2-1] にある [2-2] の例は長すぎるので,冒頭の manyo3.xml をブラウザで表示してみましょう.
http://www.hakurei-isl.org/m-miyata/xml/manyo3.xml のように XML として表示されます.

次に  [2-3] と同様に manyo3a.xsl を用いて manyo3a.xml を表示すると,本文の

  さらら: あっ、出た出た!! あれ~。文字がみ~んなつながってるよ。いいの? こんなので?

と同様 http://www.hakurei-isl.org/m-miyata/xml/manyo3a.xml のようになります.
詳しい説明が続くので,とりあえず最低限の格好をつけた例として manyo3b.xsl を用いた 
http://www.hakurei-isl.org/m-miyata/xml/manyo3b.xml を示しておきます.

//manyo3.xml--------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<manyosyu>
<volume no="1">
<poem>
<pno>8</pno>
<mkana>熟田津尓 船乗世武登 月待者 潮毛可奈比沼 今者許藝乞菜</mkana>
<poet>額田王(ぬかたのおおきみ)</poet>
<yomi>熟田津に船乗りせむと月待てば潮もかなひぬ今は漕ぎ出でな</yomi>
<image>image/m0008.jpg</image>
<mean>熟田津(にきたつ)で、船を出そうと月を待っていると、いよいよ潮の流れも良くなってきた。
さあ、いまこそ船出するのです。</mean>
</poem>
<poem>
<pno>20</pno> 
<mkana>茜草指 武良前野逝 標野行 野守者不見哉 君之袖布流</mkana> 
<poet>額田王(ぬかたのおおきみ)</poet> 
<yomi>茜(あかね)さす、紫野行き標野(しめの)行き、野守(のもり)は見ずや、君が袖振る</yomi> 
<image>image/m0020.jpg</image> 
<mean>(茜色の光に満ちている)紫野、天智天皇御領地の野で、あぁ、あなたはそんなに袖を振ってらして、
野守が見るかもしれませんよ。</mean> 
</poem>
</volume>
</manyosyu>
//manyo3a.xml--------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="manyo3a.xsl "?> 
<manyosyu>
・・・・・
//manyo3a.xsl-------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <head>
  <title>たのしいXML: 基本サンプル-1</title>
  </head>
  <body>
    <p align="center">万葉集第1巻抜粋: とにかく表示してみよう</p>
    <p><xsl:value-of select="manyosyu" /></p>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>
//manyo3b.xml--------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="manyo3b.xsl "?> 
<manyosyu>
・・・・・
//manyo3b.xsl-------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <head>
  <title>たのしいXML: 基本サンプル-1</title>
  </head>
  <body>
    <p align="center">とりあえず改行等を挿入</p>
    <xsl:apply-templates select="manyosyu/volume/poem" />
  </body>
  </html>
</xsl:template>

<xsl:template match="volume/poem">
  <xsl:value-of select="pno" />: 
  <xsl:value-of select="mkana" /> --
  <xsl:value-of select="poet" /> <br />
  読み: <xsl:value-of select="yomi" /> <br />
  意味: <xsl:value-of select="mean" /> <br />
  <p />
</xsl:template>

</xsl:stylesheet>
//------------------------------------------------


[2-1] XMLページをIEで表示させよう(基礎編-1): XMLを書きましょう
  http://www6.airnet.ne.jp/manyo/xml/xslt/step3.html
[2-2] 万葉集第1巻抜粋のXMLファイル
  http://www6.airnet.ne.jp/manyo/xml/xslt/step3.html
[2-3] XMLページをIEで表示させよう(基礎編): 一番簡単なXSLTスタイルシートの例
  http://www6.airnet.ne.jp/manyo/xml/xslt/step3.html


XML (1)

2012-04-07 19:32:17 | 暮らし

IT.pdf, IT-s.pdf, 記事一覧.

1. 簡単な例

Web 上には XML の解説資料が多数存在して目移りしますが,とりあえず [1-2] で勉強を始めます.

//manyo1.html-------------------------------------
<html><head><title>たのしいXML: CSS</title>
<link rel="stylesheet" type="text/css" href="manyo1.css">
</head><body>
<p class="mkana">熟田津尓 船乗世武登 月待者 潮毛可奈比沼 今者許藝乞菜</p>
<p class="yomi">熟田津(にきたつ)に船(ふな)乗りせむと月待てば潮もかなひぬ今は漕(こ)ぎ出(い)でな</p>
</body></html>
//manyo1.css--------------------------------------
p.mkana { font-weight:bold }
p.yomi { color:green; font-style:italic }
//------------------------------------------------

//manyo2.xml--------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/css" href="manyo2.css"?>
<poem>
<mkana>熟田津尓 船乗世武登 月待者 潮毛可奈比沼 今者許藝乞菜</mkana>
<yomi>熟田津(にきたつ)に船(ふな)乗りせむと月待てば潮もかなひぬ今は漕(こ)ぎ出(い)でな
</yomi>
</poem>
//manyo2.css--------------------------------------
mkana { display:block; font-weight:bold }
yomi { display:block; color:green; font-style:italic }
//------------------------------------------------

manyo1.*,manyo2.* は http://www6.airnet.ne.jp/manyo/xml/struct/home.html にある
ソースです.XSLがCSSより優れていることとして
--------------------------------------------------
・もとのXMLテキストの構造・内容・属性を変更できる
・XMLテキストの属性による表示方法の指定ができる
--------------------------------------------------
が挙げられています.また,HTMLからXHTMLにするときに注意することとして
--------------------------------------------------
1. すべてのタグや要素は、小文字で
2. 必ず終了タグを書くこと
3. 空要素は、"/>"で終わること
4. 属性の値は、ダブルクォーテーション( " )で囲む
5. 要素同士は入れ子になっていること
--------------------------------------------------
http://www6.airnet.ne.jp/manyo/xml/struct/step2.html で具体例を用いて詳しく
説明されています.

manyo2.xml,manyo2.css を http://www.hakurei-isl.org/m-miyata/xml/ に転送しました.
ブラウザで http://www.hakurei-isl.org/m-miyata/xml/manyo2.xml を見ると,原文の
「manyo2.xmlの表示結果」のようになっていることを確認できます.


[1-1] Extensible Markup Language - Wikipedia
  http://ja.wikipedia.org/wiki/Extensible_Markup_Language
  XHTML, DocBook, RSS, MathML, ebXML, SVG, MusicXML; RELAX NG, W3C XML Schema など
[1-2] たのしいXML: XML/XHTML入門ページです
  http://www6.airnet.ne.jp/manyo/xml/
  2011年09月25日(日)更新 33536219 (カウンタ値)
[1-3] XML
  http://gogodiet.net/z/xml/</A>
[1-4] XML | TECHSCORE(テックスコア)
  http://www.techscore.com/tech/XML/index.html/
[1-5] XML & SOA - @IT
  http://www.atmarkit.co.jp/fxml/
[1-6] XML -伸び縮みマークアップ言語-
  http://ykr414.com/xml/