এক্সএমএল বৈশিষ্ট্যের মানগুলিতে লাইন বিরতি অনুমোদিত?


92

আমি বুঝতে পারি যে এটি মার্জিত বা পছন্দসই নয়, তবে এটি কি কোনও এক্সএমএল উপাদানটির একটি বৈশিষ্ট্যমূল্যের জন্য একাধিক লাইন বিস্তৃত করার জন্য (সুগঠিত এক্সএমএলে) অনুমতি দেওয়া হয়েছে?

যেমন

<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;" />

তবে আমাদের নিজস্ব এক্সএমএল পার্সার রয়েছে এবং আমি জানতে চাই যে প্রথম উদাহরণটি সুসংহত এক্সএমএলটিতে অনুমোদিত কিনা।


4
.NET এক্সডোকামেন্ট পার্সার এটি প্রত্যাশিত হিসাবে গ্রহণ করে, তবে বৈশিষ্ট্যটির মানটি একটি স্থান দিয়ে ফিরে আসে, একটি লাইন ফিড নয় এটি কোনও পাঠ্য হিসাবে থাকবে <মান> আপনার দ্বিতীয় উদাহরণ হিসাবে। (আপনার প্রশ্ন। নেট সম্পর্কে সুনির্দিষ্ট নয়, তবে আমার নমুনা ডেটা। এটি সাধারণ মানের বা একটি। নেট বৈশিষ্ট্যের অংশ কিনা তা আমি জানি না))
মার্ক হার্ট


: যে সংরক্ষণ নতুন লাইন একটি অনুরূপ প্রশ্নের ক্ষেত্রে একটি উদাহরণ তৈরি stackoverflow.com/a/29782321/611007
n611x007

সম্পর্কিত: stackoverflow.com/questions/260436 - সম্পর্কিত: stackoverflow.com/questions/2004386 - সম্পর্কিত: stackoverflow.com/questions/1289524
n611x007

উত্তর:


102

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

ছাড়া সবকিছু তার মনে হয় বলে <, &, এবং আপনার বিভেদক ( 'বা ") ঠিক আছ। তাই নিউলাইনও হওয়া উচিত।


6
এক্স্ট্রিবিউটের মধ্যে নতুন লাইনগুলি যখন ভাল ধারণা হয় তার একটি উদাহরণ হ'ল স্প্রিং কনফিগারেশনে স্কিমা লোকেশন অ্যাট্রিবিউট, এতে স্পেস দ্বারা পৃথক করা বেশ কয়েকটি ইউআরএল থাকতে পারে এবং এইভাবে স্ক্রিনের প্রস্থের চেয়ে অনেক বেশি দীর্ঘ হতে পারে।
স্টিভ্লো

4
এটি বৈধ তবে পার্সার তাদের মহাকাশে স্বাভাবিক করবে, যেমন জান চেটকভস্কি বলেছেন
n611x007

ভাল ... আমি এক্সএসএলটি ডকুমেন্টগুলিতে / যখন পরীক্ষার স্টেটমেন্টগুলিতে দীর্ঘ সময় ধরে একাধিক লাইন ব্যবহার করি।
নুলিয়াস

51

এটি অনুমোদিত, তবে ডাব্লু 3 সি সুপারিশ অনুসারে আপনার এক্সএমএল পার্সারের সমস্ত শ্বেত স্পেস অক্ষরকে স্পেস (0x20) এ স্বাভাবিক করতে হবে - সুতরাং আপনার উদাহরণগুলির আউটপুট পৃথক হবে ("& # 13; & # 10" এর জন্য আউটপুটটিতে আপনার নতুন লাইন থাকা উচিত) ; ", তবে প্রথম ক্ষেত্রে কেবল স্থান)।

http://www.w3.org/TR/1998/REC-xML-19980210#AV সাধারণ করুন


3

কেবলমাত্র নেট: আপনি যদি নিশ্চিত না হন যে টার্গেট স্ট্রিংটি বৈধ এক্সএমএল বৈশিষ্ট্যটি রয়েছে (এবং কোডের মাধ্যমে এই বৈশিষ্ট্যের মান সরবরাহ করুন), আপনি সর্বদা অবৈধ অক্ষরগুলি থেকে বাঁচতে সিকিউরিটিএলমেন্ট Eস্কেপ ফাংশনটি ব্যবহার করতে পারেন ।

এই ফাংশনটির বর্ণনা অনুযায়ী কেবলমাত্র অবৈধ অক্ষরগুলি হ'ল:

<, >, &, ',"

এবং এর অর্থ (যেমনটি আমার পূর্বসূরীরা লিখেছেন), নতুন লাইনটি ঠিক হওয়া উচিত।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.