XMLプログラミング

このエントリーをはてなブックマークに追加
>>928-929
>  処理によっては明らかに別のモデルのほうが適しているってケースはあるはずで
>  そこに無理にXMLを持ち込む必要はないでしょ?

無意味な文章。どのような場合に適していると判断するべきかが、
問題になるのであって、適しているものを使うべきなのはあたりまえだ。

>  たとえば、XMLDBのデータファイルの形式はどうあるべきだと言っている?
>  漏れは何でもいいと思う。>>925は人間が読めるXMLであるべきと思っているってこと?

なんだっていい。「適した」ものをつかえばいい。
XMLでOKでそのほうが開発が簡単ならそうすればいい。要求仕様的に無理なら
かえるしかない。

あなたの「適した」は機械処理の効率しか考えてないと言ってるんだよ。


それから、
まさかPSやPDFが人間に読みかきできないものだと思ってるとはね。
XMLだって数としては読めるもののほうがずっと多い。

いちおう説明しておくけれど、
PS、PDFは(Adobeが開発したんだっけ?)仕様が公開されている言語で、
人が読み書きできます。UNIXの設定ファイルも、
あえてプレインテキストが採用されている。
一方、WordやExelは独自のファイル形式を用いた(さらにそれによって、
アップグレードを強制してきた代表的な)ソフトウェアの一つ(二つ)
だった。Windowsの設定はレジストリ等…

新しいWordの一般的な使用方法がXMLになったとしたら、それは
カテゴリが前者に移るだけだ。
932919,925,931:04/01/15 07:39
>>930
>  XMLファイル、つまりテキストファイルとして
>  出力されるものっていうのは、ツリー状のデータの表現形式の
>  ひとつなのではないの?それが非テキストファイルの

そうではない・そんなことが重要なのではないという認識を>>925で説明している。
ポータビリティが重要。ツリー構造なんて今まででもみんな使ってる。

>  またXMLで可能になる相互運用といっても、S式でデータと手続きを
>  丸ごと送るようなものでもない限り、それ程大したものじゃない。

全然意味がわからない。スキーマって知ってる?
>>931
に捕捉
>  あなたの「適した」は機械処理の効率しか考えてないと言ってるんだよ。

この「機械処理の効率」は、狭い意味で(速度や記憶容量)の効率。
934930:04/01/15 08:08
>ポータビリティが重要。ツリー構造なんて今まででもみんな使ってる。
ポータビリティね。それはXMLでは重要だな。

>XMLの存在意義(全てをXMLで)そのものに矛盾していて
こんな存在意義はあなたと原理主義者の脳内にしかないだろう。
そもそもあたなのいうXMLとはなんなのか?
おれのいうXMLとは「ツリー状のデータ構造を表現する統一されたシンタックス」
という意味でしかない。XML"ファイル"がプレーンテキストであることから得られる
人間に対する可読性云々は、XMLそれ自体とは関係のない話しだと思ってる。

各々の言うところのXMLとはなんなのかを、まずはハッキリさせないと
議論になりません。噛みあってもいないです。
>>934
>  おれのいうXMLとは「ツリー状のデータ構造を表現する統一されたシンタックス」
>  という意味でしかない。XML"ファイル"がプレーンテキストであることから得られる

XMLの規格はプレーンテキストであることを保証してますが。
あなたの脳内XMLとはどうやら違うもののようですね。
そりゃぁ噛み合わないわけだ。
>>930
  >  またXMLで可能になる相互運用といっても、S式でデータと手続きを
  >  丸ごと送るようなものでもない限り、それ程大したものじゃない。
の意味を説明してくれないか?
>>934
YAML 使ったら。XML 要らなさげ。
938914=923,928-929:04/01/15 23:51
>>931
漏れの説明が機械処理的な部分しか見てないってのはまさにそのとおり。
で、確認したいのはじゃあこういう要件のところにまでXMLを持ち込むのが
(すべてXMLでということが)>>919の言う進むべき道なの?ということ。

少なくとも>>925ではそう読めたし、そんなの無茶だ(たとえば機械処理には
向かないんだから)というのが>>928で言いたいことだったんだけど。
でも、>>931では向いたとこに向いた形式使ったらって言ってるから違うのかなと。


PDFってバイナリ埋められるよね?それは人間が読み書きできないでしょ?


あー、やっぱり>>919の考えるXMLのあるべき姿が見えません。
仕様が公開されてりゃ万事OKって態度なん?
例としてPSだのPDFだの出てくるってことは単純にストアするための
形式に(要するにストレージとしてのXML)にこだわってるだけに見える。

XMLなんてのは>>930の言うようにテキストファイルに構造を持たせたものだと
漏れは考えてるので、さらに上にかぶせる仕様(スキーマ定義)が「必ず」いるはず。


