উত্তর:
standaloneঘোষণা যে কোন মার্কআপ ঘোষণা উপেক্ষা করার পার্সার কহন একটি উপায় DTD । ডিটিডি এর পরে কেবল বৈধতার জন্য ব্যবহৃত হয়।
উদাহরণ হিসাবে, নম্র <img>ট্যাগ বিবেচনা করুন । আপনি যদি এক্সএইচটিএমএল ১.০ টিটিডি তাকান , আপনি পার্সারকে এমন একটি মার্কআপ ঘোষণার মুখোমুখি হতে দেখবেন যে <img>ট্যাগগুলি অবশ্যই EMPTY এবং মালিকানাধীন srcএবং altবৈশিষ্ট্যযুক্ত হতে হবে। যখন কোনও ব্রাউজার কোনও এক্সএইচটিএমএল ১.০ নথির মধ্য দিয়ে যাচ্ছে এবং একটি <img>ট্যাগ সন্ধান করে, তখন লক্ষ্য করা উচিত যে ডিটিডি প্রয়োজন srcএবং altবৈশিষ্ট্যগুলি উপস্থিত করে এবং উপস্থিত না থাকলে সেগুলি যুক্ত করে। এটি <img>ইমপটিওয়াই হওয়ার কথা বলে এটি ট্যাগটি স্ব-বন্ধ করে দেবে । এই কি এক্সএমএল স্পেসিফিকেশন দ্বারা মানে হলো "মার্কআপ ঘোষণা নথির বিষয়বস্তু প্রভাবিত করতে পারে।" তারপরে আপনি standaloneএই বিধিগুলি উপেক্ষা করতে পার্সারকে বলতে ঘোষণাপত্রটি ব্যবহার করতে পারেন ।
আপনার পার্সারটি আসলে এটি করে কিনা তা অন্য প্রশ্ন, তবে একটি মান-সম্মতিযুক্ত যাচাইকরণ পার্সার (ব্রাউজারের মতো) হওয়া উচিত।
মনে রাখবেন যে আপনি যদি কোনও ডিটিডি নির্দিষ্ট না করেন, তবে স্ট্যান্ডোলোইন ঘোষণার "অর্থ নেই," সুতরাং আপনি যদি কোনও ডিটিডিও নির্দিষ্ট না করেন তবে এটি ব্যবহার করার কোনও কারণ নেই।
standalone=yes, মার্কআপ ঘোষণাগুলি উপেক্ষা করা হবে না, পরিবর্তে তারা দস্তাবেজটিকে অবৈধ এক্সএমএল হিসাবে চিহ্নিত করবে। আমি যদি উত্তরে এটি সম্পাদনা করি তবে আপনি কি আপত্তি করবেন?
yesএবং noযেখানে noডিফল্ট মান।standalone="yes"এর অর্থ হল যে এক্সএমএল প্রসেসরের অবশ্যই ডিটিডি ব্যবহার করতে হবে বৈধতার জন্য। সেক্ষেত্রে এটি ব্যবহার করা হবে না :
standalone="yes"নথিটি যদি বাহ্যিক ডিটিডি ব্যবহার করে তবে বৈধতা সীমাবদ্ধতা যুক্ত করতে পারে তা নোট করুন। ডকুমেন্টে এমন কিছু জিনিস থাকে যার জন্য এক্সএমএল সংশোধন প্রয়োজন, যেমন বৈশিষ্ট্যের জন্য ডিফল্ট মান, এবং standalone="yes"ব্যবহৃত হয় তখন নথিটি অবৈধ ।standalone="yes" ডকুমেন্ট প্রসেসিংয়ের কার্যকারিতা অনুকূল করতে সহায়তা করতে পারে।উত্স: কোনও ডিটিডি ব্যবহার করা গেলে স্ট্যান্ড্যালোন সিউডো-অ্যাট্রিবিউট কেবলমাত্র প্রাসঙ্গিক
standalone বর্তমান এক্সএমএল নথিটি যদি বাহ্যিক মার্কআপ ঘোষণার উপর নির্ভর করে তবে বর্ণনা করে।
ডাব্লু 3 সি তার উদ্দেশ্যটি "এক্সটেনসিবল মার্কআপ ল্যাঙ্গুয়েজ (এক্সএমএল) 1.0 (পঞ্চম সংস্করণ)" তে বর্ণনা করে:
এক্সএমএল প্রসেসর থেকে কোনও অ্যাপ্লিকেশনে প্রেরণ করা হিসাবে মার্কআপ ঘোষণাগুলি নথির সামগ্রীকে প্রভাবিত করতে পারে; উদাহরণগুলি অ্যাট্রিবিউট ডিফল্ট এবং সত্তার ঘোষণা। স্ট্যান্ডেলোন ডকুমেন্ট ডিক্লেয়ারেশন, যা এক্সএমএল ঘোষণার উপাদান হিসাবে উপস্থিত হতে পারে, এমন কোনও ঘোষণা রয়েছে যা ডকুমেন্ট সত্তার বাহ্যিক বা পরামিতি সত্তায় বহিরাগত প্রদর্শিত হবে কিনা তা নির্দেশ করে। [সংজ্ঞা: বাহ্যিক সাবসেটে বা প্যারামিটার সত্তায় (একটি বাহ্যিক বা অভ্যন্তরীণ, পরবর্তীটি অন্তর্ভুক্ত করা হচ্ছে কারণ বৈধকরণ প্রসেসরগুলি সেগুলি পড়ার প্রয়োজন নেই) - একটি বহিরাগত মার্কআপ ঘোষণাকে মার্কআপ ঘোষণা হিসাবে সংজ্ঞায়িত করা হয়]
standalone=yesঘোষণার উদ্দেশ্যটি হ'ল গ্যারান্টি দেওয়া যে ডকুমেন্টের অভ্যন্তরীণ তথ্যগুলি কেবলমাত্র অভ্যন্তরীণ ডিটিডির উপর ভিত্তি করে বিশ্বস্ততার সাথে পুনরুদ্ধার করা যেতে পারে, অর্থাৎ নথিটি কোনও বাহ্যিক উল্লেখ ছাড়াই "একা দাঁড়িয়ে" থাকতে পারে stand একটি স্বতন্ত্র নথি বৈধকরণ নিশ্চিত করে যে নন-যাচাইকরণ প্রসেসরের ডকুমেন্টটি সঠিকভাবে বিশ্লেষণের জন্য উপলব্ধ সমস্ত তথ্য থাকবে।
স্বতন্ত্র ঘোষণার কোনও উদ্দেশ্য হয় না যদি কোনও নথির কোনও বাহ্যিক ডিটিডি না থাকে এবং অভ্যন্তরীণ ডিটিডির কোনও প্যারামিটার সত্তা উল্লেখ নেই, কারণ এই নথিগুলি ইতিমধ্যে স্পষ্টতই স্বতন্ত্র are
নিম্নলিখিত ব্যবহারের প্রকৃত প্রভাবগুলি standalone=yes।
বাহ্যিক ডিটিডি বা প্যারামিটার সত্তা রেফারেন্স সহ নথিগুলি বিশ্লেষণ করার সময় প্রসেসরদের ত্রুটি ছুঁড়ে ফেলতে বাধ্য করা হয়, নথিতে যদি অভ্যন্তরীণ ডিটিডিতে ঘোষিত না হওয়া সত্তাগুলির রেফারেন্স থাকে (অ-বৈধকরণ প্রসেসর হিসাবে প্যারামিটার সত্তাগুলির প্রতিস্থাপন পাঠ্য ব্যতীত) পার্স এটি); amp, lt, gt, apos, এবং quotশুধুমাত্র ব্যতিক্রম আছে
স্বতন্ত্র হিসাবে ঘোষিত নয় এমন কোনও দস্তাবেজ বিশ্লেষণ করার সময়, কোনও অ-বৈধকরণ প্রসেসর প্যারামিটার সত্তার রেফারেন্সের সাথে সাথেই অভ্যন্তরীণ ডিটিডি পার্সিং বন্ধ করতে পারে। স্বতন্ত্র হিসাবে একটি নথি ঘোষনা অ-বৈধতা প্রসেসরগুলিকে এক বা একাধিক পরামিতি সত্তা রেফারেন্সগুলি উপেক্ষা করার পরেও অভ্যন্তরীণ ডিটিডিতে মার্কআপ ঘোষণাগুলি পার্স করতে বাধ্য করে।
নিম্নলিখিতটি কোনও নথিতে পাওয়া গেলে প্রসেসরের বৈধতা প্রেরণকারীদের বাধ্য করে এবং তাদের সম্পর্কিত ঘোষণাগুলি বাহ্যিক ডিটিডি বা পরামিতি সত্তা প্রতিস্থাপনের পাঠ্যে রয়েছে:
amp, lt, gt, apos, এবং quot)কোনও অ-বৈধকরণ প্রসেসর বহিরাগত ডিটিডি পুনরুদ্ধার করতে পারে এবং ডকুমেন্টগুলির জন্য সমস্ত পরামিতি সত্তা রেফারেন্সগুলি প্রসারিত বিবেচনা করতে পারে, যদিও এটি করার কোনও বাধ্যবাধকতা নেই, অর্থাত্ সেটিংটি standalone=yesতাত্ত্বিকভাবে অ-বৈধকরণ প্রসেসরের জন্য কার্যকারিতা উন্নত করতে পারে (স্পোলার সতর্কতা: এটি সম্ভবত কোনও পার্থক্য তৈরি করবে না)।
এখানে অন্য উত্তরগুলি হয় অসম্পূর্ণ বা ভুল, মূল ভুল ধারণাটি এটি
একক ঘোষণাপত্রটি পার্সারকে ডিটিডি-তে যে কোনও মার্কআপ ঘোষণাকে উপেক্ষা করতে বলার একটি উপায়। ডিটিডি এর পরে কেবল বৈধতার জন্য ব্যবহৃত হয়।
স্ট্যান্ডেলোন = "হ্যাঁ" এর অর্থ হল যে এক্সএমএল প্রসেসরের অবশ্যই ডিটিডি ব্যবহার করতে হবে বৈধতার জন্য।
একেবারে বিপরীতভাবে, ডকুমেন্টকে স্ট্যান্ডেলোন হিসাবে ঘোষণা করা আসলে একটি অ-বৈধতা প্রসেসরকে অভ্যন্তরীণ ঘোষণাগুলি পার্স করতে বাধ্য করবে যা সাধারণত এটিকে উপেক্ষা করতে হবে (অর্থাত্ তারা অবহেলা পরামিতি সত্তার রেফারেন্সের পরে)। অ-বৈধকরণ প্রসেসরগুলিকে অবশ্যই ডিফল্ট অ্যাট্রিবিউট মানগুলি সরবরাহ করতে এবং টোকেনযুক্ত বৈশিষ্ট্যগুলিকে স্বাভাবিককরণের জন্য অভ্যন্তরীণ ডিটিডি তে তথ্য অবশ্যই ব্যবহার করতে হবে, কারণ এটি বৈধতার স্বতন্ত্র।