トップページtech
542コメント171KB

XMLプログラミング

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
単におれが質問したいから立てたぞ!
0412ヽ(´ー`)ノNGNG
>>411
Relaxer で Relax -> DTD もできたはず。
悲しいかな、RelaxNG に対応してるのはβ版だけなんだが。

XMLScheme って実装の方は進んでないの?
0413デフォルトの名無しさんNGNG
>>412
MSXMLくらいじゃないか?対応してるのは。
0414デフォルトの名無しさんNGNG
んなこたーない。xercesも対応済み。
0415デフォルトの名無しさんNGNG
プログラマとユーザが非対応・・・

仕事ではSchemaもRelaxも見たことない、
見るのも書くのもDTDばかりな漏れはDQNプログラマですか?
0416デフォルトの名無しさんNGNG
DTDがちゃんと書けるなら立派なものかと。
0417デフォルトの名無しさんNGNG
本当のDQNは例えば「DTD死滅スレ」や「Schema vs Relax @春厨」や
「DTDばかりやってると馬鹿になる」みたいなスレを立てる奴のことだ。
0418デフォルトの名無しさんNGNG
DTDって読みにくいから、DTD手に入れたらすぐにRELAXに変換してから読んでる。
0419デフォルトの名無しさんNGNG
>>418
Relaxって、どこか(W3CとかISO)で標準化されつつあるんだっけ?
0420デフォルトの名無しさんNGNG
RELAX NG が ISO/IEC 標準ね。
Document Schema Definition Languages の一部として標準化された。
http://www.y12.doe.gov/sgml/sc34/document/0320.htm
0421デフォルトの名無しさんNGNG
>>420
うそいえ。まだドラフトだろ。
0422デフォルトの名無しさんNGNG
>>420
一瞬「いつの間になったんだ(゚Д゚;)聞いてねぇぞゴルァ」とか思った。
Status: Texy for DSI ballot って事は投票する一歩手前か?

XML Schema とダブルスタンダードになったりする事ってありえるのん?
教えて偉い人。
# ダブルスタンダードは困る…激しく。
0423デフォルトの名無しさんNGNG
これだけはいえる。



RELAX NG作った日本人は見た目キモイ。
0424デフォルトの名無しさんNGNG
>417の言う本当のDQNが降臨しました。
0425デフォルトの名無しさんNGNG
MSXMLつかってまつ。
IXMLDOMElementが指定されたアトリビュートを持っているかどうか
調べる方法はありますでしょうか。
存在しないアトリビュートにアクセスすると例外が投げられるので
いちいちキャッチする
、、、という方法は避けたいのですが。。。
0426デフォルトの名無しさんNGNG
hasAttribute
0427デフォルトの名無しさんNGNG
XMLファイルからXMLファイルをASPのincludeのように呼び出すにはどうすればいいですか?
0428デフォルトの名無しさんNGNG
>>426
error C2039: 'hasAttribute' : is not a member of 'IXMLDOMElement'
って出てダメなんですけど。。。
MSXMLのバージョンがふるいのかな。
0429デフォルトの名無しさんNGNG
> MSXMLのバージョンがふるいのかな。
と言っておいてバージョンを書かないとはどういうこと?
0430デフォルトの名無しさんNGNG
>412
libxml2、RELAX NGをサポートしました。(2.5.5以降)
0431デフォルトの名無しさんNGNG
>422
http://xmlhack.com/read.php?item=1847
http://www2.xml.gr.jp/log.html?MLID=xmlusers&N=7952

という意見もある。
0432デフォルトの名無しさんNGNG
>423
この人はどう?(w
http://www.jclark.com/bio.htm





0433デフォルトの名無しさんNGNG
なんだかんだ言いながら、もうすぐ500スレ逝く。
ヴァカかお前らは。

====================== 終了 =====================================
0434デフォルトの名無しさんNGNG
500 _スレ_ も?
0435デフォルトの名無しさんNGNG
SAXにて、
想定する順番どおりイベントが起こらなかったとき、例外を出して
止めるという事はできますか?

例えば
<?xml ... ?>
<a>1</a>
<b>2</b>
みたいにa,bという順番を想定していたのに
<b>1</b>
<a>2</a>
という風に来た時
例外を出してフォーマットエラーにしたい。
0436デフォルトの名無しさんNGNG
>>435
ハンドラインスタンスにListでもおいといて、イベントの履歴保存しとけばイイジャン。
直前のイベントといまのイベントの順序がおかしければ自力で例外投げれ。
0437436NGNG
DTDなりXSDなりのメタ定義情報を準備して、パーサにバリデーションチェック
お願いするほうが簡単だけどナ。
0438デフォルトの名無しさんNGNG
ありがとうございました。
解決しました。
0439デフォルトの名無しさんNGNG
解決しちゃったのかよ
0440デフォルトの名無しさんNGNG
こんなんばっかりだな。
所詮板違いということか。
0441デフォルトの名無しさんNGNG
ある要素<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で定義できる範囲で上のようなことを
実現するには、どのような構造にするのが良いでしょうか?
0442デフォルトの名無しさんNGNG
>>441
できます
0443441NGNG
>>442
ありがとうございます。できるんですね。
ただ、その後もXML Schemaの仕様を調べているんですが、
いまだにどのように実現できるのかわかっていません。
具体的にはどのように記述すれば良いんでしょうか?
0444デフォルトの名無しさんNGNG
>>443
普通に。属性にデフォルト設定できるでしょ?
0445441NGNG
>>444
あ、いえ、属性値のデフォルトではなくて、>>441に書いたように、
要素の省略を許しつつも、その要素がどの階層にも存在しなければ
エラーとしたいのです。
やっぱり無理なんでしょうか。
0446デフォルトの名無しさんNGNG
>>445
choiceで場合わけとかはどう?
0447デフォルトの名無しさんNGNG
MSXMLを使っています。
XMLファイルをロードするときに、すでに他からロードされている場合は
ロードに失敗するような、排他読み込みをするにはどうすれば良いのでしょうか?
0448山崎渉NGNG
(^^)
0449デフォルトの名無しさんNGNG
>>447
XMLがどうこう以前に、単にファイルをロックすれば解決でわ。
0450山崎渉NGNG
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0451デフォルトの名無しさんNGNG
質問です.

<unit>
<title>Dennis M. Ritchie</title>
<uri>http://www.cs.bell-labs.com/who/dmr/<;/uri>
</unit>
<unit>
<title>Ken Thompson</title>
<uri>http://cm.bell-labs.com/who/ken/index.html<;/uri>
</unit>

という XML を

<a href="http://www.cs.bell-labs.com/who/dmr/">Dennis M. Ritchie</a><a href="http://cm.bell-labs.com/who/ken/index.html">Ken Thompson</a>

と変換する XSLT はどう書けばいいんですか?
0452◆nZptw02DTU NGNG
本読めばすぐわかるよ。
だからおしえない
0453デフォルトの名無しさんNGNG
>>452

ある要素の内容を,ある要素の属性の値にする方法ていうのが,
本読むんでもどうしてもわからないんですよ

ヒントだけでもお願いできませんか?
0454◆nZptw02DTU NGNG
xsl:attribute
0455デフォルトの名無しさんNGNG
なんかXMLの勉強をすると必ずどっかにjclarkって名前が出てくるんだが
こいつは一体何者なんすか?
0456デフォルトの名無しさんNGNG
仕様の策定から仕様に忠実な実装の作成までこなす XML 界の偉人。
http://www.jclark.com/bio.htm
0457デフォルトの名無しさんNGNG
age
0458デフォルトの名無しさんNGNG
みなさんJAVA<->XMLのマッピングには何使ってます?
Relaxer,Castor,JAXB,ZEUS,XML2JAVA...
0459デフォルトの名無しさんNGNG
JAXB
もしくはCastor
0460デフォルトの名無しさんNGNG
zeus
0461デフォルトの名無しさんNGNG
.NET Framework
0462デフォルトの名無しさんNGNG
JXPathは少し芸風が違うんだっけ?
0463デフォルトの名無しさんNGNG
Relaxer使ってる。
XML"文書"のマッピングをしようとすると、MixedContentや、Choice、Orderに、そこそこ
対応さてれないとつらいので。
最近は調査してないけど、ほかのもできるようになったのかなぁ。
0464山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0465デフォルトの名無しさんNGNG
XMLを勉強したい故にお勧めの一冊なんですか?
0466趣味でXML Schema勉強中NGNG
・・・どうでもいいことかもしれんが、
次スレのスレタイでは「XML」じゃなくて"XML"にしとこうな。>>1

最初検索しても見つからなくて探しちゃったよ。

XML教えて教室
http://pc2.2ch.net/test/read.cgi/tech/982914729/l50

は過去ログに落ちてるし…。
0467デフォルトの名無しさんNGNG
次スレがあればな
0468デフォルトの名無しさんNGNG
SOAPスレってねぇな、そういえば、
0469デフォルトの名無しさんNGNG
あったけど消えたと思った。
0470デフォルトの名無しさんNGNG
SEXML
最強言語になる
特にネットワーク向けの言語である
0471デフォルトの名無しさんNGNG
SヨXML
最強のハッタリ言語。
0472デフォルトの名無しさんNGNG
XSML
0473デフォルトの名無しさんNGNG
>>472
eXtendStandardMetaLanguage?
0474デフォルトの名無しさんNGNG
SXMLというのは本当にあるけど、たぶん最強。
0475デフォルトの名無しさんNGNG
<保守 name="趣味でXML Schema勉強中" mail="sage"/>
0476デフォルトの名無しさんNGNG
<hoshu>
<age/>
</hoshu>
0477デフォルトの名無しさんNGNG
XMLプログラミングってなんだろう。
0478デフォルトの名無しさんNGNG
XMLを扱うプログラミング
0479デフォルトの名無しさんNGNG
プログラムをXMLで書く
0480デフォルトの名無しさんNGNG
>>479
XMLで書くスクリプトってのは、すでにあるな。EVALが楽かもね。

Antなんか殆どスクリプト同然だよな。死ぬほど遅いスクリプト。
0481デフォルトの名無しさんNGNG
>>480

>EVALが楽かもね。
威張る?

>Antなんか
蟻?
0482デフォルトの名無しさんNGNG
>>480
XSL なんかも近いと思うけど。
0483デフォルトの名無しさんNGNG
厨質問ですまそ。
XMLをHTMLに変換するXSLを定義したいんですが、補助してくれる
フリーのツールってありますでしょうか。
どなたか教えてください。おながいします。
0484デフォルトの名無しさんNGNG
非常にあいまいな質問ですが、
SGMLでできることのうち、する意義のあることは、
全てXMLの範囲内でできるのでしょうか?
0485デフォルトの名無しさんNGNG
>>484
曖昧杉。まぁ印刷業とかでSGMLが前提で無いならXMLでやってみれ。
ダメならそれからSGMLに移っても多分それほど回り道ではない予感。

>>483
フリーじゃないとダメなのかい?
(もれはついこの間からXMLSPY&StylesheetDesignerを使い始めたところ。30日試用版はタダすよw。)
0486484NGNG
>>485
すみません。

HTMLがらみで、DTDの読み方をほんの少し知っている程度のど素人です。

出版業に限定してググってみると、
SGMLを軽視するな、というようなことを言う人がいます。
これからはSGMLよりXMLだ、というようなことを言う人もいます。
そのこころがよくわからない、ということです。

前向きな出版業の人は、いかに完璧なレンダリングをするか、ということと、
いかに徹底した論理マークアップを行うかということと、
いかに低いコストでそれを行うかということを、真剣に考えていると思います。
といったときに、XMLとSGMLのどちらが有利なのでしょうか?
というのが質問です。
0487デフォルトの名無しさんNGNG
>>486
だから何がやりたいのよ。>>485の言う通りとりあえずXMLやったら?
0488山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0489デフォルトの名無しさんNGNG
>>486
>SGML を軽視するな
既に SGML に金をかけちゃったんでそういってるだけじゃないかね。
0490デフォルトの名無しさんNGNG
>>486
有利不利は(いつでもそうだけど)条件による。

例えば、既にSGML資産があるならSGMLから始めるしかないんだろうし、
何もないなら今やXMLの方が色々手ごろな参考文献もツールも揃ってるし
仕様も明快でコンパクトな分だけ楽だと思うよ。

幸いSGMLとXMLは親子みたいなもんで似てるところも多いから
後からSGMLに移る必要が出てきたらそれから差分だけ
なんとかすることにしてもそんなに無茶じゃないと思う。
0491デフォルトの名無しさんNGNG
>>490
> >>486
> 仕様も明快でコンパクトな分だけ楽だと思うよ。

ま、正確に言うと仕様書の量だけで言えば大元のSGMLはコンパクトらしいが
その分SGMLはXMLより許容される文書の様態が多様なんでそれが大変だという噂。
この辺が柔軟性対コストでトレードオフがあるところらしい。

軽視するなってのはやっぱり
既存資産(文書インスタンス、スキーマ、ツール、技術、理論、ノウハウ)を
見ての発言だと思うよ。
印刷関連業界では長らく使われてきたという噂も見るので。
ま、その資産の幾らかは様々な形で徐々にXML世界に移植されてきてるではないかと
私個人は無責任かつ無根拠に思うけどねw。
0492デフォルトの名無しさんNGNG
.
0493デフォルトの名無しさんNGNG
>>492
冬眠?
0494デフォルトの名無しさんNGNG
初心者的なことかもしれないけれど、迷ったので質問させてください。

今、XMLで構築されたデータベース的な情報の中からXSLで情報を摘出するようなシステムを考えています。
具体的に言うと、日記を毎日XMLで書いて、ホームページの更新をXSLのみでやろう、というようなことです。
それ自体は特に問題なく出来そうなのですが、「日記を毎日書く」というのをどのように実装しようか
ちょっと迷っています。

エディタで書くのはあまり現実的な方法ではないので、何かしらのツールを書こうと思っていますが、
定型のXMLを毎回既存のXMLに追加していく場合、どのような方法で行うのが良いのでしょうか?
DOMモデルを固めうちでやってしまった場合、将来的に変更があった場合などに困りそうですし、
XML SchemaやRELAXERなどを使うのが正しいのか、いまいちよくわかりません。

簡単に「〜がいいよ」というのを教えてもらえませんか?よろしくお願いします
0495デフォルトの名無しさんNGNG
>>494

■XMLDB(e.g. Xindice)を使う
一番スマートと思える方法だが、XindiceはJava1.4と相性が悪くて僕は断念した。
リリースビルドも2年以上更新されてないし、半分止まったプロジェクトなのだろうと判断。
アップデートにはXUpdateを使う。

■普通のDBに入れる
一日ごとにDBのレコードにしちゃう。ロックも一日単位で行えるので、排他処理が確実。
ただ、XSL+XPathみたいなXMLバリバリな処理とは相性悪いよね。

■一つのファイルに入れちゃう
排他処理とか大変そう。
排他処理をファイルのロック等に頼らず、サーブレットのスレッド同期で行うので有れば、
更新等の処理を全部サーブレット側からのみ行うようにすれば、なんとかいけるような。
この場合、DOMツリーを常にメモリに保持して置いて、XMLのファイルはバックアップとして扱うことになるかと。

僕は当面最後のアプローチをとっておいて、使えそうなXMLDBが安く(あるいは無料で)
手にはいるようになったらそちらに移行しようかと考えてまつ。
そもそもXMLをストレージに使うのは云々、というツッコミ歓迎。
0496デフォルトの名無しさんNGNG
>>13
ワラタ
0497デフォルトの名無しさんNGNG
>>495
Xindice、そんな状況なのか…情報サンクスです。

ただ、DBを作るほどではなくて(というか権限が無くて出来ない)
本当に個人が日記を毎日更新するくらいの簡単な話です。

考えていたのは、1つのXMLファイルにデータを全部入れて、
更新があるたびに適当に書いたプログラムで(おそらくxerceを使って)
XSLをかけ、いくつかのHTMLを定期的に作成する、そういう流れを考えていました。

で、XMLファイルの定期的な更新が意外と面倒になりそうだったので、
これもプログラムで処理しようと思ったわけですが、DOMで書くのは
なんだかいまいち正しくないような気がして……。

でもDOMでいいかも、とか思い直してきました。
なにか他にいい方法があればぜひ教えてください
0498デフォルトの名無しさんNGNG
<?xml version="1.0" ?>
<htmldoc>
<![CDATA[ hoge<br>hogehoge ]]>
</htmldoc>

「hoge
 hogehoge」
と出力するxslはどう書けば良いのでしょうか。
何をどう書いても
「hoge<br>hogehoge」
と出力されてしまいます。
0499_NGNG
http://homepage.mac.com/hiroyuki44/hankaku08.html
0500デフォルトの名無しさんNGNG
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★☆★☆★ 新商品 ゾク・ゾク 入荷 ☆★☆★☆
★☆                       
☆★ 送料激安!!  送料激安!!  送料激安!!
★☆      http://www.get-dvd.com      
☆★  激安アダルトDVDショップ        
★☆    お買い得!! 1枚500円〜 急げ!   
☆★    インターネット初!「きたぐに割引」  
★☆    北海道・東北の皆様は送料も激安!   
☆★      http://www.get-dvd.com      
★☆        スピード発送!        
☆★      http://www.get-dvd.com      
★☆        商品が豊富!         
☆★      http://www.get-dvd.com      
★☆                       
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
0501???NGNG
http://www.39001.com/cgi-bin/cpc/gateway.cgi?id=ookazujp
http://www.39001.com/cgi-bin/cpc/welcome.cgi?id=ookazujp

!!!!! ━━━━━━(゚∀゚)━━━━━━ キター!!!!!
0502デフォルトの名無しさんNGNG
>>498
xsl:value-ofでdisable-output-escapingをyes
0503デフォルトの名無しさんNGNG
すいません、他の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を使用しています
0504デフォルトの名無しさんNGNG
>>503
スレ違い
0505デフォルトの名無しさんNGNG
>>503
敬語の用法が間違っている
0506503NGNG
たった今、解決しました
とりあず、wsdp1.2のJarファイルをJ2sdkのlibフォルダにコピーしたら出来ました

詳細
%WSDP_HOME%\jaxp\lib\endorsed\*.jarを
%JAVA_HOME%\jre\lib\endosed以下にコピー

ちなみにJava2SDK1.4.1._02の場合です
0507デフォルトの名無しさんNGNG
xmlってvbsみたいなことできないの?
0508山崎 渉NGNG
(^^)
0509デフォルトの名無しさんNGNG
>507
vbsみたいなことってどんなだよぬ
0510デフォルトの名無しさんNGNG
すいません、なんか上手くいかなくて困っています
スキーマ定義です↓

<?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"

0511デフォルトの名無しさんNGNG
//これがソースです 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);
}
}
■ このスレッドは過去ログ倉庫に格納されています