এক্সএমএলে 'একক' নির্দেশনার অর্থ কী?


272

standaloneএক্সএমএল ডকুমেন্টে ' ' নির্দেশনার অর্থ কী?

উত্তর:


203

standaloneঘোষণা যে কোন মার্কআপ ঘোষণা উপেক্ষা করার পার্সার কহন একটি উপায় DTD । ডিটিডি এর পরে কেবল বৈধতার জন্য ব্যবহৃত হয়।

উদাহরণ হিসাবে, নম্র <img>ট্যাগ বিবেচনা করুন । আপনি যদি এক্সএইচটিএমএল ১.০ টিটিডি তাকান , আপনি পার্সারকে এমন একটি মার্কআপ ঘোষণার মুখোমুখি হতে দেখবেন যে <img>ট্যাগগুলি অবশ্যই EMPTY এবং মালিকানাধীন srcএবং altবৈশিষ্ট্যযুক্ত হতে হবে। যখন কোনও ব্রাউজার কোনও এক্সএইচটিএমএল ১.০ নথির মধ্য দিয়ে যাচ্ছে এবং একটি <img>ট্যাগ সন্ধান করে, তখন লক্ষ্য করা উচিত যে ডিটিডি প্রয়োজন srcএবং altবৈশিষ্ট্যগুলি উপস্থিত করে এবং উপস্থিত না থাকলে সেগুলি যুক্ত করে। এটি <img>ইমপটিওয়াই হওয়ার কথা বলে এটি ট্যাগটি স্ব-বন্ধ করে দেবে । এই কি এক্সএমএল স্পেসিফিকেশন দ্বারা মানে হলো "মার্কআপ ঘোষণা নথির বিষয়বস্তু প্রভাবিত করতে পারে।" তারপরে আপনি standaloneএই বিধিগুলি উপেক্ষা করতে পার্সারকে বলতে ঘোষণাপত্রটি ব্যবহার করতে পারেন ।

আপনার পার্সারটি আসলে এটি করে কিনা তা অন্য প্রশ্ন, তবে একটি মান-সম্মতিযুক্ত যাচাইকরণ পার্সার (ব্রাউজারের মতো) হওয়া উচিত।

মনে রাখবেন যে আপনি যদি কোনও ডিটিডি নির্দিষ্ট না করেন, তবে স্ট্যান্ডোলোইন ঘোষণার "অর্থ নেই," সুতরাং আপনি যদি কোনও ডিটিডিও নির্দিষ্ট না করেন তবে এটি ব্যবহার করার কোনও কারণ নেই।


9
উদাহরণটির আরও পরিবর্তন প্রয়োজন। "স্ট্যান্ড্যালোন = 'না' থাকায় সাধারণত অনাবৃত এক্সএমএল ট্যাগগুলি বন্ধ করা হবে না (এটি এসজিএমএলের একটি বৈশিষ্ট্য, তবে এক্সএমএল নয়)। বৈধতা ব্যর্থ হবে। এটি প্রয়োজনীয় বৈশিষ্ট্যগুলির মানগুলি সরবরাহ করবে না, হয়ও।
খেমুয়েসেট

2
"একক ঘোষণাপত্রটি পার্সারকে ডিটিডি-তে কোনও মার্কআপ ঘোষণাকে উপেক্ষা করতে বলার উপায় telling" এটি সঠিক নয়। এর সাথে standalone=yes, মার্কআপ ঘোষণাগুলি উপেক্ষা করা হবে না, পরিবর্তে তারা দস্তাবেজটিকে অবৈধ এক্সএমএল হিসাবে চিহ্নিত করবে। আমি যদি উত্তরে এটি সম্পাদনা করি তবে আপনি কি আপত্তি করবেন?
sleske

@ সালস্কে দয়া করে কেবল পরিবর্তন করুন। তিনি খুশি না হলে লেখক সর্বদা ফিরে যেতে পারেন।
স্টিফান

@ স্টেফান: উত্সাহের জন্য ধন্যবাদ। দুর্ভাগ্যক্রমে, আমি পুরো এক্সএমএল স্টাফের পক্ষে আর বর্তমান নই, তাই আমি এখনই আত্মবিশ্বাসের সাথে সম্পাদনা করতে পারি না। আপনার আপ-টু-ডেট জ্ঞান থাকলে নিজেকে নির্দ্বিধায় পান :-)।
সলেস্কে

