XML使いの板

このエントリーをはてなブックマークに追加
943Name_Not_Found:03/06/28 02:49 ID:???
>>942
追伸。拡張子を xhtml にしてます。
944Name_Not_Found:03/06/28 03:21 ID:???
>>942
xml-stylesheet で指定するのは XSL です。
CSS は style 要素で使ってください。
945Name_Not_Found:03/06/28 03:23 ID:???
>>944
そんなことはない。
946Name_Not_Found:03/06/28 09:19 ID:???
>>942

Mozillaでしょ?
仕様なんじゃないかな?

XHTMLをXMLとして認識してるか、HTMLとして認識しているかの違いでは?
CSSに関連つけないとないと、XMLとして認識して「ツリー表にになりまつ。」と言ってるだけ。
947Name_Not_Found:03/06/28 11:20 ID:???
>>942
うちはIE6だが
<?xml-stylesheet type="text/css" href="hoge.css"?>
を削除して head 内に
<link rel="stylesheet" type="text/css" href="hoge.css" />
を加えたら正常に動作したぞ。
948Name_Not_Found:03/06/28 11:56 ID:???
うちのIE6SP1は拡張子がxhtmlだとツリー表示する…
xsl-stylesheetを入れると普通に表示されたけど、
HTMLのときのようなデフォルトのスタイルは用意してくれないんだね…
Mozだとやってくれるっぽい。
949Name_Not_Found:03/06/28 15:13 ID:???
>>946-948
Mozillaでしかテストしてないんですけど

拡張子がxhtmlの場合
<?xml-stylesheet type="text/css" href="hoge.css"?>
を指定しないとツリー表示されてしまう。

拡張しがhtmlの場合(内容はxhtml)
上記のスタイルシートを指定しなくてもレイアウトされて
表示される。

結局W3C的に正しいのはどの方法なんでしょう?
CSSスタイルシートの指定も
ttp://www.w3.org/TR/xhtml1/#C_14
では <?xml-stlesheet> で指定してますよね。でも<style>
タグは今後xhtmlでも削除される予定はないみたいですし
どっちで指定したらいいんですか?
950Name_Not_Found:03/06/28 15:48 ID:???
XHTMLなら両方書いとけばいいじゃん。
951948:03/06/28 20:56 ID:???
>>948
追記。IEの方は、a要素がリンクになってない…
952Name_Not_Found:03/06/28 20:57 ID:???
当然といえば当然だけど
953Name_Not_Found:03/06/28 21:38 ID:???
>>949

だから!

XHTMLを、”XMLとして扱う” か ”HTMLとして扱う” か

の問題だってば。

解らんかな?
954Name_Not_Found:03/06/29 04:40 ID:???
>>953
いや、そーじゃなくて…名前空間URIが間違ってる >>942
955Name_Not_Found:03/06/29 11:15 ID:???
誰の言うことを信じたらいいんでしょうか。。
956Name_Not_Found:03/06/29 12:30 ID:???
複数のXML文書から同じ名前の要素を取り出してきて
一覧に出来たら便利と思い検索してみたのですが、
複数のXSLTを使う方法は出てきても
複数のXMLを取り込んで処理する方法を見付けきりませんでした。

どうすれば良いのでしょうか…
できればJavaScript等を使わずにXML文書とXSLTだけでやれたら良いのですが。
957Name_Not_Found:03/06/29 12:44 ID:gq4is7d8
>>956
XSLT 側から document() で XML のファイルを指定してやったら?
958Name_Not_Found:03/06/29 12:57 ID:???
どもです。
documentで検索したらそれらしきものが出てきたのでこれから勉強してきますヽ( ´ー`)ノ
959Name_Not_Found:03/06/29 13:55 ID:???
例えばfile_001〜という連番のファイルがあったとして、

<xsl:for-each select="document('file_001.xml')/foo">
<li><xsl:value-of select="bar" /></li>
</xsl:for-each>
<xsl:for-each select="document('file_002.xml')/foo">
<li><xsl:value-of select="bar" /></li>
</xsl:for-each>

以下略とこんな感じでずらっと並べてるのですが…

属性値で連番を生成できたり、
ある範囲の数字を指定する(例えばfile_001.xml-file_005.xmlのような)事は出来ますか?
960Name_Not_Found:03/06/29 14:30 ID:???
regexp
961Name_Not_Found:03/06/29 14:49 ID:7+f5OIBr
再帰を使って繰り返しを行い、concatでファイル名を合成する、かな
962Name_Not_Found:03/06/29 15:54 ID:???
ファイルリストをXMLで書いて、>>959のXSLを書き出すXSLを作ればいい。
963Name_Not_Found:03/06/29 22:14 ID:???
すいませんテキストノードに含まれる要素の置換ってどうするのでしょうか。
例えば
<text>foo<link href="bar">bar</link>foo</text>
このようにしているのですが、これを
<p>foo<a href="bar">bar</a>foo</p>
のように、linkをaとして出力したいのです。
964Name_Not_Found:03/06/29 22:56 ID:???
>>963は色々やってたら自己解決したので取り下げます。

解決策:

<xsl:template match="hoge/link">
<a>
<xsl:attribute name="href">
<xsl:value-of select="@href" />
</xsl:attribute>
<xsl:value-of select="text()" />
</a>
</xsl:template>
965Name_Not_Found:03/06/29 22:56 ID:???
hogeじゃなくてtextです念のため…。
966Name_Not_Found:03/06/29 23:08 ID:???
今度は別の問題が(つД`)
<text>foo<br /><link href="bar">bar</link>foo</text>

<xsl:template>
 <p>
  <xsl:value-of select="text/text()" />
  <xsl:apply-templates select="text" />
 </p>
</xsl:template>
<xsl:template match="text/link">
 <a>
  <xsl:attribute name="href">
   <xsl:value-of select="@href" />
  </xsl:attribute>
  <xsl:value-of select="text()" />
 </a>
</xsl:template>
<xsl:template match="text/br">
 <br />
</xsl:template>

とした時に最初の一行(多分<text>〜<br />まで)が重複して表示されてしまいます。
foofoo
bar以下略
これを回避するにはどうすれば良いでしょうか…。
967Name_Not_Found:03/06/29 23:15 ID:???
<xsl:value-of select="text/text()" />消す。
968Name_Not_Found:03/06/30 18:19 ID:???
ちゃちい質問かもしれないけどもしかしてRSSってサイト情報じゃなくて更新情報?
969Name_Not_Found:03/06/30 18:21 ID:???
RDF Site Summary
970Name_Not_Found:03/06/30 19:17 ID:???
ボーッとスレ読み返してたけどXML→XHTMLとするとき、
metaとかはどうやって入れてる?
ウチは元のXML文書にその辺りの情報は入れてないんで

<xsl:element name="meta">
<xsl:attribute name="http-equiv">Content-Type</xsl:attribute>
<xsl:attribute name="content">text/html;charset=UTF-8</xsl:attribute>
</xsl:element>

とかやってるけどなんだか最近ビミョーな気がしてきて…。
971Name_Not_Found:03/06/30 21:04 ID:???
>>970
ビミョーって、どの辺の観点の話?
972Name_Not_Found:03/06/30 21:58 ID:???
>968
神崎たんのサイト行け
973Name_Not_Found:03/07/01 00:31 ID:???
質問ですがXSLTで要素自体の有無による分岐は可能でしょうか。
例えば year month day と言う要素があり、
XSLTで year/month/day と言う形にして出力しているとして、
要素がない場合は ? で置き換えると言うような事をやりたいのです。

<year>2000</year><month>12</month><day>31</day>の場合、
year要素が無ければ <li>????/12/31</li>
month要素が無ければ <li>2000/??/31</li>
year要素もday要素も無ければ <li>????/12/??</li>
さらに三つの要素が全て無ければli要素を完全に出力しない、
という感じで。
974Name_Not_Found:03/07/01 01:29 ID:???
>>973
xsl:choose
975Name_Not_Found:03/07/01 02:00 ID:???
chooseについては調べてみたのですが
テキストや属性がどうであればこうするという例ばかりで
要素(や属性とか)そのものがあれば真、なければ偽というやり方がわからないのです。
976Name_Not_Found:03/07/01 03:07 ID:???
とか言ってたらデキター

perlのifとかと似たようなものなのね。
977Name_Not_Found:03/07/01 21:17 ID:???
平時XHTML1.1で文書を作っているのですが、既存のXHTMLでは満足できなくなって
div要素に新しい日記用属性を付け加えたくなりました。

それで
<xhtml xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml" xmlns:diary="(自分のWebSiteのURL)">
として
<div diary:date="2003-07-01">
ってな記述をしてみているのですがパースエラーが発生してしまっています。

自分のWebSiteのURLをつかって勝手に新しい名前空間を名乗ったりするのはダメなんでしょうか?
また、ダメな場合どうしたら回避できる(または回避できない)のでしょうか?

教えて君ですみません。識者の方助言をお願いします。
978Name_Not_Found:03/07/01 22:00 ID:???
>>977
パースエラーの発生するパーザとエラーメッセージがわからないことには
何とも言えないなあ。
979Name_Not_Found:03/07/01 22:58 ID:???
>>977
XHTML 1.1そのままの文書型宣言を付けてるんじゃないの?
DTDを弄らずに勝手に新しい属性を付加してたら、
DTD読むタイプのパーサには怒られると思われ。
980Name_Not_Found:03/07/02 00:11 ID:???
>>978-979
返答有り難うございます。

>XHTML 1.1そのままの文書型宣言を付けてるんじゃないの?
つけてました。そこで、改めて見てみるとおいらはパーサに
「XHTML1.1のdivにdiary:dateなんて属性はねぇぞゴラァ」(超訳)
と叱られてました。どうもすみません。

そこでXHTML1.1のDTDのCore.attribをこんな風に書き換えちゃおうかと
思ったのですが…
><!ENTITY % Core.attrib
>   "%XHTML.xmlns.attrib;
(中略)
>   %diary.attrib;">
><!ENTITY % diary.attrib
>   "diary:date %LanguageCode.datatype; #IMPLIED">
><!ENTITY % diary.datatype "CDATA" >

(仮にこの書き換えがOKだとして(ちょっと自信ないです))これって
すでにXHTML1.1では無いわけで、つまりXHTML1.1のシステム識別子を名乗っちゃって
大丈夫なもんでしょうか?それとも、いっそ文書型宣言を削除して非検証の
整形済み文書である方がマシなんでしょうか?

なんか聞いてばっかりですみません。
981Name_Not_Found:03/07/02 08:46 ID:???
>>980
てかシステム識別子ってDTDの所在なわけで、書換え後のDTDのURIを書かないと意味がない。
XHTML1.1のものを名乗るとまずいのは公開識別子。
プロセッサによっては公開識別子だけでDTDを特定する可能性がある。
<!DOCTYPE html SYSTEM "書き換えたDTDのURI"> とかすればいいんじゃない?
必要なら適当に公開識別子でっち上げてもいいと思う。
妥当性検証が明らかに不要な文書であるなら
文書型定義・宣言を無理に書くことないとも思うけどね。

検証の可能性がある文書だったら、XHTMLMODとか参考になるかも。
http://msugai.fc2web.com/web/W3C/XHTMLMOD/Overview.html
漏れだったら %Common.extra.attrib; に追加するなあ。
982Name_Not_Found:03/07/02 20:16 ID:???
>>980
>>981 読めば大体大丈夫だと思うけど、付け加えて言うと、
DTD をいじるなら xmlns:diary 属性の定義をする必要がある。例えば

<!ENTITY % XHTML.xmlns.attrib
"xmlns &#37;URI.datatype; #FIXED '&#37;XHTML.xmlns;'
xmlns:diary &#37;URI.datatype; #FIXED '何かURI'" >

とか。ただ、本当はわざわざ diary:date なんて属性を定義するより
Dublin Core の date 属性とかを使った方が幸せになれると思うけど。

# 「DTD を書き換える」ってのは、本当に宣言を書き換えちゃうんじゃなくて、
# 定義を追加して上書きするんだってことは分かってる…よね? (汗 念のため。
983982:03/07/02 20:20 ID:???
すまん、dc:date は要素型だ。
984Name_Not_Found:03/07/03 07:24 ID:???
新刷れのリンク集用に過去ログ参考にして作ってみた。
つーか今いい流れなんで新スレきぼん

[総本山]
日本XMLユーザーグループ WebPage http://www.xml.gr.jp/

[技術情報]
XML Cafe http://www.fxis.co.jp/xmlcafe/index.html
XML FAQ-J http://db-www.aist-nara.ac.jp/xml/
XML eXpert eXchange http://www.atmarkit.co.jp/fxml/
XML SQUARE http://www.utj.co.jp/xml/

[学習]
[入門者用]たのしいXML http://www.cityfujisawa.ne.jp/~yanai/xml/
[脱初心者用]Studying XML for beginners http://www.asahi-net.or.jp/~ps8a-okzk/xml/index.html

[リンク集]
[DTD集]XMLフォーマットのイエローページ http://it.jeita.or.jp/eltech/XML/
[カテゴリ別]XMLディレクトリ http://www2.ocn.ne.jp/~yamagu/xmldir/xindex.html

[海外]
XML.org http://www.xml.org/
[あのオライリーのサイト]XML.com http://www.xml.com/
[フリーツール集]Homepage: Lars Marius Garshol http://www.garshol.priv.no/

[XHTML]
Web作成支援 http://msugai.fc2web.com/index.html

[XML to HTML]
[専らサンプル]KOBA'S World http://www.mwc.ne.jp/y-koba/
985Name_Not_Found:03/07/03 08:09 ID:???
XSLT1.0仕様(日本語) http://www.infoteria.com/jp/contents/xml-data/REC-xslt-19991116-jpn.htm
XPath1.0仕様(日本語) http://www.infoteria.com/jp/contents/xml-data/REC-xpath-19991116-jpn.htm
も需要高そうなので入れたい気分。
986Name_Not_Found:03/07/03 09:11 ID:???
W3C http://www.w3.org/
これは?当たり前すぎていらないかな。
987Name_Not_Found:03/07/03 11:24 ID:???
XML使った事無いけど、このスレに通りすがりついでに立てた。

XML使いのスレ 2.0
http://pc2.2ch.net/test/read.cgi/hp/1057198990/
988Name_Not_Found:03/07/03 13:06 ID:???
ふと疑問に思ったのだけどXMLの読みって「えっくすえむえる」で良いのかな?
いや他に読み方あるんかいなって思う事は思うけど
たまに予想外の読み方をさせる語もあるし…。
989Name_Not_Found:03/07/03 13:12 ID:???
>>988
脳内では「くすむる」として速読してる(´・ω・`)
990Name_Not_Found:03/07/03 13:13 ID:???
少なくともPNGみたいに「こんな風に発音します」って公式アナウンスはない。
# 新スレに書けって…。
991Name_Not_Found:03/07/03 13:41 ID:???
そなのかー。
作った人たちはどう読んでんだろ。

>990
いやぁ比較的どうでもよさそうな話題なので埋めついでに…みたいな。
992Name_Not_Found
http://dictionary.reference.com/search?q=xml
「えっくすえむえる」でほぼOKな気が。