هل يتم السماح بفواصل السطر في قيم سمة XML؟

StackOverflow https://stackoverflow.com/questions/449627

  •  19-08-2019
  •  | 
  •  

سؤال

أدرك أنه ليس أنيقًا أو مرغوبًا ، ولكن هل يُسمح به (في 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 المكون جيدًا.

هل كانت مفيدة؟

المحلول

http://www.w3.org/tr/rec-xml/#nt-attvalue

يبدو أنه يقول كل شيء إلا <, &, ، ومحدد الخاص بك (' أو ") على ما يرام. لذلك يجب أن يكون NewLine أيضًا.

نصائح أخرى

ومع ذلك ، فإنه وفقًا لتوصية W3C ، يجب أن يقوم محلل XML الخاص بك بتطبيع جميع أحرف المساحة البيضاء إلى الفضاء (0x20) - وبالتالي فإن إخراج الأمثلة الخاصة بك سيختلف (يجب أن يكون لديك خط جديد على الإخراج لـ "" ، ولكن الفضاء فقط في الحالة الأولى).

http://www.w3

.NET فقط: إذا لم تكن متأكدًا مما إذا كانت سلسلة الهدف صالحة لـ XML سمة (وقدم قيمة هذه السمة عبر الرمز) ، فيمكنك دائمًا استخدامها SecurityElement.escape وظيفة للهروب من الأحرف غير صالحة.

وفقًا لوصف هذه الوظيفة ، فإن الأحرف الوحيدة غير الصالحة هي:

<, >, &, ', "

وهذا يعني (كما كتب أسلافي) ، يجب أن يكون الخط الجديد على ما يرام.

نعم المثال الأول هو واحد صالح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top