ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Cocoonで、(XMLから)Excelを出力するサイトを作るには。。。

2008-10-24 15:16:04 | Weblog

 で、いままで、Cocoonをやってきたので、おまけ。
 Cocoonをつかって、XMLからExcelファイルを生成するサイトをつくります。




■しくみ

 Cocoonは、3段階でした。それで、仕組みを示すと・・・

1.generate:XMLファイルを用意します
  (前回やったように、JSPを用意し、そいつがXMLを作るのでもOK)

2.transform:そのXMLファイルを、gnumericという形式にします。
  そのgnumericについては、
  ここ(PDF) http://www.jfree.org/jworkbook/download/gnumeric-xml.pdf
  とかに載っています。

3.serialize: ApacheのPOIである、org.apache.cocoon.serialization.HSSFSerializer
  を使って、gnumeric形式からXMLにします。
  →これは、cocoon内にすでに入っています。




■方法の概要

 ということで、方法の概要です。
 ここに書いてあるような手順で、Cocoonはインストールされているということを前提とします。

(1)sitemap.xmapでxlsが指定してあるか確認する
(2)xslファイル、xmlファイル、sitemap.xmapを用意する
(3)やってみる




■(1)sitemap.xmapでxlsが指定してあるか確認する

Cocoonがインストールしてあるフォルダ(Tomcatのフォルダ/webapps/cocoon)の直下に、
sitemap.xmapというファイルがあるはずです。
ここに、以下のような

<map:serializer mime-type="application/vnd.ms-excel" name="xls" src="org.apache.cocoon.serialization.HSSFSerializer"/>

(上記< > は本当は半角)xlsを指定する行があると思います。
なければ、serializerを書くところに、指定します。




■(2)xslファイル、xmlファイル、sitemap.xmapを用意する

つぎに、その Cocoonがインストールしてあるフォルダの直下に、適当に
ファイルを作成します。今回はmytest5というフォルダを作成しました
(なぜ、5か・・・は聞かないでください。いくつかテストしたのです・・)

・そしたらまず、xmlファイルを用意します。
 こんかいは、こんなのを用意しました。
<?xml version="1.0"?>

<!DOCTYPE page [
 <!ELEMENT page (title?, content)>
 <!ELEMENT title (#PCDATA)>
 <!ELEMENT content (para+)>
 <!ELEMENT mincho (#PCDATA)>
 <!ELEMENT pmincho (#PCDATA)>
]>

<page>
 <title>MyTitle</title>
 <content><para>1</para><para>2</para></content>
</page>


(上記< > は本当は半角)

 これを、上記のmytest5のフォルダの下に、hello.xmlという名前で置きます。

・次に、xslファイルをコピーしましょう。
 Cocoonがインストールしてあるフォルダ(Tomcatのフォルダ/webapps/cocoon)の下、
 samples/hello-world/style/xslの下に、「page2xls.xsl」というのがあります。
 これを、上記のmytest5のフォルダの下に、page2xls.xslという名前で置きます。

・そしたら、このフォルダ用のsitemap.xmapを用意します。
 以下のように、記述したファイル
<?xml version="1.0"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  <map:pipelines>
    <map:pipeline>
      <map:match pattern="test.xls">
        <map:generate src="hello.xml" />
        <map:transform src="page2xls.xsl"/>
        <map:serialize type="xls"/>
      </map:match>
    </map:pipeline>
  </map:pipelines>
</map:sitemap>

(上記< > は本当は半角)
 を、上記のmytest5のフォルダの下に、sitemap.xmapという名前で置きます。

この結果、mytest5フォルダの下には、hello.xml,page2xls.xsl,sitemap.xmapの3つの
ファイルが出来るはずです。




■(3)やってみる

tomcatを起動し、
http://127.0.0.1:8080/cocoon/mytest5/test.xlsにアクセスすると、
excelファイルをどうするかみたいなことが聞かれ、そこで、「開く」にすると、
titleで指定したMyTitleというシート名で、セルに1と2が書かれると思います。

もっといろんなことが書きたい場合は、さっき書いた
  ここ(PDF) http://www.jfree.org/jworkbook/download/gnumeric-xml.pdf
をみて、xslとxmlをいろいろ書いてみてください。前のやり方を使えば、JSPでもいろいろ出来ますよね。
(あ、ごめんなさい。言い忘れた!そのかわり、上のPDF,英語です ^^;)




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

YouTube が JASRAC と音楽著作権の包括利用許諾契約を締結

2008-10-24 10:24:20 | Weblog

ここのニュース
YouTube が JASRAC と音楽著作権の包括利用許諾契約を締結
http://headlines.yahoo.co.jp/hl?a=20081023-00000031-inet-inet

によると(以下斜体は上記サイトより引用)

動画共有サイト「YouTube」は2008年10月23日、音楽著作権管理事業者である社団法人日本音楽著作権協会(JASRAC)との間で、JASRAC が管理する楽曲の YouTube における利用に関する包括的な利用許諾契約を締結した、と発表した。


ほー、で、どんな契約?


この契約による許諾は、レコード会社が制作するミュージックビデオ等の公式コンテンツにおける楽曲の利用、ユーザーが作成するオリジナルビデオにおける楽曲の利用を含む、YouTube のサービス一般における管理楽曲の利用を対象としている。


・・・ごめん、いまいち、範囲が良く分からん(^^;)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする