【XML】xmlns, XSLT, ..
385:デフォルトの名無しさん
07/01/03 23:47:14
URLリンク(d.hatena.ne.jp)
こういうの見るとXSLTがいかにキチガイじみているかわかる。
スゲーとは思うけど。
386:デフォルトの名無しさん
07/01/04 01:36:43
>>385
別にその程度じゃそんなにキチガイじみてるとは思わんが。
てか、XSLTはもっといろんなことができる。
データ入力まわりの問題をうまく解消しないまま途中でほったらかしにしちゃったけど
XSLTでタスク管理のツールを作ったこととかあるぞ。ちゃんとタスクの親子関係に
基づいてツリー表示もできるヤツ。同じデータをいろんな組み合わせ or いろんな見せ方を
したい場合に XSLT はとっても重宝する。
387:デフォルトの名無しさん
07/01/04 08:39:30
なんか普通にコード書いたほうが早そうだな・・・
388:デフォルトの名無しさん
07/01/09 11:54:30
もっとシンプルなテンプレート言語使って、
複数テンプレート用意する方を俺は選ぶ。
あるいは XML 丸投げして、
クライアント側で勝手に描画してください形式にする。
XLST の方が素晴らしいケースってどんな場合?
389:デフォルトの名無しさん
07/01/13 02:46:50
XMLはD言語みたいなネストできるコメントが欲しい
390:デフォルトの名無しさん
07/01/13 05:28:39
>>389
同感
あとCDATAセクションもどうにかしてほしかった
391:デフォルトの名無しさん
07/01/13 08:27:32
>>388
>>385の人も言ってるように形式的な変換なら、XSLTで一発の方がいいかな。
間にいろいろ挟みたくない場合は少なくないし。
他の言語でも変換は出来ると言われたら確かにそうだけど
392:デフォルトの名無しさん
07/01/13 12:30:47
>>388
>もっとシンプルなテンプレート言語
ちなみに今何を使ってる?
393:デフォルトの名無しさん
07/01/15 16:23:27
>>392
velocity 使ってます(java)。
利点は構文がシンプルなのと、
変数は #var の形式だから < > で囲う系と比べて
ブラウザでの確認がしやすい点。
難点はホワイトスペースが意味を持つ場合、
改行その他が表示されないように工夫する必要があって
かえって読みにくくなる点。
テンプレート言語ではないけど e4x も重宝してます。
394:デフォルトの名無しさん
07/01/15 22:42:16
>>391
ちょっと本筋から外れるが、「形式的定義」の意味を間違えてないか?
中の人はこういう感じの意味で言ってると思う。
URLリンク(www.chimaira.org)
395:デフォルトの名無しさん
07/01/24 20:10:15
SAXにおいてスキーマはどのような位置づけになるのでしょうか?
DOMの場合は解析を終えた状態ですが、SAXはインタプリタですよね?
396:デフォルトの名無しさん
07/01/24 22:49:13
XSLTを使って
<A>
foo
<B>
<C> bar </C>
<D> baz </D>
</B>
qux
<B>
<C> hoge </C>
<D> fuga </D>
</B>
piyo
</A>
から<A>foo bar qux hoge piyo</A>
を抜き出したいんですが、どう書けばいいのでしょうか?
397:デフォルトの名無しさん
07/01/24 22:59:46
>>393
ども。velocityはちょっといじって投げちゃってた。
398:デフォルトの名無しさん
07/01/24 23:26:24
>396
xsl:value-of はテキストノードだけ残るんでは。
399:396
07/01/25 00:52:59
>>398
<xsl:template match="/">
<xsl:apply-templates select="A"/>
</xsl:template>
<xsl:template match="A">
<xsl:copy>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
という感じで書いてみたんですが、Aの子ノードの内容を全部取ってくるので、
必要ないbazやfugaが入ってしまいます。
400:デフォルトの名無しさん
07/01/25 01:56:54
質問があります。 Xalan-C 1.10 を使っています。
入力として以下のような XML があります。
<?xml version="1.0" ?>
<article>
<title>プログラム技術板について</title>
ここの板の住人はとても親切です。
<photo file="hiroyuki.png" />
こんな人にも親切に質問に答えてくれます。きっと。
</article>
これを整形して
<html>
<head><title>プログラム技術板について</title></head>
<body>ここの板の住人はとても親切です。<img src="hiroyuki.png" />こんな人にも親切に質問に答えてくれます。きっと。</body>
</html>
こういう出力を得たいのですが上手くいきません。
具体的には間に別のノードが挟まったテキストノードの扱い方がわかりません。
〜続きます〜
401:400
07/01/25 01:58:41
〜続きです〜 以下のように書いてみたのですが、テキストと区切りが別々になってしまいます。
<?xml version="1.0" encoding="Shift_JIS" ?><xsl:stylesheet xmlns:xsl="URLリンク(www.w3.org) version="1.0">
<xsl:output method="xml" encoding="utf-8" /><xsl:template match="/"><xsl:apply-templates /></xsl:template>
<xsl:template match="article">
<xsl:element name="html">
<xsl:element name="head">
<xsl:element name="title">
<xsl:value-of select="title" />
</xsl:element>
</xsl:element>
<xsl:element name="body">
<xsl:for-each select="../*">
<xsl:apply-templates select="text()"/>
<xsl:apply-templates select="photo"/>
</xsl:for-each>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="photo">
<xsl:element name="img">
<xsl:attribute name="src">
<xsl:value-of select="@file" />
</xsl:attribute>
</xsl:element>
</xsl:template>
</xsl:stylesheet> 〜続きます〜
402:400
07/01/25 01:59:28
〜続きです〜
text() と photo を別々に apply している部分を * にすると欲しいテキストが処理されず、代わりに title の中身のテキストを拾ってきてしまうようです。
このような場合、どう記述すればよいでしょうか?
宜しくお願い致します。
403:デフォルトの名無しさん
07/01/25 13:11:15
>>395
なんか認識を間違えてる気がする。DOMだろうとSAXだろうとStAXだろうとパース手法とデータの扱い方の違いの問題だろうな。
>SAXにおいてスキーマはどのような位置づけになるのでしょうか?
多分欲しい回答は自分で文書型をパースしてそれにしたがってバリデートするって言って欲しいんだろう。
>DOMの場合は解析を終えた状態ですが、
それは内部で既にパース済みだからだよ。既にパース結果をDOMインターフェイスから扱える形になってる。
>SAXはインタプリタですよね?
そこまで高度なものじゃなくてポピュラーなXML APIは全て字句解析機。
トークナイズしてトークンをハンドラにディスパッチする事によってデータを扱う。
SAXの場合はハンドるした生のデータをプログラマが扱うがDOMの場合はDOMインターフェイスから扱えるように加工されたデータを扱う。
SAXの場合はトークナイズしてディスパッチした時点でデータを破棄するがDOMは
"後で"扱うために保持するのでデータの持ち方をどうするかという観点からも加工されている。
データの持ち方までDOMは関与しないからどう持つかは実装次第で必ずツリーかは別だけどな。
多分>>395はPLインタプリタやコンパイラみたいな物を想像しててSAXがインタプリタと言ったんだろうな。
そこまで複雑なものじゃないよ。その中の字句解析機に当たる。
その次の構文解析と意味解析辺りがバリデータと言えるか。
XMLパーサはフレームワークとかじゃなくてただのレイヤーだ。
何やっててスキーマは〜って思ったんだ?何をしたいのか聞いた方が早いと思う。
自力でパーサ実装した事ないだろ?
404:デフォルトの名無しさん
07/01/26 01:47:23
>>400
元のXMLの構造を見直したら?
<article>
<title>プログラム技術板について</title>
<body>ここの板の住人はとても親切です。</body>
<photo file="hiroyuki.png">こんな人にも親切に質問に答えてくれます。きっと。</photo>
</article>
とかさぁ。
405:デフォルトの名無しさん
07/01/29 11:39:14
複数ある項目に対してCGIを呼び出すボタンをつけるというのを
XML+XSLTでやろうと思っているのですが
サンプルページなどを見ると、
表示するだけで項目の編集などをやっていません
項目ごとにCGIなり編集なりを行いたい場合
どのようにするのが一般的でしょうか?
406:デフォルトの名無しさん
07/01/30 20:59:04
>>400
> <xsl:for-each select="../*">
> <xsl:apply-templates select="text()"/>
> <xsl:apply-templates select="photo"/>
> </xsl:for-each>
もう見てないかもしれないけど、一応。
上の4行を<xsl:apply-templates select="text()|photo"/>の1行だけに書き換えればいい。
もし余計なスペースと改行が邪魔なら
> <xsl:value-of select="."/>
を<xsl:value-of select="normalize_space(.)"/>にでもするといいよ。
>>405
<form>と<input>でボタンをつければいいだけでは?
407:デフォルトの名無しさん
07/02/02 14:53:40
XFormsでRDFを生成したいんですけど、
namespaceのところでおかしくなるんです。
仕様で無理なのでしょうか?
ちなみにFirefoxの拡張で試しています。
408:デフォルトの名無しさん
07/02/03 14:03:34
>>407
何も知らない俺からすれば
鉛筆でノートに図形を描きたいんですけど、
指先のところでおかしくなるんです。
仕様で無理なのでしょうか?
ちなみに100¥ショップので試しています。
みたいにおもえた
409:デフォルトの名無しさん
07/02/03 14:18:48
>>407
>>408は煽ってるわけじゃないぞ。
もう少し問題の切り分けをしてみ?
410:407
07/02/04 05:17:55
すみませんでした。状況説明を補足します。
XFormsでRDFを生成したいのですが、インスタンスに名前空間があると
例)
"RDF/Description/creator"というXPathで参照すると入力欄は出ず、
"rdf:RDF/rdf:Description/dc:creator"というXPathで参照すると入力欄は出るけれども
エラー: XForms Error (15): Could not bind control to instance data と怒られてしまいます。
XFormsで生成したXMLには、インスタンスで指定した名前空間接頭辞の設定が消えてしまうのですが、
そこが問題なのでしょうか?
解決策をご教授いただければ幸いです。
411:デフォルトの名無しさん
07/02/05 15:47:18
>>406
XSLTを切り替えたいのでASP.NETを使って
FormとInputでやってみたのですが
xsl:elementとxsl:attributeでinputタグを書くと
終了タグが閉じないinputタグが生成されたり
ASP.NET用のformタグ内で宣言すると
Validateエラーが出たりとなかなか上手くいきません。
asp.netなんて使うなって話ではあるんですが・・・
412:デフォルトの名無しさん
07/02/21 11:12:47
Microsoft MSXML6SP1 (WindowsVistaに同梱)
URLリンク(www.microsoft.com)
Microsoft XML Notepad 2007
URLリンク(www.microsoft.com)
413:今日の日記
07/03/15 04:20:42
「XMLマスター教科書 ベーシックV2」という参考書で、
参考書の間違いに気づいた俺に感動した。
参考書だだ暗記癖が抜けてきたよい傾向と受け止めよう。
414:デフォルトの名無しさん
07/03/15 09:59:38
xmlとhtmlの本て嘘ばっかだぞ。仕様書嫁って言いたくなる。
教本じゃなくて紙媒体の参考書が欲しいだけの人間にはこういうのは困る。
415:デフォルトの名無しさん
07/03/15 20:25:39
古いアプリ(改訂)で売られてることが多いから、
正誤表(パッチ)で上書きしてから使うのが大切ってこったね。
416:デフォルトの名無しさん
07/03/15 20:26:18
()の中と外があべこべになっちゃった。恥ず。
417:デフォルトの名無しさん
07/03/17 19:58:15
XML Schemaは結構強力だな
うちもC、Java、VB(VBA)と手広い環境でやってるんで
XMLの導入を勧めたいところだ。
418:デフォルトの名無しさん
07/03/17 21:41:10
スキーマ書くよさげなツールある?
ヒューマンフレンドリーな方法で編集したいんだが
419:デフォルトの名無しさん
07/03/17 22:06:38
>>417
あんまり高度な書き方すると読む側が大変だから程ほどにね。
420:デフォルトの名無しさん
07/03/18 01:22:59
>>417
WXSは強力すぎてそこら辺の要件には一致しないし、仕様がでか過ぎて実装も困難なんだけどねw
421:デフォルトの名無しさん
07/03/18 01:34:48
>>418
Altova XMLSpyがおすすめ。
>>420
実装するのは俺じゃないしナー。
世の中の対応もだいぶ進んできた。Eclipse WTPの
XMLエディタはおすすめ。ばりばり補完してくれる。
422:デフォルトの名無しさん
07/03/18 05:59:36
>>421
スキーマバリデータ書いてみ?死ねるw
文法が可変の言語インタプリタ書いてるみたい。
DTD→RELEXNG→WXSの順に仕様がでかくなるんでDTDじゃ物足らず、WXSじゃでか過ぎるって場合が良くある。
RELEXNGは両端の架け橋として良く出来てる。
423:デフォルトの名無しさん
07/03/18 10:17:00
Schemaじゃでかすぎるって印象は無いな
complexTypeひとつにrestriction施したsimpleTypeを項目数分書くとかで十分だ
424:デフォルトの名無しさん
07/03/18 14:29:28
>>422
バリデータとか書く側ならともかく、フツーに使う側からしてみりゃ
別に仕様が大きすぎて困ることはないけどね。
425:デフォルトの名無しさん
07/03/18 19:58:26
既存のバリデータの実装に不具合が多かったりするんじゃないかとか。
URLリンク(www.horobi.com)
> このあたりは XML Schema ワーキンググループのメンバーが開発した
> XSV でさえ、部分的にしかサポートしていないんだ。
みたいな。
まあ、安全そうな機能だけ使っておけばよいのだろうけれど。
426:デフォルトの名無しさん
07/03/19 02:44:40
XSLTでtext要素のトリム(前後の空白文字の削除)
とかするにはどうするの
427:デフォルトの名無しさん
07/03/19 14:20:13
途中の連続した空白が1個になっていいなら normalize-space
428:デフォルトの名無しさん
07/03/19 21:00:00
ありがとー
429:デフォルトの名無しさん
07/03/21 09:09:33
ちょっとvipperが尋ねるお?
今、XMLをメタモデル化してそのモデルに自由にアクセス出来るライブラリ作ってんだけど総称符号化について日本語で読める文書知らない?論文でも良いんだけど・・・。
もう一つ、XML::Twingのようなハイブリッドパーサの実装他に知らない?
一応仕様だけは完成したけど煮詰めたくて、けどやってる事がメタ過ぎて参考になる資料がなくて困ってる。
当方オライリーの入門XML2版だけある。
#簡単に言うとXMLに対してランダムアクセスと順次・逆順次アクセスが自由に可能になる。
但しアクセスのみに焦点を置いてるので生成機能はない。
実装してる人間からすればプログラミング単位がメタ過ぎて発狂する・・・
430:デフォルトの名無しさん
07/04/10 22:35:44
う
431:デフォルトの名無しさん
07/04/10 22:41:17
XMLで質問なのですが、よろしくお願致します。
<?xml version="1.0"encoding="shift_JIS"standalone="yes"?>
<books>
<book isbn = "ISBN4-7980-0137-6">
<name>今日から使えるAPS3.0サンプル集</name>
<author>Yoshinori.Yamada</author>
<category>ASP</category>
<price>2800</price>
<publish>昭和システム</publish>
<pDate>2003-08-05</pDate>
</book>
<book isbn = "ISBN4-7980-0095-7">
<name>今日から使えるXMLサンプル集</name>
<author>Nami Kakeya</author>
<category>XML</category>
<price>2800</price>
<publish>昭和システム</publish>
<pDate>2003-12-04</pDate>
</book>
<books/>
を実行すると、
432:デフォルトの名無しさん
07/04/10 22:42:59
スペース、タブ、および改行または疑問符 (?) が必要です。リソース 'file:///C:/Documents and Settings/aaa/XML/books.xml' の実行エラーです。ライン 1、位置 20
<?xml version="1.0"encoding="shift_JIS"standalone="yes"?>
-------------------^
とエラーが出てしまいます、何処がどう違うのか、
わからないのでご指摘お願い致します
433:デフォルトの名無しさん
07/04/10 22:44:47
"1.0"の後。encoding=の前。
434:デフォルトの名無しさん
07/04/10 22:46:53
スペース、タブ、および改行または疑問符 (?) が必要です。
4択問題だなw
435:デフォルトの名無しさん
07/04/10 23:04:27
2択だろ。
white space or ?
436:431
07/04/10 23:10:10
ごめんなさい、どうしても変わりません・・・・
訂正箇所を記述して頂けると幸いです。
直しても変わらないです
437:デフォルトの名無しさん
07/04/10 23:11:26
直してないから変わらないんです
438:431
07/04/10 23:22:04
<?xml version="1.0" encoding="shift_JIS"standalone="yes"?>
これでも、結果は同じです。
439:デフォルトの名無しさん
07/04/10 23:49:26
>>438
standaloneの前も
440:431
07/04/11 00:06:27
できました!!!ありがとうございました!!!
441:デフォルトの名無しさん
07/04/11 22:17:10
XML レ0・ク0・h・yg0M0~0[0・
XSL ケ0ソ0、0・ キ0・ネ0・O(uW0_0 XML eQ娚o0h・yg0M0~0[0・0 ィ0・・・劃kW0f0O0`0U0D00 [fーe] ワ0ソ0・・ッ0・テ0ッ0Y0・K00~0_0o0契g0・・vW0f0O0`0U0D00
--------------------------------------------------------------------------------
ニ0ュ0ケ0ネ0n0・ケ[k0!qケRj0eW[L0級d0K0・~0W0_00 ・ス0・ケ0 'file:///C:/Documents and Settings/Yousuke1/ヌ0ケ0ッ0ネ0テ0ラ0/XML/text.xml' n0歇L葵0・・g0Y00 ・、0・ 40MOn 8
name="
こんなエラーを起こしてしまうのですが、何処の箇所が違っているのでしょうか?
442:441
07/04/11 22:20:30
IEを使っています。
443:デフォルトの名無しさん
07/04/11 23:32:10
>>441
[表示(V)] - [エンコード(D)]
444:デフォルトの名無しさん
07/04/26 01:28:29
ソースXMLの一部だけ変更する、というのはXSLT向きでしょうか。
他は変えずに/x:abc/y:def@hoge の値だけを書き換えるとか、/x:abc/y:def/hoge にappendChildするとか。
出来ないことはないのかも知れませんが、上記の様なのにXSLTを使うのは適切でしょうか。
matchが、明示より*が強くて /x:abc/y:def だけ引っ掛けてあとはcopy-ofというのができず、悩んでいます。
priorityを明示すれば良いのかも知れませんが、それはまっとうな使い方でしょうか。
(*の方が強いのは理由があるのではないか、それに反するのではないか、と気にしています)
445:デフォルトの名無しさん
07/04/26 03:48:16
XMLで
DOMプログラミングの段階まで行きましたが
そこで、JavaSprictを使い、XMLの内容を
ダイアログを表示させるという事なのですが
ダイアログが、どうしても表示されなく
普通にHTML形式で普通に出力されてしまいます。
自分のソースに誤りがあるのかと思い
サンプルでやっても同じです。
因みにIEでXPのサービスパック2です。
ご助言、宜しくお願い致します。
446:デフォルトの名無しさん
07/04/26 08:56:47
拡張子がtxtとか。適当ですまん。
447:デフォルトの名無しさん
07/04/26 11:38:31
>>444
priorityは値が大きい方が優先だぞ。逆だ。
適切かどうかはほかの奴に任せる
448:445
07/04/26 18:48:03
やはり解決しません
449:デフォルトの名無しさん
07/04/26 18:53:26
>>448
あんたが何をして何ができないのかがわからんよ。
alert("XMLの内容"); じゃだめなの?
450:445
07/04/26 19:08:08
JavaSprictを使いダイアログの中にXMLの内容を出力さしたいのですが
それができません…サンプルからやってもです
451:デフォルトの名無しさん
07/04/26 19:10:56
Q. できません
A. 頭が悪いからです
としか答えようがないんだが
452:デフォルトの名無しさん
07/04/26 21:16:18
自分のやりたい事をだらだらと書くだけで実際に何をやってどうなったのか具体的な事が書かれてないからなぁ。
>Q. できません
>A. 頭が悪いからです
今のところ模範回答だよな・・・。
それにサンプルって何よ?
そもそも、ブラウザ実装のjavascriptでxml扱う場合はxmlの話じゃなくてブラウザのjavascriptのお話じゃないか?
板違いではなくて?
どうせ何処でも同じ事言われるんだが。
453:デフォルトの名無しさん
07/04/26 23:26:31
>444
そーゆー、XMLの構造を認識しなければいけないけど、やってること自体は大したこと無い、という領域こそ、XSLT でさくっと済ますべきところだと思う。
>447 も書いてるけど特定が厳しいルールほど優先度が高いから
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/x:abc/y:def/@hoge">
<xsl:attribute name="hoge">foo</xsl:attribute><!-- やりたいことに置き換える-->
</xsl:template>
で、いいんじゃねーの?
454:デフォルトの名無しさん
07/04/26 23:29:43
XML-FOってどこまで対応してるんだろうか。
PDFは行けるみたいだけどWinHelpとかは厳しい?
455:デフォルトの名無しさん
07/04/27 00:22:29
XSL-FOは中間フォーマットそのものの仕様。変換への対応をしなけらばならないのはアプリケーション側。
XSL-FO自体は印刷物用途に耐えられるほどの仕様。PDF位にしか変換できないのはアプリケーション側の実装の都合によるもの。
よってその質問は的を射てない。
456:デフォルトの名無しさん
07/04/27 00:27:59
つまり実装するには無駄な仕様が多いってことだな。
457:デフォルトの名無しさん
07/04/27 01:56:01
>>451->>452
サンプルとは、この本のです
10日でおぼえるXML入門教室 第2版 (単行本)
山田 祥寛 (著)
>>ブラウザ実装のjavascriptでxml扱う場合はxmlの話じゃなくてブラウザのjavascriptのお話じゃないか?
たぶん、そうだと思います・・・・
458:デフォルトの名無しさん
07/04/27 02:08:40
>>ブラウザ実装のjavascriptでxml扱う場合はxmlの話じゃなくてブラウザのjavascriptのお話じゃないか?
もし、これだとしたら、どうすれば宜しいでしょうか?
459:デフォルトの名無しさん
07/04/27 02:11:24
>>458
その行の下に書いてあるじゃん。
460:デフォルトの名無しさん
07/05/04 02:14:56
質問です。
↓のRelaxNG文書のrefを展開した形はどのようになるのでしょうか?
<?xml version="1.0" ?>
<grammar
xmlns="URLリンク(relaxng.org)
datatypeLibrary="URLリンク(www.w3.org)
<start>
<ref name="hoge"/>
</start>
<define name="hoge">
<element name="hoge">
<choice>
<ref name="foo"/>
<ref name="hoge"/>
</choice>
</element>
</define>
<define name="foo">
<element name="foo">
<text/>
</element>
</define>
</grammar>
461:デフォルトの名無しさん
07/05/04 09:14:01
再帰的な構造になる
462:460
07/05/04 10:28:15
refを展開して、elementだけで書くことができますよね?
463:デフォルトの名無しさん
07/05/04 12:42:38
理論上は書ける。無限の長さになるが。
464:デフォルトの名無しさん
07/05/07 19:50:38
しろんぼが規格作るとどうしてなんでもぐちゃぐちゃ奇奇怪怪になるの?
465:デフォルトの名無しさん
07/05/07 21:55:05
くろんぼの規格よりはましじゃ
466:デフォルトの名無しさん
07/05/10 21:22:13
保守点検
467:デフォルトの名無しさん
07/05/11 14:55:34
多分初歩的な質問だけど、いい感じの答えが見つからんのでき尋ねさせてもらうよ。
サーバにXMLファイルを置いて、chmod 600にした場合、同じサーバにおいてあるプログラムは基本的にXMLの読みができるよな。
んでもブラウザのジャヴァスクからアクセスしようとすると、クライアント側で全ての処理が行われるからXMLにアクセスできなくなっちゃう。
今んとこXMLHTTP使ってデータ取得してるんだけど、できることならXMLのデータをユーザ以外が読めないようにしたいわけなんだわ。
ジャヴァあたりのサーブレットが標準ぽいけど、それやると使えるサーバが少し限られてるからできるだけ避けたいんだよね。
誰かこれやる方法しってる人いない?
468:デフォルトの名無しさん
07/05/11 15:34:25
スレの趣旨と違うだろ・・
469:デフォルトの名無しさん
07/05/14 02:36:26
XML(XLS)テーブル表示を作っています。
alldata.xmlでテーブルを表示し、そのリンクがクリックされると、onedata.xmlを表示するという単純なものです。
alldata.xmlはDTDが定義され(alldata.dtd)、その中でENTITYとして、onedata.xmlを持っています。
データを増やすときは、onedata.xml、twodata.xml・・・のようにして対応するENTITYを作ってやれば、
リンク先のページができると同時に、自動的ににalldata.xmlテーブル表示が拡張される、という仕組みを考えています。
実際に作り始め、alldata.xmlの表示はできたのですが、
リンク先のonedata.xmlを作成し(その中でonedata.dtdも定義)、allldata.xmlを表示しようとすると、
「DOCTYPE 宣言は複数行えません」と出てきてしまいます。
onedata.xmlからDTDを削除すれば、alldata.xmlは表示されるのですが、今度はonedata.xmlの表示が真っ白・・・。
この場合、どうやればalldata.xmlとonedata.xmlを両立できますか?
(特に複雑なデータ構造ではないと思っていますので、XML使い始めて早々にこんなところで躓くとは・・・。)
470:デフォルトの名無しさん
07/05/16 16:21:19
javaで入力されたxmlにxsdを使用して検証を行おうとしています。
xsdは2種類あり(a.xsd, b.xsd)、a.xsdからb.xsdをincludeしています。
SchemaFactory#newSchema(new Source[]{a.xsdのソース, b.xsdのソース});
でSchemaを取得し、Schema#newValidator()でValidatorを取得しています。
取得できたValidatorで入力されたxmlの検証を行うと以下の例外が発生します。
org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'b.xsdで宣言されている要素名' to a(n) 'element declaration' component.
newSchema(new Source[]{b.xsd, a.xsd})でa.xsdとb.xsdの順番を入れ替えると今度は
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'xmlのルート要素名'.
newSchema(a.xsdのみ)とすると
org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'b.xsdで宣言されている要素名' to a(n) 'element declaration' component.
xsdが複数になってしまった場合の検証方法を教えていただけないでしょうか。
471:デフォルトの名無しさん
07/05/19 16:45:56
XMLとXSLでページを作っています。
XSLでは、さらに他のXMLのデータをdatafldで表示しています。
おそらく、内部ではXML→XSL→他XMLの順に読み込まれていると思いますが、
一旦XSLが表示された後、データバインドするときにリフレッシュが走ってしまいます。
画面をリフレッシュすることなくデータバインドさせたいのですが、何か方法はありますでしょうか?
472:471
07/05/19 18:52:54
自己解決した。
画面をひとつの巨大なテーブルで作っていて、そのテーブルの最後にデータバインドしていたのがいけなかった。
データバインドをそのテーブルの外に出したらあっさりと解決。
473:デフォルトの名無しさん
07/05/20 00:41:04
みんなXMLで難しい事やってるなぁ・・・、まじでついていけないよ。
ところで、UMLとXMIとコード生成の話なんだけど、XMIってクラスの雛形みたいな
ものや継承関係・属性なんかは網羅できているけど、逆にシーケンス図やアクティビティ図
みたいな動的な図に関しては規定が無いようなんだけど。
業界標準みたいなもの無いんですかね、誰か知ってたら教えてください。
474:デフォルトの名無しさん
07/05/20 15:53:20
Windows XP Home EditionでIISを使い
サーバーサイドでXMLプログラミングを行いたいのですが
調べたところPrpfessionalにアップデートしなとできないとの
事でしたが、Windows XP Home Editionではできないのでしょうか?
475:デフォルトの名無しさん
07/05/21 04:06:53
>>474
Home Edition じゃ IIS 使えないんだっけ?
Windows コンポーネントの追加と削除で IIS がなければそうかも。
476:デフォルトの名無しさん
07/05/21 11:14:13
XPHomeにアプリケーションサーバ入れてだれが使うんだよ?
IISのクライアント版は制限つきでXPpro,鯖2kだな。
てかわざわざ、IISなんて使うって事は結局ASPってことでしょ、スレチじゃね?
鯖立てたいだけならlinuxでhttpd走らせるよろし。
もし、その程度ができんなら鯖には手を出すな。
477:474
07/05/21 16:10:35
ないので、できないみたいですね
入門書ではASPを使う事になっていました
478:デフォルトの名無しさん
07/06/01 01:41:27
↓のやり方を真似て、データ構造を分割したんだが、
URLリンク(www.atmarkit.co.jp)
<xsl:for-each select="document(books/book/@href)/book">がFireFoxで動かネェ。
関数の引数を↓のようにシングルクォートで囲めばFireFoxではOKだが、今度はIEがダメだァ・・・
<xsl:for-each select="document('books/book/@href')/book">
479:デフォルトの名無しさん
07/06/04 23:17:51
そもそもFirefoxって外部のXMLって読み込めないんじゃないか?
480:デフォルトの名無しさん
07/06/05 00:56:30
XSLTにCSSを適用したんだが、font-familyだけ効かないのはなぜ?
サイズも色も変更できるのに・・・。
481:デフォルトの名無しさん
07/06/08 15:35:29
TCP/IP 上の通信プロトコルで、階層構造をもつテキストデータをやりとりしたいのだが、
この目的のために XML よりもよい選択肢はあるかな?
482:デフォルトの名無しさん
07/06/08 18:11:59
S式
483:デフォルトの名無しさん
07/06/08 18:13:56
【ヤパーリ】XMLをS式に置換えていくスレ【LISP最強】
スレリンク(tech板)
484:デフォルトの名無しさん
07/06/10 07:23:33
>>481
その階層構造が属性付き文章の様な陳述文章ならxmlベースの直列化形式で
良いと思うがそうじゃなきゃそれ以外でなんでも良い。
つーか、総称符合化が理解できんならxml使い方間違えるに10000ペソ賭けるぜ
ruby圏でxml批判してるやつらとかさ。
SGMLの時におなじこと聞いたぜ。
485:デフォルトの名無しさん
07/06/10 09:59:29
総称符合化って何だ?
ググっても一件も引っかからないぜ
486:デフォルトの名無しさん
07/06/10 11:38:36
汎用符号化?
487:デフォルトの名無しさん
07/06/10 22:57:30
【IT】サイト上の財務諸表、専用言語の使用を[07/06/10]
スレリンク(bizplus板)
XMLがこんなに普及するとはなぁ
488:デフォルトの名無しさん
07/06/11 16:28:01
普及すると面白いかも
あ、義務なのか
ウホッ
489:デフォルトの名無しさん
07/06/16 14:59:50
XML文書から必要な部分をHTML化したいと思いまして苦戦しております。
XSLTを書いて、ブラウザ上でXMLを表示させることは可能ですが、
これがXMLからのHTML化ということなのでしょうか?
ソースを見てたらXML文書が全部見れてしまいます。
ソースも必要なところだけ表示させてみたいのですが・・・。
490:デフォルトの名無しさん
07/06/16 15:00:14
あげ
491:デフォルトの名無しさん
07/06/16 15:01:45
>>489
XSLTでXMLからXHTMLに変換するんだろうが。
492:デフォルトの名無しさん
07/06/16 16:04:51
XMLソースを見せたくないなら
サーバで(X)HTML化するスクリプトでも動かせ
493:デフォルトの名無しさん
07/06/16 19:22:02
サーバに変換後のHTMLだけUPすれば万事解決。
494:デフォルトの名無しさん
07/06/16 22:42:22
むしろ>>493の方が望ましい。
現在XSLTのクライアントサイド駆動での動かし方としては
RSSのXHTML表示ぐらいなもんだ。
495:489
07/06/17 22:03:57
>>491-494
ご回答ありがとうございました。
ローカルでXSLTファイルにXML文書を
D&DすればHTML出力(生成)できるものなのでしょうか?
496:デフォルトの名無しさん
07/06/18 23:19:55
(#^ω^)ピキピキ
497:デフォルトの名無しさん
07/06/19 00:45:22
>>495
なんかもう質問がしょーもなさすぎるので細かいところは勝手にしらべろ。
結論だけ教えてやろう。 できる。
498:489
07/06/19 11:28:26
>>497
出来ることが分かっただけでもうれしいです。
ありがとうございました。
499:デフォルトの名無しさん
07/06/19 17:17:29
>>497
たしかにできるっちゃ出来るけどw
スタイルシートとソース文章をトランスフォーマに渡すスクリプト書かなきゃ。
>>498 まあ、がんばってここに来ないようにしろ。
500:デフォルトの名無しさん
07/06/19 22:58:03
スクリプト書くの面倒ならApache Antのstyleタスクで終わらせてもOK
501:デフォルトの名無しさん
07/06/20 00:40:25
msxsl
502:デフォルトの名無しさん
07/06/20 02:00:15
MSのxml周りの実装・・・
503:デフォルトの名無しさん
07/06/20 10:12:03
高速な XML DOM パーサには何がある?Xerces でいいと思う?
504:デフォルトの名無しさん
07/06/20 11:44:48
使ってる言語は何よ?
505:デフォルトの名無しさん
07/06/20 11:50:09
日本語
506:デフォルトの名無しさん
07/06/20 12:59:44
C++ です。
507:デフォルトの名無しさん
07/06/20 13:30:55
C++ならどれ使っても一緒だと思うぞw
実装にexpat使ってるライブラリが早いとかその程度の違いでしかないと思う。
508:デフォルトの名無しさん
07/06/20 14:13:37
そうですか。ありがとう。
509:デフォルトの名無しさん
07/06/20 16:21:07
Xerces-C++ を使うと、MSXML と名前が衝突するね。DOMDocument とか。
わざわざ xerces:: を付けるのも面倒だし、using namespace xerces しても解決しないし、
何かいい方法はありませんですか?
510:デフォルトの名無しさん
07/06/20 17:53:11
それくらい付ければいいじゃん。
javaで限定名がぶつかる時、完全修飾名で書くとC++の比じゃないぞ。
それにxml関係ない。
511:デフォルトの名無しさん
07/06/20 20:45:57
まあそのための名前空間だし
ところで、MSXMLも#importで読み込めば名前空間MSXML2に入ったと思うが
512:デフォルトの名無しさん
07/06/21 00:00:34
javascriptで作成したxmlファイルに対してencodingを指定したいんだけど
どうやってやるの?
Javaでのやり方が分かるんだけど・・・
513:デフォルトの名無しさん
07/06/21 01:28:34
javascriptは入出力の制御は出来ん。
cgiに渡してそっちでcharset見てエンコードするしかない。
514:デフォルトの名無しさん
07/06/21 12:36:36
method=“xml”を”html”にして、<books>および<book>のテンプレートを次の出力が得られるように変更せよmatch="/", match="books", match="book",
<HTML><HEAD></HEAD><BODY>
<UL>
<LI>本一冊を選びました</LI>
<LI>本一冊を選びました</LI>
<LI>本一冊を選びました</LI>
</UL>
</BODY></HTML>
上記に出力するには下記を用いて修正するみたいです
<?xml version="1.0" encoding="shift_JIS" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="URLリンク(www.w3.org)
<xsl:output method="xml" encoding="shift_JIS"/>
<!-- 文書 -->
<xsl:template match="/">
<root>
<xsl:apply-templates select="book"/>
</root>
</xsl:template>
<!-- 書物リスト -->
<xsl:template match="book">
<book>
書物リストを処理しました。
<xsl:apply-templates select="book"/>
</book>
</xsl:template>
<!-- 書物 -->
<xsl:template match="book">
<book>書物を一冊処理しました。</book>
</xsl:template>
</xsl:stylesheet>
どう修正すれば良いのでしょうか。
515:デフォルトの名無しさん
07/06/21 14:10:32
そういやXMLの宿題スレがないよね。
かなり専門的な世界だから別れてても良いけど需要ないだろうね。
516:デフォルトの名無しさん
07/06/21 15:03:17
宿題一つ見ても「普通にスクリプト書いた方が早くないか?」感が漂う。
517:デフォルトの名無しさん
07/06/21 15:12:33
まあしかしこの程度のことを聞かなきゃできないようじゃ
一から勉強しなおした方がいいような
518:デフォルトの名無しさん
07/06/21 15:38:52
windows環境にはろくなスクリプトエンジンがなくてだね・・・。
WSH?何を言ってるんだいチミは?
519:デフォルトの名無しさん
07/06/21 16:46:28
∧_∧ ┌──────
◯( ´∀` )◯ < 僕は、PowerShellちゃん!
\ / └──────
_/ __ \_
(_/ \_)
lll
520:デフォルトの名無しさん
07/06/21 17:22:20
PowerShell、RCとれたのか。やっぱWindows PowerToys シリーズ?
つか、MSは実装が信用できないw
特にMSXMLとかTrident・・・.netつかってる連中はよくあんな糞実装使ってられるよ。
tasman結構まともなのに。
521:デフォルトの名無しさん
07/06/21 20:52:02
.NETは前者二つに比べて比較的マシだがな
522:512
07/06/21 23:00:19
>513
まじですか?
困ったなー。
523:デフォルトの名無しさん
07/06/21 23:26:29
>>521
やたら変な独自拡張多くない?
>>521
つーか常識、クライアントサイドが勝手にディスク読み書きしたら危ないだろ?
524:デフォルトの名無しさん
07/06/23 12:43:14
独自拡張が多いと糞実装なのか……?
525:デフォルトの名無しさん
07/06/23 14:13:28
読み込んだXMLからルートの要素名のみを取得したい場合って
Domでルート要素.getElementNameより
Saxで1回目のstartElementで取得するほうがいいよね?
526:デフォルトの名無しさん
07/06/23 15:50:30
いいか悪いかはしらんが、それのほうが処理量少ないことは明らか
527:デフォルトの名無しさん
07/06/23 16:04:17
始めまして、初心者です。
どうしても解らないので教えてもらいたいです。
XMLファイル内容を、XSLを使って表示することは出来ました。
それなのにXML内にある改行文字のところが改行されていません。
どうしたら改行を表示できるのでしょうか?
528:デフォルトの名無しさん
07/06/23 17:38:12
>>525
何の効果を期待してるか知らんがメモリの消費量が少ない、か演算量が少ない、
ってんならストーリーム(pull)型も良い。
DOMは結果を保持する必要がある場合、
pushは最終的には文書のすべてについて処理する必要がある場合。
pullはアプリケーション側で処理タイミングを制御したい場合。
xpathはランダムアクセスしたい場合。
JDOMはpullとxpathの性質を併せ持つと言った感じ。
こんな感じで使い分ければいいんじゃないかい?
すべての要求を同時に満たすのは難しいだろうね。
#俺は自前のAPI持ってるから可能だけど。
>>527
空白の扱いはアプリケーション次第。確実にやりたいならまず変換先に空白を保持して
任意の空白の扱いを定義可能なスタイルシートを埋め込む。
意味が分からんなら仕様書読み直すかHTMLで吐け。
529:527
07/06/23 17:57:32
>>528
すみません、良くわからないのでソースをあげます。
したいことは<br/>の場所で改行をすることです。
お願いします。
diary2000.xml
======================================================
<全体>
<年月>2007年6月24日</年月>
<日記>今日は図書館に行った。<br/>本を2冊借りた</日記>
</全体>
======================================================
template.xsl
======================================================
<xsl:template match="全体">
<table border="3">
<tr>
<td><xsl:value-of select="年月" /></td>
<td><xsl:value-of select="日記" /></td>
</tr>
</table>
</xsl:template>
======================================================
530:527
07/06/23 19:31:07
なんどもすみません。
URLリンク(oshiete1.goo.ne.jp)を参考に。
diary2000.xml
<日記>今日は図書館に行った。<BR/>本を2冊借りた</日記>
template.xsl
<td><xsl:value-of select="日記" disable-output-escaping="yes"/></td>
としましたが・・・、<br/>と表示されます・・・。
なにが違うのでしょう・・・。
531:527
07/06/23 19:42:18
あ・・・、書き間違ってる・・・。
530はなしです。
diary2000.xml
<日記>今日は図書館に行った。<br />本を2冊借りた</日記>
template.xsl
<td><xsl:value-of select="日記" disable-output-escaping="yes"/></td>
が正しいです。
532:527
07/06/23 19:44:54
あぁ・・・、そゆことか・・・
&lt;BR/&gt;は勝手に、<br/>に変換されるのですね・・・。
<日記>今日は図書館に行った&lt;BR/&gt;本を2冊借りた</日記>
が正しいです。
533:デフォルトの名無しさん
07/06/23 21:06:54
>>528 じゃないけど、<xsl:value-of select="日記" /> で拾えるのは
``今日は図書館に行った。'' と ``本を2冊借りた'' を連結した文字列。
もっといい別解があるだろうけどとりあえず:
<xsl:stylesheet
xmlns:xsl="URLリンク(www.w3.org)
version="1.0"
>
<xsl:output method="html" encoding="UTF-8" />
<xsl:template match="全体">
<table border="3">
<tr><xsl:apply-templates /></tr>
</table>
</xsl:template>
<xsl:template match="年月">
<td><xsl:apply-templates /></td>
</xsl:template>
<xsl:template match="日記">
<td><xsl:apply-templates /></td>
</xsl:template>
<xsl:template match="br">
<br />
</xsl:template>
</xsl:stylesheet>
遠回りでも一度ちゃんとXSLT勉強したほうがいいかもしれない。
ハマリどころが結構多いから、下手すると時間めちゃくちゃ食うよ。
534:デフォルトの名無しさん
07/06/23 23:59:41
Cでなんとなくlibxmlを使ってプログラムを書いているのですが、
2つのXMLを「接ぎ木」したい場合にどうしたらいいのかよくわかりません。
B-B' と A-C-D みたいな構造のXMLがあったときに前者を後者に接ぎ木して
|-B'' |-B
A-C-D
|-B-B'
|-B''
みたいな構造のXMLを生成したいのです。あ、単に接ぎ木の操作をどうしたいいか
ということなんですが。
535:527
07/06/24 03:04:42
>>533さん、お返事ありがとうございます。
あげたソースは短く解りやすくした例のものでした。
本物は表の連結などをしていて、形も固定のものになっています。
なのであげたものから、外れないようにしたいのです。
そうするのは難しいのでしょうか?
それと参考になるサイトがあれば教えてもらいたいです。
よろしく、おねがいします。
536:デフォルトの名無しさん
07/06/27 22:55:57
XML Webサービスで何が凄いのか良く分かりません。
537:デフォルトの名無しさん
07/06/27 23:03:11
マジレスして良いのか?
変なふうに流行ってるだけだからそんなageるほどの事でもないな。
XMLは直列化形式として採用されてるだけで、直接技術的に関係はない。
そもそも、その技術がすでに枯れきっててなんの目新しいものもない。
Ajaxに限った話じゃない。
538:デフォルトの名無しさん
07/06/27 23:10:00
ただ、決まったライブラリを使えば楽にネットワーク越しにやりとりできるというだけで、
ネットワーク越しに色々処理できるのが時代の進歩を感じさせる、すごいねえ、
みたいな感じ。
539:デフォルトの名無しさん
07/06/29 00:38:39
そうなんだけど、「じゃあ、Webサーバ無しでやってくれ」とか
無茶言う上司がいるのはお約束。
540:デフォルトの名無しさん
07/06/29 01:05:11
無理に決まってんだろwプギャー
といって勇者として語り次がれてみるとか。
541:デフォルトの名無しさん
07/06/29 01:55:43
echoサーバでやるよ
542:デフォルトの名無しさん
07/06/30 17:34:12
止まってるついでにネタ投下するけどXMLエディタは何使ってる?
シェアは格が違うのでシェア以外で・・・。
543:デフォルトの名無しさん
07/06/30 17:38:03
URLリンク(www.excite.co.jp)
以下文章を上記翻訳サイトにて中→日にせよ
スゲиシギゝ,ザァ,ユЮ.
θイ,ゎモモモモマいデ.
びデた,ゝС,さーモモモモデゝねг
544:デフォルトの名無しさん
07/07/17 10:30:59
検索しても見つからない・・ここでいいのか分からないが、質問させておくれ
<emp>
<name></name>
<salary></salary>
<age></age>
<emp>
※<age>要素はあったりなかったりする
↑こんな感じのがつらなってるテーブルから、
<age>要素のない<emp>だけを取り出したいんだが、どう書けばいいのか分からないorz
//employees[!age] //employees[age=null] //employees/!age ・・・orz
545:デフォルトの名無しさん
07/07/17 10:43:44
ごめん。出直してくる
//employees[not(age)]
546:デフォルトの名無しさん
07/07/20 11:11:38
XPathインジェクションってありますか?
あるとすれば、サニタイズはどういうロジックでやればよいでしょうか?
547:デフォルトの名無しさん
07/07/20 15:54:09
それはXPathエンジンかアプリの実装の問題だろ。
ていうかググればいくらでも出てくるわけだが?
インジェクション対策なんてどれも同じ、外から入力される場合は不適切な文字は受け付けないorエスケープする。
548:デフォルトの名無しさん
07/07/20 23:45:44
URLリンク(www.ibm.com)
549:デフォルトの名無しさん
07/07/21 00:13:33
>>547
不適切な文字は受け付けないと書くよりも、
適切な文字だけを受け付けると書くようにしたほうがいいと思う。
そのほうがホワイトリスト方式を連想しやすいはず。
550:デフォルトの名無しさん
07/07/21 16:46:42
普通は不適切な文字のほうが圧倒的に少ないだろ。
551:デフォルトの名無しさん
07/07/22 00:48:22
だからどうした?
552:デフォルトの名無しさん
07/07/23 10:19:19
併用が望ましい。
553:デフォルトの名無しさん
07/07/27 10:18:45
下記のXMLファイルから、XPATHを使用して「inst_gif1」を取得したくて下記を実行したのですが、
「inst_gif1」と「inst_gif2」の両方が取れてしまいます。
正しいXPATHを教えていただけないでしょうか?
XPATH = /sqlMap[select = 'SELECT']/select/@id
<?xml version="1.0" encoding="Shift_JIS" ?>
<sqlMap namespace="xxx">
<select id="inst_gif1" >SELECT</select>
<select id="inst_gif2" >UPDATE</select>
</sqlMap>
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4879日前に更新/254 KB
担当:undef