
仕事で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で質問しましょう!
似たような質問が見つかりました
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- アプリ Android studio 初心者 Hello Android!しか表示されない 1 2023/08/01 08:47
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- 文学・小説 小説はどこから書けばいいのでしょうか? 4 2023/04/06 10:49
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- USBメモリー・SDカード・フラッシュメモリー PDF文書をCD-Rで配るときの注意事項 4 2022/03/31 16:49
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XMLで要素が記述された順番に意...
-
CPUの考え方を教えてください ...
-
Excel-VBAでXMLの複数ノードの...
-
Integerの範囲設定について
-
C# listviewでサブアイテムを順...
-
DOCTYPE宣言について
-
XSL中の改行、タブを無効にした...
-
DOSコマンドラインからxmlファ...
-
携帯サイト作成について
-
ツリービューの使い方が・・・
-
SNMP リンクダウンとノードダ...
-
エラーメッセジの意味が分かり...
-
ツリーでのアイコンの設定
-
XMLで特定の兄弟のノードの数を...
-
ルート要素ノードが2個ある場合?
-
エクセルVBA ウェブ上のボタ...
-
webAPIの提供方法はどんな方法...
-
isnan・isnf関数が「識別子が見...
-
googleのxmlサイトマップについて
-
XML文書の指定した属性値を持つ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XMLで要素が記述された順番に意...
-
XML Webサービス
-
VBでXMLを扱えるコントロールは...
-
XMLとRDFの違い
-
要素の中にハイパーリンクを書く
-
Java ファイルオブジェクトで...
-
マークアップ言語について
-
SQLの<>の記述
-
wikipediaからの必要情報の取得...
-
cでxmlを使いたい
-
純Perl製のXMLパーサーはありま...
-
値が無い場合のタグ出力
-
【XML】定義済み実体について
-
CPUの考え方を教えてください ...
-
東芝のDynabookなのですがアン...
-
バッチファイルでテキストファ...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
あるノードリストに、特定の名...
-
XML、XSLTの適応エラー(IEから...
おすすめ情報