1 :
デフォルトの名無しさん :
02/02/25 22:21 単におれが質問したいから立てたぞ!
IXMLDOMDocument::save で保存するとUTF8で出力されるのだが ShiftJISで出力するにはどうすればいいの?
新しい時代を感じさせる良スレ。 ====================終了====================
まだ終了じゃない!
「ポッキーの甘み」 ====================終了====================
8 :
デフォルトの名無しさん :02/02/25 23:31
XML って知識分類に使える? 自作アウトラインプロセッサのデータ部分に使おうかと思ってるんだけど。
>>8 止めはしないけど、無駄にコード量が増えるだけと違うか? アプリローカル
なデータフォーマットならバイナリの方がパフォーマンスも全然高いし。
>>9 そうですか。
テキストファイルとしても保存できるから良いかなと思ったんだけどな。
あと別件で XML 勉強しなくてはいけないから良い機会かなと。
>>10 ナレッジマネージメントのソフトか? XML はツリーかリスト構造を記述するにゃ
そこそこ都合が良いけど、グラフ構造扱うと氏ぬよ。まぁ勉強でやってみるなら
別にかまわんけど。XML の使いどころは、いろいろなアプリケーションで使える
汎用フォーマット (つまり会社間の政治が絡んだフォーマット) 程度しか感じて
いないんだけど。HTML みたいに文章中に埋め込まれるマークアップだけなら良い。
でもデータフォーマットに XML だと、データ量に対してタグの量の割合がでか
すぎ。
確かに XML って無意味にデータサイズが大きくなる感じ。
いまどき、心情的にはともかく、*実際上* 数百メガ使っても痛くも痒くもないとおもう けどなぁ。 皆さんそんなデータサイズにシビアな世界のアプリケーションばかり書いているんですか?
>>7 これJavaじゃん?
VCでやってんだよMSXMLを
ヘッダーみてもsetEncodingInfoなんてメソッドないよ。
>>14 そりゃぁ、単発クソスレ立てるお前になんて
まともに答えないだろ(w
あげるの忘れた。 なおこのスレは言語問わず
偉そうな1だな…
19 :
デフォルトの名無しさん :02/04/16 08:40
XMLマンセー
つーか圧縮して置いておきたいんだけど? 豆でさえzip形式のromが読めるのに。 豆との関連性はまったく無いけど。
22 :
デフォルトの名無しさん :02/05/12 15:05
XMLなかなかはやらないねえ。 やっぱ駄目なものは駄目と。
ああ、ダメだからお前は二度とXMLに近づくな。
XML厨のヨカーソ
いやあ、近寄らなくてすむものなら近づきたくないね。 覚えなければいけないことが多すぎ。
26 :
デフォルトの名無しさん :02/05/12 15:25
XMLなんてダサすぎ。S式で十分。
なんでクソスレが上がってるの?
だいたい、たかが設定ファイル程度を書くのになんであんなに沢山 <や>を書かなければならないのか。ファイル効率悪すぎ。 それに見た目ダサい。
ビクッ. ∧ ∧ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ Σ(゚Д゚;≡;゚д゚) < うお!なんかすごいところに迷い込んじまったぞゴルァ! ./ つ つ \______________________ 〜(_⌒ヽ ドキドキ )ノ `Jззз
32 :
デフォルトの名無しさん :02/07/02 01:07
いまだに 「XMLは遅いから使えない」とか 「XMLは難しいから使えない」とか いうバカが多くて困る。 シラネーならシラネーっつっとけつーの! 知ったかでsageられるとホントつかれる
「XMLは難しいから使えない」からバカなんだろ。
34 :
デフォルトの名無しさん :02/07/13 00:28
オレは今のところ関わる機械がないのだが、面白そうじゃん。 スキーマをこってりこてこて作るのなんて結構おもしろそーだ。
35 :
デフォルトの名無しさん :02/08/14 12:14
test
36 :
デフォルトの名無しさん :02/08/15 04:08
なんかここ、痛々しくていいね。
37 :
デフォルトの名無しさん :02/08/15 04:31
38 :
デフォルトの名無しさん :02/08/15 04:57
39 :
デフォルトの名無しさん :02/08/15 05:06
んん?なんかブレークするーあったの?.NETの速度問題とか? まぁHTTPも「こんな通信プロトコルあってもいいのですか?」みたいな感じで ここまで来たんだから、適材適所で繁栄して頂く事を希望しますんが。
>From: [11] デフォルトの名無しさん <sage>
>Date: 02/02/25 23:47
>
>
>>10 >ナレッジマネージメントのソフトか? XML はツリーかリスト構造を記述するにゃ
>そこそこ都合が良いけど、グラフ構造扱うと氏ぬよ。まぁ勉強でやってみるなら
>別にかまわんけど。XML の使いどころは、いろいろなアプリケーションで使える
>汎用フォーマット (つまり会社間の政治が絡んだフォーマット) 程度しか感じて
>いないんだけど。HTML みたいに文章中に埋め込まれるマークアップだけなら良い。
>でもデータフォーマットに XML だと、データ量に対してタグの量の割合がでか
>すぎ。
俺的には
>>11 で結論がでてるんだが….
41 :
デフォルトの名無しさん :02/08/15 05:25
グラフ構造、ネットワーク構造扱うと どのように死ねますか? ツリーの葉の部分に、他の枝/葉への参照を書くって部分ですか? CommonLispのS式読み込み機構で、 現在I/O中の部分リストにラベルをつけ、同じ参照が出てきたらそのラベルを書いといて、 グラフ構造の保存/再生を保証するってな仕組みがあったけどー。
>>41 やってみれ, 二度としたくなくなるから.
いや〜, その点 lisp はいいね.
なんかfunarg問題と似てるね。 この辺はLisperなら問題点を直ぐに指摘できる気がする。
44 :
デフォルトの名無しさん :02/08/15 05:37
>>41 みたいな機構が標準仕様になくとも
自分でLisp流に実装してやればカイイーケツて事でわ?
って事で、
>>11 の見解は
巷に掃いて捨てる程居るLisp実装ヲタに乗り越えられますた
だったら始めからlisp使えよ
結論: XML非常に面倒
>>46 それ採用.
まぁstandardって意味ではXMLでいいのかもしれん.
>>44 いや, 乗り越えてくれるならそれが一番良いんだよ….
49 :
デフォルトの名無しさん :02/08/15 05:56
>>45 だったらSGMLとDSSSL(Schemeベースのスタイル記述)使えよ
#以上、退行現象
>>48 XMLに関するプログラミングをXMLプログラミングって言っても不自然じゃないと思う.
日本語を満足に理解できない方ですか?
51 :
デフォルトの名無しさん :02/08/15 06:23
XMLなんてデータフォーマットが記述できるだけじゃん こんなの便利か?
だから面倒だって言ってるじゃん。 データの互換性以外はメリットも無いし。
データの互換性も疑わしいが。
54 :
デフォルトの名無しさん :02/08/15 07:34
つまり、遅れてきた開発者は、 開発経緯や判断・選択の内容を知らないから、 ちっとやそっとの努力では理解できなくなっちまう って事ですね。 技術キャッチアップをサボっていると、どうゆう結末になるか、 という良い標本ですな
55 :
デフォルトの名無しさん :02/08/15 07:35
技術史勉強汁
バイナリでデータをファイルに押し込むのもまあその場限りの プログラムならいかもしれんが、まともなアプリならそれなりに 可搬性のある表現で落す方法を用意する。(でないと、将来的にも不便) XMLは、広く認められた表現だし、APIも整ってるので、 これを積極的に使っていかないのは損だぞ。 まあグラフ構造向きではないわな。最初から見抜けよそれくらい…。
57 :
/../../ :02/08/16 01:53
そもそも、グラフ構造記述に向いた文字列記述ってあるのか? つか、構造体でもポインタで記述するしかねぇんだから、 スマート・ポインタの一亜種として、部分構造ラベル使うって事でおっけじゃん?
無知が何かほざいてますな。
59 :
デフォルトの名無しさん :02/08/17 09:11
煽り屋さん登場!煽り屋さんは、w3c.orgのTRくらいさっと目を通して煽っているのかな(ワラ
>>57 XMLには参照の代用となる記述法が用意されています。
61 :
デフォルトの名無しさん :02/08/17 09:56
XPathの事言ってる?
グラフ記述は行列のし
64 :
デフォルトの名無しさん :02/08/17 10:06
XMLは ま じ で たいしたこと無い。丸一日あれば調査は充分。 他者とのインタフェイスには有用。APIがあるから便利というのはろくにコードが書けない馬鹿のたわごと。
>>64 みんなそれくらい理解していると思われ。何を偉そうにしゃべってるか知らんが。
俺も意外とあっけなく理解できてビビったけどな。
頭悪そうな香具師が絡んでるスレってココ?
最近XMLを勉強し始めた者です. XMLでもともと構造化されている文書を記述したのですが,思った通りに 表現できません.調べたんですが,よくわかりません... ちなみにプログラムの知識はまったくないです. やりたいことは,下のXMLのtag3について,IDが1であるものだけをとり出し て文章を表示させたいです.(つまり,「あえおおお」と表示したい) 文章はtag3の中に直接書き込んでしまったんですが,これがいけないので しょうか...? わかる方,よろしくお願いします. XML---------------------------------------------------------------- <root> <tag1> <tag2> <tag3 ID="1">あ <tag3 ID="2">い <tag3 ID="3">う <tag3 ID="1">え</tag3> </tag3> </tag3> おおお </tag3> </tag2> </tag1> </root> ---------------------------------------------------------------------
68 :
質問(上の続き) :02/09/07 18:03
XSL------------------------------------------------------------------ <xsl:template match="/"> <HTML> <HEAD><TITLE>テスト</TITLE></HEAD> <BODY><xsl:apply-templates select="root"/></BODY> </HTML> </xsl:template> <xsl:template match="root/tag1/tag2"> <xsl:for-each select="//tag3"> <xsl:value-of select="@ID"/> <xsl:value-of select="tag3"/> </xsl:for-each> </xsl:template> </xsl:stylesheet> --------------------------------------------------------------------
あげ忘れたったのでage
普通エレメントはテキストのみを持つものと、子エレメントのみを持つもの、 テキストも子エレメントも持たないものの3種類の内のどれか。
71 :
デフォルトの名無しさん :02/09/07 22:49
id重複だって馬鹿か?
id重複って許されるんだっけ?
73 :
デフォルトの名無しさん :02/09/08 05:50
<xsl:template match="/root/tag1/tag2"> <xsl:apply-templates select="tag3"/> </xsl:template> <xsl:template match="text()"> <xsl:if test="../@ID='1'"> <xsl:value-of select="."/> </xsl:if> </xsl:template>
>>70 では,テキストと子エレメントの両方を持つエレメントは普通はないってことですか!?
>>71 え,IDって重複しちゃいけないんですか?そんなことないですよね???
>>73 なんかエラーメッセージが出たんだけど,そのエラーメッセージが文字化けしてて
読めない...文字コードもなぜか変えられない...欝
77 :
デフォルトの名無しさん :02/09/09 05:28
MSXSL.EXEを使え
78 :
デフォルトの名無しさん :02/09/09 06:58
まんせーってどういういみですか?
79 :
デフォルトの名無しさん :02/09/09 11:02
XMLってDTDとかスキーマの検証ってどうするの? 普通にDTD作ってIE開いても整形のXMLインスタンスだったら 表示されてしまってエラーにならないんだけど DTD自体の構文が間違ってたらエラーになるけど DTDとインスタンスが違っててもエラーにならない。 XSVとか使ってるの? 一番シンプルな検証方法をキボンヌ
80 :
デフォルトの名無しさん :02/09/09 11:06
XMLでDTDとかスキーマの検証ってどうやってるの? 普通にDTDを作ってIEを起動させても検証してないみたい。 DTDとインスタンスがちゃんと一致してなくても表示される。 DTD自体の構文が違うとエラーにはなるけど XSVとか使ってるの? 一番シンプルなスキーマ検証方法キボンヌ
81 :
デフォルトの名無しさん :02/09/09 11:08
ゴメン二重になった 微妙に違うけど 鬱ダシ脳
82 :
デフォルトの名無しさん :02/09/09 13:04
XMLファミリーを列挙してください。 おながいします。 XML、XSL、XSLT、DOM、SAX
ファミリーつーか、XMLとそのクソに群がるハエ、って感じだよね。
____ ________ / \ / | \XML/ |〜<俺を馬鹿にしやがって・・・ 川川==◆=◆〜 \_______ 川川 _ (・・) / ___ _; \ | 曲| . | | |\_ / \ _/ . | | | | |\ / / | | | | | | |::::| ( ( / \_ .| | | | |::::| \ \ /\  ̄ ̄\ | | | | |::::| /:\ \  ̄\っ)))) 〜| | | | |::::| /::: \ つ_ | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |::: \___ )  ̄ ̄| ________ | |:::: .| | . |.|
85 :
デフォルトの名無しさん :02/09/10 22:53
>>82 XSLとXSLTは同じではないの?
スタイルシートとそのトランスレータ?
87 :
デフォルトの名無しさん :02/09/10 22:59
XSLはXSLTとXSL FOから構成されるということになってるけど 先にXSLTだけ世に出たから
ホントでしか?
こないだ質問した者です.
>>73 のをやってたらできました!!!
超感動です!
なんと言っていいかわかりませんが,本当にありがとうございます!!!
2chをやってて一番うれしかったかも(笑).
レスくれた人達,ありがとうございました!
XSLとExcelはなにか関係があるんでしょうか? Excelの拡張子はxlsだし、混乱してます。
91 :
デフォルトの名無しさん :02/09/11 02:20
↓こいつの言ってることには同意できない。
http://www.users.gr.jp/ml/archive/xml/571.asp >XMLの利点に関して
>(省略)
>しかし、パフォーマンスは置いといて、データの汎用性という点について
>考えてみるとどうでしょうか?
>例えばAccessで作成したファイルをOracleに移行するとなると、移行プログラムを
>作成したり、いったんCSV形式に変換してからOracleで取り込むなどの手間が
>必要ですよね。同期を考えると定期的に移行バッチ処理も流さないといけませんよね。
> これを元データをXMLで持たせておいて、AccessとOracleの両方で読み込む
>方式にすれば、データの持たせ方もはるかにスッキリしますし、同期処理も考えなくて
>いいですよね。
DB同士のマージに比べたら、XMLに移行する手間って相当なもんだと思うけど。
パフォーマンスの話どっかいっちゃってるし。
それに汎用性とか言ってるけど、何にでも適用できる汎用的なデータなんて
作れる気がしないんだが。
結局はパーサが同じで済むってぐらいの利点しか今のところ見出せない。
XMLの使い所ってなんなんだろうね?
>>91 ひでーなそれ。
今のところ「データ部分は XML 使ってます!」っていうセールストークにしか
なっていない。まぁ繰り返しやツリー構造を成すデータ構造の保管には便利っちゃ
便利なんだが、大抵は name=value の ini 形式と CVS でどうにかなっちゃう
のも事実。
この前質問した者です.
>>73 で教えてもらった方法でうまくいったのですが,その後に続いてID=2,ID=3も
表示させようと思って,
<xsl:template match="/root/tag1/tag2">
<xsl:apply-templates select="tag3"/>
</xsl:template>
<xsl:template match="text()">
<xsl:if test="../@ID='1'">
<xsl:value-of select="."/>
</xsl:if>
</xsl:template>
<xsl:template match="text()">
<xsl:if test="../@ID='2'">
<xsl:value-of select="."/>
</xsl:if>
</xsl:template>
としたら,ID=2のテキストしか表示されませんでした.
本とかを見て,
<xsl:choose>
<xsl:when test="../@ID='2'">・・・</xsl:when>
<xsl:otherwise>・・・</xsl:otherwise>
</xsl:choose>
ってやつでもやってみたんですが,だめでした.なぜ順番に表示されないのでしょうか...
将来的には(もうちょっとわかってきたら)IDの数を読み込んで,その人数分だけID
別にテキストを表示させたいと思っていますが,とりあえずID別ににテキストを表示
させたいです.
たびたび申し訳ないのですが,わかる方よろしくお願いします.
95 :
デフォルトの名無しさん :02/09/13 01:16
>>90 ネタですか?
XSLとExcelは無関係です。拡張子が似ているだけ。
捻りのないネタとレスですね? つかXで始まる拡張氏は全て、Excel用に予約してるんじゃないかと
97 :
デフォルトの名無しさん :02/09/17 23:34
お勧めの本教えてください。 文系でプログラミング経験無しです。
99 :
デフォルトの名無しさん :02/09/18 00:14
100 :
デフォルトの名無しさん :02/09/18 01:00
>>94 http://www.asahi-net.or.jp/~ps8a-okzk/xml/xslt10_1/conflict_resolution.html > これでもなお最も高い優先順位を持ったテンプレートルールが複数存在する場合、 エラ
> ーとなる可能性があります。 XSLT仕様書を読むと、エラーとするか、一番最後に書かれ
> たテンプレートルールを採用するかを、 XSLTプロセッサが選択することになっています。
という理由。
なんか教えてあげたやつがどういう風に動いてるか理解してないんじゃないか
という気もするんだけど、とりあえずこうやればできるよ。
<xsl:template match="/root/tag1/tag2">
<xsl:apply-templates select="tag3//text()">
<xsl:with-param name="i">1</xsl:with-param>
</xsl:apply-templates>
<xsl:apply-templates select="tag3//text()">
<xsl:with-param name="i">2</xsl:with-param>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="text()">
<xsl:param name="i" />
<xsl:if test="../@ID=$i">
<xsl:value-of select="."/>
</xsl:if>
</xsl:template>
あるいはその奇妙な書き方のXMLをやめて入門書の例を
真似てみたほうがいいかも?
101 :
デフォルトの名無しさん :02/09/18 04:47
<age>
age
104 :
デフォルトの名無しさん :02/09/18 05:43
MathMLに対して標準の描画手段を持たないUAならそうなんじゃないの?
>>100 レスありがとうございます!!!
さっそくやってみます!
107 :
デフォルトの名無しさん :02/09/18 06:17
CもしくはC++で、XMLファイルをSAXで読み込んでくるプログラムを紹介している サイトなどがあったら教えて頂けませんか?
それぐらい自分で検索しろ
110 :
デフォルトの名無しさん :02/09/18 17:34
>>100 できました!!!
たびたびすみません...ありがとうございます.
67のXML,そんなに変ですか...?
確かに本に書いてあるやつとは全然違うなぁとは思うんですけど,同じタグや属性を複数の階層に
渡って使うというのがいけないのでしょうか.<本にはそういう例がない
扱う文書がそのような構造になってるのでそのままやってみました.
112 :
デフォルトの名無しさん :02/09/22 06:40
ものすごく変だよ
ノリ返セヨ〜 ∧_∧ ― / ̄\ ― (´∀` *) ― (´∀` ;) ― ⊂ つ ― と と) ― ヽ■ ヽ ― Y 人 ― (__ノ `J ― (__ノ`J ―
四日間、苦手な英語で
>>106 のサイトを翻訳していましたが未だにわかりません。
結局どうなんですか?ieでもnnでもoperaでも試しましたが、一向に
>>102 のソースは「3 x」と表示されるだけです。これでいいのでしょうか。
115 :
デフォルトの名無しさん :02/09/24 04:53
XHTMLからbr要素が消えるって話で思ったんだけど brで改行されたXHTMLをlineに置き換えるXSLTってどう書いたら委員だろ? ↓こういうの。 <p> 1行目<br> 2行目<strong>強調</strong>。<br> 3行目<img src="bg.gif"><br> </p> ↓ <p> <line>1行目</line> <line>2行目<strong>強調</strong>。</line> <line>3行目<img src="bg.gif"></line> </p>
そもそもbr要素は必要か?…という煽り合いが始まるわけだが…。 # 個人的には要らんと思う。今まで使ったコトもないし。
117 :
デフォルトの名無しさん :02/09/24 05:31
別にbrの是非について話をふったんじゃないんだけど
118 :
デフォルトの名無しさん :02/09/24 05:32
というか例文がXHTMLになっていなかったけど脳内で修正してね
>>115 XSLは知らんのでschemeで。
アルゴリズム的な話に絞ればこれと似たコードになるんじゃないかなあ。
(define (br->line s)
(let loop ((x (cdr s))(stack '())(r '()))
(cond
((null? x)
(cons (car s)(reverse (append stack r))))
((and (pair? (car x)) (eq?(caar x)'br))
(loop (cdr x) '() (cons (cons 'line (reverse stack))r)))
(else (loop (cdr x) (cons
(if (pair? (car x)) (br->line (car x)) (car x)) stack) r)))))
;test1
(br->line '(p a b c (br) d e f (br)))
=>(p (line a b c) (line d e f))
;test2
(spexpr->html(br->line(html->sexpr
"<p> a b c <br/> d e f <br/></p>")))
=>"<p><line> a b c </line><line> d e f </line></p>"
だれかXSLに変換してくれ。
120 :
つかってみるとか :02/09/24 08:59
121 :
属性の有無を調べるには :02/09/24 15:44
MSXMLを使ってDOMプログラムを始めた厨房です。 要素の属性名がわかっていて、その名前の属性をIXMLDOMElementPtr が保持しているかどうかを調べるのにはどうしたらいいですか。 getAttribute()をつかってアクセスしようとすると属性が存在しない場合 例外が発生してしまいます。
XMLってどこから始めるのがいいの? アプリの設定を保存するにしてもイマイチだし、 DTDだとかXSLだとか無関係に感じるんだけど。 ホントの初歩だと、どこからはいるのが良いんでしょ?
>>122 XMLなんかやめて、LISPやるのがいいと思います。
>>123 elispとschemeをちょっとだけやってます。
でも、今はXMLについて知りたいので。
perlとかで、ちょこっと何か書くとかの用途には向いてないよね。
lispをやると処理系を作りたくなり、 xmlをやるとパーサを作りたくなる。 車輪の再発名万歳
DOM使えばXMLの保存も楽に出来るけど、 SAXって何か保存する手段ないんですか?
128 :
デフォルトの名無しさん :02/09/25 13:18
厨が質問してるだけで誰も答えない寂しいスレだな、おい。
>>121 じゃあ例外を捕捉してあげてください
>>122 アプリ間の連結に使いましょう。
例えば貧弱なパイプ機構を強化するために、unixコマンドに
--xmlオプションが付いたバージョンを自作するなんて
どうでしょうか?XMLなら再利用が簡単です。
>>123 勧誘はよそでやれ
>>125 いつかはPerlに内臓されるかもしれません。この際、覚えてみましょう。
>>126 そんな君に万歳
>>127 SAXは保存を考慮しないで高速な解析を目指したもののような気がします。
>>129 ムキになって答えてみました。嘘は見抜いてください。
>>125 PerlのXMLモジュールは使いやすいよ。
xmlをやるとパーザよりも俺スキーマを作りたくなる。
スキーマもパーサーに含まれてるんじゃないの? そうでないと妥当性検証できないじゃん
135 :
デフォルトの名無しさん :02/09/26 17:04
いや俺がいいたいのは、ヴァリデータじゃ無くてスキーマの規格?の方。 社内文書のスキーマとか。
それはスキーマを作るじゃなくて、 文書定義を書くってだけか?
>スキーマもパーサーに含まれてる なんて言う方が馬鹿
俗に言うXMLパーサーとバリデータってそもそも違うもんなんじゃないの?
バリデータもついてなきゃ単なるおもちゃのオナニーライブラリ止まりだと思われ
検証なしで高速化という方針もありかと。 検証なしの SAX パーサなら Java でも高速・省メモリにできる。
バリデータがついてると必ず検証しないといけないわけじゃないやん >検証なしの SAX パーサなら Java でも高速・省メモリにできる。 検証なしの SAX パーサなら 単なるおもちゃのオナニーライブラリ止まりだと思われ。 ってことで。
プププ
145 :
デフォルトの名無しさん :02/10/06 15:55
perlでインストールしないで使えるパーサない? cgiが使えるレンタルサーバで使いたいんだけど。
validが保障されている場合、いちいち毎回vaklitateするの無駄でしょ。
XML::Parser::Lite が pure perl だったかな。
148 :
デフォルトの名無しさん :02/10/09 12:00
名前空間を指定したXMLファイルをDOMで読み込むと、 「この要素の属性'{xmlns}'は、DTDまたはスキーマで定義されていません。」 というエラーがでます。 このエラーを、DTDを変更しないで、且つ、名前空間は指定したままで解決する方法をどなたかご存知でしたら 教えていただけませんか? DOMオンリーでお願いします。
149 :
デフォルトの名無しさん :02/10/09 14:49
XML::Parser::LiteでDOMとかXSLTとかできるのかしらん
150 :
デフォルトの名無しさん :02/10/09 14:56
宣伝でつか?
宣伝でつね
153 :
デフォルトの名無しさん :02/10/09 17:55
XMLの本て、なんであんなに無意味に分厚いのが多いの?
そりゃ意味がわかんなきゃ無意味に見えるでしょうね。
155 :
例外処理について質問です :02/10/09 18:34
ただいまIndyを使ってヤフーのTOPページのHTMLソースを
ダウンロードするアプリを作っているのですが、インタ
ーネットに接続してないときにこのアプリを実行すると..
「プロジェクト Project1.exe が EIdSocketError クラスの
例外を生成しました。」
という例外が出ます。 この表示をtry〜except〜on〜do文を使って
「回線が繋がってません。」
というエラーダイアログに変更したいのですが、実際に
どう書けばいいのか解りません。
______________________________
var
Sorse:string; //HTMLソースを受け取る変数
begin
try
with IdHttp1 do
begin
Sorse := Get('
http://www.yahoo.co.jp ');
end;
except
on EIdSocketError do //EIdSocketErrorが未定義だと怒られます。
MessageDlg('回線が繋がってません。', mtWarning, [mbOK], 0);
end;
_________________________________
EIdSocketErrorが間違いなのは解っているのですが、ここを
どう変えれば良いのかが解りません。 もし解る方がおられ
ましたら宜しくお願いします。
ぐは・・ 板間違えました、申し訳ない。m(__;)m
157 :
デフォルトの名無しさん :02/10/09 22:10
Xercesをインストールできません.クラスパスの設定がうまく行ってないみたいなんですが, 使ってる人いますか?
160 :
デフォルトの名無しさん :02/10/11 09:05
>>158 どの OS でどのコンパイラのためにインスールとしてるのか書かないと、だれも返事できないよ。
ダ メ ダ コ リ ャ
162 :
デフォルトの名無しさん :02/10/11 10:46
163 :
デフォルトの名無しさん :02/10/11 19:17
IEってさ、XMLファイルを表示すると簡易ビューワーになって すごい便利なんだけど、これと同等の機能を持ったemacs用 ソフトはあるかな?
>>164 日本語の変化についていけない時代遅れは氏ね!
>>165 > 日本語の変化についていけない時代遅れは氏ね!
アフォか、「すごい」も「すごく」も昔からあるわ。ただ、「すごい」はあまりあらたまった場では使わんだけだ。お前こそ、氏ねよ。
167 :
デフォルトの名無しさん :02/10/11 23:35
改まった場?
168 :
デフォルトの名無しさん :02/10/12 00:54
169 :
デフォルトの名無しさん :02/10/12 01:04
× でら便利 ○ デラべっぴん
170 :
デフォルトの名無しさん :02/10/12 01:55
>>166 はよほどすさんで腐りきった世界で生きているDQNですな
171 :
デフォルトの名無しさん :02/10/12 04:01
>>166 「すごい」は名詞にかかって、「すごく」は動詞や副詞にかかるのだよ。
173 :
デフォルトの名無しさん :02/10/12 04:06
○ すごいパソコン × すごくパソコン ○ すごく偉い人 × すごい偉い人 ○ すごい本 × すごく本 ○ すごく読みにくいソース × すごい読みにくいソース
すみません.web製作管理板から来ました. XERCESを解凍した後,コマンドラインから SET CLASSPATH=%CLASSPATH%;C:\Xerces\xerces.jar と入力しましたが,サンプルで試した所, Exception in thresd "main" java.lang.NoClassDeFoundError となってしまいました.試したバージョンは1.4.4と2.2.0で,OSはMEです. お分かりになる方,よろしくお願いします.
ソフトウェア板行け
177 :
デフォルトの名無しさん :02/10/12 05:27
それはいいページだね。
178 :
デフォルトの名無しさん :02/10/12 14:45
XSLで、すべてのleafについてancestor-or-self軸のノードセットを選択し、それぞれのテキスト要素を表示するにはどうすればいいんですか? 例 <a><text>a</text> <b><text>b</text> <c><text>c</text></c> </b> <d><text>d</text> <a><text>A</text></a> </d> </a> 結果 abc,adA
ヤレヤレ
>>178 ここ、XSL理解してる奴いないから。
質問しても無駄。
>>180 ホントダ!!
ここ何気に雑談スレじゃん。
質問が来ても、まるで答えてねぇ。 ←私もだけど
182 :
デフォルトの名無しさん :02/10/12 20:16
178はまた君か、って感じなので。
>>178 LISPでやれば一瞬で解決しそうだな。
184 :
デフォルトの名無しさん :02/10/12 21:08
178です. 書き忘れたんですが,下記を試しましたが,全要素を表示してしまいました. <xsl:template match="*"> <xsl:if test="position()=last()"> <xsl:value-of select="ancestor-or-self::*"/> </xsl:if>
>>178 はやりたいことを全て2chの輩に作らせる奴
190 :
デフォルトの名無しさん :02/10/12 23:32
>>184 <xsl:if test="position()=last()">
たぶんここが違う。
192 :
デフォルトの名無しさん :02/10/14 01:20
>>190 すみません、解決できました。
そこも全然ちがいました(w。
>>190 そうか?左辺が参照を返す関数ならそれは可能だと思うが。
195 :
デフォルトの名無しさん :02/10/14 14:27
age
196 :
デフォルトの名無しさん :02/10/17 09:29
フリーなXMLファイル作成ツールってありませんか? あったら教えて下さい。
板違い
200 :
デフォルトの名無しさん :02/10/21 21:12
XSLTを使ってXML文章を別のXML文章にするのってどうすればいいの? <xsl:output>やそのomit-xml-declaration属性の設定、<xsl:processing-instruction>を 使うかどうかなんか教えてくれ
板違い
202 :
デフォルトの名無しさん :02/10/21 22:36
板違いなのか? じゃぁどこで聞けばいいんだ??
204 :
デフォルトの名無しさん :02/10/22 01:26
205 :
デフォルトの名無しさん :02/10/22 02:00
>>204 例えば
<a>
<b>
<d>hoge</d>
<c>
<d>hoge</d>
</c>
</a>
というのを
<a>
<d>
<name>hoge</name>
<b>mogemoge</b>
<c>hagehage</c>
</d>
<a>
こんな感じXMLをXMLへ変換するのをXSLTを使ってやりたい
というかXSLTを使ってXML文章をはき出す方法がわからない
はぁ??? 普通にtemplate-match使って吐けばいいんじゃなぃの?
>>205 >>206 もしかして、xsl:textを知らないとか?
んでもって、閉じタグの扱いに困ってるとか(w
改まった場?
そんな適当なのでいいんなら自分で書け
>>211 さんざん海外のサイト探し回ったりしてるんだけど
カーソル位置のエレメントの情報を探し出す って機能が見つからないんだよ
頭悪いから自分で書く事も出来ないしな
カーソル位置?
エディタと連携させて、カーソル位置にあるタグの情報を出させるってこと
XmlWriteとか。 編集しながら、即反映するXML&XSLTエディタ。
emacsのことかな?
>>218 厨御用達のエディタにしたくないから、勘弁してください。
? 厨の言うことはサパーリ
221 :
デフォルトの名無しさん :02/11/02 02:13
Javaで、org.w3c.dom.Documentで取得したXMLノードを文字列に展開することってできますか?
>>221 出来そう。
どのように展開したいですか?
parentノードを所得した時に、
<parent>
<child>ほにゃらら</child>
</parent>
こう展開したいと解釈してよろしいですか?
void output(Document aDocument, OutputStream anOut, String anEncoding){ Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.ENCODING, anEncoding); transformer.transform(new DOMSource(aDocument), new StreamResult(anOut)); }
>>222 そのとおりです。
>>223 ありがとうございます。今手元に環境がないので連休明けにでもこれで試してみます。
OutputStreamは適当にnewしたものを使えばいいんですよね?
Encodingは具体的にはどういうものを指定すればいいんでしょうか?
>>224 メモリ上に得たいなら、ByteArrayOutputStream を new して渡す。
ファイルなら FileOutputStream。
エンコーディングは、"Shift_JIS"、"UTF-8"、"EUC-JP" などなど。
226 :
デフォルトの名無しさん :02/11/04 18:28
以下の2つはどちらもXMLの検証に使われる、スキーマの定義文の かきだしです。なんと呼ばれるXMLのスキーマ言語ですか?対応す る呼び名を選んでください。 (ア) <?xml version="1.0" encoding="Shift=_Jis"?> <Schema xmlns=・・・・・・ (イ) <?xml version="1.0" encoding="Shift=_Jis"?> <module moduleVersion="1.0"・・・・・ 回答群ーーーーーーーーーーーーーーーーーーーー @RELAXASAXBDTDCXSDXDR EURIFnamespaceGSchemaHmodule ーーーーーーーーーーーーーーーーーーーーーーー <回答欄> (ア): (イ):
RUBY!!!!!
>>226 こんな課題出してくれる大学に行きたかったなぁ。
(ア)か(イ)、どちらかの回答を知っていれば 片方も推測がついてしまうのが残念だな。
>>229 と、言うことは深読みしすぎる俺の(2の回答はを間違っていると言うことか。
勉強になった。
231 :
デフォルトの名無しさん :02/11/04 19:53
(ア)G (イ)H 良いですか?
アはあってる でもSchemaだけだと何のSchemaかワカラン気もするが・・・ moduleって使われてるの?まだRELAXの方が使われてると思うけど
233 :
デフォルトの名無しさん :02/11/07 07:51
concat関数で文字列を結合したいんですが、要素を指定しないで結合するのってできますか? 例えば、兄弟要素すべてを結合、とか、子要素をすべて結合、など。
>>232 正解はないだろう。。。名前空間がわからないのにSchemaタグの意味がわからんじゃないか。
235 :
デフォルトの名無しさん :02/11/08 09:17
>>233 concatは引数として「連結したい2つ以上の文字列」を渡さなくてはいけないので
ノードを渡すことはできない、と思う
けど、descendant::text()みたくしてやればいけるかもしれない
じゃなかったらcountで数数えて変数つかって一個ずつ連結させていくとか
今手元で試せないんでこんな回答しかできなくてスマソ
>>234 ・・・・の以下は本当は続いてるんじゃないの?
なこといったらあれは文書として完結してないじゃん
だけど名前空間は書いてくれないとね。。。
今の時点では、激マイナーなXSL-FOスタイルシートの話題降ってもいい?
激マイナーって...。 1年くらい前にPDF生成に使ったけど?
バリデータもついてなきゃ単なるおもちゃのオナニーライブラリ止まりだと思われ
バリデータついてないXMLパーサの作者ですが、何か? おもちゃにはおもちゃなりの使われ方があるのです。 けど正直、バリデーションもできるようにしたいんです。 DTDステでRELAXサポートってのはありかな?
RELAXNG にしる
242 :
デフォルトの名無しさん :02/11/15 11:19
XPathのAxisでselfってありますが、 self::で絞った時に属性ノード、名前空間ノードといった 従属ノードの扱いってどうなるんでしょうか? Selfはcontext node自身でなければならないことを表します。 ってあるんですが、属性、名前空間はそれに含まれないとの 認識であってますか?
243 :
デフォルトの名無しさん :02/11/15 20:04
>>242 俺の持ってる本には
「attribute軸とnamespace軸は要素ノードからのみたどることのできる軸」
とあるのでそういう認識でいいと思う
"self::node()"は"."と同義なんだからおかしな事になる(むしろself軸ってこれ以外使い道無い??)
属性ノードの場合"@"を使うわけだし
244 :
デフォルトの名無しさん :02/11/16 01:32
>243 ThanX!!やっぱそうだよねぇ〜 というか、もしかして本が間違えてると言う可能性も えてたわけですが^^;<XML完全解説(下) selfで取り出せるのは従属ノード以外のコンテキストノード ということになるんですかね。 #そもそもコンテキストノードには従属ノードは含まれない? axisのとこに*selfだけ解説がないので迷ってました。P.65 #child,followingなんかだと従属ノードは取り出せないって明記されてるんですが。
246 :
デフォルトの名無しさん :02/11/16 13:58
>>244 243だけど俺も同じ本使ってる(w
たぶんあれには嘘は書いてないと思うよ
従属はあくまでも従属だからその親要素に行ってattribute軸なりを指定しないと
取り出せない(./@hogehogeなんてのができない)と思うので
そういう意味でselfは起点のノード(要素)のみでしょ
そのページの上に書いてある図がわかりやすいと思うけど
あれれ・・・ ちょっと待てよぉ。Quipで試してみたら /attribute::*/self::* 属性のコンテキスト取り出せます。 ってことは、従属ノードもselfは取り出すって事ですか? でも、/attibute::*/self::node()ではでてこないという謎仕様なので あんま信用おけないかもですが。 node()で出てこないで、なんで*で出てくるんだろ。
249 :
デフォルトの名無しさん :02/11/19 13:11
250 :
デフォルトの名無しさん :02/11/19 14:22
source forgeでXMLpaserを落としたが状態遷移図で打つになった
251 :
重複スレです。 :02/11/19 21:17
>251 正気とは思えん
続き。 <define name="person" c:class="Person"> <c:java-body> public String toString() { return ("name=" + name + ", sex=" + sex + ", age=" + age + ", zip=" + zip + ", address=" + prefecture + " " + city + " " + detail); } </c:java-body>
続き。 <element name="person"> <element name="name"> name = <text/> </element> <element name="sex"> <choice> sex = <value>male</value> sex = <value>female</value> </choice> </element> <element name="age"> age = <data type="decimal"> <param name="minInclusive">0</param> </data> </element>
続き。終わり。 <element name="address"> <element name="zip"> zip = <data type="string"> <param name="pattern">[0-9]{7}</param> </data> </element> <element name="prefecture"> prefecture = <text/> </element> <element name="city"> city = <text/> </element> <element name="detail"> detail = <text/> </element> </element> </element> </define> </grammar>
で、こんなXMLを処理するクラスが生成できる。 <?xml version="1.0" encoding="Shift_JIS"?> <person-list> <person> <name>ほげ</name> <sex>male</sex> <age>20</age> <address> <zip>1234567</zip> <prefecture>東京都</prefecture> <city>千代田区</city> <detail>大手町</detail> </address> </person> </person-list>
XML形式で注文データを保存しようと思っているのですが、 どんどん、追記式でデータが入る場合、どのような方法で 記録していけば効率がいいのでしょうか、いつも最後の閉 じタグのところの処理に悩みます。 例えば、次のようなデータの場合、最後の</salesdata>がある がために、<order></order>データをどんどん書き足していく ことができないのです。こういう場合ってどうやって処理するのが 一般的なのでしょうか? <salesdata> <order no="1">aaa</order> <order no="2">bbb</order> <order no="3">ccc</order> <order no="4">ddd</order> </salesdata> DOMとか使うと、毎回データを全部メモリに読み始め てしまうし、SAXでも結局はデータを順次読んでいかな ければならないと思います。一番簡単なのはファイル ポインタをいきなり最後にもっていって、</saledata> のタグまで、戻って、<order></order>データで上書き して行く方法なのですが、、、なんかムダな感じが、、、 みなさんはどうやっているのでしょうか?
追記を示すタグを末尾に置けばいいんじゃない? <append><selesdata/><order>ddd</order></append> つーか、普通にDB使えば?
260 :
デフォルトの名無しさん :02/11/26 17:11
>>250 状態遷移あくまで資料だから、見なくても使えるよん。
(状態はエラーの回復とかやる人のためのもの)
すごい簡単だよん。
使うソースはparse.cppとparse.hの二個だけ。
#include "parse.h" // ヘッダはこれ一個。
ifs.open("hoge.xml");
parser ps;
char c;
while (ifs.get(c), ifs.good()) {
if (ps.step(c)) break;
}
if (ps.checkerror()) {
std::cerr << "シンタックスエラー" << std::endl;
} else if (!ps.acceptable()) {
std::cerr << "ちょちょ切れ" << std::endl;
} else {
; // OK
}
261 :
デフォルトの名無しさん :02/11/26 18:56
私は入門書片手の初心者です。 キーボードから入力できない記号(?)があって困っています。 Unionと言う演算子(?)らしいのですが、Shift押しながら全部のキーを試しました。 でも、でませんでした。 皆さんはどうやって入力しているのでしょうか? お助け下さい
>>260 状態遷移図実はドキュメントと同期してない?
受理状態となるS7が見あたらないんだけど
>>258 とりあえず</salesdata>が現れるとこまでバッファに読み、</salesdata>を無視して
追記して最後に</salesdata>と書き込み、出力する。
とりあえず効率は良いし要件は満たしてるでしょ。
ただ組込系とかのタイトなシステムでやるのでない限りDOM使うのがいいと思うけどなー。
パフォーマンスチューニングも大事ですが、コードを単純化して
保守性をあげるのも大事な仕事だと思います。
XMLを選択する所が間違ってる気が。
267 :
デフォルトの名無しさん :02/11/28 19:42
Javaの問題かとも思うんだけどもし知ってる人がいれば
Windows2000
JBuilder7.0
Java1.3.1_02
xalan2_4_1
xerces2_2_1
でXSLT変換してるんだけど改行がCRCRLFになる。デバッガでは\r\nですね。
普通にCRLFにさせたいんだけど何か設定漏れかな?
参考にしたところは
http://www.hellohiro.com/xslt.htm よろしくおねがいします。
ちなみに<xsl:output method="text" encoding="shift_JIS" />とxsltファイルには指定してあります。
268 :
デフォルトの名無しさん :02/11/28 21:24
すみません.質問です. <hoge>foo1,foo2,foo3</hoge> のように,デリミタ区切りのXMLソースから,XQueryを使って, <hoge>foo1</hoge> <hoge>foo2</hoge> <hoge>foo3</hoge> としたいのですが,できるのでしょうか? お手数ですが,よろしくお願いいたします.
269 :
デフォルトの名無しさん :02/11/29 01:07
>>265 >XSLT変換してるんだけど改行がCRCRLFになる。デバッガでは\r\nですね。
>普通にCRLFにさせたいんだけど何か設定漏れかな?
\r\r\n?
\nにしたいの?
270 :
デフォルトの名無しさん :02/11/29 01:44
>>269 \r\n -> \n
に
バイトなら
CRCRLF -> CRLF
0x0d 0x0d 0x0a -> 0x0d 0x0a
にしたいっす。
>267 状況がそれだけじゃわかんないよ。 CRLFの入力をテキストモードで読みこんでCRLF補完された、または CRLFのデータをテキストモードで書き出しでCRLF補完されただけって 気がするけど。 ファイルの読み書きの仕方が悪いとしか言いようがない。
XMLはDocumentにプログラムでガリガリかいてます。 public static String n2S(Node targetNode, String xsltFileResourceName) throws IOException, TransformerConfigurationException, TransformerException { ClassLoader cl = ClassLoader.getSystemClassLoader(); java.net.URL uri = cl.getResource(xsltFileResourceName); StreamSource xslsrc = new StreamSource(uri.openStream()); StringWriter sw = new StringWriter(); TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(xslsrc); transformer.transform(new DOMSource(targetNode), new StreamResult((Writer)sw)); return sw.toString(); } よろしくおねがいします。
すみません.どなたからもレスがないので,やはり無理なのでしょうか. それとも簡単すぎるのでしょうか.できればコメント願います. ...XQueryはデリミタを解釈できない... 再掲載: <hoge>foo1,foo2,foo3</hoge> のように,デリミタ区切りのXMLソースから,XQueryを使って, <hoge>foo1</hoge> <hoge>foo2</hoge> <hoge>foo3</hoge> としたいのですが,できるのでしょうか? お手数ですが,よろしくお願いいたします.
275 :
デフォルトの名無しさん :02/11/29 23:01
どっかに、VC++でSAX使ったサンプル、無い?
>>275 一応つっこんでおくとどの言語でも大体仕様一緒なんだから勝手に読み解けや。
277 :
デフォルトの名無しさん :02/11/30 11:15
↑ 君、大雑把過ぎ。
↑俺はそうは思わんぞ。 君プログラマに向いてない。
w3cがメソッド仕様まで決めてるのって珍しい気もする
>>279 DOMとかSAXとかって言語問わず同じ手順で操作出来るのが売りなのでは?
手順は同じでもJavaとC++つかVC++からではそれ以前の準備が大分違う罠。 MSXMLだったらCOMだしな。Java+XMLの達人でもいきなりだとサンプルなし では難しいと思われ。
MSXMLもjavaのもlibxmlも普通に使えたよ。特に困ることもなかった。
284 :
デフォルトの名無しさん :02/11/30 21:59
>>268 の質問に答えられるやつは一人もいないのか?
ちなみにおれは知らん。ごめんよ。
>>268 XQuery使ったこと無いけど、本当にXQueryじゃないと駄目なの?
XSLTとか使ってると簡単なことなら問題ないけど、ちょっと複雑なことをやろうとすると面倒になるよ。
XSLTで改行を<br>に変換しようとしただけでユーザ定義関数作る羽目になったんで。
たぶんXQueryも同じじゃないかなと思うけど。
個人的にはこの場合はXPathとか使って値を取得してから普通にプログラミングでやった方が良いと思うよ。
>>286 ありがとうございます.反応していただいただけでもうれしかったです.
>>287 反応していただき、ありがとうございます.
XQuery以外ですと,JavaScriptしか他はないといったところです.
自分が組める組めないという事情とはちょっと異なり,それしか
手段がないといったところです.
いずれにせよ,ちょっと難しそうですね.
いろいろありがとうございました.
289 :
デフォルトの名無しさん :02/12/03 01:09
FILE で読む。これ、最強。
290 :
デフォルトの名無しさん :02/12/03 23:31
MSXMLのDOMを使ったコーディングをよーくやってます。 たまにDOMのクラスにメソッドやイベントを書き換えたり追加したてぇって思いますよ。 例えばXMLファイルの整合性を保つためにロック機構を実装しようと、DOMDocument クラスのLoad,saveメソッドを書き換えたいなぁっと。 MSXMLを使っている限りアクロバティックなコーディングをしないと無理? Javaを使えばオーバーライドやらを使えばできるんですか?
291 :
わ ◆nZptw02DTU :02/12/04 00:03
>>290 ロックは別の機構でしましょう。
ASPならServer.Lockだったかな?
VBとかならセマフォか?
一個ロック用COMを用意しておくと使い回しが便利だとは思うけどつくってません。
292 :
デフォルトの名無しさん :02/12/04 07:30
>>291 書込み可で開いたときにロックファイルを置くってなレベルで
いいんですよ。ただし、Load,save共に書き換えて置かないと
おかしくなりますが。
Server.Lock?ってありましたっけな。調べよ。後で。今は手
元にMSDNないし。
293 :
わ ◆nZptw02DTU :02/12/04 09:17
>>292 思い出した。
Server.ApllicationLock
294 :
デフォルトの名無しさん :02/12/05 00:39
>>293 はて?ありましたっけ?そういうメソッド。
ちなみにあちしはNT4で開発してるのでIIS4です。IIS5?
ひょっとして.NETとか?
295 :
わ ◆nZptw02DTU :02/12/05 09:39
296 :
デフォルトの名無しさん :02/12/05 14:28
XML初心者です、JavaでXMLを扱っているんですが次のような例外がでて困ってます。 SAXParseException : the root element is required in well-formed document これってXML文書本体に誤りがあるってことですよね? でもXML文書本体もスキーマも正しいはずなんですが、どうしてなんでしょうか? 誰かおねがい!!
>>296 > でもXML文書本体もスキーマも正しいはずなんですが
思い込み。
>>296 > でもXML文書本体もスキーマも正しいはずなんですが
証拠は?
299 :
◆oKgODJRETc :02/12/06 00:04
>>295 なーるほど。
(多分)
読み込み、書込みの前後で必ずApplication.Lock/Application.UnLock
をして同時に読み書きが行われるのを避けると。
ASPでの実装はそれでオッケーそうですな。
300 :
◆oKgODJRETc :02/12/06 00:06
ASPでの実装はオッケ―です。どうもでした。ここからは別の話です。
Javaにヒジョーに興味があります。
>>290 であちしが書いたような、XML DOMのメソッド書換えってJavaだとで
きるんですか?
MSXMLってCOMっしょ。ならアグリゲーションじゃないかねぇ。 委譲書くのがめんどいけど。
>>296 パーサーと、XML文書、クラスパスの情報を書け
303 :
◆oKgODJRETc :02/12/06 06:58
>>301 いや、JavaでXML使うんだから、MSXMLは使わないです。
確かJavaでもXMLのDOMってありましたよね。
304 :
わ ◆nZptw02DTU :02/12/06 10:25
>>303 Xerces かな。
.save とか .load とかっていう便利な代物無いから適当に書いてください。
でも、別環境との排他はファイル存在排他か、DBをつかわないと出来ないよ。
WindowsとASPとかはCOM経由で同一排他ロジックが利用できるけどね。
DocumentBuilderFactory.newInstance().newDocumentBuilder() TransformerFactory.newInstance().newTransformer()
fprintf(fp,"<?xml version="1.0" encoding="UTF-8" ?>\n");
308 :
デフォルトの名無しさん :02/12/09 10:54
質問です。 XMLDOMを使用した場合、各タグのパラメータを取得するには getElementsByTagNameメソッドを使用しますが、このパラ メータを更新したいときはどのようなコーディングをすれば 良いでしょうか? 使用するメソッドがわからないです・・・。
309 :
わ ◆nZptw02DTU :02/12/09 11:04
>>308 なにがわからん?
a = domdoc.getElementsByTagName("").value
で取得できれば
domdoc.getElementsByTagName("").value = a
で設定。
XMLはコンピュータの可能性を狭めている
>>309 ありがとうございます!
その通り、パラメータセットを逆にしてあげるだけで
いいのかな?と思ったんですけど、上記のように実装
してもデータが反映されないんですよ。ファイル更新
時間も変わらないし。
このあとで何か命令が必要なんでしょうか?
ちなみに値の取得はできてます(確認しました)。
Set xmldoc=CreateObject("Microsoft.XMLDOM")
xmldoc.async=false
xmldoc.load(ファイルパス)
set strData = xmldoc.getElementsByTagName(タグ名)
domdoc.getElementsByTagName("").value = a
あ、セットしてる箇所はこっちでした strData.Item(0).text = a
fprintf(fp,"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n");
314 :
わ ◆nZptw02DTU :02/12/09 13:06
>>311 保存してる?
MSXMLなら.save
それ以外は自分で調べて。
オンメモリのドキュメントは変更されてるから。
>>314 できました! そうですね、保存処理をすっかり
忘れてました・・・(恥)。ありがとうございました。
ただそのまま保存すると2バイト文字が内部コード(UTF-8)
の3バイト形式になってしまうんですね。
元々の形式が「𘚟」だったので・・・。変換モジュール
作るしかないですね?
317 :
わ ◆nZptw02DTU :02/12/09 14:54
>>316 そんなことはないよ。
どうやって保存してる?.save()?
>>313 のようにXML宣言しているところをencoding="Shift_JIS"にしてる?
>>317 「encoding="UTF-8"」です。元々作成データはUTF-8なんです。
ただ、作成したいのはUTF-8の3バイトコードじゃなく、
"𘚟"の文字体系なんですね。
なので、Save処理を実行すると当然ながらデータは元々の体系
ではなく3バイトコードになってしまうのでマズイ、と。
あ、ばけてた。「&#99999;」ですね。
>>318 全部数値実態参照にしたいの?
なんでかなー?
うまいやり方はあまり思いつきません。
何か方法あるかな?
321 :
デフォルトの名無しさん :02/12/09 21:58
XML仕様書のEBNFやめてほしいよ・・・。あいまいでつかみにくい。 例えば「正規表現で表すものは大文字で始めます」とかイットキナガラ 「prolog」が大文字で始まらないのはなんなんだよっ
322 :
デフォルトの名無しさん :02/12/10 13:27
xslとxsltの違いって何?
XSL-FO知らなかった。サンクス
325 :
デフォルトの名無しさん :02/12/11 23:50
すいません。 Cでコーディングしてるんですが、 IXMLDomDocument* aaa みたいにして、かつCreateInstanceしてさらにaaaを、LoadXMLとかLoadしてDOMつくるじゃないですか。 今度はbbbを、aaaと同じようにして別のXMLで作成して、bbbをaaaに代入することはできるんですか? 処理が死んでしまうんですが・・・ どなたか詳しい方に教えていただきたいんですが。 よろしくお願いします。
「代入」とは? 「処理が死んでしまう」とは? XML以前の予感
327 :
デフォルトの名無しさん :02/12/12 00:26
Javaの話だが、xercesだけでXPath式使えないのかな xalanのXPathAPIクラス使えばいいんだろうが、xalan.jar使いたくない でもDOM/SAXは辛い
328 :
デフォルトの名無しさん :02/12/12 00:54
>>326 学生なんですいません。
「代入」・・・bbbのXML文書をaaaにコピーしたい。元々のaaaのXMLはもう要らない。
「処理が死ぬ」・・・実行時にエラーが発生するという意味です。
むいてないんですかね、おれ。
330 :
デフォルトの名無しさん :02/12/12 01:00
>>329 今ないんで明日ガッコからもってきます。
レスありがと。
これっぱかしのやりとりでは適性は判断できないが…「エラーが発生」って何? APIがエラーを返すのか、OSが例外を出すのか、はたまた…。
適性と言うより経験が無い、という方が正しそう。 とにかくコード
333 :
デフォルトの名無しさん :02/12/27 02:07
333ゲットついでに教えてください XMLマスターってどんな資格? XMLは元々そこそこ詳しいし、ちょっとした暇を見つけて取得しようかと考えているんだけれど。 少なくとも海外では使えなさそう、という事だけはわかりました。 後、他に(海外含めて)XML関係の資格ってどんなのがあるでしょう?
335 :
デフォルトの名無しさん :02/12/27 12:11
>>335 XMLマスターが使い道なければIBMの試験はもっと使い道ねーよ
もういい帰ってくれ。
____
/∵∴∵∴\
/∵∴∵∴∵∴\
/∵∴∴,(・)(・)∴|
|∵∵/ ○ \|
|∵ / 三 | 三 | / ̄ ̄ ̄ ̄ ̄
|∵ | __|__ | < うるせー馬鹿!
>>337 \| \_/ / \_____
\____/
339 :
デフォルトの名無しさん :03/01/03 03:35
複数のXMLにたいして検索をかけて、情報をとってくる事を考えてます。 言語はjavaなんですけど、 XQueryとか、そういうXMLの問い合わせ言語で 実際に使えるものはあるのでしょうか? やっぱりDOMやSAXで自分で作るほうがいいでしょうか?
340 :
デフォルトの名無しさん :03/01/03 04:59
JXPath調べてみます。 ありがとうございました。
343 :
デフォルトの名無しさん :03/01/04 21:37
Dim objDoc As New XmlDocument() objDoc.Load("sample.xml") Dim count As Integer objRoot = objDoc.DocumentElement objAAA = objRoot.childNodes ★For i = 0 To (objAAA.Length - 1) count = count + objAAA.item(i).Length Next VB.NETでDOMの勉強をしているのですが、上記のコードの★の部分で 以下のようなエラーが出てしまいます。Lengthプロパティを取得するには どうすばれ良いでしょうか? >'System.MissingMemberException' のハンドルされていない例外が >microsoft.visualbasic.dll で発生しました。 >?追加情報 : 型 'XmlChildNodes' でパブリック メンバ 'Length' が見つかりません。
エラーメッセージのまんまやん。
345 :
デフォルトの名無しさん :03/01/04 21:54
>>344 済みません、始めたばかりなもんで本当に対処の方法が分かりません。
ヒントでもいいのでお願いします。
XmlChildNodesをヘルプで見れば?
>>345 XmlChildNodesにメンバ"Length"が無い
これ以上やさしく書くのは不可能
あ、分かりました…ノードの数はLengthじゃなくてcountだったんですね ありがとうございました。 手元のXMLの本ではLengthを使ってるんですが…
.NETのXMLライブラリはDOM API準拠じゃないと思った
てことはVB.NETで343みたいな操作するやつは DOMじゃないってこと?
いや、DOM相当の機能はあるけど、W3CのDOM APIそのままじゃないってこと。 あれ、でもDOM APIがLengthなんて使うわけないよな・・・
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
もう2chも終わりだな
なんでも俺を実験に使うそうで
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
fu-n
これはぼくの自作自演スレを根底から揺るがす大事件だ ダレカ、カキコンデクレ・・・
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
おぺら6.05からテスト 書けてるよ〜
>>567 そのへんをはっきりとひろゆき氏は述べて欲しい。
いろんな状況が考えられるけど、善意の告発と思われるものに関しては書き込み者を保護するとか。
ま
(^_^;)?
荒らし荒らし for dream!!
ついでに。
素朴な疑問ですが、どうしてこの板だけスレストされるのですか?
…うまかった…時空を超えた1年越しの味。
localhost:12987みたいな自分のところで立ち上げてから見るんじゃなくて、 自分は立ち上げずに他の人のところで見たいという意味なんだよね。 やっぱ2ちゃんねるのアドバンテージは 多くの人が書き込んでいること、なんだけど、 そのひとつの要因として、ブラウザと言う、 OSに標準でついてるもので簡単に見れること、 があげられるし。
MSXMLでDOMを使ってます。例えば <product id="0"> <name>A</name> <price>600</price> </product> <product id="1"> <name>B</name> <price>500</price> </product> <product id="2"> <name>C</name> <price>300</price> </product> idの番号を連番にしたいのです。 idが1のノードを削除した場合、idの番号を詰める。 挿入した場合もidを連番になるようにする。 これって、やっぱり自力でやるしかないのですか?
2003年1月10日がおいらの青春の1ページに記録されますた。
なんかこれ見よがしに必死に他の掲示板へ誘導してる香具師が居るように見えるんだがw
IP晒されてるのはクソ馬鹿ばっかりだな・・・ こういうのが減るのならいいか・・・
そういわれるとそうでした。。
つっこみでました
qb鯖の中の人は大変だな。
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
良識ある大人が基地外じみた発言をするところがココの魅力ですた
美学っすか?
半角系板では、業者が書き込むとリモホが表示させられてるみたい
382 :
デフォルトの名無しさん :03/01/11 16:20
おまえら、IP記録がそんなにこわいのか。
肛門から心臓が飛び出そうなくらい怖いです(^_^;)
て
IDが1ch
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 誰が書き込んだ内容だろうと、その内容の全責任はひろよきにあるんだ。 ただ裁判官も弁護士もネット観念が全く無いのをいいことに 、もっともらしく 「私は場所だけを提供しています」って押し通そうとしている痛いひろゆき。 訴える側も、掲示板の管理責任を追求することまでしか知識が追いつかず ひろゆきを名誉毀損などで訴えることをする奴が皆無なのが拍車をかける。 一度、裁判で、書き込みに対して、 削除を求める等では無くひろゆきを名誉毀損で訴え SFCの村井さんあたりが原告証人で出廷するといい。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
test test
どれぐらいでおわるの? 明日までにはおわりそう?
一月だろ。
(^^)
xslについて教えてください <国> <都道府県> .... <市町村> .... </市町村> </都道府県> </国> 県内における市町村のポジションはposition()で得られるとき、 国における都道府県のポジションを得るにはどうすればいいのですか。 都道府県のレベルであらかじめ、position()を使ってポジションを 得るしかないのでしょうか。
395 :
Windows上で :03/01/23 09:03
DOMツリーのオブジェクトをツリー表示してくれるようなコンポーネント ってないでしょうか?ダイアログに貼り付けて使いたいのですが。。。
(^^)
>395 IE
398 :
デフォルトの名無しさん :03/01/27 22:10
↑mailto:xxxli
400 :
デフォルトの名無しさん :03/02/26 20:32
401 :
デフォルトの名無しさん :03/02/26 20:36
>>395 MozillaのDOMInspectorみたいな?
402 :
デフォルトの名無しさん :03/03/04 12:16
おまえらXMLが死滅寸前に追い込まれたときどうするよ? ちゃんと対策とってるかよ 死滅対策をよ 死滅後の行動とってるかよ
403 :
デフォルトの名無しさん :03/03/04 12:27
>>402 コピペにマジレス。
間違いなくXMLより先に俺が死ぬから問題ない。
403 の主治医です。 (以下略)
なんかこの死滅死滅ってコピペよく見るが、 ちっとも面白くないのはどういうわけだ。
Java で XMLをDOMに読んだり、DOMをいじったり、それをXMLに 書き込んだりするのができるようになりますた! Schema の書き方も勉強中なのですが、実際にXML文書がSchemaに Valid かどうかをちぇっくさせるには、どうやってやればいいですか。 Schemaファイル名をどっかに書くのだろうけど、どこに書けばいいか わかりません。
ありがとうございます。 検索時に、的確に単語を選ぶ能力がマジでわしには無いです。 こうやって出されると、ああ、たしかにそうだ、と思います。
409 :
デフォルトの名無しさん :03/03/23 16:14
>>409 DTD からクラスを生成してくれるのか。
そういえば、Relaxer もクラス生成の機能が付いていたような。
411 :
デフォルトの名無しさん :03/03/23 16:41
大元をDTDにするか、Relaxerのスキーマ定義xmlにするか。 DTDの方が理にかなってるとは思うが、 何気にDTD作らない場合も多いんだよなぁ。
>>411 Relaxer で Relax -> DTD もできたはず。
悲しいかな、RelaxNG に対応してるのはβ版だけなんだが。
XMLScheme って実装の方は進んでないの?
>>412 MSXMLくらいじゃないか?対応してるのは。
んなこたーない。xercesも対応済み。
プログラマとユーザが非対応・・・ 仕事ではSchemaもRelaxも見たことない、 見るのも書くのもDTDばかりな漏れはDQNプログラマですか?
DTDがちゃんと書けるなら立派なものかと。
本当のDQNは例えば「DTD死滅スレ」や「Schema vs Relax @春厨」や 「DTDばかりやってると馬鹿になる」みたいなスレを立てる奴のことだ。
DTDって読みにくいから、DTD手に入れたらすぐにRELAXに変換してから読んでる。
>>418 Relaxって、どこか(W3CとかISO)で標準化されつつあるんだっけ?
>>420 一瞬「いつの間になったんだ(゚Д゚;)聞いてねぇぞゴルァ」とか思った。
Status: Texy for DSI ballot って事は投票する一歩手前か?
XML Schema とダブルスタンダードになったりする事ってありえるのん?
教えて偉い人。
# ダブルスタンダードは困る…激しく。
これだけはいえる。 RELAX NG作った日本人は見た目キモイ。
>417の言う本当のDQNが降臨しました。
425 :
デフォルトの名無しさん :03/03/28 18:43
MSXMLつかってまつ。 IXMLDOMElementが指定されたアトリビュートを持っているかどうか 調べる方法はありますでしょうか。 存在しないアトリビュートにアクセスすると例外が投げられるので いちいちキャッチする 、、、という方法は避けたいのですが。。。
hasAttribute
427 :
デフォルトの名無しさん :03/03/28 19:28
XMLファイルからXMLファイルをASPのincludeのように呼び出すにはどうすればいいですか?
428 :
デフォルトの名無しさん :03/03/28 20:07
>>426 error C2039: 'hasAttribute' : is not a member of 'IXMLDOMElement'
って出てダメなんですけど。。。
MSXMLのバージョンがふるいのかな。
> MSXMLのバージョンがふるいのかな。 と言っておいてバージョンを書かないとはどういうこと?
>412 libxml2、RELAX NGをサポートしました。(2.5.5以降)
なんだかんだ言いながら、もうすぐ500スレ逝く。 ヴァカかお前らは。 ====================== 終了 =====================================
500 _スレ_ も?
435 :
デフォルトの名無しさん :03/04/03 00:28
SAXにて、 想定する順番どおりイベントが起こらなかったとき、例外を出して 止めるという事はできますか? 例えば <?xml ... ?> <a>1</a> <b>2</b> みたいにa,bという順番を想定していたのに <b>1</b> <a>2</a> という風に来た時 例外を出してフォーマットエラーにしたい。
>>435 ハンドラインスタンスにListでもおいといて、イベントの履歴保存しとけばイイジャン。
直前のイベントといまのイベントの順序がおかしければ自力で例外投げれ。
DTDなりXSDなりのメタ定義情報を準備して、パーサにバリデーションチェック お願いするほうが簡単だけどナ。
438 :
デフォルトの名無しさん :03/04/03 01:27
ありがとうございました。 解決しました。
解決しちゃったのかよ
こんなんばっかりだな。 所詮板違いということか。
441 :
デフォルトの名無しさん :03/04/05 18:41
ある要素<item>が存在するとき、その子要素か、あるいはその<item>を 包含する上位要素のどれかの子要素として<title>が存在しなければならない ということをチェックしたいのですが、XML Schemaでそのような定義が記述 できるでしょうか? 基本的には各<item>は子要素として<title>を持つのですが、 <root> <item><title>title1</title></item> <item><title>title2</title></item> </root> 多数の<item>が同じ値の<title>を持つ場合、デフォルト値を与える 要素を追加して簡略化した記述が可能であるようにしたいのです。 <root> <title>title</title> <item></item> <!-- <item><title>title</title></item>と同等とみなす --> <item></item> <!-- <item><title>title</title></item>と同等とみなす --> <item><title>title1</title></item> </root> <root> <item></item> <!-- <title>が存在しないのでエラー --> <item><title>title</title></item> </root> もし不可能だとした場合、XML Schemaで定義できる範囲で上のようなことを 実現するには、どのような構造にするのが良いでしょうか?
>>442 ありがとうございます。できるんですね。
ただ、その後もXML Schemaの仕様を調べているんですが、
いまだにどのように実現できるのかわかっていません。
具体的にはどのように記述すれば良いんでしょうか?
>>443 普通に。属性にデフォルト設定できるでしょ?
>>444 あ、いえ、属性値のデフォルトではなくて、
>>441 に書いたように、
要素の省略を許しつつも、その要素がどの階層にも存在しなければ
エラーとしたいのです。
やっぱり無理なんでしょうか。
447 :
デフォルトの名無しさん :03/04/15 13:53
MSXMLを使っています。 XMLファイルをロードするときに、すでに他からロードされている場合は ロードに失敗するような、排他読み込みをするにはどうすれば良いのでしょうか?
(^^)
>>447 XMLがどうこう以前に、単にファイルをロックすれば解決でわ。
∧_∧ ( ^^ )< ぬるぽ(^^)
451 :
デフォルトの名無しさん :03/04/25 09:02
本読めばすぐわかるよ。 だからおしえない
453 :
デフォルトの名無しさん :03/04/25 13:23
>>452 ある要素の内容を,ある要素の属性の値にする方法ていうのが,
本読むんでもどうしてもわからないんですよ
ヒントだけでもお願いできませんか?
xsl:attribute
なんかXMLの勉強をすると必ずどっかにjclarkって名前が出てくるんだが こいつは一体何者なんすか?
457 :
デフォルトの名無しさん :03/05/14 23:44
age
458 :
デフォルトの名無しさん :03/05/15 00:29
みなさんJAVA<->XMLのマッピングには何使ってます? Relaxer,Castor,JAXB,ZEUS,XML2JAVA...
459 :
デフォルトの名無しさん :03/05/17 21:54
JAXB もしくはCastor
460 :
デフォルトの名無しさん :03/05/17 21:55
zeus
.NET Framework
JXPathは少し芸風が違うんだっけ?
Relaxer使ってる。 XML"文書"のマッピングをしようとすると、MixedContentや、Choice、Orderに、そこそこ 対応さてれないとつらいので。 最近は調査してないけど、ほかのもできるようになったのかなぁ。
∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
465 :
デフォルトの名無しさん :03/05/30 02:49
XMLを勉強したい故にお勧めの一冊なんですか?
次スレがあればな
SOAPスレってねぇな、そういえば、
あったけど消えたと思った。
470 :
デフォルトの名無しさん :03/05/31 22:27
SEXML 最強言語になる 特にネットワーク向けの言語である
SヨXML 最強のハッタリ言語。
XSML
>>472 eXtendStandardMetaLanguage?
SXMLというのは本当にあるけど、たぶん最強。
<保守 name="趣味でXML Schema勉強中" mail="sage"/>
<hoshu> <age/> </hoshu>
XMLプログラミングってなんだろう。
XMLを扱うプログラミング
479 :
デフォルトの名無しさん :03/06/21 01:01
プログラムをXMLで書く
>>479 XMLで書くスクリプトってのは、すでにあるな。EVALが楽かもね。
Antなんか殆どスクリプト同然だよな。死ぬほど遅いスクリプト。
>>480 >EVALが楽かもね。
威張る?
>Antなんか
蟻?
483 :
デフォルトの名無しさん :03/07/01 09:57
厨質問ですまそ。 XMLをHTMLに変換するXSLを定義したいんですが、補助してくれる フリーのツールってありますでしょうか。 どなたか教えてください。おながいします。
484 :
デフォルトの名無しさん :03/07/14 23:41
非常にあいまいな質問ですが、 SGMLでできることのうち、する意義のあることは、 全てXMLの範囲内でできるのでしょうか?
>>484 曖昧杉。まぁ印刷業とかでSGMLが前提で無いならXMLでやってみれ。
ダメならそれからSGMLに移っても多分それほど回り道ではない予感。
>>483 フリーじゃないとダメなのかい?
(もれはついこの間からXMLSPY&StylesheetDesignerを使い始めたところ。30日試用版はタダすよw。)
>>485 すみません。
HTMLがらみで、DTDの読み方をほんの少し知っている程度のど素人です。
出版業に限定してググってみると、
SGMLを軽視するな、というようなことを言う人がいます。
これからはSGMLよりXMLだ、というようなことを言う人もいます。
そのこころがよくわからない、ということです。
前向きな出版業の人は、いかに完璧なレンダリングをするか、ということと、
いかに徹底した論理マークアップを行うかということと、
いかに低いコストでそれを行うかということを、真剣に考えていると思います。
といったときに、XMLとSGMLのどちらが有利なのでしょうか?
というのが質問です。
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
>>486 >SGML を軽視するな
既に SGML に金をかけちゃったんでそういってるだけじゃないかね。
>>486 有利不利は(いつでもそうだけど)条件による。
例えば、既にSGML資産があるならSGMLから始めるしかないんだろうし、
何もないなら今やXMLの方が色々手ごろな参考文献もツールも揃ってるし
仕様も明快でコンパクトな分だけ楽だと思うよ。
幸いSGMLとXMLは親子みたいなもんで似てるところも多いから
後からSGMLに移る必要が出てきたらそれから差分だけ
なんとかすることにしてもそんなに無茶じゃないと思う。
>>490 >
>>486 > 仕様も明快でコンパクトな分だけ楽だと思うよ。
ま、正確に言うと仕様書の量だけで言えば大元のSGMLはコンパクトらしいが
その分SGMLはXMLより許容される文書の様態が多様なんでそれが大変だという噂。
この辺が柔軟性対コストでトレードオフがあるところらしい。
軽視するなってのはやっぱり
既存資産(文書インスタンス、スキーマ、ツール、技術、理論、ノウハウ)を
見ての発言だと思うよ。
印刷関連業界では長らく使われてきたという噂も見るので。
ま、その資産の幾らかは様々な形で徐々にXML世界に移植されてきてるではないかと
私個人は無責任かつ無根拠に思うけどねw。
.
494 :
デフォルトの名無しさん :03/07/28 13:35
初心者的なことかもしれないけれど、迷ったので質問させてください。 今、XMLで構築されたデータベース的な情報の中からXSLで情報を摘出するようなシステムを考えています。 具体的に言うと、日記を毎日XMLで書いて、ホームページの更新をXSLのみでやろう、というようなことです。 それ自体は特に問題なく出来そうなのですが、「日記を毎日書く」というのをどのように実装しようか ちょっと迷っています。 エディタで書くのはあまり現実的な方法ではないので、何かしらのツールを書こうと思っていますが、 定型のXMLを毎回既存のXMLに追加していく場合、どのような方法で行うのが良いのでしょうか? DOMモデルを固めうちでやってしまった場合、将来的に変更があった場合などに困りそうですし、 XML SchemaやRELAXERなどを使うのが正しいのか、いまいちよくわかりません。 簡単に「〜がいいよ」というのを教えてもらえませんか?よろしくお願いします
>>494 ■XMLDB(e.g. Xindice)を使う
一番スマートと思える方法だが、XindiceはJava1.4と相性が悪くて僕は断念した。
リリースビルドも2年以上更新されてないし、半分止まったプロジェクトなのだろうと判断。
アップデートにはXUpdateを使う。
■普通のDBに入れる
一日ごとにDBのレコードにしちゃう。ロックも一日単位で行えるので、排他処理が確実。
ただ、XSL+XPathみたいなXMLバリバリな処理とは相性悪いよね。
■一つのファイルに入れちゃう
排他処理とか大変そう。
排他処理をファイルのロック等に頼らず、サーブレットのスレッド同期で行うので有れば、
更新等の処理を全部サーブレット側からのみ行うようにすれば、なんとかいけるような。
この場合、DOMツリーを常にメモリに保持して置いて、XMLのファイルはバックアップとして扱うことになるかと。
僕は当面最後のアプローチをとっておいて、使えそうなXMLDBが安く(あるいは無料で)
手にはいるようになったらそちらに移行しようかと考えてまつ。
そもそもXMLをストレージに使うのは云々、というツッコミ歓迎。
497 :
デフォルトの名無しさん :03/07/29 01:07
>>495 Xindice、そんな状況なのか…情報サンクスです。
ただ、DBを作るほどではなくて(というか権限が無くて出来ない)
本当に個人が日記を毎日更新するくらいの簡単な話です。
考えていたのは、1つのXMLファイルにデータを全部入れて、
更新があるたびに適当に書いたプログラムで(おそらくxerceを使って)
XSLをかけ、いくつかのHTMLを定期的に作成する、そういう流れを考えていました。
で、XMLファイルの定期的な更新が意外と面倒になりそうだったので、
これもプログラムで処理しようと思ったわけですが、DOMで書くのは
なんだかいまいち正しくないような気がして……。
でもDOMでいいかも、とか思い直してきました。
なにか他にいい方法があればぜひ教えてください
498 :
デフォルトの名無しさん :03/07/29 09:45
<?xml version="1.0" ?> <htmldoc> <![CDATA[ hoge<br>hogehoge ]]> </htmldoc> を 「hoge hogehoge」 と出力するxslはどう書けば良いのでしょうか。 何をどう書いても 「hoge<br>hogehoge」 と出力されてしまいます。
500 :
デフォルトの名無しさん :03/07/29 10:02
>>498 xsl:value-ofでdisable-output-escapingをyes
503 :
デフォルトの名無しさん :03/07/29 14:41
すいません、他のXMLスレで質問したのですがスレ違いらしいので
ここで改めて質問させていただきたいのですが
XMLをHTMLに変換するXSLなのですが
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="linkurl"/>
</xsl:attribute>
<xsl:value-of select="name"/>
</xsl:element>
HTMLの<a href="url">タグを生成する部分なのですが
3行目の<xsl:value-of select="linkname"/> の部分で
java.lang.IllegalArgumentException: The output format must have a '{
http://xml.apache.org/xslt}content-handler ' property!
という、エラーが出ます
ちなみに、情報になるかわからないのですがJDOMを使用しています
たった今、解決しました とりあず、wsdp1.2のJarファイルをJ2sdkのlibフォルダにコピーしたら出来ました 詳細 %WSDP_HOME%\jaxp\lib\endorsed\*.jarを %JAVA_HOME%\jre\lib\endosed以下にコピー ちなみにJava2SDK1.4.1._02の場合です
507 :
デフォルトの名無しさん :03/07/31 16:38
xmlってvbsみたいなことできないの?
(^^)
>507 vbsみたいなことってどんなだよぬ
510 :
デフォルトの名無しさん :03/08/04 14:12
すいません、なんか上手くいかなくて困っています スキーマ定義です↓ <?xml version="1.0" encoding="UTF-8"?> <staff-list> <staff id="001"> <name>山田</name> </staff> <staff id="002"> <name>斉藤</name> </staff> <staff id="003"> <name>岡田</name> </staff> <staff id="004"> <name>山下</name> </staff> </staff-list> XPathで、取り出したElementをそのまま新しいDocumentとして 構築したいのですが上手くいきません 感覚的には、Document doc=new Document(elem);でいいのかなと思っているのですが 以下のエラーが出ます org.jdom.IllegalAddException: The element already has an existing parent "staff-list"
511 :
デフォルトの名無しさん :03/08/04 14:13
//これがソースです JDOM使ってます import org.jdom.Document; import org.jdom.Element; import org.jdom.output.XMLOutputter; import org.jdom.xpath.XPath; public class Test { public static void main(String[] args) throws Exception { //ファイルからDocument構築して読み込み //XmlIO#buildDocumentは別クラス Document inputdoc = XmlIO.buildDocument("staff.xml","Shift_JIS"); //検索処理 Element elem = (Element) XPath.selectSingleNode(inputdoc, "/staff-list/staff[@id=\"001\"] "); //わざわざ、新しいElementを作って値をコピーしないとエラーになる Element root = new Element("staff-list"); Element staff = new Element("staff"); Element name = new Element("name"); staff.setAttribute("id", elem.getAttributeValue("id")); name.setText(elem.getChild("name").getText()); staff.addContent(name); root.addContent(staff); // Document doc =new Document(elem);←本当は一発でこうやりたいが、これやるとエラー Document doc =new Document(root); XMLOutputter out = new XMLOutputter(" ", true, "Shift_JIS"); out.output(doc, System.out); } }
512 :
デフォルトの名無しさん :03/08/04 14:14
↑Shift_JISはUTF-8です書き間違えています読み替えてください
XSLT 使え。
>>510 エラーメッセージ通りの意味ですな。
試していないけど、duplicateすればparentが無くなると思うので、
duplicateしてからnew Document(dup);としてみたらいいんじゃないの?
>>514 ありがとうございます
でも、新しく作ったDocument docにElement入れても
重複なんてしないのになぁ と、思っています
>>515 そうじゃなくて、君がxpathで取り出してきたstaffエレメントは、
自分自身の属性の中にparent情報を持っているんだよ。具体的にはstaff-listエレメント。
だから、staffエレメントをそのままdocmentルートにしようと思っても、
当然ルートは親を持たないから矛盾する。それがエラーメッセージ。英語読めるよね。
cloneNodeなんかを使って親の情報を消せば、多分うまく行くんじゃない?と思った。
結果教えてね。
>>516 ありがとうございます
例の英語のエラーメッセージですが僕は
「ルート要素が既に存在します」と、思っていました
でも実際の訳は
「ルート要素の情報が一致しない(あるはずなのに無い)」なんですね
「ルート要素ある」⇔「ルート要素の情報を持ってる」
これは、大きな勘違いでした。でもこの指摘によりいろんな謎が解けました
指摘していただいたparentをはずす処理に当たるのがorg.jdom.Element#detach()です。
JDOMのJavadocはもっていないのですが、
org.jdom。Elementのソースコードのコメントに以下のように書いてあったので期待する動作をすると思われます
/ * This detaches the element from its parent, or does nothing if the
/ * element has no parent.
で、修正後のコードです
Element selected = (Element) XPath.selectSingleNode(inputdoc, "/staff-list/staff[@id=\"001\"] ");
selected.detach();//←org.jdom.Element#detach() 戻り値を利用せずにそのまま使えそうです
//selected=(Element)selected.clone();←コレでも動作しますが、detachのほうがスマートですかね
Document resul = new Document(selected);
XMLOutputter out = new XMLOutputter(" ", true, "Shift_JIS");
out.output(resul, System.out);
518 :
デフォルトの名無しさん :03/08/05 17:22
XSLの中で、外部ファイルの有無によって処理を分岐させたいのですが、 外部ファイルの有無を調べる方法がいまひとつわかりません。 ファイルの有無を調べてその結果を反映するXMLを返すCGIスクリプトを書いて document()で取り込んで見たりしたのですが、これはパースに時間がかかりすぎて だめでした。 MSXMLを使ってIE上で表示させています。何か方法があったら教えてください。 おながいしまつ。
>>517 ルート要素と親を勘違いしているっぽい。
>>518 試してないんだけど(こればっかですまないっす)、
<xsl:valiable name="check" select="document('foo.xml')"/>
<xsl:if test="$check/root">何か処理</xsl:if>
じゃダメですかね?msxmlは長らく使っていないのでサポートしているかどうか微妙だけど。
ASPだと簡単にXMLの送受信ができるんだね
> xmlData.Load "data.xml"
> Set xmlHTTP = CreateObject("Msxml2.ServerXMLHTTP")
> xmlHTTP.Open "POST", "
http://hoge/hoge.asp ", False
> xmlHTTP.send xmlData
> resXML = xmlHTTP.responseXML.xml
Perl, PHPで同じ事するソースわかる人いますか??
悔しいけどASPなめてた自分に鬱
XML::Parserとか。Perl-XMLで出てくる
どうもMSはXMLをiniファイルの代わりにしか見ていないような。 もちろんそれも重要な用途の一つなのだが。
いいだけWEBサービスに力入れてるじゃん。独自路線だけど。
>>521 サンクスコ。
Parserモジュールでできるんやね。
ちょと調べてみる
ぐぐったり本屋で調べても、SOAPとかXML通信の概要しか出てこない・・・ すまん、誰かヒントください。
Perl(CGI)でDOMオブジェクトをHTTP(S)でPOSTするのって、 普通にSocket接続してHTTP通信するっていうのが普通だったりします??
>>527 普通だったりするよ。他にどんな方法がある?
>>528 thx!
てっきりもっとむずいのかとオモテタ
(XML::DOM->http_post(URL); みたいなの想像)
そりゃ、見つからんわな
syobo-n
ANTのxsltタグが正常に働いてくれなくて困ってる。
具体的には、「stylesheetにはversion属性が必要です」というエラーが出てきて
(ちゃんとDTD通りの順序でversion="1.0"を書いているにもかかわらず)
それでも一応出力できるんだけど、出力されたファイルはxslファイルそのまま。
問題は上のエラーだと思うんだけど、もう何がなんだかわからない。
ちなみにエラーの出るxslファイルはこれ。
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3c.org/1999/XSLT/Transform ">
<xsl:template match="/"><root></root></xsl:template>
</xsl:stylesheet>
もうひとつ ×XSLT ○XSL でした。うろ覚えじゃダメだな、ホント
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
このスレでレポート・論文用の文書型+PDFに変換するXSLTを作ってくれまいか? いい加減TeXマンドクセーんだ
>>534 自分でXMLからTeXに変換するxslを作成すれば良いのではないかと。
というか、既に誰かやっているんじゃないか?
>>535 それもマンドクセーんだ
探すのもマンドクセーんだ
537 :
デフォルトの名無しさん :03/08/16 20:31
XMLって何に使うの?実際に何に使われているの? CSVの発展形みたいなもの?
538 :
デフォルトの名無しさん :03/08/16 21:06
>>534 既にある
www.docbook.org
541 :
デフォルトの名無しさん :03/08/17 05:28
XSLTで、変換をした日付を得ることは出来ないのかな? たとえば、リストには過去1年分のデータが詰まっていて、 XSLTで処理をかけた日から数えて1月分のデータをHTMLにする、とか。
544 :
デフォルトの名無しさん :03/08/24 04:16
拡張関数使わないと出来ないぽ
547 :
デフォルトの名無しさん :03/08/24 05:45
antのstyleタスクを使って変換しているから、拡張関数ダメなんだよね。
XMLってホームページ作るやつじゃないの?
>>549 ホームページ作るやつって何?ホームページビルダーとか?
552 :
デフォルトの名無しさん :03/08/28 12:43
XMLって何って・・・もう、エッチ(*^¬^*)
XSLTのformat-number関数には文字幅指定フィールド無いの?
554 :
デフォルトの名無しさん :03/08/30 18:12
<xsl:if test="position() mod 4=1"> <tr> </xsl:if> 条件文で<tr>などを使用するとエラーになるのはナゼ? テーブルの列数を制御したいんだけどムリ?
555 :
デフォルトの名無しさん :03/08/30 18:45
よくみろ。整形のXMLじゃないだろ
556 :
デフォルトの名無しさん :03/08/30 18:51
>>555 どゆこと?
>>554 のやつはXSLに書いてあるけど、、、
XMLファイルの方は正しく書かれてます。
( ) ( ) )::::::::( ):::::::( /::::::::::::;\ /::::::::::::; \ // |:::::::::::: l | //´|:::::::::::: l | | | /::::::::::::/| | // /::::::::::::/| | U |::::::::::/ U U |::::::::::/ | | |::::||:::| | | | | |::::||:::| U |::::||::| | ∧∧// |::::||::| | / | | ( ゚д゚ )/ | /.| | // | | | 556 / // | | // | | | /| | // | | // | | // | | // | | U U U U U U
しかしこういう事をやりたくなる気持ちはわからんでもない。
>>553 文字幅指定フィールドというと、具体的にはどんなの?
>>554 XSLTってのは、XML文書からXML文書に変換するためのものだよ。知っていると思うけど。
まず、554は整形式のXMLではないし(<tr>に対応する閉じタグが</xsl:if>になっている)
もし万が一554みたいなのが許された場合、ついうっかり</tr>を出力し忘れると出力XMLは整形じゃなくなる。
だから、
<xsl:if test="554は馬鹿">
<tr>
document...
</tr>
</xsl:if>
と書かなければいけない。あたりまえだけどXSLTもXML文書だよ
> XSLTってのは、XML文書からXML文書に変換するためのものだよ。 ダウトのヨカーン。出力はXMLでなくてもよかったかと ただしXSLT文書自体はXMLなのでHTMLタグを埋め込むなら &gt;(半角でね)とかで打つ必要があるのかな
ないっす
なんかふわふわしたやりとりだな
>>560 確かにそうだね。出力がXMLである必要はないか。
XSLTがXML文書だ、ということだけですね。
564 :
デフォルトの名無しさん :03/08/31 01:07
じゃあ動的に列数を変えたい場合 どう書けばよいのですか???
<tr> <td>あああ</td> <xsl:if test="554は馬鹿じゃないよ"> <td> document... </td> </xsl:if> </tr>
566 :
デフォルトの名無しさん :03/08/31 02:26
>497 XML-RDB使えばいいのでは。
XSLTでCSV吐いてますw
>>568 すごいな、ある意味。
どんなコードかみたいから貼ってほしい
seXML
>>572 げ、そうか・・・
俺、検索しちゃうとこだった
なんかありそうな名前だったので・・・
XSLでC++のヘッダファイル吐いてるよー <xsl:output method="text 以下略 で普通に処理できまつ。
ま、JavaMLなんてものがあるから、ソースコード出力は一般的ぽい。 CML、とか作れそうな予感。
576 :
デフォルトの名無しさん :03/08/31 13:53
XSLTでCSVはかなり普通だろ。
XSLT変換対象って 1:HTML(ダントツ) 2:他のXMLフォーマットへの変更 3:テキストベース 以外にあるの?
578 :
デフォルトの名無しさん :03/08/31 14:57
いまのところないね
>>577 所詮、テキスト⇒テキスト 変換だよ
出来上がったテキストファイルを
アプリ側でどのように読むかによって意味合いは違ってくるけどな。
だからこそ、応用が利く。
なのでXMLデータベースが普及すればかなり強力となる。
出来たファイルを
PDFファイルや
エクセルファイルや
SVGファイルにすれば
かなりイイ
XMLから目が離せないな
>>579 >テキスト⇒テキスト変換だよ
ダウトっぽいね。
ネタでバイナリ変換を作ろうか?
XMLアセンブラー。理論上は可能だよな。
とりあえず、テキスト⇒テキストではなくてXML⇒テキストという意味では 緩やかなダウトである気もしなくはないが、XML⇒バイナリってどうなんだろう…? encoding問題が絡むよね、当然
582 :
デフォルトの名無しさん :03/08/31 15:20
<風俗> <種別>ソープ</種別> <種別>ヘルス</種別> <種別>ピンサロ</種別> <種別>エステ</種別> <種別>性感</種別> </風俗> こういうデータがあり、これを tableで表示したい。 任意の列数で表示する場合はどうすればよいの?
>>580 おまえが作らない限り
所詮、テキスト⇒テキスト
MPEG7 は XML で記述するし,ファイルサイズが気になるなら 全く同等の情報をバイナリに変換可能な仕様らしいけど XSLT でも可能なのだろうか・・ どうでもいいか。笑い
>570 研究レベルでは、XMLが先行してるけどねぇ。
IBMが(w
>>580 XSLTの話なので、テキスト(XML)->テキストで間違いないし、XML->バイナリってXSLTじゃ無理でしょ。
はっ、バイナリとして意味のあるテキストをUTF-8だか16だかで出力するXSLTを書けば実現できるのカー?
>>588 つーか出来る出来ないじゃなくて
現状はテキストテキストだろう
>>580 は、いわゆる突っ込み厨だ
出来れば面白いけれどもな
XSLTでXML->Base64すれば不可能じゃないな、とか色々妄想してたのに! 邪魔しないでよ!w
>>591 base64なんていわず、エンティティ参照で直接バイナリを出力すればいいんじゃないの?
と思って調べてみたけれど、XML文書で使える文字はISO 10646なんだね。
ということはバイナリ出力は「出来ない」ということになるな。
つまらん。BASE64も無理だと思うから、何らかの脱出手段はないだろうか。
せいぜい出来たところで、dumpコードを出力するだけだろうな
XMLトランザクションってなんですか? 5セント節約だそうですが
>>594 データベースのトランザクションと
意味的には同じだと思えばいい
>>595 見てみたけれど、いまいちよくわからなかった。
これはただ、バイナリデータフォーマットの定義だけじゃない?
自分の望む形のバイナリを出力するために使うものではないような気がする。
どちらにせよ、プロジェクト自体まったく動いていないので役には立たないけど
598 :
デフォルトの名無しさん :03/08/31 22:58
「XMLトランザクションで5セント節約!!!」 っていうMSのCMがありますが これどゆこと?? まずXMLトランザクションって何よ?
XMLってHTMLの親戚みたいなもの よってこのスレは 終了
最近、マイクロソフトのCMでやってるXMLトランザクションっていったい何者なんですか?! 5セント儲かるらすいです!!
上の議論とは違うけど、XMLをバイナリにそのまま変換する方式って何か無いのかな?
603 :
デフォルトの名無しさん :03/09/01 00:30
皆EZTVでマイクロソフトのCMみたな
604 :
デフォルトの名無しさん :03/09/01 11:08
>>602 バイナリデータを何で書いても、
XMLの階層構造を読み込むには少し時間がかかる宿命。
以前、PerlでデータベースっぽくXMLファイルを組んでみたが、
CSVでやった方がだいぶ楽だったな。
階層データは読む込むのが大変だし。
XMLトランザクションで5k損失が事実だと思うが。
XMLって何のために存在するんだ?
>>605 知らなくていいよ。
脱落者が増えてうれしいよ。
データベースにはたぶん向いてない。
最近、巷で騒がれてるXMLトラ(ry
609 :
デフォルトの名無しさん :03/09/01 16:23
真剣に質問です。
<?xml version="1.0" encoding="Shift_JIS"?>
<xmlDoc xmlns="default">
<title>タイトル</title>
<note>ノート</note>
</xmlDoc>
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="
http:// 〜" xmlns="default">
<xsl:template match="xmlDoc">
<xsl:value-of select="@title"/>
<xsl:value-of select="@note"/>
</xsl:template>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
この二つで変換されないんですけど、
なぜなんでしょうか?
@は要らないんじゃないか?
バイナリ出力が無理ならPDFに変換するXSLTなんてあり得ないんじゃ
612 :
デフォルトの名無しさん :03/09/01 17:10
>610 すいません。早とちりでした。@は確かにいらないです。 なぜか変換されないのよねー。
>>611 >>579 のこの部分読め
>所詮、テキスト⇒テキスト 変換だよ
>出来上がったテキストファイルを
>アプリ側でどのように読むかによって意味合いは違ってくるけどな。
アプリ側で、好きなように変換すれってことだよ
XSLTでやろうとするのは無理だし何でそんなコトまでやらないかんのか・・・
やっぱ無いのね XSLT貧弱
PDFってテキストだけで書けるんじゃなかったっけ? 勘違い?
>616 書ける。
>618 バカだなお前。 PDF Reference fourth edition AdobeR Portable Document Format Version 1.5 Adobe Systems Incorporated より引用 > 3.1 Lexical Conventions >中略 >PDF can be entirely represented using byte values corresponding to the visible >printable subset of the ASCII character set, plus characters that appear as “white >space,” such as space, tab, carriage return, and line feed characters.
>>619 知ったかぶりもその辺にしとけよ
画像はどうやっているのだ?ん?ん?ん?
図形描画はどうやってるんだ?ん?ん?ん?
>620 夏休みは終わったぞ。 今ならまだ間に合う。宿題は早く片付けろ。
>>620 英語読めないくせに知ったかぶりをするのはやめたほうがいい
>>619 stream〜endstreamの間は、テキストじゃ無理ですね
XML+XSLTだけでPDFが出せると幻想を抱いたことは俺もあるよ。
PDFへの変換プログラムに「食わせる」ファイルの出力までしか出来ないと
分かったときは幻滅したりもしたから、
>>620 の気持ちは分かるなぁ……
>624 stream と endstream の間もテキストで書ける。
>625 確かに、PDFがテキストファイルとして書けることと、XSLTで出力可能なこととの間には 大きなギャップがあるね。 streamは長さが必要だから、XSLTで扱うのは無理だろうなあ。
ちょっとXMLのことで質問があるのですが、 XMLトラ(ry
XMLは ・XSLTを利用して他のフォーマットにtranslate出来る ・信頼性のあるデータのやり取りを規定できる(XMLDBみたいなの) 他にはどのようなメリットがあるかな?
>>627 図形はいいかもしれないけど
画像はバイナリっぽいけど?
・データをプログラム上でオブジェクトのまま操作出来る
バイナリ出力アイデア面白いな 面白いだけで実用性が無いのがまたいい感じだ
コロ助ナリ
635 :
デフォルトの名無しさん :03/09/05 18:14
>>633 面白いかもしれないが
明らかにプログラミングした方が楽
>>635 もし仮にアセンブラを表現できるXMLがあるとすれば、
(まぁこの場合は何らかのXMLをアセンブラコードに変換するXSLTでもいいけど)
C言語の構造をアセンブラにするXSLTが出来ると思うし、
同様にC++なりなんなりのコードをどんどん変換することが出来る。
コンパイラ・コンパイラなどを使えば多種多様の言語を
本質的には同じものとしてXSLTで相互変換することが出来て、
言語の上のメタ言語みたいな存在が出来ることになる。
今でも出来るとは思うけれど、仮にそれが出来ても
現実translationの需要がまったく無いから意味が無いね
こういうのはブレインストーミング(あるいは妄想)してるときが一番楽しい。
639 :
デフォルトの名無しさん :03/09/06 12:39
XSLとXSLTって同じ意味でOKですか? あとDTDって使う意味あるんですか?
LISPだと妄想で終わらないわけだが
641 :
デフォルトの名無しさん :03/09/06 13:27
XSLの仕様の一部がXSLT DTDはもちろん使う意味ある
XSLとXSLTは違う仕様。DTDなんか意味はない。
643 :
デフォルトの名無しさん :03/09/06 20:59
>XSLとXSLTは違う仕様。 根拠きぼう
表示や印刷に適するように変換するのが当初のXSLの目的だったが、 構造変換の利点がクローズアップされ、XSLTが独自の規格として登場した。 一般には、XSLはXSLTを含んだものとして扱われるが、 XSLTと言った場合は木構造から木構造の構造変換のみを指す。
冷静に考えたら根拠を書いていない罠。上を参考に自分で調べてみてくれ
646 :
デフォルトの名無しさん :03/09/07 11:27
独自の規格じゃなくて先にまとめられただけだよ 良く調べてから書いてくれ
SEX仕様
649 :
デフォルトの名無しさん :03/09/07 13:38
やれやれ
650 :
デフォルトの名無しさん :03/09/07 13:42
XSLとXSLTの規格がどうとか、実際仕事に影響あるものなのでしょうか? おれ、そういうこと全然興味なくってたまにこの板でそういうウンチクを見るけど 覚えておく方がいいのでしょうか?
揚げ足とりか規格厨には必要
>>650 無いと思ってるなら仕事では使わない方が良い。
656 :
デフォルトの名無しさん :03/09/12 19:55
XML Schemaって難しいっすね。。 何であんなに覚えづらいんでしょうか?
>>656 政治的理由により。
実用上問題がなければ、より表現力豊かで、かつ覚えやすい RELAX NG をお薦めする
MS Office使いにはXML Schemaが浸透していくんだろうなぁ
>>658 というより、w3cで標準化された以上、色々な分野で浸透はしていくはず。
こうなってしまった以上、両方知っておく必要があると思う。
XML Schemaは標準化の問題を浮き彫りにした感が強いな
つか、XML Schemaにゴチャゴチャ言ってるのって、 標準化の場からはじき出されたMとその信者くらいだろ? XML語彙を策定している業界団体では普通にXML Schemaを採用してるよ。 でなければDTDでやってる。 まぁ、XML Schemaの仕様書が無駄に難しいのは確かだが。
RELAX NG でスキーマが書かれている W3C 標準も増えているよ。 XML Schema はアレだなあと思ってる人が多い証左だと思う。
XML Schemaを書く必要があるときはRELAX NGで書いた後RelaxerでXML Schemaに変換してる。 そんなに複雑なスキーマは書かないからこれで十分。
XML Schemaに表現できなくて、RELAX NGに表現できるものが存在するのは確かだが (ex:XML Schemaは自分自身を表現できないが(笑える)、RELAX NGでXML Schemaを表現できる) 逆はどうなんだろう
xhtml2.0はRELAX NGのスキーマがw3cにありますのう。 XML Schemaを参考資料がロクにないときに作成する機会があったけど、 こんなわけわからんもん二度と使うかゴルァ、と当時は思ったなー。
むしろW3CでしかRELAX NGの例なんて見たことないなぁ。 (個人サイトとか解説本のレベルは別ね) W3Cは内部分裂してるのか?
破滅の臭いがプンプンするな
>>665 というと?Relaxerを使っている業務例はそこそこ知っているけれど、
そういう次元の話ではないのかな?
XMLの定番本ってある?
>>667 むしろコミュニティとかメディアでの「露出」が少ないと感じてるのでは?
>>670 標準XML完全解説 上・下の範囲くらいをサポートしていれば。
本屋でこれを見つけたけど、他にもっと良いものや定番なものがあれば教えて欲しいです。
>>671 漏れはそれ使ってます。
既に基本を掴んでいるなら下巻だけで良いと思うよ。
>>669 メディアでの露出は確かに少ない。JavaWorldとXML系の雑誌でしか見たことが無い。
>>671 悪くない本です。下巻だけでもいいかもしれないし、何かのときに細かい仕様を
確認したくなるようならば上巻を持っていたほうがいいかな
各種XMLボキャブラリの簡単なレビューとか解説をしてるサイトってあります? 「こういうデータをXMLで表現するときにはどのボキャブラリがいいの?」というように、 逆引き形式で探すのに、何かいい案ありましたらお教えくだちい。 #ちなみに、章立てした技術文書とか小説とかをXMLで表現するのに #最適なボキャブラリを探してまふ。
677 :
デフォルトの名無しさん :03/09/20 10:03
>>677 サンクス!
歴史あるヘヴィな仕様のようで、期待が持てそうです。
これから少しずつ読み解いてみたいと思います。
680 :
デフォルトの名無しさん :03/09/20 12:07
SmartDocは仕様が曖昧だからいや。 章タイトルが属性だったりするのも嫌い。
>>679-680 サンクス!
sample.sdocを見た限りでは軽量な感じですね。
ちらっと見たところではDTDなど、*.sdoc形式のXMLを定義するものが
探しきれなかったのですが、「仕様が曖昧」というのはもしかしてその辺のこと……?
ともかく、こちらも並行して検討します。ありがとうございました!
682 :
デフォルトの名無しさん :03/10/01 01:47
IXMLDOMDocument* pDoc; で、 pDoc->save("C:\\hoge\file%00.xml"); というようなローカルパスを指定してsaveすると。 ファイル名が、"C:\\hoge\file"になってしまうというのはガイシュツ? これって、Documented??
JavaPluginでのDOM APIを使ったサンプルありませんか?
修正。 × C:\\hoge\file ○ C:\\hoge\\file
%00='\0' で文字列の終了扱いになってるのかもね
確かに、%41だとAになっちゃうし。困ったな。 ローカルパスでもUrlエンコードしなくちゃいけないのか?
ふと思いついて、パスの頭に file:// 付けたらパス文字列そのまま 扱ってくれるようになった。 うーん。
XMLとPHPやPerlとか使えばものすごく簡単に掲示板とか作れるんじゃないか? と思ったんだけど作れるんですか?
よく見れば最近の書き込みがないので違うスレに行きます。
むしろ違う板に逝って欲しい
692 :
デフォルトの名無しさん :03/10/25 16:44
スキーマでelementのattributeとして序列を表現する方法はありますか。 <elements> <element number="1"/> <element number="2"/> <!-- and so on --> </elements> みたいな感じの構造を定義したいのです。 順番通りに記述しないとnot validになるように。 とりあえず、numberのtypeを derived datatypesのpositiveIntegerに するくらいしか考えつきませんですた(汁
693 :
デフォルトの名無しさん :03/10/25 16:54
質問です。 <?xml version="1.0" encoding="Shift-JIS" ?> <hoge> <aho name="〜" /> </hoge> っていうデータなんですけど、SAXパーサ (org.apache.xerces.parsers.SAXParser)を使ってパースすると、 要素ahoの属性nameの値が、"?"になってしまうのですが、 どうしたら回避できるのでしょうか?(データ自体に問題がありますか?)
694 :
デフォルトの名無しさん :03/10/25 17:00
データをファイルから読んでるなら、ちゃんとデコードできてないのかもね
>>694 データは、ローカルのファイルから読んでます。
えっと、デコードとは、パーサがStringオブジェクトに変換するときに文字コード
変換をちゃんとしてくれてないということでしょうか?
いちおう、試してみたこととしては、
・encoding指定をはずしてみた→"UTF-8として不正な1byte…"という例外が発生
・データをeucで保存しなおし、encoding="euc-jp"としてみた→同様に"?"になる
・属性でなく、<aho>〜</aho>とテキストコンテキストにしてみた→同様に"?"になる
という感じで、エンコーディング指定は間違ってなさそうです。(実際のデータでは、
もっとたくさん日本語がデータに入っていて、それらはちゃんと取得できています)
属性を取得するときは、name = attributes.getValue( "name" );
としているだけです。(もちろんテキストコンテキストの場合は別の処理ですけど)
ほかの似たような文字('ー'とか'?'とか)で試してみても問題ないんですけどね…
どうしたらいいんでしょうか…
データをStringでわたせるなら、わたしてみたら うまくいったならデコードでこけてる うまくいかなかったら、 フォントか、テキストエディタか、XMLライブラリが変
>>696 とりあえず、普通にそのxmlファイルを(FileReaderなどで)普通にテキストとして
読み込んでみると、問題の文字'〜'はちゃんと'〜'(ユニコードで0xff5e)として
読み込まれているので、(データを作成した)テキストエディタがおかしいという
ことはなさそうです。
それを、SAXを使って読み込んでみた場合は、デバッガ上で見ると'〜'に似た文字
になっているのですが、コードは0x301cで、デバッガ上の表示も、なんだか汚い
中国語フォントみたい(変な表現でスミマセン…)です。これを、System.out.println()
などで表示すると'?'になってしまいます。なので、フォントが悪いというわけでも
ないようです(ある意味ではフォントも悪いのかもしれませんが、とりあえずほしい
文字になってないので…)。
(つづきます)
(つづきです)
で、パーサを、org.apache.xerces.parsers.SAXParserを使っていたのですが、
javax.xml.parsers.SAXParserFactory.newInstance().newSAXParser();
で得られるものに差し替えてみましたが、結果は同じでした。(しかし、パースの
挙動は違っていたので、パーサがちゃんとさし変わったのは間違いないです。)
…xmlデータの方も、javaのプログラムから出力したものなんですが、
出力の仕方に問題があるのでしょうか?出力の仕方は、
BufferedWriter w = new BufferedWriter( new FileWriter( "hoge.xml" ) );
として生成したストリームに対して、普通に
String s = "ほげ〜"; w.write( s );
というような感じで(自分でxmlに整形して)出力しただけです。これがそもそも
ダメなんでしょうか?Win環境なので、シフトJISで出力されていると思うのですが。
(実際、秀丸で見ると、文字コードはSHIFT-JISとなっています。)
いちおう、エンコーディング指定をしないとパースでコケるので、
encoding="Shift_JIS"としてやったら'〜'以外の文字はちゃんと読めているので…
…さらに別のパーサを試してみるしかないんでしょうか…
どなたか、
>>693 に書いたデータを実際に読み込んで、属性をprintlnしたら
ちゃんと'〜'が出るという方、そのパーサを教えてください…(あ、encoding指定が
"Shift-JIS"と書いてますが、"Shift_JIS"です。すみません。)
699 :
デフォルトの名無しさん :03/10/25 23:07
WindowsならShift_JISじゃなくてCP932だから
>>699 ありがとうございます!解決しました。
Shift_JISだと思い込んでたのがいけなかったんですね。恥ずかしい…
FileWriterを生成したときのデフォルトのエンコーディングを取得したら、
"MS932"となっていたので、それをxmlのencodingに指定して出力するように
したら(正確には"MS932"は対応していないようなのでそのエイリアスの"windows-31j")
うまくいきました。パーサは悪く無かったです。ゴメソ。
それ以前に、ちゃんと自分でエンコーディングを指定して出力ストリームを
開かないとダメですよね…
これで少し大人になれました!
「〜」ってベンダ依存だったのね。無知をさらしてしまたーよ。
はやくぐぐればよかった。
>>698 スレ違いだけど、一応答えておくと、策としては
・最初からutf-8でエンコーディング(Windowsネイティブの変換テーブルを使っていること)
ぐらいしかない
encodingに"MS932"を指定するするというのもアリかもしれないけど、
なんか気持ち悪すぎ
さ〜〜〜〜〜〜てと
>>701 …
ありがとうございます。
結局、MS932(windows-31j)を使うのは自分的にもかなり気持ち悪かったので、
UTF-8で逝くことにしました。
704 :
デフォルトの名無しさん :03/10/26 04:06
きちんと指定さえしていれば、気持ち悪いも何も…。
705 :
デフォルトの名無しさん :03/10/28 23:36
DOMを使った操作で追加書き込みがうまくできません。 <car> <name>太郎</name> <car> ここで「太郎」を「次郎」に変えようとすると 「太郎次郎」になってしまいます。 追加の方法は、NodeListをループでまわして ノードタイプがElementのときに、対象のタグと同じなら(この場合name) Document doc = node.getOwnerDocument(); Text txt = doc.CreateTextNode("次郎”); node.appendChild(txt); という風にして書き換える処理を行っています。 いくつか方法は考えてみたのですが、appendChildの部分を replaceChild(txt、node)では例外処理が発生してしまいますし ループでTXT_NODEのところまできたときに setData()で文字をセットするとタグが作れなくて 「<name/>次郎」こんな形になってしまいます。 どなたかうまい方法を教えていただけないでしょうか?
誤 appendChild呼び出し時に投げられている例外 正 replaceChild呼び出し時に投げられている例外
708 :
デフォルトの名無しさん :03/10/29 00:21
ずばり、質問ですが XML使ったサイトってまだ少ないように思えるのですが 実際、WebページをXMLで作るという案件・実オーダーは増えてきているのですか?
HTMLではなくXML使うメリットってどこにあるんですか?
個人的には、「Webページを作る」ことを主目的にXML使うのは有望でないと思う。 ここでいうXMLとは、XHTMLじゃなくてDocBookなんかね。
>>706 回答ありがとうございます。
環境ですが確かにJavaでおこなっています。
ご指摘のsetNodeValue()ですが、それはsetData()と
同じタイミングで使うのではなく、replaceChild(txt、node)
の代わりにsetNodeValue(String)とするということでしょうか?
setNodeValue自体はsetData()ともどもノードがTXT_NODEで
あったときに何度も試してみたのですが結果は上に書いたとおりで
タグが作られませんでした。
>>708 わたしはいまはwebアプリとDBのやり取りで使う案件をやってます。
webページをxmlで作るというのはどうなのでしょうね?
710
>>711 ウチの個人ページで試してみたんすわ。
動的なページを凄く作りやすい。例えば2ch掲示板XML版みたいなのを作るとすると、
特定の期間の書き込み一覧とか、特定の文字列を含んでいる書き込み一覧とか、
その複合とかをXSLT+XPathで簡単に得られる。
でも、やっぱ相当に遅いっす。
バッチ処理でXML->HTMLするような用途だと有望だとは思うけど、
その場合XMLで元文章を保持する利点が少ないように感じました。
>>711 > replaceChild(txt、node)の代わりにsetNodeValue(String)とするということでしょうか?
そう。
それでもだめなら、node.replaceChild(txt、node)を、
Carノード.replaceChild(txt、Nameノード)
な感じで変えてみてはどうか。
は、恥ずかしい・・ XMLっていえば「Webページを作る」ことしか知らなかった それだけではないのですね お手数おかけしてすみませんが、 勉強し直したいので、何か参考になる書籍・HPありましたら ご紹介下さい @ITとかでもいい記事ありますか?
715 :
デフォルトの名無しさん :03/10/29 20:35
>>714 >XMLっていえば「Webページを作る」ことしか知らなかった
それはHTMLだろ?
716 :
デフォルトの名無しさん :03/10/29 20:37
そう、だから HTMLではなくXML使うメリットってどこにあるのか解らなかった
>>715 XHTMLとか。XMLからXSLTでHTMLを生成するとか。
>>714 はそういう意味で言ってるのではないんかな。
XMLってなによ??
>>713 遅くなりましたが、アドバイスありがとうございました。
実はご指摘の方法はうまくいかなくて(キャストするとおかしくなってしまって)
そこで発想を変えていったん全部消して親ノードから子ノードを作り直す
という方法をとりました。
これだと検索に失敗するとタグごとまちがったものになるので
リスクが大きいのですが時間もないのでこれで乗り切ろうと思います。
>>714 わたしは
ttp://www.foocrane.jp/EXML-index.html このサイトにかなりお世話になりました。
>>717 リアルタイムにやると(というかクライアントにやらせると)やはり速度のネックがでかい。
元が巨大なXMLだったりすると(掲示板程度の巨大さでも)処理に時間がかかってしまう。
まあ、XMLをパース、XSLをパース、XSLで変換処理、出力XHTMLをレンダリング、という行程を考えれば
致し方ないところではあるのだけれど。
JSPみたいなシステムで、XMLが新しくなっていれば静的HTMLを出力するエンジンを作ればいいね。
と思ったが、XPathなどが絡んでリアルタイム制が出てしまうと無理か。
721 :
デフォルトの名無しさん :03/10/30 01:19
XSLTでちょっとみなさんの知恵を貸してください。 あるXMLをXSLTで変換中に、XMLの文書に <include src="ppp.xml"/> というようなエレメントが出てきたら、 そこの部分にppp.xmlを代入し、ppp.xmlを変換する方法ってありますか? 色々トリックを考えたけど、できなさそうな気がしています。 アイデアあれば教えてください。試してみます
document
>>722 ほかの文書を結果に挿入するだけで、その文章をパース出来る訳ではないと思い込んでた
ありがとう
XPathで <xsl:for-each select="商品[temp/商品データリスト/商品データ[ID=商品/@ID]/値段>500]"> という感じで、外にあるツリーのデータを参照してその値の条件にあったものだけループさせたいのですが、 一文で書くのは無理でしょうか? []がネストしてるのでコンテキストノードが切り替わって中の[]で外の[]のコンテキストノードの値が参照できないようなのです (わかりにくい説明ですいません) <xsl:for-each select="商品"> <xsl:if test="temp/商品データリスト/商品データ[ID=current()/@ID]/値段>500"> </xsl:if> </xsl:for-each> と書くのがベターなのでしょうか ご教授ください
質問はageてくれると嬉しい
>>724 ベターなのは当然下の方。可読性を考えればダントツ。
実際上の説明を読んでもさっぱりわからなかったのに、
下の分を見ただけでやりたいことがわかったからね。
なぜ一文で書きたいの?
で、一文で書くのが可能かどうかといわれたら、不可能のような気もする。
726 :
デフォルトの名無しさん :03/10/31 21:56
質問です。
>>722 でdocumentを紹介されて、早速使ってみたのですが、
同じXMLファイルを2回以上読もうとすると失敗するみたいです。
回避する方法は無いでしょうか?
>>726 % ln hoge2.xml hoge.xml
>>727 まぁ今それをやっているわけですが、将来的にはgeneralに使われるので、
ユーザーが同じファイルを何度も読み込む可能性は非常に高いので困ります。
#Windowsだとショートカットで代用できるのかなぁ。
>>728 Windows NT 5.x (2000/XP) ならばハードリンクを作れるよ
>>729 それは知らなかった…けど、問題はOSよりfile systemなんじゃないのかなぁ?
再起的に読み込むこともあり、何回読み込みかわからないのにハードリンクは作れないし、
本質的な解決方法を考えなきゃいけませんけど、無理っぽいですね。
>>731 まぁ、単体のソフトウェアのプログラミングが楽になるかといえば必ずしも楽にはならんだろうし、
覚えることが増える分シンドかろうね。
なんだって新しい要素は経験をつんでツールが揃うまではコーディングやデバッグはシンドいわけだし。
けど、例えば複数のシステム間(これは将来現システムから新システムに引き継ぐような場合を含めて)で
ドキュメント系のデータを交換する際に標準的な表現があるということによるメリットがあるから
多少シンドくなっても頑張ろうと思う人はいるわけで。
引用元の投稿者は「大ベテラン」って名乗ってるけど、そういう視野がない、
自分のプログラム分担の視野だけに凝り固まった「大ロートル」の間違いではないかと。
733 :
デフォルトの名無しさん :03/11/09 23:00
それは名乗ってるんじゃなくて掲示板の機能では
>>731 XML程度のことで死ぬほど苦労するのか?
>>733 同意
つーかそいつ掲示板に居座ってる割にはかなり否定的な煽りレスだな。
Unix生まれのUnix育ちみたいな人は、grep使いにくいからXMLを親の敵みたいに言うことが多いみたい。
>>733 「デフォルトの名無しさん」みたいなモンなの?
もしそうなら微妙に恥ずかしいデフォルトだなw。
投稿した回数によってランクが上がっていくのでは?
>>738 へぇー×2
そのシステムだと荒らしが次々「大ベテラン」になりかねんようなw。
>>737 デフォルトっていうか投稿数によって変わる属性じゃないの?
たとえば最初は[入門者]、10回投稿すれば[見習]、100回投稿すれば[一人前]みたく変わるっていう。
.NETの会議室みたいね。.NETはXMLを大サポートしてるだろうに。
何かXMLで大失敗でもしたんだろうか、その「大ベテラン」さん。
>>736 XSLかなんかでTABと改行形式の表あたりにしてあげればOKってことなん?w
XMLとCSVでは表すことが出来るデータ構造にかなりの差があるような気が
>>736 xmlgrep というのがある。
「grep 使いにくいし…」ってのは多分エセ UNIXer だな。
本当の UNIXer なら「grep 使いにくいし…なんか作るか」になるはず。
744 :
デフォルトの名無しさん :03/11/10 17:06
JDOMってどうですか?速いですか?
745 :
デフォルトの名無しさん :03/11/10 21:57
xpath、xquery、xslt、などのコマンドを標準にしてくれればいいんだが。 xsltは指定するxsltファイルを作らなくてもいいような拡張を…無理か
747 :
デフォルトの名無しさん :03/11/11 01:45
すいません。質問です。 インターネット接続されていない環境で、 Xalanを使用してXSLTを実行するとDTDにアクセスしてしまい 「外部エンティティが見つかりません」というエラーで落ちてしまいます。 DTD宣言を残したまま、こちらのエラーを回避する方法は何かございませんか?
748 :
デフォルトの名無しさん :03/11/11 01:50
下記のような変換をしたいときに、一番楽な方法を教えていただけませんか? XSLT?Jaxp? ※<youso3>が"CC*"のばあい<youso2>のデータを削除したい。 <youso1> <youso2> <youso3>BB1111</youso3> <youso4>BB2222</youso4> </youso2> <youso2> <youso3>CC1111</youso3> <youso4>CC2222</youso4> </youso2> <youso2> <youso3>CC3333</youso3> <youso4>BB4444</youso4> </youso2> </youso1> ↓ <youso1> <youso2> <youso3>BB1111</youso3> <youso4>BB2222</youso4> </youso2> </youso1>
749 :
デフォルトの名無しさん :03/11/11 01:55
printf("<youso1>\n"); printf(" <youso2>\n"); printf(" <youso3>BB1111</youso3>\n"); printf(" <youso4>BB2222</youso4>\n"); printf(" </youso2>\n"); printf("</youso1>\n");
>>747 プロキシサーバをlocalhostに用意して、ダミーのDTDを返せばよろしい。
ってこれじゃダメだよね。
>>748 当然xslt。ビルトイン関数でstartwithとかなかったっけ?
xpathのビルトイン関数(当然xsltでも使える)でstarts-withがあるね。 Jaxp使ってもいいけど、なれてるなら断然xsltが早いと思うよ。
752 :
デフォルトの名無しさん :03/11/11 23:52
>>747 です。
>>750 回答ありがとうございます。
よくありそうな問題だと思われるのですが、マシンの設定等を買えずに、
単純に<!DOCTYPE宣言を無視することなんてできないんでしょうか?
753 :
デフォルトの名無しさん :03/11/12 00:05
age
>>752 ありません。というより、それをやってしまうとW3Cの勧告に反してしまうからです。
可能性として、たとえば
<?xml version="1.0">
<!DOCTYPE entity SYSTEM "entity.dtd">
<root>&entity;</root>
という文書をパースするとき、entity.dtdを読まなければwell-formedになりますが、
ここでentity.dtdの内部にもし<!ENTITY entity "<">とあればwell-formedが崩れます
中には読みに行かない設定が出来るパーサーもあったとは思いますが、Xalanは無理です。多分。
>>754 <!ENTITY entity "<">ね。置き換えられちゃった
756 :
デフォルトの名無しさん :03/11/13 20:11
すみません。質問です。 <a href="hoge.jsp?hoge1=1&hoge2=hoge">hoge<a> みたいにしたいんですけど、 <xsl:attribute name="href"> ... <xsl:text disable-output-escaping="yes">&</xsl:text> ... </xsl:attribute> のようにすると <a href="hoge.jsp?hoge1=1&hoge2=hoge">hoge<a> になってしまうんですけど、なんとかなりませんか? 属性値は "&" で使えないのでしょうか?
757 :
デフォルトの名無しさん :03/11/13 20:16
>>756 なんか そのままのような気がするんだが・・・
&を使うときは&amp;を使う
ああ、まちがえてますた。 <a href="hoge.jsp?hoge1=1&amp;hoge2=hoge">hoge<a> のようになってしまいます でした。
759 :
デフォルトの名無しさん :03/11/13 21:26
>>758 <xsl:attribute name="href">
...
<xsl:text disable-output-escaping="yes">&</xsl:text>
...
</xsl:attribute>
これでいいんじゃないの?
760 :
デフォルトの名無しさん :03/11/13 21:27
<xsl:attribute name="href"> ... <xsl:text disable-output-escaping="yes">&amp;</xsl:text> ... </xsl:attribute> これだ
>>760 レスありがとうございます。
それでも、出力が&amp;です…
762 :
デフォルトの名無しさん :03/11/13 22:05
<xsl:attribute name="href"> ... <xsl:text disable-output-escaping="yes">&</xsl:text> ... </xsl:attribute> つうか今気づいたけど、disable-output-escaping="yes"の意味は?
763 :
デフォルトの名無しさん :03/11/13 22:08
すみません。まちがいでした。 <xsl:text disable-output-escaping="yes">&</xsl:text> では、怒られて、 <xsl:text disable-output-escaping="yes">&amp;</xsl:text> では動きますが、出力も&amp;になってしまうのです。 <xsl:attribute>の外では & で出力されるのですが…。
>>764 いやだから
disable-output-escaping="yes"
を消すかnoにすればいいのでは?
ちなみに俺のやり方引っ張り出してきたので参考にしてください <xsl:element name="a"> <xsl:attribute name="href"> hoge.do?opt1=<xsl:value-of select="mome"/>&amp;opt2=bas&amp;opt3=hji </xsl:attribute> ほげはこちらから </xsl:element>
うまくいかないです… こちらの環境だけなのかもしれないけど、 <xsl:output method="xml"/>のxmlをhtmlにすると、うまくいきました。 でも、XHTMLにしたいので・・・ ヽ(`Д´)ノウワァン
768 :
M(_ _)M :03/11/13 23:35
現在、動的なパラメータをSVGの座標値に指定して表示する際に、 文字化けして困っています。あるボタンを押した際、データベー スから値を取り出し、JSPに組み込んだSVGにパラメータとして渡 すまでは問題ないのですが、日本語が混じっていると、文字化け してしまいます。JSPの文字コード設定なども色々試したのですが、 「ダウンロードして保存」ダイアログが表示され、うまく動作させ ることが出来ません。良い方法を知っている方がいらっしゃいまし たら、教えていただけませんか?
SVGだけ外部呼出しにしてる?
いまいち文章が意味不明だが、とりあえず、文字コードはUTF-8にしているか?
つまりプラグイン働かずにDLのダイアログ出るってことでしょ
XMLではなく、HTTPの知識が無いのでは?
773 :
M(_ _)M :03/11/14 00:18
意味不明でしたか・・・・・すいません。 多分、私の聞きたいことは、JSPのファイルにSVGのプログラムを書き 込み(日本語を表示するようなもの)、リンクで先で、そのJSPを指 定すると、ダウンロードダイアログが表示されるということです。 意味不明でしたか・・・・・すいません。 調べるとMIMEの指定が重要となっているのですが・・・・・。 JSPの文字コード設定で、UTF-8などの設定をしても、だめでした。
えーと、「文字化け」はどこに行った? ...なんか、SVG以前にJSPが実行されているかどうかさえ怪しいようだが。
スレ違いだと思うけど、こういうのどこで聞けばいいんだろうね(笑) アプリケーションサーバは何を使っていて、ダウンロードファイル名は何になっている? 「アプリケーションサーバって何ですか?」とか質問するくらいならひっそりと消えてね
getParentNode()で親ノードを取得してタグ名を表示させようとすると "#document"が返ってくる場合があります。 "#document"ではなくタグ名を取るためにはどうすればいいのでしょうか?
ひっそりと777ゲット
>>776 その部分のソースコードを見せて。
#聞くまでも無いけど、XSLTもしくはXPathだよね?
778 :
M(_ _)M :03/11/15 00:49
アプリケーションサーバはtomcat4.1.27です。ダウンロードファイルは???.svgです。 この問題は、tomcat3xシリーズでは起こりません。どうしてですかね〜。
779 :
デフォルトの名無しさん :03/11/15 04:30
質問です。RELAX NGでXML Schemaにおける <xsd:simpleType name="SKU"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-[A-Z]{2}"/> </xsd:restriction> </xsd:simpleType> に相当する定義は可能なのでしょうか。
>>778 SVGのMIME情報を渡してやればいいだろう。
プラグインは何使ってるんだ?
>>779 俺はxsd知らないが、理論的にRELAXはXML Schemaを総てカバーしているはず。
781 :
デフォルトの名無しさん :03/11/15 18:05
>>779 relaxerコマンドでngスキーマファイル自動生成してみればいいじゃん
たしかできるよな
XML Schema ⇒ RELAX NG
今時RELAXかよ。 XML Schema以外はゴミ。
Cでxmlをいじってたのですが、質問です。 gnome-xmlと、xmlsoft純正libxmlでは動作に違いがあります。 xmlNodePtr cur;としたとき、cur->childs->contentの中身が gnome-xmlとlibxmlでは違うのです。 gnomeの場合はすんなり中身がでるのに大して、libxmlだと空白に 区切られたノードの文字列が出たりして素直ではありません。 今後どちらのxmlライブラリが主流になるのでしょうか?
MSXML4が主流になります。
786 :
デフォルトの名無しさん :03/11/15 19:44
未来からのメッセージが… まぁ、現在最も普及しているXMLパーサが、MSXML3であるのは事実だな。
>>782 んーこれからは RELAX NG だと思うけどねえ。
XML Schema は非直感的な記述を強いられるので疲れる。
>>787 オライリー「XML Schema」P375
>RELAX NGは技術的に見てW3C XML Schemaよりも優れているが、
>W3C XML SchemaがW3Cの勧告になってしまった現状では、
>RELAX NGに対してソフトウェアベンダーや開発者による
>十分なサポートが受けられるかどうかは不透明である。
つまり標準化とはそういうことです。
>>786 難しい問題だがそのとおりだな。OS標準搭載というメリットは非常に大きい。
Cで書く場合はWindowsのアプリケーションなどが一般的だと思うから
(XML後進国のUNIXは除外するとして)
MSXMLが主流になるという考え方はC言語においては正しいだろうね。
というかJavaで書きなさい。そのほうがライブラリ依存しないコードがかける。
個人的にはXML Schemaが標準化になったことについて、さほどなんとも思わないな。 RELAX NGの方が優れているのはそのとおりだと思うけれど、XML Schemaで書けないような 構造を定義することというのはまずないし(XML Schemaが自分自身を表現できないのは笑える) 理解しづらいというのはそれで食っているものにとってはありがたいメリットともいえる。 理解できない人たちは、金を払って理解できる人を雇うしかないわけで、このへんのシステムは 文系諸君がよく使う手だよね。会計士とか弁護士とか。システムは複雑なほどわかる奴は儲かる。 とか暗いことを考えているのは、いま目の前に会社の確定申告の書類があるからかもしれんが。
>>788 RELAX NG も OASIS で標準化されてるけど。
>>790 本質的に複雑なものはしょうがないが、不必要に複雑なものは淘汰されるだけ。
XML Schema がそうなのかは 5 年後を見ないとわからないが。
>>791 何がいいたいのかわからん。
>>792 なるほど、そういう考え方も出来るな。
標準化というのがそれ単体でそれ以上に強い付加価値であれば
その可能性は費えるから、淘汰されなかったとはいえ
本質的に複雑でなかったとは言えないだろうけれど。
#だいたいRELAX NGがある以上、あの複雑さは本質ではないはず
んー、linux上のCでコンフィグファイルを読み書きするのにxmlは 便利そうだな、と思ったんですがね。面倒くさいパーサを一から 書かなくていいし。 それでネット上のxmlプログラミング記事を探したらTurboLinuxとか IBMのサイトしかなくて、細かい動作については自分で検証するしか なかったのですね。ターゲットがCである以上、javaは関係なし。 そしたら、動作とか構造体のメンバが違うのでがっかりなのです。
795 :
デフォルトの名無しさん :03/11/15 21:42
C言語のみならやっぱそういうのないんじゃないかな? C++なら使えるけど・・・
>>795 C++でなら、そういうconfigファイルを読み書きできるような
いいライブラリがありますか?
795ではないが
>>796 xerces。でもlinuxなら.configを素直に使うほうがいいかもしれない。
xmlデータをベースにしたOSみたいなのが欲しいと思うこのごろ。
>>797 へー、こんなのありましたか。サンクス。
はて、.configとはなんですか?設定ファイルを読み書きするのに
便利そうなのありましたっけ?
xmlとxul、xhtmlは仲間ですか?
801 :
デフォルトの名無しさん :03/11/16 01:04
だいたい仲間です。
802 :
デフォルトの名無しさん :03/11/16 10:14
>>797 理由は違うかもしれないけど俺もそういうOSあればいいと思う
Windowsのレジストリはいじるのは怖い
Linuxの設定ファイルはテキストファイルで編集が楽だけど
どういう設定オプションがあるのかわかリずらい
そういう設定ファイルがXMLだと、
とうぜんスキーマファイルなりDTDが用意されていると期待できるので、
どういう設定項目があるのかスキーマ見ればわかりやすいと思う。
検証も出来るので、設定ファイルの書き間違いや矛盾もあらかじめ取り除けるしね。
XML Schemaで表現できるすべてがRELAX NGで表現できるわけじゃないが、 RELAX NGで表現できるすべてがXML Schemaで表現できるわけでもない。 用途に応じて使い分ければよい。1インスタンス:nスキーマなんだから。
>>802 httpd.confのような設定ファイルなどはどんどんXMLになって
欲しいというのは同感。
ただ、Windowsのレジストリのようなものはもともと人がいじる
べきものじゃないから、それがそのままXMLになったらかえって
問題がありそうだな。シリアライズ/デシリアライズがXMLで
できるというのなら良いが。
今の柔軟性に乏しいXML Databaseに変えて、 何か使いやすいXML Databaseのアイデアは無いものだろうか
806 :
デフォルトの名無しさん :03/11/16 14:30
XMLならXMLらしくツリー構造でアクセスさせればよさそうだけど SQLのような検索処理を行うとすると 従来どうりのテーブルの形にデータを入れておくのが処理も早い そのおかげで、いまのXMLデータベースのアプローチは 1、内部的にもXML(XMLツリー) 2、表面上はXMLを扱っているように見せかけ(インターフェース部分だけXML)内部的にはテーブルで格納 3、XMLを単に文字列(バイナリにしているのもある)で格納。検索処理などはメモリ上にDOM展開してそこで行う。 普通のデータベースでもとりあえず出来る。 の3つの実装がある。 どれも、従来のデータベースに比べ明らかな欠点がある 俺も結構考えたけど、やっぱ従来のデータベースにかなうものはないと思ってる。 いっそのこと、データベースのテーブル⇔XMLデータに変換できるラッパー(2の方法に近いがDBとは切り離している) を開発した方がいいのではないかとも思う。もちろんSQL⇔XPathも含めて。
×従来どうり → ○従来どおり 技術者といえども日本語はしっかりと。 木構造を表にマッピングするのはどうなんだろう。 XMLで格納しておいた意味がなくなるのではないかと不安。 何か具体例があれば是非教えて欲しい。 ツリー構造で検索を考える場合に、 何らかの制約を付け加えればlogNで検索が出来るようなアルゴリズムを XML構造に応用できるような方法を考えるアプローチはどうだろうか。 簡単に言えばindexを貼り付けるみたいな形を想像してもらえればいいけれど、 RDBと違ってXMLの場合はDB側でデータに付加情報を付け加えるのは まったくの自由なので(適当なnamespaceで管理すればよろしい) うまく行けば計算量O(1)で検索に多大な威力を発揮させられるかもしれない。 ただし、今までのjoinみたいな演算に対してXMLDBがどうアプローチするのか、 問題はそちらのほうのような気がする。
811 :
デフォルトの名無しさん :03/11/18 09:26
なんでMSに利益が入らなくなるの? 「フロントエンドにOffice使って」ってことじゃないのか?
>>812 もしXMLでwordなどの総ての情報を保存することを許して、
その詳細な情報をロイアリティ無しでライセンス供与してしまったら
オープンなライセンスでofficeに対抗するプロジェクトが出来た時に
(ありそうなのは、IBMがeclipseでしたみたいに、
既存のoffice対抗製品のソースをオープンプロジェクト化したり)
そちらの方でも「MSと完璧に同じ表現が出来る」officeを作ることが出来ることになるのでは
ないだろうかと予想してみた。
的が外れていたらフォロー頼みます、と言いたいがスレ違いだな
814 :
デフォルトの名無しさん :03/11/18 21:12
>>814 おまへ真性馬鹿なんじゃないかと思うほど既出>811
ただとはいっても一応ライセンス契約だから、競合製品には 使えないとかあるんじゃないの?
>>813 もう、ワープロや表計算ソフトは十分行き渡ってて、Officeと言えどもこれ以上の浸透は難しい、
まして後発では…と考えている思われ。漏れも同感。
だからこそ、Webサービスのフロントエンドって新分野をめざしてスキーマ公開。
>>817 そうか、なるほど。確かにその考え方はいいな。
でも既存のシェアを食われる可能性を考えると、やはりたいした決断だと思うけど。
Webサービスでシェアを取ってからロイアリティを徴収するのかもしれないな
企業がフリーのoffice互換製品を使うようになるとしてもまだまだ先の話。 ましてや有料のoffice互換製品はMSに勝てない。
820 :
デフォルトの名無しさん :03/11/19 14:09
質問です. JDK1.4.2でDOMプログラミングしてるんですが、あるDocumentに対し、別のDocumentの ノードを追加したいんですけどどうしたらよいでしょう? Document hoge = builder.parse(new File("hoge.xml")); Document meso = builder.parse(new File("hoge2.xml")); hoge.appendChild((Node)meso); みたいな感じのをしたいんですが、DOMExceptionで、異なるドキュメントで使われてるから 無理、っぽいこと言われて実行できません. 複数ドキュメントのマージってTransformer使わなきゃダメなんすか?
自レスです. 一応解決しました. DocumentクラスのimportNode()ってのを使う必要があったみたいです. Document hoge = builder.parse(new File("hoge.xml")); Document meso = builder.parse(new File("hoge2.xml")); Node hoge2 = hoge.importNode(meso.getFirstChild(), true); hoge.getFirstChild().appendChild(hoge2); てな具合です. お騒がせでした.
822 :
デフォルトの名無しさん :03/11/20 17:57
xmlを勉強しようと思うのですが とりあえずテキストエディタとブラウザがあったらいいとのことですが お勧めのテキストエディタはありますか?
お金があれば Visual Studio お金がなければ Notepad M$最高だぜw
XMLとは何の関係も無い質問だったな
827 :
デフォルトの名無しさん :03/11/21 11:54
XMLを使いこなせる人がいたとして、その人は XMLを使えない人と比べて何が出来るようになるんだ? どうもXMLを無理して覚える必要性を感じない。 Webサービスも直接XMLいじらないでサーバーやクライアントを作れるし。
828 :
デフォルトの名無しさん :03/11/21 12:32
>XMLを使いこなせる人がいたとして、その人は >XMLを使えない人と比べて何が出来るようになるんだ? 自慢ができるようになりますw
829 :
デフォルトの名無しさん :03/11/21 12:38
XMLは一つの手段であるだけだよ
>>827 まぁ、プログラミング言語なんて覚えなくても
機械語でプログラムには十分。
精々アセンブラくらいあれば便利かな?
…って言う人も世の中にはいますな。
>>827 データ構造をそのまま取り込むパーサーの威力はでかい。
軽くメタデータを作って、気が向いたらvalidatingする感じでやれば
情報を損なったり変化させたりする必要なく信頼性だけを高められる。
ほかにも各種ツール、XSLT、RELAXER、などの利便性は正直でかい。
あと、レベルの高いグループでは知っていることが前提になっているので、
そういう人たちと作業するときは知らないと困ると思う。
833 :
デフォルトの名無しさん :03/11/23 14:19
XMLの妥当性をチェックする為に DocumentBuilderFactoryクラスのsetValidating()メソッドを使い、 XMLにDTDのDOCTYPEを記述するには TransformerクラスのsetOutputProperty()メソッドを使う事はわかったのですが どうすればこの二つを両立させることができるのでしょうか? // ドキュメントオブジェクトの作成 DocumentBuilderFactory docFact = DocumentBuilderFactory.newInstance(); // DTDでチェック docFact.setValidating(true); DocumentBuilder docBld = docFact.newDocumentBuilder(); document = docBld.parse(new File(servletPath +"/"+ pageData.tetsuzukiShi + ".xml")) ; ↑具体的にはこんな風にしてdocumentを取得しているのですが、 XMLに <!DOCTYPE DataRoot SYSTEM "TEST.dtd"> を記述するにはどうしたらいいでしょうか?
835 :
デフォルトの名無しさん :03/11/26 02:46
>>811 その一方で、OpenOfficeはRelax NGを採用してるんだよなぁ。
XMLSchemaを支持している連中とRelax NGを支持している連中を見比べると
なかなか面白いものがある。
836 :
デフォルトの名無しさん :03/11/26 02:48
正直XMLなんて3日あればマスターできるだろ? そうおもわんか?
837 :
デフォルトの名無しさん :03/11/26 06:41
素のXML1.0のレベルは3日でいいかもしれんが関連技術が多いからな
xsltを3日でマスターできるか、と言われると、出来るかもな
覚えちゃうとそれまでの苦労を忘れるんだよな。 「ドラクエ簡単、3日で解いたぜ」とか言うやついなかった?
細かい仕様を入れると3日では無理っぽいな〜。 文字のマッピングとか、許されている文字とか、そういったところとか、 エンティティなんかが特に面倒ぽ
覚えるのといい設計が出来るようになるのとは別と思われ 三日で覚えたぜって人に仕事頼みたくは無い
誰にだって「最初の仕事」はあるものですよ
最初にXMLを使った仕事っていつだっけ…99年あたりかな? MSXMLが独自仕様に突っ走っていて大変だった時代に使った。 設定XMLファイルのXSLTを書いてhtmlを出力したはず。 仕事どうこうではなく、業務で普通に使えばいいんじゃないのかな? Relaxerなんかを使ってサンプルデータを取り込んだり、 普通に業務で使う場面なんていくらでもあると思うが、どうよ?
>>843 いくつかの形式に変換するような可能性のあるデータを、とりあえずXMLで吐きだしておけば、
XSLTとか場合によっては各種スキーマのお勉強にもなるしね。
教えて君なんですがよろしいでしょうか? XMLで深さ不明のツリー構造ってどう表現するんですか? 例えば ●じいちゃん 1920/10/5生まれ ●とおちゃん 1950/5/12生まれ ●漏れ 1980/4/18生まれ ●漏れの子供 2004/3/1生まれ予定 ●妹 1983/10/30生まれ ●とおチャンの弟 1952/4/5生まれ ●いとこ 1976/11/8生まれ ●おい 2001/3/8生まれ みたいなの。
>>845 > XMLで深さ不明のツリー構造
意味不明
>教えて君なんですがよろしいでしょうか? よろしいわけないだろが。調べろよ
848 :
デフォルトの名無しさん :03/11/28 21:36
<list> <data> <person> <money> <data> <person> <money> ・ ・ ・ 上のようなデータでpersonごとにmoneyのsumをとって person1,1000円 person2,2000円 person3,1500円 ・ ・ personをそのsumでソートしたいんですけど、どうしたらいいですか? person2,2000円 person3,1500円 person1,1000円 ・ ・
・終了タグがないから構造がわからん ・XSLTを使いたいのかDOMを操作したいのかその他か ・出力形式は単なる文字列でいいのか
850 :
デフォルトの名無しさん :03/11/28 22:44
構造は <list> <data> <person>a</person> <money>200</money> </data> <data> <person>b</person> <money>100</money> </data> ・ ・ </list> です。 XSLTを使いたいです。 出力は文字列でいいです。 <data> <person>a</person> <money>50</money> </data>
851 :
デフォルトの名無しさん :03/11/28 22:44
構造は <list> <data> <person>a</person> <money>200</money> </data> <data> <person>b</person> <money>100</money> </data> <data> <person>a</person> <money>50</money> </data> ・ ・ </list> です。 XSLTを使いたいです。 出力は文字列でいいです。
殺伐としてますな。
>>845 XMLが階層構造を持つと言うことと、データの内容が階層構造を持つという事が
ごっちゃになってるね。やりたいことを実現するには
人
名前
生年月日
親
というデータ構造が必要。親をたどっていくと結果的には家系図ができる。
でもそれはプレゼンテーションの問題であってデータそのものの構造とは
関係ない。
という意味だと思うが聞きたいこととちがってたらスマソ。
調べれば簡単にわかることを質問する奴はちょっとな
XMLDBと、情報処理試験に出てくる、ツリー型データベースと どうちがうの。ツリー型のデータ構造とXMLの違いってあるの?
ツリー型データベースのインスタンスとしてXMLDBがあるんじゃないの?
858 :
デフォルトの名無しさん :03/12/01 17:14
xmlファイルをxslファイルで一度変換して その出力をさらに別のxslファイルで変換することが、 XSLTでできますか?
859 :
デフォルトの名無しさん :03/12/01 18:40
OpenOfficeで作成した文書を解凍してxmlファイルを覗いてみました。 content.xmlとかstyle.xmlだとか、mimetypeとかぞろぞろと。 ポストスクリプトのほうがまだ良かったのではないかと小一時間。 話は飛びますがxmlsoftのlibxmlをなんとかしてほしいです。
>>856 結局、規格化されて互換性を確保するってメリットが主で
XMLが不可能を可能にするってことではないねぇ。
従来の独自構造DBがベータマックスでXMLがVHS。
>>858 そういうXSLTを書けば出来るかもしれないけど、
標準では用意されていないと思う。実装依存でPIという方法は良くあるが。
>>859 PSとXMLなら、開発者としては断然XMLの方が助かると思うのだが、
なぜPSの方がいいなんて思うんだ?
>>859 俺はここでpsが出てきた意味もわからないな…
864 :
デフォルトの名無しさん :03/12/03 02:54
>>861 PSのほうがファイルサイズがかさばらないとからいいんじゃないか、
いうことじゃないかしら。ファイルそのものを
いじりたい場合はともかくとして。
866 :
デフォルトの名無しさん :03/12/03 11:05
DICOMとXMLと関係ありますよね。 DICOM系のフリーライブラリは存在しますか?
>>866 悲しいけどここ「XMLを使った技術なんでも」スレじゃないんだよね
スレ違い
スレタイがXMLなので検索にひっかからないのでウザイ
本当だ全角だ
IE使えば?
>>866 そういうことは医療関係で調べていただいたほうが。
XSLで、元XMLの全ての要素ノードに共通の属性を追加して通し番号振りたいんですけど、どう書いたらよいでしょう? 通し番号には<xsl:number>を使うのはわかってて幾つか試したんですがなかなかうまくいかなくて… <root> <A attr="hoge"> <B>value</B> <C>data</C> </A> <D> <E>String</E> </D> </root> ↓↓↓ <root id="001"> <A attr="hoge" id="002"> <B id="003">value</B> <C id="004">data</C> </A> <D id="005"> <E id="006">String</E> </D> </root> てな具合に… 別にIDの順序は問いません、一意であるならば.
自レスです 解決しました。 <xsl:template match="*"> <xsl:element name="{name()}"> <xsl:attribute name="n_id"> <xsl:number level="any" count="*" format="001"/></xsl:attribute> <xsl:for-each select="./@*"> <xsl:attribute name="{name()}"><xsl:value-of select="."/></xsl:attribute> </xsl:for-each> <xsl:apply-templates /> </xsl:element> </xsl:template> んー なんかここでジサクジエーンばっかしてるなー
876 :
デフォルトの名無しさん :03/12/15 12:11
VBでDOM使ってるんですけど ノードの属性にエンティティを指定するのってどうすれば良いんでしょうか? <!ENTITY hoge "fugafuga"> <node id="&hoge;"><node/> ・・・見たいな感じにしたいのですが、どうやっても <node id="&hoge;"><node/> となってしまいます。
>>876 やりたいことがよくわからん.
エンティティが属性になるわけないと思われ
参照先のエンティティのIDとかを属性に持ちたいのならそれようの属性をエンティティに持たせないとダメなのでは?
>参照先のエンティティのIDとかを属性に持ちたいの… 自分でもよくわからんこと書いてるなと書き込んでから思った罠
「XMLなんて簡単だ」と言うのはたやすい。 実際、理解するのも簡単。W3Cの仕様書も薄い。 だが、なんでXMLを業務システムに組み込もうとするとおじけるやつがいるのだ? 「当たり前だろ」的に持ち出すと馬鹿にしていると受け取られかねないので、 強くは主張していないが。 ひどく残念な会社だ
すいません、勝手に変換されてました。 ・・・見たいな感じにしたいのですが、どうやっても <node id="&amp;hoge;"><node/> つまり「&」が「&amp;」になってしまうということが言いたかったのです。 >エンティティが属性になるわけないと思われ xmlではエンティティを属性に指定できないのですか? 属性宣言で(ENTITY|NMTOKEN)のように指定できるので大丈夫かと思っていたんですが・・・
881 :
デフォルトの名無しさん :03/12/16 17:16
XQuery分かる人いますか?
>>881 XQueryの実装って、現在存在するの? 無知でごめん。
>>882 これからっぽい
なんかいずれXpathとかと統廃合される気もする
>>880 憶測だけど, DOMのEntityReferenceクラス辺りを使いそう.
かなり未確認.
>>エンティティが属性になるわけないと思われ
>xmlではエンティティを属性に指定できないのですか?
エンティティとエレメントを勘違いしていた罠
スマソ
885 :
デフォルトの名無しさん :03/12/17 06:11
今SAXを勉強中なんですが、XMLをファイルに書き込む時は 普通にprintlnメソッドとかで書き込んじゃうものなんですか?
>>885 TransformerFactory.newInstance().newTransformer().transform(......)
>>885 printlnっつーくらいだからJava前提と考えて、xercesのXMLSerializer使うとか.
>>887 イェア!! 早速FLWR式試してみるぜ。
saxとXMLを書き込むという二つの間の相関関係がわからない罠
>>890 javax.xml.transform.sax.SAXSourceみたいなのでSAXのイベントをTransformerに渡すこともあるし。
なんやかんや言ってスレが伸びたな
>>885 普通に考えると、XML文書をそのままファイルに書き出すなんて無意味な
ことはしないだろうから、
>>891 が言うように、Transformer使って出力する
のが一般的じゃないかな。
ただし、XSLTスタイルシートを勉強しなきゃならないし、Transformerの
バグとかでハマる可能性もある、いわば諸刃の剣。
素人にはおすすめできない。
(´-`).。oO(XSLTスタイルシートって用語的に正しいのかな?) (´-`).。oO(Extensible Stylesheet Language Transformations Stylesheetって変じゃない?)
CSSとの区別の意味ではありだと思うけど。
2週間もの間が開いたレスをしてもなー
MSXMLでXML作るときインデントさせたいんですけど なにか良い方法ありますか?
XSLは無茶だと思うな。スタイルシートの可読性が低すぎ。 スタイルシートから最終的な結果が想像つかないのはキツイ。 普通のテンプレート変換エンジンでイイジャン。Velocityとかさ。
900 :
デフォルトの名無しさん :04/01/08 11:45
リア厨なので、くだらない事言ってるなぁと思って聞いて下さい。 XMLのウィークポイントは大量のデータになると、飛躍的にデータ量が増大する事だと 聞きました。 これを解決する案をXML勉強中に思いつきました。 (勉強不足なので、すでにこんなのがあるったら、ごめんなさい) ・データを閲覧、記述する時は従来のXML表記。 ・データを送信、保存する時はCSV形式(のようなもの) ってしたらどうでしょうか? (普通のテキストエディタで表示できなくなるのが難点ですが・・・) CSV形式(のようなもの)へのコンバートは一定のルールがあって、 データの順番が決まってしまうので、記述する時と閲覧する時では 順番が変わってしまうけど、XMLは順番はどうでも良いから問題ないですよね? 文章が変で意味不明かもしれませんが、どうでしょうか?
>>900 釣りか?
釣りじゃないなら CSV -> XML, XML -> CSV の変換方法を具体的に書いてくれ。
レスどうも。 具体的なコンバート方法は分かりませんが、 要素の順番情報を保持して、あとはその順番通りに要素を並べていけば 可能ではないでしょうか? 例えば <product> <name>えんぴつ</name> <price>15</price> </product> <product> <name>消しゴム</name> </product> というXML文書があったとしてこれをコンバートすると下記になるとか。 <product><name/><price/></product>:えんぴつ,15.消しゴム,. ただ、スキーマが変更になった場合、再度コンバートが必要になるのが欠点。
>>902 面白いし単純なモデルの時とかはいけそうだけど……
もっと複雑な入れ子状態のときでも破綻しないのか?
属性の表記とか混合内容モデルの時とかはどうするんだ?
あと、この表記だとSAX的処理に不利ぽい。
>>903 レスどうも。
>もっと複雑な入れ子状態のときでも破綻しないのか?
区切り文字を工夫すれば可能ではないでしょうか?
例えば$1なら第一階層。$2なら第二階層って感じで。
上の例なら
<product><name/><price/></product>:えんぴつ$0,15$0.消しゴム$0,$0.
>属性の表記とか混合内容モデルの時とかはどうするんだ?
属性は記号を工夫すればなんとかなりそうですが、
混合内容モデルというのはよく分かりません。
>あと、この表記だとSAX的処理に不利ぽい。
これもよく分かりません。
まだまだXML自体をよく理解していないので、根本的に何かを勘違いしているのかも。
やっぱり不可能ですか?
うまくいけばRDBにとって変われるかもとか思ったりしました(^^;
>>904 XMLの、人間可読かつ機械可読って利点は諦める方向ですか?
正直その記法からXML文章を想像するのはかなり辛いです。
もしばっさり諦めるなら、もっと思い切った方法もとれると思いますが。
・混合内容モデル:要素と地の文が混在できるモデル。
<p>もうね、<em>アホ</em>かと。<em>馬鹿</em>かと。お前らな、(ry</p>
(吉野家コピペより)
みたいなの。XHTMLとかね。
・SAX的処理
SAXってのは、内容を全部読み終わる前に、とりあえず読み込んだ分から逐次
処理する方法。productっていう開始タグが来た→nameって開始タグが来た→
「えんぴつ」って文字列が来た→nameって終了タグが来た→……。って具合。
んで、
>>900 の記法だと半分くらい(要素の構造情報を全部)まで読まないと
解析が始められないってこと。そっから後ろは逐次処理できそうだけどね。
データ量の削減より、構造と内容の分離、って点が俺的には面白いと思う。
>>905 説明ありがとうございます。
>XMLの、人間可読かつ機械可読って利点は諦める方向ですか?
そうなりますね。ただコンバートが必要とは言っても、単純な置き換えで元のXML文に
直せるので、表示や保存時に変換しても一瞬だと思うんです。
(つまり見かけ上は人間可読かつ機械可読)
バイナリにしちゃっても問題ないとも思います。
(今は、分かりやすく説明するため「CSV形式のようなもの」と表現していますが)
><p>もうね、<em>アホ</em>かと。<em>馬鹿</em>かと。お前らな、(ry</p>
これだったら変換が可能だと思うのですが・・・、うーん、よく分かりません。
ごめんなさい。
SAX的処理は問題ないように思います。
最初の構造情報はデータに比べたらたいしたことないですし、
構造情報を読み込んでしまえば、後は一緒だと思うんですが。
それから、気付いたのですが、構造はXML schema や DTDで定義
されているので、データ自体に構造情報を持たなくても、実現できそうな
気がしてきました。
というか、これって圧縮の単純なアルゴリズムをかませば出来てしまうかも。
<product> → $0 </product> → %0 みたいに内部で機械的に置き換えてしまえば
かなりデータ量が削減できるような・・・。
あ〜なんか根本的に間違えているような気がしてきました(^^;
構造情報って、スキーマの構造相当のことだったんですか。 じゃあ、A要素またはB要素、共に内容はテキストのみ、とかいう構造の場合、 変換済みのデータが、どっちの要素かって情報が消えるので、元に戻せないんじゃないかと。 つまり、「<a>あいうえお</a>」「<b>あいうえお</b>」が共に出現可能な文脈を圧縮すると、 共に「:あいうえお」になるけど、スキーマ情報からだけじゃ復元できない (AでもBでもどっちでもスキーマ的には正規だから)わけです。 じゃあってんでインスタンスの構造を書こうとするなら、データ量はあんまし減りませんね。 構造と内容を混合して書いていたのを、書く位置を分離したに過ぎないので。 > <product> → $0 </product> → %0 みたいに内部で機械的に置き換えてしまえば それなら普通(?)に「XML+ZIPかなんかで圧縮」でいいんじゃないかって気がしてきました。 データ量は減るし、簡単にXMLに戻せるし、今すぐ実現可能だし。
XMLはインタフェースとしてのみの用途として、保存時はRDBなんかに入れておくというのが現実的かねぇ。 これは >・データを閲覧、記述する時は従来のXML表記。 >・データを送信、保存する時はCSV形式(のようなもの) >ってしたらどうでしょうか? というアプローチに非常に近いと思うけど。
XMLデータベースっつってもデータ量の冗長性はやっぱり拭い切れない罠.
RDBに依存しなくてもよいのならいっそネイティブのXMLDBにした方がウマーかも.
Xindice(ジンディーチェと読むらしい)
ttp://xml.apache.org/xindice/ 使ったこと無いから憶測でしか言えないんですけども(ォィ
企業向けに売っているXMLDBってどうなんだろ。 超高速とかいろいろ売り文句があるが・・・。 仕組みとかパフォーマンスとか表に出てないんだよね。 900から話題じゃないが、ばらしておくメリットは大きいんだけど・・・。
>>900 このアプローチって昔っからずーっと取られてる方法じゃない?
そのへんのアプリの独自フォーマットと同じこと言ってると思うんだが。
ヘッダとボディを分けて、ヘッダにボディの構造を定義するだけだよね?
XML←→CSVもどきの変換は専用の変換ツールがいるし。
一番わかりやすい例ではRDBかなぁ。
あれはモデルとしては表形式だけど、中のデータ形式はもっと複雑だし。
XMLがなんか知らんけど一気に盛り上がったのは、漏れの理解では
・ひとつのファイルに構造まで含んでくれてる
・ファイル中にエンコードまで含むので機械的に読ませられる
・上記の点から異なるアーキテクチャの環境で共有しやすい
(アプリケーション統合しやすい)
・データ量増大にはストレージ的にもネットワーク的にも低コストで
対応できるようになってきた
って点だと思う。
>>906 あたりで言ってるデータから構造を抜くってアプローチは完全に昔に戻ってる。
これがいいか悪いかは議論があるだろうけど、
>>907-909 辺りで言及されてるように
XMLを選択する意味が薄くなる(あるいは、なくなる)。
>>914 913のリンク先にも書いてあるけど、
ネイティヴXMLデータベースでも内部では構造を抜き出して表にマッピングしてるモノが有ります。
性能的にはそっちの方が有利なのかも。
XMLの性能(不要論含む)を語る際には、「ストレージとしてのXML」と「インタフェースとしてのXML」を
別に考える必要があるはずだと私は考えます。
915に賛成。流れはXMLに決まったと思う。 XMLだと無駄ってシステムはたくさん在るけど、 XMLはAPIなどが整備され出したおかげでプログラミングが楽&早い。 問題はXMLの無駄さのためパフォーマンスが気になること。 大きいXMLデータとか人間が待てる時間で処理が終わるのかどうか。 意外と1日待てるバッチ処理には開発&保守の点で向いているかも。
>>915 ネイティブなXMLDBのうたい文句に
「RDBへのマッピングと違ってダイレクトにアクセスするので速い」
というのを良く見るんだけど、実際どうだろう?
漏れ的にはRDBにマッピングしてますってのは遅そうな気がするんだけど。
XMLのスキーマごとに最適なマッピングを取るのならいいんだけど、
通常の汎用的なつくりだとどうしても性能はバラけるような。
XMLの議論で2者を別に考えるべきってのはわかるけど
現状では「ストレージとしてのXML」に大きな価値があるとは
思えない。
これは別にRDBでも(その他の変な形式でも)かまわない。
インターフェースにも大雑把に2種類あるような気がする。
外部システムや人間向けと、アプリケーション向けね。
>>916 パフォーマンスとかってまだまだこれから発展する余地がある部分だと思う。
いろんなノウハウ(RDBでの非正規化による性能確保とかみたいなの)も
これからじゃないかな。
でも、性能要件が重要なところはXMLにこだわらず部分的にでも
従来どおりのやりかたとおしてもいいと思う。
>>915 > 「ストレージとしてのXML」と「インタフェースとしてのXML」を別に考える必要があるはず
禿同
データが冗長だなんだと、インタフェースとしての有用性を無視するのはもったいない。
>>917 > 現状では「ストレージとしてのXML」に大きな価値があるとは
> 思えない。
XMLにRDBにはないストレージとしての優位性があるとしたら構造の柔軟性ってとこじゃ
ないでしょうか?スキーマに変更があったときなんかに、XSL一つ書けばXMLそのものは
いじる必要が無いとか…構造の違うレコードを混在させられるとか…
まだXMLをストレージで使い倒した、って経験は無いのでなんとなくの勘でしか言えないけど…
> 「ストレージとしてのXML」と「インタフェースとしてのXML」を別に考える必要があるはず ... > XMLの議論で2者を別に考えるべきってのはわかるけど ... > 外部システムや人間向けと、アプリケーション向けね。 こういう考え方だと、 結局機械処理向けに(は)バイナリで規格(とライブラリ!)作 るのがベストってことになるでしょう? XMLは、それがたとえ機械向けのものであったとしても、 人間が読める、書けるところがいいんだと思うんだけどね。 # PS, PDF, UNIX, v.s. Word, Windows ...
> Word, Windows なんだこりゃ。Windows&Office&VisualStudioほどXMLに積極的な環境はないわけだが。
MSXMLの質問です。二つのXML文章があり
a
<?xml version="1.0"?>
<ahoge>
</ahoge>
b
<?xml version="1.0"?>
<bhoge xmlns="
http://hogehoge/ ">
<test>テスト</test>
</bhoge>
↓のようにtestのデフォルトの名前空間を解除してaに追加したいと思っています。
<?xml version="1.0"?>
<ahoge>
<test>テスト</test>
</ahoge>
しかし、実際は↓のようになってしまいます。
<?xml version="1.0"?>
<ahoge>
<test xmlns="
http://hogehoge/ ">テスト</test>
</ahoge>
setAttributeでxmlnsを解除しようとしても出来ませんでした。
名前空間を解除する方法ってあるのですが?
>>918 構造が柔軟の話は(アプリ向け)インターフェースとしてのXMLかなぁ
と思って
>>917 を書いたつもり。捕らえ方が間違ってるかも。
>>919 人間が読めるって言ったって今のXMLはそんなレベルにないと思うんだけどな。
漏れ的には
> 結局機械処理向けに(は)バイナリで規格(とライブラリ!)作
> るのがベストってことになるでしょう?
これはひとつの解だと思うよ。
表モデルだって、人がいじることを前提としたいのなら今だってCSVとか使うけど、
実際にはRDBMS使うケースは多いんだし。
XMLにしてもこういうすみわけは進まなきゃいけない。
>>921 >>920 じゃないけどかなり積極的でしょ。
2003ではOfficeドキュメントのスキーマ公開されてるし、次世代のVS.NETでは
XMLでプログラミング補助するわけだし。
XMLはタイプ量が半端なく多くなるから、 構造化エヂタなしじゃ作業にならんな。 この辺りがあんまり好まれない原因か。
>>923 そういう考えなのはわかってる。そしてその結果、
今の、あるいは見込まれているXMLの偏在に疑問を呈してるわけでしょ。
でもそもそもXMLの利点は、(非効率であるにもかかわらず)計算機資源が
豊富になったことによって可能になったポータビリティ、汎用性にある。
つまり、従来のソフトウェア毎、システム毎の「住み分けを廃す能力」にある。
そしてその汎用性の用の一つは人間による読み書きだ、と主張したわけ。
小さなXMLなら…だけど大きいのは…、だから大規模な場合は
XMLは使うべきではない、住み分けろ、という類の議論は、XMLの存在意義(全てをXMLで)
そのものに矛盾していて、逆行してるだけじゃないのかと。
機械処理の効率の重要性が下がるというのが計算機使用の発展の基本的な流れだから、
現在XMLですむものが効率重視のバイナリに変わるとは思えないな。
テキストエディタが絶滅する日が来れば、そうなるだろうけどね。
>>920 ,
>>923 文脈を理解してくれ。
プログラミング言語のシンタックスなんて S式ひとつあればいいじゃん。
LISPer キター
> 小さなXMLなら…だけど大きいのは…、だから大規模な場合は
> XMLは使うべきではない、住み分けろ、という類の議論は、XMLの存在意義(全てをXMLで)
> そのものに矛盾していて、逆行してるだけじゃないのかと。
これはいくらなんでもやりすぎだろうと思う、というのが
>>923 なんだけどね。
処理によっては明らかに別のモデルのほうが適しているってケースはあるはずで
そこに無理にXMLを持ち込む必要はないでしょ?
当然、XMLを持ち出すことで今までの制限がなくなったり今までとはまったく違った
処理の形が出てきたりってのはあるだろうから、それを否定するつもりは何もない。
> 機械処理の効率の重要性が下がるというのが計算機使用の発展の基本的な流れだから、
> 現在XMLですむものが効率重視のバイナリに変わるとは思えないな。
この最初がわからん。
XMLですむものでもバイナリに変えるのは、性能重視の時に取りうる選択肢だとは思うけどな。
インターフェースはXML化してくれたほうがいいけど、実態がXMLであるほうがいいなんて
とても思えない。
たとえば、XMLDBのデータファイルの形式はどうあるべきだと言っている?
漏れは何でもいいと思う。
>>925 は人間が読めるXMLであるべきと思っているってこと?
じゃあ、ファイルシステムはXMLで出来上がっているべき?
じゃあ、プログラムはXMLで構成されて、プロセスモデルは真にXMLであるべき?
あーやっぱりちゃんとXMLの側面分けて考える必要あるね。
> > 小さなXMLなら…だけど大きいのは…、だから大規模な場合は
> > XMLは使うべきではない、住み分けろ、という類の議論は、XMLの存在意義(全てをXMLで)
> > そのものに矛盾していて、逆行してるだけじゃないのかと。
>
> これはいくらなんでもやりすぎだろうと思う、というのが
>>923 なんだけどね。
ごめん、ここ読み落としてたけど、規模の大小で住み分けしろとは思ってないよ。
>>923 でもそんなことをいってたつもりはなかった。紛らわしくてすまんね。
あくまでも適材適所で技術を使えよと言いたかっただけ。
処理するもののモデルによってXMLを避けたっていいだろということね。
機械処理(というか機械的な処理でもそうだけど)に関してはXMLを無理に
使わないほうが自然なケースが多いんじゃないのかなというのが実感。
あと、
>>920 への突っ込みの意図が見えない。
>>919 でWindowsはXML化に積極的な例として出したつもりだから?
でもねぇ、PostScriptもPDFも確かに人には読めないけど、WordのXMLファイルだって読めないよ。
XMLファイル、つまりテキストファイルとして 出力されるものっていうのは、ツリー状のデータの表現形式の ひとつなのではないの?それが非テキストファイルの バイナリとして出力されることはXML自体の否定にはならないと思うけど。 ←→ 0) XMLテキスト 概念的ツリー状データ ↑↓ ←→ 1)なんからのバイナリ 0と1の間の相互の変換モジュールが構成されていれば なんの問題もない。バイナリが扱いにくいのは 異機種間の相互運用がからんだとき。そこで初めてテキスト形式のXMLの 重要性が出てくる。クローズドなシステム内、もしくはそれらの間の データ形式変換さえこなせるなら、バイナリだけでもなんら問題はない。 またXMLで可能になる相互運用といっても、S式でデータと手続きを 丸ごと送るようなものでもない限り、それ程大したものじゃない。
>>928-929 > 処理によっては明らかに別のモデルのほうが適しているってケースはあるはずで
> そこに無理にXMLを持ち込む必要はないでしょ?
無意味な文章。どのような場合に適していると判断するべきかが、
問題になるのであって、適しているものを使うべきなのはあたりまえだ。
> たとえば、XMLDBのデータファイルの形式はどうあるべきだと言っている?
> 漏れは何でもいいと思う。
>>925 は人間が読めるXMLであるべきと思っているってこと?
なんだっていい。「適した」ものをつかえばいい。
XMLでOKでそのほうが開発が簡単ならそうすればいい。要求仕様的に無理なら
かえるしかない。
あなたの「適した」は機械処理の効率しか考えてないと言ってるんだよ。
それから、
まさかPSやPDFが人間に読みかきできないものだと思ってるとはね。
XMLだって数としては読めるもののほうがずっと多い。
いちおう説明しておくけれど、
PS、PDFは(Adobeが開発したんだっけ?)仕様が公開されている言語で、
人が読み書きできます。UNIXの設定ファイルも、
あえてプレインテキストが採用されている。
一方、WordやExelは独自のファイル形式を用いた(さらにそれによって、
アップグレードを強制してきた代表的な)ソフトウェアの一つ(二つ)
だった。Windowsの設定はレジストリ等…
新しいWordの一般的な使用方法がXMLになったとしたら、それは
カテゴリが前者に移るだけだ。
>>930 > XMLファイル、つまりテキストファイルとして
> 出力されるものっていうのは、ツリー状のデータの表現形式の
> ひとつなのではないの?それが非テキストファイルの
そうではない・そんなことが重要なのではないという認識を
>>925 で説明している。
ポータビリティが重要。ツリー構造なんて今まででもみんな使ってる。
> またXMLで可能になる相互運用といっても、S式でデータと手続きを
> 丸ごと送るようなものでもない限り、それ程大したものじゃない。
全然意味がわからない。スキーマって知ってる?
>>931 に捕捉
> あなたの「適した」は機械処理の効率しか考えてないと言ってるんだよ。
この「機械処理の効率」は、狭い意味で(速度や記憶容量)の効率。
>ポータビリティが重要。ツリー構造なんて今まででもみんな使ってる。 ポータビリティね。それはXMLでは重要だな。 >XMLの存在意義(全てをXMLで)そのものに矛盾していて こんな存在意義はあなたと原理主義者の脳内にしかないだろう。 そもそもあたなのいうXMLとはなんなのか? おれのいうXMLとは「ツリー状のデータ構造を表現する統一されたシンタックス」 という意味でしかない。XML"ファイル"がプレーンテキストであることから得られる 人間に対する可読性云々は、XMLそれ自体とは関係のない話しだと思ってる。 各々の言うところのXMLとはなんなのかを、まずはハッキリさせないと 議論になりません。噛みあってもいないです。
>>934 > おれのいうXMLとは「ツリー状のデータ構造を表現する統一されたシンタックス」
> という意味でしかない。XML"ファイル"がプレーンテキストであることから得られる
XMLの規格はプレーンテキストであることを保証してますが。
あなたの脳内XMLとはどうやら違うもののようですね。
そりゃぁ噛み合わないわけだ。
>>930 > またXMLで可能になる相互運用といっても、S式でデータと手続きを
> 丸ごと送るようなものでもない限り、それ程大したものじゃない。
の意味を説明してくれないか?
>>934 YAML 使ったら。XML 要らなさげ。
>>931 漏れの説明が機械処理的な部分しか見てないってのはまさにそのとおり。
で、確認したいのはじゃあこういう要件のところにまでXMLを持ち込むのが
(すべてXMLでということが)
>>919 の言う進むべき道なの?ということ。
少なくとも
>>925 ではそう読めたし、そんなの無茶だ(たとえば機械処理には
向かないんだから)というのが
>>928 で言いたいことだったんだけど。
でも、
>>931 では向いたとこに向いた形式使ったらって言ってるから違うのかなと。
PDFってバイナリ埋められるよね?それは人間が読み書きできないでしょ?
あー、やっぱり
>>919 の考えるXMLのあるべき姿が見えません。
仕様が公開されてりゃ万事OKって態度なん?
例としてPSだのPDFだの出てくるってことは単純にストアするための
形式に(要するにストレージとしてのXML)にこだわってるだけに見える。
XMLなんてのは
>>930 の言うようにテキストファイルに構造を持たせたものだと
漏れは考えてるので、さらに上にかぶせる仕様(スキーマ定義)が「必ず」いるはず。
>>930 漏れはXMLに関しては同じような認識。
ただ、そのままの形で蓄えることに大きな意味は見ていません。
外部システムやライブラリの外側のオブジェクトに対するインターフェースが
統一される部分がメリットだと思ってて、この部分は今後も推進されて
欲しいくちです。
従来のネットワークやファイルのような、プラットフォームのアーキテクチャに
それらが強く依存していたことから比べたらそれだけでも十分なメリットだと思われ。
>>938 補足。
XMLのメリットとしては、下記のようなのが頭にある。
・項目名がデータと一緒にある
・途中で項目が追加になっても従来の処理は動かせる
・XML間の変換のルールが機械的に処理できる(人がやらなくてもいい)
なんか抜けてるかもしれんけど。
> PDFってバイナリ埋められるよね?それは人間が読み書きできないでしょ? おいおい。配列に(エンコードした)バイナリ埋めてたらC言語だって 人に読めないことになるのかよ。 > 漏れは考えてるので、さらに上にかぶせる仕様(スキーマ定義)が「必ず」いるはず。 そのとおり。だからXML+schemaと毎回書かなくても分かるだろう? # なんで当り前のことばかり。 XML(+schema一応書くか)の第一の利点は特定のアプリケーションに依存しない形で 書式と意味の両方を保持できる所にある。 # 他にもあるぞ。schema無しだってparser書く手間の省略ができるようになるし。 XMLに対して、XMLの仕様ってのは(それがXMLであると認識する)外部に対して どのようであるかということを定めているのであって、そもそも 「インターフェイス」でしかない。直接見られないようなところ、たとえば処理する ソフトウェアの内部やハードディスク上の生のビット列では、 どんな形であろうとどうでもいい :-)
あなたのいう「ストレージ」とはなにか? ハードディスクにあるファイルとして見る時はストレージとしてのxmlなんだよね? そうだとしよう。 あなたの主張は、 たとえばwORDはディスクに効率優先の形でそのデータを保存するべきである。 インターフェイスとしてxml形式でエクスポートできる機能があれば良い。rIGHT? きみはそういうwORDを作り、私はxmlで保存するものをつくったとしよう。 ここで、もちろんどちらも要求仕様はみたしているとする。 君のもののほうがエクスポート以外の処理は速いだろうけれどね。 君のソフトウェアのメリットはそれだけだ。 それもハードウェアをリプレースすればどこかに消し飛ぶようなものかもしれないが。 デフォルトの処理形式が君のHOGEHOGEフォーマットだから、客は外部に書類を 渡す時、受け取る時は毎回きみのwORD_PROPRIETARYをたちあげて、 毎回エクスポート、インポートしないといけない。これはものすごく面倒で、 ほとんど非現実的だといってもいい。 # あるいは、相手がそのソフトウェアを持ってると考えてそのまま渡すか。 過去のファイルはHOGEHOGEフォーマットで保存されているので、君のソフトウェアが どんなにCRAPPYでも客はアップグレードやサポートのために金を払ってくれるだろう。
>>939 ・データ形式の仕様を規格化された書式(DTD/Schema/RelaxNG)で明示的に表現できる
・プログラミングAPIの仕様が実装から独立している
・多様な文字コードの存在を前提としている
・構造化されたドキュメント中の特定データを指定するための書式が存在する(XPathマンセー)
ところが、XMLで「ストレージ」されてたらどうだ? もうインポートエクスポートなんてする必要は無い。たんにコピーするだけだ。 そのうえ、過去の資産も全部XMLだから、もう客は私のcrappyなソフトウェアに (残念ながら)依存すること無く自由にもっとまともなWordに変えることができる。 # いままでのMicrosoft Wordにはたしかに後方互換のエクスポートの機能があった(たいていバグってたが)。 # 論理的には、相手は必ずしも最新のWordをもっていないし、新しいWordの機能なんて # つかわないから、古い形式で送れば十分だ。だけどだれがそんな面倒なことをした? 「ストレージ」っていうのはもっと大規模なものだって? それでも根本的にはかわらない。完全にブラックボックスなストレージなんてありえないからね。 例えば、そのデータに別のソフトでの加工、あるいは移行が必要になった時に、 一々エクスポートするコスト(これが移行を阻害する)、 外部にデータを渡したいと思った時のオーバーヘッド。エクスポートのバグ(無いわけがない)… XMLで「ストレージ」しておくメリットはたくさんあるが、 君の機械処理の効率というメリットは極めて近視眼的なものにすぎない。 # なんか張り付ける時に大文字こもじが逆転してしまった。 # よみにくくてすまん。
>>941 (=919)
かみ合ってないところがわかったよ。
漏れはまったく論理的にどの処理に対しても(それこそファイルシステムや
メモリ空間に至るまで)
>>919 がXMLを適用すべきだと言っていると読んでいた。
>>925 の「XMLの存在意義(全てをXMLで)」ってとこから余計にそう思った。
でもそうではなくて、物理的なレイヤはどうであろうとかまわない、という
スタンスなんだね。
すべてをXMLでというのは、そもそも蓄えるもの通信するもののみを
前提とした上でインターフェースとなるバイト列はすべてXMLたれといっているわけだ。
今までに書いた漏れの言葉で言えば、これは「外部向けインターフェース」。
> ハードディスクにあるファイルとして見る時はストレージとしてのxmlなんだよね?
> そうだとしよう。
Yesなんだけれど、ファイルという形式を取っている以上暗黙のうちに
インターフェースだと思っている。(ファイルはインターフェースのひとつ)
だから文脈によってはNo。
> あなたの主張は、
> たとえばwORDはディスクに効率優先の形でそのデータを保存するべきである。
> インターフェイスとしてxml形式でエクスポートできる機能があれば良い。rIGHT?
これはNo。
処理中は独自形式でよくて、保存はXMLであって欲しい。
漏れがずっと主張してたつもりなのは、DOMを直にいじるような
プログラミングスタイルではなくSchemeから読み込まれたモデルを扱うべき
だろうということ。
この例で言えば、Wordモデルを実装したClassをいじることで結果として
XMLで保存されるような。
DOMや、Schemeを利用したのWordモデルの定義がアプリ向けの
インターフェースのつもりだった。
>>919 の嫌う「ライブラリ」はSchemeとSchemeコンパイラ的なもので(動的に)
具現化しているはずだと思う。
>>943 で言っているような「別のソフトでの加工、あるいは移行」についても
ソフトウェア間で共有できるモデルのSchemeが定義できていることを前提と
しているわけで、実は暗黙のうちにライブラリを想定しているように見える。
まあともかく、議論がこじれたのは漏れの「ストレージ」「インターフェース」の 取り方が悪かったせいだな、すまん。 漏れの意識では、ファイルシステムはインターフェースであるのでファイルを前提と した話ではおそらく同じことの言い換えだと思う。 ここまで書いてきて、ストレージとしてのXMLってなんだって気がしてきたな。 すまんね、理解があいまいなままうだうだ書いて。
途中まで追ってたけど飽きてやめてしまった。 それはそうと次スレの季節
InfoPathのスレってどっかにない?
果たして次スレを立てるべきなのかと小一時間. DOMとかXSL等の質問ができるスレならいいなと見てきたがどうしても XMLの有用性云々の議論になって収束して下がってってのを繰り返し てるだけのように思う.
XMLスレはいろんな板に点在していたが、ここが一番まともだった。
よって次スレ立てを
>>980 に要求します。
みなさん、テンプレ用ネタよろ
そういうならせめてテンプレの叩き台くらい出してはどうか。
XMLに関するプログラミング全般についてのスレです。
話題の範囲が広いため、どのようなネタがあるか例をあげます。
・XMLについての話題(初心者質問など)
・XMLプログラミングの話題(DOM,REXMLなどのAPI群)
・XML関連技術についての話題(XSLやDTD、XML Schema、RELAXなど)
・XML実装の話題(XMLDBなど)
・XML利用法の話題(オレ様NSやRSS、FOAFなど)
関連スレ
前スレ
ttp://pc2.2ch.net/test/read.cgi/tech/1014643296/ ------------------------------------------------------------
関連リンクはたくさん在るのでみんな貼ってくれ。
日本語ドキュメント、解説ページ、それから各言語のAPIとか…もちろん原典へのリンクも
変化の激しく、規格更新が早い業界ですが初心者誘導のためにも日本語ドキュメントを
多めにしたいです。自分のお気に入りをよろしく。
>>954 それもテンプレにいれよう。ム板らしくていい。
>>954 我々も仲間に入れてくれ。
「単におれたちが質問したいから立てたぞ!」
958 :
デフォルトの名無しさん :04/01/27 14:49
XMLのデータフォーマットの仕様書は、どんな感じに作れば良いですか?
>>958 スキーマ言語使うんじゃないかな?
複雑な構造じゃないならインスタンスをいくつかと文章の方がわかりやすいかも。
そうなんでつか。
>>960 XML、スキーマ、でググルと、
"DTD"が氏んで、"XML Schema"の時代らしいですね。
"XML Schema"について、とか、データ検証ツールなんか、教えて欲しいでつ。
962 :
デフォルトの名無しさん :04/01/28 21:10
binaryXMLは?
XMLスキーマは使ったことないな。 XMLスキーマ使うアプリ客先に納品した人いる? ここでの「使う」はミドルウエア以外が
OraのASは?
異システム間の交換データの定義を XML Scheme でやったぞ。 そのあたりでは普通に使える。
>>966 ふーん。もうXMLスキーマって結構一般的?
まだDTDでがんばってんだけど
そろそろ勉強するかな、
>>963 >DTDでも事足りるってケースは多い.
データフォーマットを公開したいんだけど、
型宣言が出来るXMLスキーマの方が良いかな、
と思ったんだけど、
DTDの方が読める人が多いとかとっつきやすい、
なんて検討した方が良いかなぁ。
XML Schema……((((((;゚Д゚))))))ガクガクブルブル 大昔XercesCでSchemaを使ったときに、 自分のソフトのバグなのか、Schema定義を間違えたのか、Xercesのバグなのかわからない という状況を数多く経験した暗い過去が、心の傷になってまふ。
とりあえずDTDを作って、将来時間をかけてXML Schemaを作った方が良いのだろうか...
973 :
デフォルトの名無しさん :04/01/31 11:58
日本語でXercesC++のいい本はありますか?
975 :
デフォルトの名無しさん :04/02/02 18:14
MSXMLでSAXを用いてtextを取り出す処理で、::charactersメソッドを使うと、 データが改行している場合それぞれイベントとして分割されて発生します。 これを1つのtextとして処理するのは、アプリで連結するなりをしなければ、 ならないのでしょうか?
976 :
デフォルトの名無しさん :04/02/03 15:14
スキーマ言語はRelax NGを使うということでファイナルアンサー?
>>977 素性の良さでは明らかに Relax NG なんだが、ベンダーがサポートしてるのが
XML Schema のみだったりすることがあって悩ましい。InfoPath 2003 とかさ。
>>978 Relax NGからXML Schemaの形式を出力できるんじゃないっけ?
確か逆も出来たような…
使ったことないからうろ覚えですまん
これからの時代も lヽ ノ l l l l ヽ ヽ )'ーーノ( | | | 、 / l| l ハヽ |ー‐''"l / D | | |/| ハ / / ,/ /|ノ /l / l l l| l D ヽ l ・ i´ | ヽ、| |r|| | //--‐'" `'メ、_lノ| / ・ / | T l トー-トヽ| |ノ ''"´` rー-/// | T | | ・ |/ | l ||、 ''""" j ""''/ | |ヽl ・ | | D | | l | ヽ, ― / | | l D | | !! | / | | | ` ー-‐ ' ´|| ,ノ| | | !! | ノー‐---、,| / │l、l |レ' ,ノノ ノハ、_ノヽ / / ノ⌒ヾ、 ヽ ノハ, | ,/ ,イーf'´ /´ \ | ,/´ |ヽl | /-ト、| ┼―- 、_ヽメr' , -=l''"ハ | l ,/ | ヽ \ _,ノーf' ´ ノノ ヽ | | 、_ _ ‐''l `ー‐―''" ⌒'ー--‐'´`ヽ、_ _,ノ ノ  ̄ ̄ | /