100

洗練されていない、または望ましいものではないことは理解していますが、(整形式の XML で) XML 要素の属性値が複数行にまたがることは許可されていますか?

例えば

<some-xml-element value="this value goes over....
multiple lines!" />

ええ、それを書くより良い方法があることに気づきました。個人的には次のように書きます。

<some-xml-element>
<value>this value goes over...
multiple lines!</value>
</some-xml-element>

また:

<some-xml-element value="this value goes over....&#13;&#10;" />

しかし、私たちは独自の XML パーサーを持っているので、最初の例が整形式の XML で許可されているかどうかを知りたいです。

4

4 に答える 4

109

http://www.w3.org/TR/REC-xml/#NT-AttValue

<&、および区切り文字 ('または)を除くすべて"が OK であると言っているようです。したがって、改行もそうあるべきです。

于 2009-01-16T06:12:16.853 に答える
54

許可されていますが、W3C勧告によれば、XMLパーサーはすべての空白文字をスペース(0x20)に正規化する必要があります。そのため、例の出力は異なります(「&#13;&#10」の出力に改行が必要です。 ; "、ただし最初のケースではスペースのみ)。

http://www.w3.org/TR/1998/REC-xml-19980210#AVNormalize

于 2011-11-18T19:51:17.570 に答える
3

.NET のみ: ターゲット文字列が有効な xml 属性であるかどうか (およびコードを介してこの属性の値を提供するかどうか) がわからない場合は、いつでもSecurityElement.Escape関数を使用して無効な文字をエスケープできます。

この関数の説明によると、無効な文字は次のとおりです。

<>&'"

そして、これは (私の前任者が書いたように) 新しい行は OK であることを意味します。

于 2011-11-15T09:38:18.300 に答える
2

はい、最初の例は有効です。

于 2009-01-16T06:09:14.253 に答える