106
  • একক নির্দেশটি এক্সএমএল ঘোষণার একটি alচ্ছিক বৈশিষ্ট্য।
  • বৈধ মানগুলি yesএবং noযেখানে noডিফল্ট মান।
  • কোনও ডিটিডি ব্যবহার করা হলে কেবল বৈশিষ্ট্যটি প্রাসঙ্গিক । ( ডিটিডি এর পরিবর্তে স্কিমা ব্যবহার করার সময় বৈশিষ্ট্যটি অপ্রাসঙ্গিক ))
  • standalone="yes"এর অর্থ হল যে এক্সএমএল প্রসেসরের অবশ্যই ডিটিডি ব্যবহার করতে হবে বৈধতার জন্য। সেক্ষেত্রে এটি ব্যবহার করা হবে না :
    • বৈশিষ্ট্যের জন্য ডিফল্ট মান
    • সত্তা ঘোষণা
    • নিয়মমাফিককরণ
  • standalone="yes"নথিটি যদি বাহ্যিক ডিটিডি ব্যবহার করে তবে বৈধতা সীমাবদ্ধতা যুক্ত করতে পারে তা নোট করুন। ডকুমেন্টে এমন কিছু জিনিস থাকে যার জন্য এক্সএমএল সংশোধন প্রয়োজন, যেমন বৈশিষ্ট্যের জন্য ডিফল্ট মান, এবং standalone="yes"ব্যবহৃত হয় তখন নথিটি অবৈধ
  • standalone="yes" ডকুমেন্ট প্রসেসিংয়ের কার্যকারিতা অনুকূল করতে সহায়তা করতে পারে।

উত্স: কোনও ডিটিডি ব্যবহার করা গেলে স্ট্যান্ড্যালোন সিউডো-অ্যাট্রিবিউট কেবলমাত্র প্রাসঙ্গিক


2
স্বতন্ত্র = "হ্যাঁ" ব্যবহারের ফলে অতিরিক্ত বৈধতার বাধা সৃষ্টি হয় (যেমন কোনও এক্সএমএল নথি অবৈধ হতে পারে)। আমি উত্তরে এটি সম্পাদনা করেছি, আশা করি ঠিক আছে।
sleske

2
@ সালস্ক আপনার অবদানের জন্য ধন্যবাদ। আপনার বক্তব্যটি পরিষ্কারভাবে উল্লেখ করার সময় আমি আপনার সম্পাদনাটি সহজ করার চেষ্টা করেছি। আমি যদি ভুল হয়ে থাকে তবে আবার নির্দ্বিধায় এডিট করুন।
রিংকে

20

standalone বর্তমান এক্সএমএল নথিটি যদি বাহ্যিক মার্কআপ ঘোষণার উপর নির্ভর করে তবে বর্ণনা করে।

ডাব্লু 3 সি তার উদ্দেশ্যটি "এক্সটেনসিবল মার্কআপ ল্যাঙ্গুয়েজ (এক্সএমএল) 1.0 (পঞ্চম সংস্করণ)" তে বর্ণনা করে:


10

এক্সএমএল প্রসেসর থেকে কোনও অ্যাপ্লিকেশনে প্রেরণ করা হিসাবে মার্কআপ ঘোষণাগুলি নথির সামগ্রীকে প্রভাবিত করতে পারে; উদাহরণগুলি অ্যাট্রিবিউট ডিফল্ট এবং সত্তার ঘোষণা। স্ট্যান্ডেলোন ডকুমেন্ট ডিক্লেয়ারেশন, যা এক্সএমএল ঘোষণার উপাদান হিসাবে উপস্থিত হতে পারে, এমন কোনও ঘোষণা রয়েছে যা ডকুমেন্ট সত্তার বাহ্যিক বা পরামিতি সত্তায় বহিরাগত প্রদর্শিত হবে কিনা তা নির্দেশ করে। [সংজ্ঞা: বাহ্যিক সাবসেটে বা প্যারামিটার সত্তায় (একটি বাহ্যিক বা অভ্যন্তরীণ, পরবর্তীটি অন্তর্ভুক্ত করা হচ্ছে কারণ বৈধকরণ প্রসেসরগুলি সেগুলি পড়ার প্রয়োজন নেই) - একটি বহিরাগত মার্কআপ ঘোষণাকে মার্কআপ ঘোষণা হিসাবে সংজ্ঞায়িত করা হয়]

http://www.w3.org/TR/xml/#sec-rmd


12
ওটার মানে কি?
ড্যান কার্টার

4
আমি হ্রাস পেয়েছি যেহেতু এটি মাঝারি কিউআই সহ সাধারণ মানুষের কাছে বোধগম্য হওয়া উচিত।
আন্দ্রে সিলভেস্ট্রি

8

standalone=yesঘোষণার উদ্দেশ্যটি হ'ল গ্যারান্টি দেওয়া যে ডকুমেন্টের অভ্যন্তরীণ তথ্যগুলি কেবলমাত্র অভ্যন্তরীণ ডিটিডির উপর ভিত্তি করে বিশ্বস্ততার সাথে পুনরুদ্ধার করা যেতে পারে, অর্থাৎ নথিটি কোনও বাহ্যিক উল্লেখ ছাড়াই "একা দাঁড়িয়ে" থাকতে পারে stand একটি স্বতন্ত্র নথি বৈধকরণ নিশ্চিত করে যে নন-যাচাইকরণ প্রসেসরের ডকুমেন্টটি সঠিকভাবে বিশ্লেষণের জন্য উপলব্ধ সমস্ত তথ্য থাকবে।

স্বতন্ত্র ঘোষণার কোনও উদ্দেশ্য হয় না যদি কোনও নথির কোনও বাহ্যিক ডিটিডি না থাকে এবং অভ্যন্তরীণ ডিটিডির কোনও প্যারামিটার সত্তা উল্লেখ নেই, কারণ এই নথিগুলি ইতিমধ্যে স্পষ্টতই স্বতন্ত্র are