>>930
漏れはXMLに関しては同じような認識。
ただ、そのままの形で蓄えることに大きな意味は見ていません。
外部システムやライブラリの外側のオブジェクトに対するインターフェースが
統一される部分がメリットだと思ってて、この部分は今後も推進されて
欲しいくちです。
従来のネットワークやファイルのような、プラットフォームのアーキテクチャに
それらが強く依存していたことから比べたらそれだけでも十分なメリットだと思われ。
939914:04/01/15 23:55
>>938補足。
XMLのメリットとしては、下記のようなのが頭にある。
・項目名がデータと一緒にある
・途中で項目が追加になっても従来の処理は動かせる
・XML間の変換のルールが機械的に処理できる(人がやらなくてもいい)

なんか抜けてるかもしれんけど。
940919:04/01/16 08:57
> PDFってバイナリ埋められるよね?それは人間が読み書きできないでしょ?
おいおい。配列に(エンコードした)バイナリ埋めてたらC言語だって
人に読めないことになるのかよ。

> 漏れは考えてるので、さらに上にかぶせる仕様(スキーマ定義)が「必ず」いるはず。
そのとおり。だからXML+schemaと毎回書かなくても分かるだろう?
# なんで当り前のことばかり。

XML(+schema一応書くか)の第一の利点は特定のアプリケーションに依存しない形で
書式と意味の両方を保持できる所にある。
# 他にもあるぞ。schema無しだってparser書く手間の省略ができるようになるし。

XMLに対して、XMLの仕様ってのは(それがXMLであると認識する)外部に対して
どのようであるかということを定めているのであって、そもそも
「インターフェイス」でしかない。直接見られないようなところ、たとえば処理する
ソフトウェアの内部やハードディスク上の生のビット列では、
どんな形であろうとどうでもいい :-)
941919:04/01/16 08:59
あなたのいう「ストレージ」とはなにか?
ハードディスクにあるファイルとして見る時はストレージとしての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で「ストレージ」しておくメリットはたくさんあるが、
君の機械処理の効率というメリットは極めて近視眼的なものにすぎない。

# なんか張り付ける時に大文字こもじが逆転してしまった。
# よみにくくてすまん。
944914:04/01/16 20:57
>>941(=919)

かみ合ってないところがわかったよ。
漏れはまったく論理的にどの処理に対しても(それこそファイルシステムや
メモリ空間に至るまで)>>919がXMLを適用すべきだと言っていると読んでいた。
>>925の「XMLの存在意義(全てをXMLで)」ってとこから余計にそう思った。

でもそうではなくて、物理的なレイヤはどうであろうとかまわない、という
スタンスなんだね。
すべてをXMLでというのは、そもそも蓄えるもの通信するもののみを
前提とした上でインターフェースとなるバイト列はすべてXMLたれといっているわけだ。

今までに書いた漏れの言葉で言えば、これは「外部向けインターフェース」。
945914:04/01/16 20:58
> ハードディスクにあるファイルとして見る時はストレージとしてのxmlなんだよね?
> そうだとしよう。

Yesなんだけれど、ファイルという形式を取っている以上暗黙のうちに
インターフェースだと思っている。(ファイルはインターフェースのひとつ)
だから文脈によってはNo。

> あなたの主張は、
> たとえばwORDはディスクに効率優先の形でそのデータを保存するべきである。
> インターフェイスとしてxml形式でエクスポートできる機能があれば良い。rIGHT?

これはNo。
処理中は独自形式でよくて、保存はXMLであって欲しい。

漏れがずっと主張してたつもりなのは、DOMを直にいじるような
プログラミングスタイルではなくSchemeから読み込まれたモデルを扱うべき
だろうということ。
この例で言えば、Wordモデルを実装したClassをいじることで結果として
XMLで保存されるような。
DOMや、Schemeを利用したのWordモデルの定義がアプリ向けの
インターフェースのつもりだった。

>>919の嫌う「ライブラリ」はSchemeとSchemeコンパイラ的なもので(動的に)
具現化しているはずだと思う。

>>943で言っているような「別のソフトでの加工、あるいは移行」についても
ソフトウェア間で共有できるモデルのSchemeが定義できていることを前提と
しているわけで、実は暗黙のうちにライブラリを想定しているように見える。
946914:04/01/16 20:59
まあともかく、議論がこじれたのは漏れの「ストレージ」「インターフェース」の
取り方が悪かったせいだな、すまん。
漏れの意識では、ファイルシステムはインターフェースであるのでファイルを前提と
した話ではおそらく同じことの言い換えだと思う。

ここまで書いてきて、ストレージとしてのXMLってなんだって気がしてきたな。
すまんね、理解があいまいなままうだうだ書いて。
途中まで追ってたけど飽きてやめてしまった。
それはそうと次スレの季節
InfoPathのスレってどっかにない?
果たして次スレを立てるべきなのかと小一時間.
DOMとかXSL等の質問ができるスレならいいなと見てきたがどうしても
XMLの有用性云々の議論になって収束して下がってってのを繰り返し
てるだけのように思う.
XMLスレはいろんな板に点在していたが、ここが一番まともだった。

