仕事でXMLを読み込むプログラム(java)を作っています。
<text>
<sentence>1行目</sentence>
<sentence>2行目</sentence>
</text>
例ですが、上記のXMLを自分で考え、それを読み込んで順番に表示するプログラムを作ったところ上司に
「XMLの仕様では、要素は記述された順番に読み込まれるとは限らないよ」
と言われましたが、これは本当ですか?
参考になるサイトや書籍があれば教えて下さい。よろしくお願いします。
XMLの仕様の日本語訳をざっと読みましたが、よく分かりませんでした。
更に、下記の記事を読んでみましたが、これもよく理解できませんでした。
http://www.ibm.com/developerworks/jp/xml/library …
No.2ベストアンサー
- 回答日時:
>「XMLの仕様では、要素は記述された順番に読み込まれるとは限らないよ」
本当です。
質問者様の参考サイトにも記述されていますが
XMLにはパーサーの読み込み順序の規定は何もありません。
従いまして、パーサーによって読み込まれたXML要素の順序性は保証されず、
使用するパーサーに完全に依存することになります。
ただ、読み込み時にわざわざ要素を入れ替えるというパーサーを今までに私は見たことがありません。
(そもそも読み込む順序をわざわざ入れ替える理由も無いですから)
ちなみにJavaならorg.w3c.domパッケージのElementクラスの
getElementsByTagNameメソッドなどは「文書順に返す」といった記述が見られますね。
(ただ、Nodeインターフェースのメソッドはそういった記述が見当たらないですけど)
>本当です。
>質問者様の参考サイトにも記述されていますが
>XMLにはパーサーの読み込み順序の規定は何もありません。
順序を入れ替えてもよいと書いてあるわけではないし
言語が違うとはいえ、XHTMLやHTMLの使われ方を事を考えると
ひょっとして何かの間違いでは?と思ってしまいましたが、本当だったんですね。
とても参考になりました、回答ありがとうございました。
No.1
- 回答日時:
>「XMLの仕様では、要素は記述された順番に読み込まれるとは限らないよ」
は
「XMLの仕様では、要素は記述される順序は設計どおりでは無いことがある」
では無いかと ・・・
たとえば
<!--- Sample1.xml -->
<test>
<myData>
<node1>Data1</node1>
<node2>Data2</node2>
</myData>
</text>
と
<!--- Sample2.xml -->
<test>
<myData>
<node2>Data2</node2>
<node1>Data1</node1>
</myData>
</text>
といった具合の2つのファイルが同じように処理できなければいけない事を指摘したかったのではないかと ・・・
回答ありがとうございます。
redfox63さんにご指摘いただいた内容の方が遙かに重要な事だと思います。
実は、上司の指摘をきっかけに
>「XMLの仕様では、要素は記述される順序は設計どおりでは無いことがある」
この点についても不安になり、プログラムを見直したところ不具合を発見した次第です。
分かってはいたつもりですが情けないかぎりです。
>「XMLの仕様では、要素は記述された順番に読み込まれるとは限らないよ」
については、書いたとおり本当かどうか知りたいのです。
もし本当なら、質問に書いたXMLを別のソフトで表示させた時
「2行目」「1行目」の順で表示された、なんて場合もある事になります。
現実にはない事だと思いますが・・・
プログラム作成の方は、既にこの問題を解消したXML設計に変更して対応しましたが
仕様について詳しく知りたいと思っておりますので、引き続きよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
XMLのタグ名の禁則文字
XML
-
ノードの並び替え
XML
-
sqlに記述できない文字
PostgreSQL
-
-
4
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XMLで要素が記述された順番に意...
-
Java ファイルオブジェクトで...
-
バッチファイルでテキストファ...
-
CPUの考え方を教えてください ...
-
SNMP リンクダウンとノードダ...
-
isnan・isnf関数が「識別子が見...
-
C# TreeView 効率良いノード追...
-
ノードの並び替え
-
xmlのテキストにリンクを張りた...
-
XMLファイルの作り方がわかりま...
-
特殊記号が勝手にエスケープさ...
-
DTDファイルをクラスパスから読...
-
YAHOOオークションAPI ...
-
東芝のDynabookなのですがアン...
-
C#でtreeviewの指定ノードを選...
-
DOSコマンドラインからxmlファ...
-
ほんとにすみません。XLMって・...
-
ルート要素ノードが2個ある場合?
-
VBでOSの環境変数を参照する方...
-
勉強方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XMLで要素が記述された順番に意...
-
VBでXMLを扱えるコントロールは...
-
XMLとRDFの違い
-
CPUの考え方を教えてください ...
-
東芝のDynabookなのですがアン...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
バッチファイルでテキストファ...
-
昔Winnyってありましたけど、あ...
-
VBSでxmlの値を書き換えたい
-
XML、XSLTの適応エラー(IEから...
-
特殊記号が勝手にエスケープさ...
-
同じタグ名の項目取得
-
xmlファイルが上手にHTMLに変換...
-
4バイトを10進数に変換する方法
-
XPathで途中に名前空間が設定さ...
-
TreeViewに重複する値をセット
-
eclipseへのxmlファイル追加
-
VBAのXML処理でメモリが足りない?
-
タグの有無の判定
おすすめ情報