নিম্নলিখিত ব্যবহারের প্রকৃত প্রভাবগুলি standalone=yes

  • বাহ্যিক ডিটিডি বা প্যারামিটার সত্তা রেফারেন্স সহ নথিগুলি বিশ্লেষণ করার সময় প্রসেসরদের ত্রুটি ছুঁড়ে ফেলতে বাধ্য করা হয়, নথিতে যদি অভ্যন্তরীণ ডিটিডিতে ঘোষিত না হওয়া সত্তাগুলির রেফারেন্স থাকে (অ-বৈধকরণ প্রসেসর হিসাবে প্যারামিটার সত্তাগুলির প্রতিস্থাপন পাঠ্য ব্যতীত) পার্স এটি); amp, lt, gt, apos, এবং quotশুধুমাত্র ব্যতিক্রম আছে

  • স্বতন্ত্র হিসাবে ঘোষিত নয় এমন কোনও দস্তাবেজ বিশ্লেষণ করার সময়, কোনও অ-বৈধকরণ প্রসেসর প্যারামিটার সত্তার রেফারেন্সের সাথে সাথেই অভ্যন্তরীণ ডিটিডি পার্সিং বন্ধ করতে পারে। স্বতন্ত্র হিসাবে একটি নথি ঘোষনা অ-বৈধতা প্রসেসরগুলিকে এক বা একাধিক পরামিতি সত্তা রেফারেন্সগুলি উপেক্ষা করার পরেও অভ্যন্তরীণ ডিটিডিতে মার্কআপ ঘোষণাগুলি পার্স করতে বাধ্য করে।

  • নিম্নলিখিতটি কোনও নথিতে পাওয়া গেলে প্রসেসরের বৈধতা প্রেরণকারীদের বাধ্য করে এবং তাদের সম্পর্কিত ঘোষণাগুলি বাহ্যিক ডিটিডি বা পরামিতি সত্তা প্রতিস্থাপনের পাঠ্যে রয়েছে:

    • ডিফল্ট মান সহ বৈশিষ্ট্যগুলি, যদি তাদের মানটি স্পষ্টভাবে সরবরাহ না করা হয়
    • সত্তা রেফারেন্স (ব্যতীত অন্য amp, lt, gt, apos, এবং quot)
    • টোকেনযুক্ত প্রকারের সাথে বৈশিষ্ট্যগুলি, যদি বৈশিষ্ট্যের মানটি সাধারণীকরণের মাধ্যমে পরিবর্তিত হয়
    • উপাদানগুলির উপাদানগুলির সাথে উপাদানগুলি, যদি তাদের সামগ্রীতে কোনও সাদা স্থান দেখা দেয়

কোনও অ-বৈধকরণ প্রসেসর বহিরাগত ডিটিডি পুনরুদ্ধার করতে পারে এবং ডকুমেন্টগুলির জন্য সমস্ত পরামিতি সত্তা রেফারেন্সগুলি প্রসারিত বিবেচনা করতে পারে, যদিও এটি করার কোনও বাধ্যবাধকতা নেই, অর্থাত্ সেটিংটি standalone=yesতাত্ত্বিকভাবে অ-বৈধকরণ প্রসেসরের জন্য কার্যকারিতা উন্নত করতে পারে (স্পোলার সতর্কতা: এটি সম্ভবত কোনও পার্থক্য তৈরি করবে না)।


এখানে অন্য উত্তরগুলি হয় অসম্পূর্ণ বা ভুল, মূল ভুল ধারণাটি এটি

একক ঘোষণাপত্রটি পার্সারকে ডিটিডি-তে যে কোনও মার্কআপ ঘোষণাকে উপেক্ষা করতে বলার একটি উপায়। ডিটিডি এর পরে কেবল বৈধতার জন্য ব্যবহৃত হয়।

স্ট্যান্ডেলোন = "হ্যাঁ" এর অর্থ হল যে এক্সএমএল প্রসেসরের অবশ্যই ডিটিডি ব্যবহার করতে হবে বৈধতার জন্য।

একেবারে বিপরীতভাবে, ডকুমেন্টকে স্ট্যান্ডেলোন হিসাবে ঘোষণা করা আসলে একটি অ-বৈধতা প্রসেসরকে অভ্যন্তরীণ ঘোষণাগুলি পার্স করতে বাধ্য করবে যা সাধারণত এটিকে উপেক্ষা করতে হবে (অর্থাত্ তারা অবহেলা পরামিতি সত্তার রেফারেন্সের পরে)। অ-বৈধকরণ প্রসেসরগুলিকে অবশ্যই ডিফল্ট অ্যাট্রিবিউট মানগুলি সরবরাহ করতে এবং টোকেনযুক্ত বৈশিষ্ট্যগুলিকে স্বাভাবিককরণের জন্য অভ্যন্তরীণ ডিটিডি তে তথ্য অবশ্যই ব্যবহার করতে হবে, কারণ এটি বৈধতার স্বতন্ত্র।

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