![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
仕事で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も見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
XMLのタグ名の禁則文字
XML
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
ノードの並び替え
XML
-
-
4
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
5
CloseとDisposeの違い
Visual Basic(VBA)
-
6
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
7
CRCが一致する確率
その他(プログラミング・Web制作)
-
8
bat 同名ファイルコピー時にリネームして保存したい
その他(開発・運用・管理)
-
9
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XMLで要素が記述された順番に意...
-
【XML】定義済み実体について
-
東芝のDynabookなのですがアン...
-
同じタグ名の項目取得
-
ツリービューのノードをダブル...
-
CPUの考え方を教えてください ...
-
質問
-
ルート要素ノードが2個ある場合?
-
スケールフリーネットワークをC...
-
svgをhtmlに埋め込んで使いたい
-
TreeViewコントロールについて
-
cssで外部ファイルを読み込む
-
順不同・任意のタグ
-
終了タグが認識されない?
-
VB2005でXMLデータから複数ある...
-
(VB.NET)TreeViewのノード文...
-
VBAからxml・スタイルシートを...
-
フロートってなに?
-
getElementsByNameの要素数が取...
-
hana no namae osiete kudasai.
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XMLで要素が記述された順番に意...
-
Dreamweaver CS3 : シングルク...
-
【XML】定義済み実体について
-
XMLとRDFの違い
-
CPUの考え方を教えてください ...
-
東芝のDynabookなのですがアン...
-
昔Winnyってありましたけど、あ...
-
UTF-8でエンコーディングとはど...
-
バッチファイルでテキストファ...
-
ルート要素ノードが2個ある場合?
-
Excel-VBAでXMLの複数ノードの...
-
XML、XSLTの適応エラー(IEから...
-
SNMP リンクダウンとノードダ...
-
同じタグ名の項目取得
-
コンテキストメニュークリック...
-
あるノードリストに、特定の名...
-
2分探索木の高さを求めるプロ...
-
VBSでxmlの値を書き換えたい
-
XPathで途中に名前空間が設定さ...
-
Access VBAでXMLが読み込めない
おすすめ情報