タイトル
TOP → This Page

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" となる


TOP → This Page