Share via


XML リテラルでの空白文字 (Visual Basic)

Visual Basic コンパイラは、LINQ to XML オブジェクトを作成するときに、XML リテラルから意味のある空白文字のみを組み込みます。 意味のない空白文字は組み込まれません。

意味のある空白文字と意味のない空白文字

XML リテラル内の空白文字は、次の 3 つの領域でのみ意味があります。

  • 属性値に含まれる場合。

  • 要素のテキスト内容の一部であり、テキストに他の文字も含まれる場合。

  • 要素のテキスト内容の埋め込み式に含まれる場合。

これら以外の場合は、コンパイラは空白文字を意味のないものとして扱い、リテラルに対する LINQ to XML オブジェクトには含めません。

意味のない空白文字を XML リテラルに含めるには、空白文字のある文字列リテラルを含む埋め込み式を使用します。

注意

xml:space 属性が XML 要素リテラル内にある場合、Visual Basic コンパイラはこの属性を XElement オブジェクトに組み込みますが、この属性を追加しても、コンパイラによる空白文字の処理方法は変わりません。

次の例には、2 つの XML 要素 outer と inner が含まれています。 どちらの要素も、テキスト内容に空白文字を含みます。 outer 要素は空白文字と XML 要素のみを含むので、outer 要素内の空白文字は意味がありません。 inner 要素は空白文字とテキストを含むので、inner 要素内の空白文字は意味があります。

Dim example As XElement = <outer>
                              <inner> 
                                  Inner text 
                              </inner>
                          </outer>

Console.WriteLine(example)

このコードを実行すると、次のようなテキストが表示されます。

<outer>
  <inner>
                                          Inner text
                                      </inner>
</outer>

参照

その他の技術情報

Visual Basic での XML の作成