Saya menyadari bahwa itu tidak elegan atau diinginkan, tetapi apakah diperbolehkan (dalam format XML yang baik) untuk nilai atribut dalam elemen XML untuk menjangkau beberapa baris?
misalnya
<some-xml-element value="this value goes over....
multiple lines!" />
Ya saya menyadari ada cara yang lebih baik untuk menulis itu. Saya pribadi akan menulisnya seperti:
<some-xml-element>
<value>this value goes over...
multiple lines!</value>
</some-xml-element>
atau:
<some-xml-element value="this value goes over.... " />
Tapi kami memiliki pengurai XML sendiri dan saya ingin tahu apakah contoh pertama diizinkan dalam format XML yang baik.
xml
xml-parsing
CodeAndCats
sumber
sumber
Jawaban:
http://www.w3.org/TR/REC-xml/#NT-AttValue
Tampaknya mengatakan semuanya kecuali
<
,&
dan pembatas Anda ('
atau"
) adalah OK. Jadi, baris baru juga harus begitu.sumber
Ini diperbolehkan, namun menurut rekomendasi W3C, pengurai XML Anda harus menormalkan semua karakter spasi putih menjadi spasi (0x20) - sehingga keluaran dari contoh Anda akan berbeda (Anda harus memiliki baris baru pada keluaran untuk "& # 13; & # 10 ; ", tetapi hanya spasi dalam kasus pertama).
http://www.w3.org/TR/1998/REC-xml-19980210#AVNormalize
sumber
Hanya .NET: Jika Anda tidak yakin apakah string target adalah atribut xml yang valid (dan memberikan nilai atribut ini melalui kode), Anda selalu dapat menggunakan fungsi SecurityElement.Escape untuk menghindari karakter yang tidak valid.
Menurut deskripsi fungsi ini, satu-satunya karakter yang tidak valid adalah:
<
,>
,&
,'
,"
Dan ini berarti (seperti yang ditulis oleh pendahulu saya), baris baru itu seharusnya OK.
sumber
Ya, contoh pertama adalah yang valid.
sumber