【XML】多重度における「空白可能」は「省略可能」??
うぃろぅです。
今回は技術ネタ、というよりは日記。 今日?ただの平日でいつもどおり仕事ですけど何か??
え?そうなの?という疑問を残しておきます。ブログタイトルも.log
だし。
こんなことがあった
前程
私の会社 - 会社T - 会社S - 会社D
経緯はざっくり以下。
S社「S - D 間でのデータやり取りはXML形式で行うことにするからよろしくね」
D社「うち今人手不足なんでS社さんから依頼できるところありませんか」
S社「じゃあT社に依頼するね」
T社「こんな内容で受注したんだけどお手伝いしてくれない?」
という流れ。
登場人物
T社・Hさん
機能仕様書作成者。
S社とのやりとりはこの方を通して行っている。
その場の思いつきで修正案を出してくるので対処に困ることが多い。私
コーディング担当。
やりとりするデータ自体はノータッチなためそのあたりはHさんと先輩にお任せ。
本題
早めにデータやり取りしたいからベータ版をD社に納品してから数日後。
Hさん「D社さんからエラー出てるって問い合わせあったから調査してもらっていい?ログ送るね」
私「(せめてデータかソースか切り分けてから連絡してくれ)承知しましたー」
調査した結果、情報送信時に読み取るXMLデータのタグが不足していることが判明。
機能仕様書には以下のように記載されていた。
- 要素名
Hoge - 多重度
0,1 - 型
文字列 - 説明
なにかしらの説明
私「多重度はなんやこれ」
仕様書を確認したところ、以下の記述を発見
~XMLタグレイアウトについて~
「多重度」 1 = 必須 0,1 = 空白可能 1..N = 必須複数可 0..N = 空白及び複数可
私「空白可能ってことは<Hoge />
って記述してもOKってことなんだろうなあ」
Hさんに報告
私「原因わかりました、Hoge
タグが記載されていないからぬるぽで落ちてます」
Hさん「"0,1"のデータを使わない場合はタグを省略するのが正なのでソース修正お願い」
私「Hさんの書かれた仕様書には空白可能ってあるのでタグ自体は残ると考えていたんですが…?」
Hさん「基本的にXMLでの多重度が0だった場合はタグを省略するんですよ」
私「…勉強不足でした、修正します」
そうなの?
結局修正したし修正量もたいしたことなかったから修正したこと自体はもういいとして、XMLの常識では空白可能って省略可能ってことなんです?? 調べても結局出てこなかった。そもそも多重度って言い方をするのだろうか。
いったい誰にとっての常識なのか。謎は深まるばかり。
ではまた。