<XML総合 part="3"/>
■ このスレッドは過去ログ倉庫に格納されています
ああHTMLは厳密にはXMLじゃないけどね
XHTMLにでもしとこうか >>785
>だからある階層の意味論はそれより上位の意味論については
>関知できないっていってるんだよ
逆にいうと、論点を不用意により上位の意味論に拡大すると、
本来感知すべき問題さえ感知できないということになってしまう危険があるということですよね?
あなたは今まさにそういうことをしていると思います。
「本来の意味」という言葉のあいまいさを不必要に拡大しすぎだと思います。
具体例を示しているのですから、問題領域は明白なはずです。 結局sibling間に順序は規定されてないってことで良いの? XML的には兄弟の順序は重要ではないけれど
それを解釈する人間なりソフトが重要とみなしていれば重要だということか
要はユーザがそのXMLにどう意味を与えるかってことだね
(これはスキーマがなくてもできる)
集合型と配列を直列化した結果としてのXMLをそれぞれ考えてみるとわかりやすい 違う要素名ならスキーマで対処できるけど、
同じ要素名だとスキーマ使っても順序規定できないね。
結局XML1.0単独だと>>769のように文書順序を変えてしまうXMLパーサが存在し得る
ことになる。
実際には出回っているXMLパーサは文書順序を変えないと思って問題ない。 そういうパーサーは書けるがそれはパーサーの規格をまず先に確認すべき話。
スキーマ云々は、パーサの規格が具体的にスキーマ規格を参照していてスキーマの内容が
パーサの振る舞いと関連している場合に始めて問題になる。 >>795
パーサーの規格はパーサーを書く人が決めるわけだが・・・ >>795
あ、勘違いした。
そうだね、だから結局パーサー次第。
XML1.0単独の規格内では兄弟間の順序にはなにも規定がない。
パーサーにDOMを使えば順序は保証される。 >>769
極端なことを言うと
<doc>
<p index="1">あ</p>
<p index="2">い</p>
</doc>
と
<doc>
<p index="2">あ</p>
<p index="1">い</p>
</doc>
と
<doc/>
を同一視してなおかつXML 1.0に準拠した処理系を考えられるけど、だから何?
Unicodeは65番がAであるとは定めているけど"C, A, T"と"A, C, T"の意味が同じかどうかなんて定めてない。しかしUnicodeで小説を扱えないという主張は意味が無い。 >>799
>を同一視してなおかつXML 1.0に準拠した処理系を考えられるけど、だから何?
それはそういう処理系を作る人の自由でしょう。
>Unicodeは65番がAであるとは定めているけど"C, A, T"と"A, C, T"の意味が同じかどうかなんて定めてない。しかしUnicodeで小説を扱えないという主張は意味が無い。
>「本来の意味」という言葉のあいまいさを不必要に拡大しすぎだと思います。
>具体例を示しているのですから、問題領域は明白なはずです。 同じ要素名でもスキーマで順序は宣言できるんじゃないの?
順序を入れ替えてもValidationが通るだけであって
入れ替える前後のXMLを「同一」とみなすかは別問題じゃね?
つーかValidationだけが意味を持つならannotationは何なんだって話。
ま、>>800には関係ないことのようだが。 質問者もああいえばこういうで全然収拾が付かないな。本来の質問に戻れよ。
>>769
>だとすると、小説やレポートなどの文章データを本来の意味を損なわずに
>正常な形でXMLで扱うのは不可能なような気がするのですが。
可能。
はい終了。 そこは順序を示す属性に数字でも入れておけということでしょ? >>803
XMLはXML1.0のみで使われるわけでなく、
通常はその周辺技術と一緒に使われる。
一般的にパーサとしてDOMやSAXが使われ、
その限りでは文書順序は保存されるってことでしょ。 そういうスレだからな
説明せずに解答だけ書くクズはイラね なにつまらない議論を
と思っていたが、XML1.0読みながら素直にXML-DBとか実装してたら
普通にありえそうな話だなあ 野暮ついでに言うが
XMLの整形式として要素の順序が規定されてないだけであって
XML1.0の仕様書にはDTDも含まれてるからな?
誰かの受け売りじゃなく仕様書ちゃんと読んでるよな?
そのDTDも今じゃ見かけないし2.0で排除予定だけど
もはやXML2.0自体が霞んで見えない この文脈でDTDが含まれているか否かは本質じゃない
XML1.0の仕様書に規定されているElement Type Declarationsによって
要素の順序は規定できるんだから
XML1.0単独だと要素の順序を規定できないって誤読すんなよって話 XHTMLの<meta>タグの登場順をXML処理系で保証するべきなのか否か、
定義する仕組みとか何かあるんだっけ? >>810
要素名が要素の順番のことを言ってんだよ。 XPathが登場順を規定してるのなら
XQueryでも登場順は規定されているんだろたぶん >>812
お前はレストランとかで待たされるとき
前に並んでた人の名前が自分と同だったら割り込んでよいなんて思うのか? >>815
その「名前」は要素名じゃなくてデータだろks >>810はXML文書とそれによって表現されるツリーオブジェクトを
明確に区別できていないように見える。
当然ながらXML1.0ではXML文書からオブジェクトを生成する場合の
兄弟間の順序など規定されてない。
順番通りに並べることもせず、順番を記録することもしないならば、
新たにXML文書に書き出すときに元の順番など保証されない。
あくまでvalidになるように要素を並べるだけ。
XML文書とツリーオブジェクトの関係を決めるのはあくまでDOMであって、
XML1.0規格ではない。 結局>>799の質問の要点は
「XML文書で表現されるデータは順序付きツリーなのか順序無しツリーなのか?」
ってことだな。
その答えは、
「どちらであるかは決まっておらず解釈次第であるが、
通常は順序付きツリーとして扱われる」
ってことだ。 XMLでタグや属性名で大文字や小文字が区別されるケースなんて皆無なのに厳密に区別しないと動作しないせいで余計に効率が悪い
XmlNodeとXmlElementを分ける意味がわからない1つでいいだろ
GetElementsByTagNameはエレメンツでGetElementByIdはエレネントってトとツが違うのは何らかのトラップのつもりか?
しかも、なんで一方に1種類の戻りパターンしかないんだよ
タグで単一ノードが欲しいことだってあるだろうし、Idで複数欲しいことだってあるだろ
何重にもなってるいちいちGetElementsでとってエラーチェックして0番目のをまたGetElementsしてエラーチェックしてってやかましいわ
と思ったらselectNodesなんてのがあるじゃない
なかなか気がきくなと思ったらエラーしか返ってこねーよ
しかも、どこがエラーか内緒かよ >XMLでタグや属性名で大文字や小文字が区別されるケースなんて皆無
え?
>Idで複数欲しいことだってあるだろ
え?
何やってんのか全然わからんけどXPathでも使えば記述量は減らせんじゃね
属性廃止して全部要素でいいじゃんと思うことはある IE10の標準モードで document.XMLdocument が使えなくなって困っています。
ローカルフォルダに置かれたXMLデータファイルとXSLTスタイルシートを
下記のサイトで示されている手法で静的に紐付けして処理しています。
http://www.atmarkit.co.jp/fxml/tecs/001stylelink/01.html
XMLデータをブラウザで表示する際に、XSLT内に記述した
javascriptコードでデータを集計処理しており、
javascriptにXMLデータを受け渡すために
document.XMLDocument.getElementsByTagName()
を使っています。
ところがIE10の標準モードでは document.XMLdocument が
使えなくて困っています。
互換表示モードならば使えるのですが、
標準モードで使えるようにjavascriptコードを
書き変えようと考えました。
しかし、静的に紐付けしたXMLファイルからデータを
取りだす手法が見つかりません。
XMLHttpRequestはローカルファイルには使えないようでした。
何かいい解決方法がありましたらお教え下さい。 >>822
IE を窓から捨てる!
Windows を世の中から無くす。
以上。 そもそもXSLTにjavascriptってどういうこと?
XMLをXSLTでHTMLかXHTMLかに変換していて
変換後の(X)HTML内にjavascriptを埋め込んでるということ?
そうだとしたら何でdocument.XMLdocumentを使う必要があるの?
あるいはXSLTを使う必要があるの? xslt(xpath?)の質問です。
HTMLの表のような構造のXMLがあるとして、「ひとつ前の行のカラム」は
どう表現すればよいでしょうか?
例えば以下で、b-3の位置からb-2の位置を表す方法を教えてください。
<table>
<row>
<cell>a-1</cell> <cell>b-1<f>dummy</f></cell> <cell>c-1</cell>
</row>
<row>
<cell>a-2</cell> <cell>b-2</cell> <cell>c-2<f>dummy</f></cell>
</row>
<row>
<cell>a-3</cell> <cell>b-3</cell> <cell>c-3</cell>
</row>
<row>
<cell>a-4</cell> <cell>b-4</cell> <cell>c-4</cell>
</row>
</table> >>825
本当はこの次に、空白でないcellを探して、
行を前にたどる、ということをやりたいのですが、
そういう表現はできるのでしょうか? 1行(row)毎にcellをなめる前提でコンテキストノードがcellのとき
<xsl:variable name="col" select="position()"/>
何列目かを変数に保存
<xsl:value-of select="../preceding-sibling::row[1]/cell[$col]/text()"/>
コンテキストノードの親(row)の→../
前側の兄弟の→preceding-sibling::
1番直近のrowの→row[1]/
$col列目のcellの→cell[$col]/
テキスト→text()
preceding-siblingは元データの下側からカウントアップしていくのがハマリどころ >>827
できました〜。ありがとうございます。
実はここでは簡単にしましたが、問題はもう少し複雑で、名前空間と複合した問題でハマってました。
でも、こっちが間違いない、というところが確実に突破口になりました。xslt始めて一週間、ここで5日くらい悩んでました。
答えはこんな感じで。
<xsl:variable name="col" select="position()"/>
<xsl:value-of select="../preceding-sibling::row[cell[$col]/text()!=''][1]/Cell[$col]/text()"/> 828です。また躓いてます。
変数に格納した内容に対して、繰り返し
(再帰的に)template matchさせるには
どうしたらよいのでしょう?
cellが空の時は、他のcellの内容(XML)の
処理結果を出力したいのです。
外でcellの内容を変数に格納し、
その変数の内容をparamでtemplateに渡した後、
paramの変数に対してxpathの指定をする方法はあるのでしょうか?
XMLのelementを一文字ずつ処理するのは
何か違う気がしますし…。 何がしたいのか分からん
デリゲートとか高階関数みたいなことがしたいってこと?
だとすれば標準機能では無理
そうはいっても別のやり方で本来の目的は果たせると思う 補足するとXSLT1.0の場合
変数の値の型がnode-setであれば当然/とか[]とかの演算子が使える
一方変数の値の型がResult Tree Fragmentの場合は使えない
必要なら処理系拡張のnode-set()関数とかを使う
XSLT2.0はその点改良されているらしいが使ってないので詳しくは知らん 率直な質問なのだけど、XSLって今時何に使うの?
個人的には使いどころが極めて少ない既にオワコン、というかそもそも始まりも
しなかった技術という評価なのだけど。 今時も何もXSLTは提案当初からXMLの変換だよ
「極めて少ない」と「ない」は違う
ニッチな分野にマイナー言語って構図は珍しい話じゃない
XSL-FOの方は…… XMLの代表的な使われ方ってRSSだけど、
RSSって使われてるの? 代表的?
セマンティック・ウェブという「典型的」「古典的」な使われ方ってんなら分かるけど
RSSはミニブログでないブログ文化とともに死んだイメージ 詳しくは知らないんだけどSEO関係でGoogleに登録するサイトマップはXMLじゃなかったか ウェブサイトのトップURLからGoogle登録用のサイトマップを自動生成するソフトの作り方を教えてください ネトゲの通信内容見たらデータがXMLだったことはある 最近は設定ファイルなんかでiniファイルの代わりに使われることがあるだろ この程度の内容ならiniファイルでいいだろ、ってことも多いなw
全くネストしてなかったりとか。 内容関係ないだろ
JSONとかYAMLとかならまだしも
何で得体の知れないiniファイルをわざわざ新規に使うのかわからん [section]
name=value
;commnent
この3種類だけで書かれたもの、に限定すりゃいいだろフツー >>844
Linuxにはiniファイルの文化がないから
マルチプラットホームで動くソフト作ろうと思ってXMLにしたんじゃない?
iniファイルもテキストファイルだからパースしようと思ったけど
XMLのほうがパーサも用意されててやりやすかったとか Linuxはそこら辺に落ちてたソフトを拾い集めたものだし、落ちてたソフトの大部分である
GNUも落ちてたソフトに「おめでとうございます!GNUに採択されました、これは名誉です!」
とか言ってGNUに入れていったものだし、統一性なんてあるわけないんだよね。 だから何?
GNUのコントリビュートに対する権利管理のやかましさを知らないバカです、
っていう自己紹介か?
Windowsに統一性があるか?
BSDだってベースシステム以外に統一性があるか?
Macだってアプリ含めたら統一性があるか?
統一性があるのはVMSとかDOMAINみたいにベンダーからしかアプリが提供されなかった
システムの利点だなw >> 851
設定ファイルの形式の変遷のおける、XMLファイルの位置付け、とか? Windows7 の WevtUtil.exeで、qe コマンドを、出力形式を xml 指定で実行したのですが、
<?xml version="1.0" encoding="UTF-8"?> の宣言文が出力されません。
( WevtUtil qe system /f:xml を実行 )
WevtUtil.exe はこういう仕様なのでしょうか?
詳しい方、教えて下さい。 スレチ
というかXML宣言がないと何か問題あるの?
Shift-JISなのにXML宣言がないのが許せないとか? 853です。
ファイルに吐き出してエクセルに取り込むのが目的ですが、
日本語文字が含まれているのに、宣言文がないので、
エクセルに取り込もうとするとエラーが出るのです。
( WevtUtil qe application /e:root /f:xml > Sample.xml を実行 ) 聞きたいことがあってスレ探してたら似たような質問があった・・・
XMLをXSLTにてHTML表示、加えてボタン等によるアクションで表示を動的に変えたい(並び替え等)
サーバプログラミングではなく個人PCのみ使用するのでJavaScript以外にないんかなと
>>824の質問がそのまま当てはまりそうな自分の状況ですが、サーバ立てるわけではなく
いずれは自分の手を離れるためになるべく簡潔な方法を模索中ってとこなんですケド
他にいい方法あるんでしょうかね? とりあえず目についたものに手を出してる感じなんですが なんとなく勘で答えるが
それはたぶんExcelマクロでやった方がいいんじゃないかな 一般的なWebブラウザで表示を動的に変えたいなら
JavaScriptを使うしかないんじゃないの
情報源がXMLファイルというのが前提なら
HTMLへの変換だけXSLTでやって並び替え等はJavaScript
処理系依存なら他にも方法があるだろうけど
一般的なWebブラウザで
XSLTやXMLにパラメータを与える方法は知らん XML使ってるという時点で
質問者の前提条件はあまりあてにならない >>857ですレスどうもっす
>>858
きっとそう
>>859
あちこち調べましたがXSLTに値渡すのはこの環境じゃ出来そうにないんですよね
>>860
言ってる意味がわかりませんでした
他の方法考えますわー jsdo.itにあるワニワニパニックは、
JavaScriptを使わず、6千行を超えるCSSだけで作られている つまり各列昇順降順全パターンをXSLTで生成しておいて
CSSの:active擬似クラスとかで表示・非表示を切り替えれば
いいわけですね! XML になっていればいくらでも処理のしようがあるけど
いまの web の現実的には、整形式になってない html を
処理しなきゃいけないケースが多い
非整形式の html を整形式の XML にするとき
みんなどうやってる? xmlのノードのうち、
どの階層にあるか分らないノードでattribute に attr="keyword"という値を持つノードを見付けて、
取り出すにはどうすれば良いですか?
一階層ずつ調べていく以外に、一気に上手くやる方法ありますか? >>869
レスありがとうございました。
XPath調べてみます。
もしわかればもう一つ教えてください。
attr="keyword1"
attr="keyword2"
など種類が有る場合に、
attr="keyword*"
みたいな抽出方法も可能でしょうか? CSSが20周年ということですが
ここでXSL-FOからお祝いの一言g(ry すみません、別掲示板でレスもらえないので、ここで相談させてください。
xmlマスターベーシックのために通称「緑本」を買おうと思います。
当方初心者で、知識はitパスポートレベルです。
プログラミング経験ゼロです。プログラミング言語もほとんど知りません。
緑本は理解できないですか?
「10日で覚える入門教室」は、スタイルシートの説明がhtmlを知っていることが前提で難しかったです。
事情で外出できないので、「緑本」の現物を見れず、よろしくお願いします。 理解できなかったらやめるんじゃなくて
理解できるように勉強するんだよ
XML使う気がないなら最初から手を出すな
箔が付く資格でもないし時間の無駄
余計なお世話だが HTMLもあれはあれでStrictに書こうとすると意外と制約多くて、勉強してて楽しい DTDで要素型宣言は重複OKなのに属性宣言はダメなのがよくわかりません。 XSLT中の述語は定義済み実態にしなくて良いのですか? 200より小さい要素を出力するなど、述語の中に「<」を使う場合です。 すまん、なにを言ってるのかわからん
XMLでは&amp;、&lt;、&gt;、&quot;、&apos;は事前に定義されてるとかそういう話? value-of select="element[@attribute<200]"
というような命令の場合、「<」は&glt;にしなくてよいのですか? XSTLもXMLである以上本来はエスケープしないとだめ(整形式でない)
エスケープしなくても動く処理系もあるかもしらんが ちなみに>は互換性目的のためエスケープしなくても問題ないはず
http://www.w3.org/TR/xml11/#dt-chardata
なのでnot()と組み合わせればエスケープしなくても済む どっちがの方がいいでなく使い分けでしょ
JSONで標準スキーマが定義されてValidationができて
しかもその仕様がXML Schemaほど複雑じゃなければ
本格的にXMLは捨ててもいいかもしれない ■ このスレッドは過去ログ倉庫に格納されています