よって次スレ立てを>>980に要求します。
みなさん、テンプレ用ネタよろ
そういうならせめてテンプレの叩き台くらい出してはどうか。
952テンプレ叩き台:04/01/25 02:03
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とか…もちろん原典へのリンクも
変化の激しく、規格更新が早い業界ですが初心者誘導のためにも日本語ドキュメントを
多めにしたいです。自分のお気に入りをよろしく。
とりあえず派生スレ立てました

【XML】Scalable Vector Graphics【DOM】
http://pc2.2ch.net/test/read.cgi/tech/1074949936/l50
9541:04/01/25 03:30
>>951
単におれが質問したいから立てたぞ!
>>954
それもテンプレにいれよう。ム板らしくていい。
>>954
我々も仲間に入れてくれ。
「単におれたちが質問したいから立てたぞ!」
@IT:XML & Web Services
http://www.atmarkit.co.jp/fxml/
XMLとWebサービスを理解し、ビジネスに活用するためのフォーラム

リンク先に簡単な解説がつけれるならそれもよろ。
この場合はHTMLのメタに書いてあった。
958デフォルトの名無しさん:04/01/27 14:49
XMLのデータフォーマットの仕様書は、どんな感じに作れば良いですか?
Webサービス プログラミング総合スレッド
http://pc2.2ch.net/test/read.cgi/tech/1031149340/
Webサービス関連(SOAP/WSDL/UDDI/ApacheSOAP/Axis/.NET)
>>958
スキーマ言語使うんじゃないかな?
複雑な構造じゃないならインスタンスをいくつかと文章の方がわかりやすいかも。
961958:04/01/28 09:42
そうなんでつか。>>960

XML、スキーマ、でググルと、
"DTD"が氏んで、"XML Schema"の時代らしいですね。

"XML Schema"について、とか、データ検証ツールなんか、教えて欲しいでつ。
962デフォルトの名無しさん:04/01/28 21:10
binaryXMLは?
963958:04/01/28 23:43
>>961
XMLSchema入門:
http://www.atmarkit.co.jp/fxml/rensai2/schema01/schema01.html

XMLSchemaのValidater:
http://www.w3.org/XML/Schema
↑すまんがここから適当にあたって試してくれ俺はXMLSchema使いじゃない罠

Java+Xercesで自分で書くってのもあるみたい
http://www.ki.rim.or.jp/~kuro/XML/XMLSchema/XMLSchema-01.html

検証系なら"Validate"とかでググってみ

余談だが、DTDが死んでって言うけど、DTDでは何が出来ないかをちゃんと把握して使えば
DTDでも事足りるってケースは多い.
XMLスキーマは使ったことないな。
XMLスキーマ使うアプリ客先に納品した人いる?
ここでの「使う」はミドルウエア以外が
OraのASは?
異システム間の交換データの定義を XML Scheme でやったぞ。
そのあたりでは普通に使える。

967964:04/01/29 05:20
>>966
ふーん。もうXMLスキーマって結構一般的?
まだDTDでがんばってんだけど
そろそろ勉強するかな、
968958:04/01/29 08:47
>>963
>DTDでも事足りるってケースは多い.

データフォーマットを公開したいんだけど、
型宣言が出来るXMLスキーマの方が良いかな、
と思ったんだけど、
DTDの方が読める人が多いとかとっつきやすい、
なんて検討した方が良いかなぁ。
XML Schema……((((((;゚Д゚))))))ガクガクブルブル

大昔XercesCでSchemaを使ったときに、
自分のソフトのバグなのか、Schema定義を間違えたのか、Xercesのバグなのかわからない
という状況を数多く経験した暗い過去が、心の傷になってまふ。
970968:04/01/29 09:57
とりあえずDTDを作って、将来時間をかけてXML Schemaを作った方が良いのだろうか...
>>969
同志よ…・゚・(ノД`)・゚・
973デフォルトの名無しさん:04/01/31 11:58
日本語でXercesC++のいい本はありますか?
C++でXML(主にxerces)やろう!
http://pc2.2ch.net/test/read.cgi/tech/1017641205/
975デフォルトの名無しさん:04/02/02 18:14
MSXMLでSAXを用いてtextを取り出す処理で、::charactersメソッドを使うと、
データが改行している場合それぞれイベントとして分割されて発生します。
これを1つのtextとして処理するのは、アプリで連結するなりをしなければ、
ならないのでしょうか?
976デフォルトの名無しさん:04/02/03 15:14
>>975
ttp://www.atmarkit.co.jp/fxml/rensai/xmlwomanabou10/learning-xml10.html

XML文書に書き込まれた改行文字は改行文字として、アプリケーションプログラム
に渡される。これを活用するのも、無視するのも、アプリケーションプログラム
次第である。
スキーマ言語は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  `ー‐―''" ⌒'ー--‐'´`ヽ、_   _,ノ ノ
   ̄ ̄   |           /