トップページphp
169コメント60KB

XML+XSLTの切り札Cocoonについて語ろう!

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/10/22 23:25ID:3vYtKYtk
ないようなので作りました。
Cocoonについて質問・雑談・情報交換などをまたーりと行いましょう。

0002102/10/22 23:29ID:3vYtKYtk
スレ立て元となった親スレ
「コンテンツとデザインの分離」より
http://pc.2ch.net/test/read.cgi/php/990953955/485-499

Cocoonやったことなくて興味のある人はここらへんで雰囲気をつかんでください。

0003102/10/22 23:33ID:3vYtKYtk
あとタイトルから分かるように、Cocoon1.xもここでOKです。
もちろんメインはCocoon2になると思いますが。
0004nobodyさん02/10/23 00:03ID:???
>>1


とりあえずCocoonをダウソしてくるか…
0005102/10/23 00:10ID:vRclLX8X
大事なものを忘れてた。

本家へのリンク
http://xml.apache.org/cocoon/

日本語で情報を集めたい人
http://www.emergence.jp/ci/

@ITに載ってた入門
http://www.atmarkit.co.jp/fxml/rensai/cocoon01/cocoon01.html

後は他に適当に追加してください。

0006nobodyさん02/10/23 00:54ID:???
Cocoon1.*使った時のトラウマが・・・(笑
不安定・・・サンプルまでバギー

2.*もその内暇になったら使ってみるよ。
000731602/10/23 02:09ID:???
スレ立ておつ > >>1

寝る前にネタ提供だけしておこう。

cocooncenter Home
http://www.cocooncenter.de/cc/documents/home/index.html
0008nobodyさん02/10/24 08:19ID:m7HnCufJ
Cocoon使った構築事例って何かある?
0009nobodyさん02/10/24 11:44ID:???
cocoonって面白そうなんだけど、Win版って無いですか?
試して見たいんですけど、漏れがヘタレなんで、そのためだけにLinuxマシン用意するの
が大変なんで・・・
001031602/10/24 11:50ID:???
>>9
Pure JavaなのでWinでも使えるYO
漏れはWin上で開発してる。

Tomcat4を落としてきて、普通にセットアップしたら
cocoon.warをコピってやるだけだ。
0011nobodyさん02/10/24 13:28ID:???
(・_・)コクーン
0012nobodyさん02/10/24 20:58ID:???
Cocoon落とそうと思って、
http://xml.apache.org/cocoon/dist/
にいったんだけど、どれを落とせばいいのかわからない・・・
ちなみにWin2000だす。
00131202/10/24 21:00ID:???
と思ったら、俺のJDKは1.4だから
cocoon-2.0.3-vm14-bin.zip
というヤツを落とせばいいんだな。どれどれ・・・


0014JTR02/10/24 22:58ID:inwGcxWT
とりあえず、こんな本が出てます。
http://www.src-j.com/book_no/173.htm
http://www.gihyo.co.jp/magazines/issue-contents.php/wdpress/Vol07
001531602/10/24 23:43ID:???
本といえばXMLPRESSのVOL.6も参考になるYO。
記事の最後には参考文献が載っている。

それと翔泳社の「Javaプログラミング集中講座サーバ編」っていう
ムックの中にも記事がある。

参考にしてくれ
00161202/10/24 23:54ID:???
落としたゼ!
明日会社のTomに入れて試してみるYO。

http://www.src-j.com/book_no/173.htm
の本がよさげ?誰かこの本についてコメントしてください。
0017nobodyさん02/10/25 00:02ID:AhQYQpra
実際の業務にまで使っているのはここでは316さんだけかな?
後はみんなお勉強モードといったところか。

001831602/10/25 04:17ID:???
>>16
持ってるYO マニュアルを読むための入り口として使うには良いと思われ。
あとTips集は結構参考にしてる。どちらかというと初心者向けだと思うよ。
まあ、この本しか書籍はないから、上級者向けなんてのはマニュアル見るしか
ないんだけどね(w
00191202/10/25 21:16ID:AhQYQpra
今日から始めてみたぜ!
てゆうか何?作成したサイトはCocoonディレクトリの下に置かなきゃいけないの?
XSLTが手書きだから、XSL変換でエラーでこけてるよ・・・XSLTの妥当性チェックができん・・・
XSPで取得した結果のXMLはどこかにデバッグ出力とかできるのかな?
あれ?XSLTやXSPは修正したら即反映されないの?結果が変わらない・・・俺の気のせいか?
まじまだまだ初心者すぎる(鬱
続きは週明けだな。
とりあえずHelloだけは出せた(藁

002031602/10/26 15:48ID:???
>>19
Cocoonディレクトリの下にしか漏れも置いたことはないから判らないが、
変更できるかどうか、暇なときに調べてみるよ。

XSLTの妥当性チェックは、IEで開いてみたらいいよ。XSLTもXMLなんだから
構文がおかしければ、上手く表示されないのでそこで気付く。

あと結果が即反映されないのは、ブラウザのキャッシュが利いてしまっている
せいだ。漏れの場合は、いつもそういう感じだな。

XSPの結果だけをまず確認する場合は、

<map:pipeline>
<map:match pattern="sample04">
<map:generate src="hello.xsp" type="serverpages"/>
<map:serialize type="xml"/>
</map:match>
</map:pipeline>

ってな感じで、Serializerの指定を普段のHTMLからXMLに切り替えてみればOKだ。
0021通りすがり02/10/26 17:14ID:7P3Wkvai
ここでドキュメントの翻訳が読めるよん。
まだ途中みたいだけど...
http://jpfop.sourceforge.net/jaxml/
00221202/10/26 18:37ID:idk1OlIS
316さんありがとう!

>XSLTの妥当性チェックは、IEで開いてみたらいいよ。XSLTもXMLなんだから
>構文がおかしければ、上手く表示されないのでそこで気付く。

>ってな感じで、Serializerの指定を普段のHTMLからXMLに切り替えてみればOKだ。

確かにそりゃそうだ。ちょっと考えてみればすぐ気付くことだったね。アホだ俺は。
さっき>>16の本を買ってきたYO。
月曜日にまたやってみるか・・・

002331602/10/26 18:54ID:???
>>21
おー、ありがとう! やっぱり日本語の情報があると安心するね。
これからに期待だな。
0024nobodyさん02/10/28 00:26ID:PgJcPGqE
316さん、名前つけたら?
いつまでも数字じゃ、落ち着かないのでは?(w
002531602/10/28 20:56ID:???
>>24
そっか。そういえばそうだなー。何か考えるよ(w
0026nobodyさん02/10/28 23:56ID:cl3FG53K
以下のようなESQLをXSPで作ってみて、xmlでSerializeすることはできたんだけど、これってXSLTで簡単に表示しようと思ったらどういうふうにすればいいの?
サンプル見てみたんだけどなんかワザと複雑にしてるみたいな感じで、よく分からないんだよね・・・。

<?xml version="1.0" encoding="Shift_JIS"?>
<xsp:page language="java"
     xmlns:xsp="http://apache.org/xsp"
     xmlns:esql="http://apache.org/cocoon/SQL/v2"
     xmlns:xsp-request="http://apache.org/xsp/request/2.0"
     xmlns:xsp-session="http://apache.org/xsp/session/2.0">
 <page>
  <title>サンプル</title>
  <content>
   <esql:connection>
    <esql:pool>samp</esql:pool>
    <esql:execute-query>
     <esql:query>
      SELECT * FROM SAMPLE_TBL
     </esql:query>
     <esql:results>
      <esql:row-results>
       <row>
        <customer-code><esql:get-string column="KEY_CODE"/></customer-code>
        <name_kj><esql:get-string column="NAME"/></name_kj>
       </row>
      </esql:row-results>
     </esql:results>
    </esql:execute-query>
   </esql:connection>
  </content>
 </page>
</xsp:page>
0027JTR02/10/29 09:25ID:l92ZlJS9
簡単に表示するだけならこれでよいのでは?
ちなみに「?」は半角スペースです。

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

<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="page/title"/></title>
</head>
<body>
<xsl:for-each select="page/content/row">
<xsl:value-of select="customer-code" />?
<xsl:value-of select="name_kj" />
<br />
</xsl:for-each>
</body>
</html>
</xsl:template>

</xsl:stylesheet>

表形式にするなら<table>タグ等で整形してやればOK
0028JTR02/10/29 09:33ID:l92ZlJS9
>>27
文字化けしちゃったので再アップ
<xsl:value-of select="customer-code" />?
の最後は「&#160;」の半角です。
0029nobodyさん02/10/29 10:39ID:cU75Eh1b
thanx!>>27
なんかふつーでよかったのね。サンプル見てたら混乱してきて、
<xsl:template match="sql:rowset">
とかいろんなことやってて自滅してしまったよ。

0030nobodyさん02/10/31 14:27ID:TofCyCDV
cocoon2 のsietmap は、複雑だね。
一番大事なところなのに、マニュアルの記述が抜けていたり不十分だったり、
なかなか理解できないな。 使いこなせれば結構面白いと思う。
なお、俺は、XSLTのデバッグに、XML Spy を使っている。(30日評価版)
新バージョンの日本語版はまだ出ていない。 英語版でも、問題ない。
ブレークポイントをかけたり変数を見たり出来るので、便利、また、FOPに吐き出すことも出来るので、
これだけで、かなりのことが出来る。 SOAP 呼出まであるが、まだ使ったこと無い。
XSLのデザインは、一緒に入っているXSLT Designer を使ってるが、これは今一。 吐き出させるコードも、あまり良くないし。
XSLTデザインツールで、他に何か良いのある。

ついでに、Javaの開発ツールも、eclipse に切り替えた。 これも結構良いよ。
CPU1G以上ないと、苦しいかもね。メモリも、512くらいは、有った方がよさそうだ。
0031nobodyさん02/11/01 23:40ID:AOIyrtfu
CocoonでFOP使ってpdfを表示しようとすると日本語が全て化けてしまうんだけど・・・(#####になる)
VMはSunのにしてるのに・・・why not???
0032nobodyさん02/11/02 01:10ID:???
>>31
Fontの情報の吸出しと設定は行いましたか?
0033nobodyさん02/11/02 07:48ID:R7fz2/93
>>31
cocoon2 のfontsの説明 http://xml.apache.org/fop/fonts.html
に有るが、次のようにする。(unix の説明は、上を見て)

1)msmincho.xml(fontの設定ファイル)は次のコマンドで作成する:

java -cp fop.jar org.apache.fop.fonts.apps.TTFReader -ttcname "MS Mincho" %windir%\\Fonts\\msmincho.ttc msmincho.ttc.xml
java -cp fop.jar org.apache.fop.fonts.apps.TTFReader -ttcname "MS Gothic" %windir%\\Fonts\\msgothic.ttc msgothic.ttc.xml

2)userconfig.xml を作る。
<configuration>

<fonts>
<font metrics-file="d:/fop-fonts/msmincho.ttf.xml" kerning="yes"
embed-file="C:/WINNT/Fonts/msmincho.ttc">
<font-triplet name="MS-Mincho" style="normal" weight="normal"/>
<font-triplet name="MS-Mincho" style="normal" weight="bold"/>
<font-triplet name="MS-Mincho" style="italic" weight="normal"/>
<font-triplet name="MS-Mincho" style="italic" weight="bold"/>
<font-triplet name="MSMincho" style="normal" weight="normal"/>
<font-triplet name="MSMincho" style="normal" weight="bold"/>
<font-triplet name="MSMincho" style="italic" weight="normal"/>
<font-triplet name="MSMincho" style="italic" weight="bold"/>
</font>
<続く>
003433続き02/11/02 07:49ID:R7fz2/93
<font metrics-file="d:/fop-fonts/msgothic.ttf.xml" kerning="yes"
embed-file="C:/WINNT/Fonts/msgothic.ttc">
<font-triplet name="MS-Gothic" style="normal" weight="normal"/>
<font-triplet name="MS-Gothic" style="normal" weight="bold"/>
<font-triplet name="MS-Gothic" style="italic" weight="normal"/>
<font-triplet name="MS-Gothic" style="italic" weight="bold"/>
<font-triplet name="MSGothic" style="normal" weight="normal"/>
<font-triplet name="MSGothic" style="normal" weight="bold"/>
<font-triplet name="MSGothic" style="italic" weight="normal"/>
<font-triplet name="MSGothic" style="italic" weight="bold"/>
</font>
</fonts>
</configuration>
------------------------userconfig.xml 終わり
003533続きの次02/11/02 07:50ID:R7fz2/93
userconfig.xml は、conf/userconfig.xml を入れ替えても良いが、
font metric file と同じ場所に置いておいたほうが使いやすいかも。
fop 単独でコマンドラインから使うときは、
-c D:\fopfonts\msgothic.ttc.xml のパラメータを忘れずにつける。

cocoon で使うときは、自分の sitemap に次のように入れる。
3) sitemap のFOPSerializer に、user-config 追加
%TOMCAT_HOME%\webapps\cocoon\sitemap.xmapの182行目あたりを次のように変更する
変更前:
<map:serializer mime-type="application/pdf" name="fo2pdf"
src="org.apache.cocoon.serialization.FOPSerializer"/>

変更後:
<map:serializer name="fo2pdf"
src="org.apache.cocoon.serialization.FOPSerializer"
mime-type="application/pdf">
<user-config src="D:/fopfonts/userconfig.xml"/>
</map:serializer>
00363102/11/02 12:42ID:???
マジで感謝!!
連休明けにさっそく試してみるよ!
00373502/11/03 11:56ID:sDQgpCjx
>>35
fop 単独でコマンドラインから使うときは、
「-c D:\fopfonts\userconfig.xml を付ける」の間違い。
00383102/11/05 20:47ID:???
>>33-35の設定したらTomcatが壊れてしまったんだけど、どこ間違えたんだろう?
JSPプロセッサがInternal Error起こすようになっちゃった・・・Tomcatのサンプルも全滅。
Tomcatアンインストールして入れなおしたのにダメ・・・。
明日JDKごと再インストールしてみよう・・・
00393302/11/06 08:31ID:kYF02ldR
XML が間違ってる可能性が高いのでは?
IEで見てみるとか、文法チェックできるツールで見てみたらどうでしょうか。
Tomcatのsitemap 変更ミスの可能性が高いですね。
0040nobodyさん02/11/06 08:34ID:kYF02ldR
>>30
Eclipseのプラグインで、SunBow というのを入れると、cocoon のデバッグが出来る。
XML検証や、XSLTトレース等。 これが有ったら、結構便利そう。
004131602/11/06 11:48ID:???
おお!いい情報ありがとう!暇なときに試してみるよ。
0042nobodyさん02/11/09 06:17ID:???
>>20
Cocoonディレクトリ以外のところに置く話はあれからどうなりました?
ドメインルート直下のドキュメントをCocoonで作らないと、業務に使えない。。。
0043nobodyさん02/11/09 07:13ID:XR0o3G4o
>>42 パスを絶対アドレスで書けばいけそうだよ。

004431602/11/09 09:52ID:???
>>42
スマソ。ちょっと別の道具立ての調査ばかりで手が回らなかった。
で、サブサイトマップによるマウントでいいなら、以下の書き方で指定できる。

<map:mount uri-prefix="foo" src="file:///c:/foo/"
check-reload="yes"
reload-method="synchron"/>

みたいにuri-prefixで絶対パスを書く。

ただ、しょっぱなのsitemap全体にどかっと指定するというのが、
どうすればいいのかまだ判ってない。

これだけでも随分と管理は楽になるとは思うんだけど。参考にしてみてくれ。
004531602/11/09 10:59ID:???
>>44
あー、バカだ俺。uri-prefixに絶対パスを書くのではなく、
srcに絶対パスを書くようにする、の間違いだす。スマソ。
0046nobodyさん02/11/13 08:38ID:5nO5/2nQ
sitemap は、出来たばかりの所為だろうが、xscript 等、実験途中と思われるサンプルなどが入っているので、
迷路みたいに解らなくなってしまう。 そもそも xscript の仕様書が無い。
xscript で、外部ファイルをinclude するような事が出来るのは便利(XScript:get)
act も、src= とか class= とか、まちまちになっていたり。
しかし、幅が広すぎるね。 早くドキュメントがまとまって欲しい。
0047nobodyさん02/11/24 19:48ID:/XDrbTBT
Windows2kでTomcat4.1+cocoon2.0.1で
とりあえず、cocoonが何なのか試してみようと思いまして、
そこれへんのサイトみてインストールしてみたのですが、

最初にディスクの空き領域が足りなかったためcocoon.warの展開ができなかったんですよ、
で、空き領域確保しなおして、Tomcat再起動しても、

2002-11-24 19:37:02 ContextConfig[/cocoon]: 前のエラーのためにこのアプリケーションは利用できないようにマークします
2002-11-24 19:37:02 StandardContext[/cocoon]: 以前のエラーのために、コンテキストの起動が失敗しました

みたいになってマズーでした、どなたか解決法お願いします。
004831602/11/24 21:15ID:???
>>47さくっと一回cocoon.warとcocoonディレクトリを削除してから
再度トライしてみてはどうだろうか? 俺は虎ブッタらそうして逃げている。
それでも駄目なら素直にTomcatから解凍し直しが良いと思われ。
0049nobodyさん02/11/25 05:07ID:z/uLlx+q
いろいろ読んだけどよくわからないので質問します。
CSVを読込んでDBに入れたいんですが、
CSVの読み込みがよくわかりません。なんかいいコンポーネントはあるのでしょうか?
あるいは、xspでコーディングしなければいけないのでしょうか?
005031602/11/25 16:41ID:???
>>49
ちょっと落ち着け。読み込みっていうのは具体的にはどういうことを
したいんだ? CSVのファイルをうpして、それをDBに突っ込むという
ことをしたいのか?だったらFileUploadのサンプルを元にして、まずは
うpするところを実現してから、それをXSPでDBに突っ込んでみてはどうか?
そうではなく単純にデータをDBに入れたいだけなら、使っているDBのスレに
れっつごー!だ。
00514702/11/25 18:51ID:???
>>48
ディレクトリあぼーんで逝けました。Thanks
0052教えて下さい02/11/28 13:15ID:SNOhQP6r
cocoon2を使用していますが、XMLを修正したらtomcatを再起動しないと
反映されないのですが、即反映するにはどうしたらよいでしょうか?
キャッシュをクリアしてリロードしても反映されません。
また、使っているXMLを削除しようとすると、
「他の人、またはプログラムによって使用されています。
ファイルを使用している可能性があるプログラムを全て閉じてから、やり直してください。」
と出力されて削除できません。
tomcatを停止すると削除できるのですが、停止しないで削除はできないでしょうか?
cocoonのsitemapに関係しているのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています