XML > XML > 空白・改行
空白・改行
例えば以下のような XML 文章がある場合、
(例1) <氏名>山田太郎</氏名> |
読みやすいように
(例2) <氏名> 山田太郎 </氏名> |
のように記述する場合がある。
行末を表すコードはそれぞれ OS によって異なり、それぞれ
Windows・・・CR + LF
UNIX ・・・LF
Mac ・・・CR
となっている。
プロセッサは行末を LF に変換した上で、空白も含めてアプリケーションに渡す。
(空白は半角スペースだけでなく、タブ文字・CR・LF も含む)
ところが空白をそのまま使うのか、他の文字等に置換して使うのかなどの判断は
受け取ったアプリケーション側によって動作が異なってしまう。
上記の例2だと要素:氏名の要素内容がアプリケーションによって
「山田太郎」・・・空白・改行なし
「 山田太郎」・・・空白あり・改行なし
「
山田太郎
」・・・空白・改行あり
のように扱いが異なってしまう。
そこで xml:space という属性で空白処理を設定出来る。
属性値を "default" にするとアプリケーションの処理にまかせ、
属性値を "preserve" にすると空白を保持させることが出来る。
この設定は子孫要素にも反映されるが、子孫要素の中でも設定がされている場合は
子孫要素に関してはそちらが優先される。
(例) <社員 xml:space="default"> <氏名> 山田太郎 </氏名> <年齢> 20 </年齢> <備考 xml:space="preserve"> ソフト開発業務希望 プログラム経験有り </> </社員> 上記例では要素:氏名と要素:年齢は "default" 備考は "preserve" となる |