এর অর্থ - <? এক্সএমএল সংস্করণ = "1.0" এনকোডিং = "utf-8"?>


107

আমি এক্সএমএলে নতুন এবং আমি বেসিকগুলি বোঝার চেষ্টা করছি। আমি নীচে "লার্নিং এক্সএমএল" লাইনটি পড়েছি, তবে এটি এখনও আমার কাছে পরিষ্কার নয়। কেউ আমাকে এমন কোনও বই বা ওয়েবসাইটে নির্দেশ করতে পারেন যা এই মূল বিষয়গুলি পরিষ্কারভাবে ব্যাখ্যা করে?

এক্সএমএল শেখা থেকে :

এক্সএমএল ঘোষণাটি নথির সর্বাধিক সাধারণ বৈশিষ্ট্য বর্ণনা করে, এক্সএমএল প্রসেসরকে বলে যে এই নথির ব্যাখ্যার জন্য এটি একটি এক্সএমএল পার্সার প্রয়োজন।

এটার মানে কি?

আমি সেই xml versionঅংশটি বুঝি - ডক এবং দস্তাবেজের ব্যবহারকারী উভয়েরই এক্সএমএলের একই সংস্করণে "আলাপ" করা উচিত। কিন্তু encodingঅংশ সম্পর্কে কি ? কেন এটি প্রয়োজনীয়?



উত্তর:


129

"এনকোডিং" বৈশিষ্ট্যটি বুঝতে, আপনাকে বাইট এবং অক্ষরের মধ্যে পার্থক্য বুঝতে হবে ।

বাইটগুলি 0 এবং 255 এর মধ্যে সংখ্যা হিসাবে ভাবেন, যেখানে অক্ষরগুলি "a", "1" এবং "Ä" এর মতো জিনিস। উপলব্ধ সমস্ত অক্ষরের সেটকে একটি অক্ষর সেট বলে

প্রতিটি চরিত্রের এক বা একাধিক বাইটের ক্রম রয়েছে যা এর প্রতিনিধিত্ব করতে ব্যবহৃত হয়; যাইহোক, বাইটগুলির সঠিক সংখ্যা এবং মান ব্যবহৃত এনকোডিংয়ের উপর নির্ভর করে এবং অনেকগুলি বিভিন্ন এনকোডিং রয়েছে।

বেশিরভাগ এনকোডিংগুলি পুরানো অক্ষর সেট এবং এএসসিআইআই নামে পরিচিত এনকোডিংয়ের উপর ভিত্তি করে যা প্রতিটি চরিত্রের জন্য একক বাইট (প্রকৃতপক্ষে কেবলমাত্র 7 বিট) থাকে এবং এতে ইউএস ইংরাজীতে ব্যবহৃত প্রচলিত প্রচলিত অক্ষর সহ 128 টি অক্ষর থাকে।

উদাহরণস্বরূপ, ASCII অক্ষর সেটটিতে এখানে 6 টি অক্ষর রয়েছে যা 60 থেকে 65 এর মান দ্বারা প্রতিনিধিত্ব করা হয়।

Extract of ASCII Table 60-65
╔══════╦══════════════╗
║ Byte ║  Character   ║
╠══════╬══════════════║
║  60  ║      <       ║
║  61  ║      =       62  ║      >       ║
║  63  ║      ?       ║
║  64  ║      @       ║
║  65  ║      A       ║
╚══════╩══════════════╝

সম্পূর্ণ ASCII সেটটিতে ব্যবহৃত সর্বনিম্ন মানটি শূন্য এবং সর্বাধিক 127 হয় (এটি উভয়ই লুকানো নিয়ন্ত্রণের অক্ষর)।

তবে একবারে আপনার যখন বেসিক ASCII সরবরাহ করে তার চেয়ে বেশি অক্ষরের প্রয়োজন শুরু হয় (উদাহরণস্বরূপ, উচ্চারণ, মুদ্রার চিহ্ন, গ্রাফিক চিহ্ন ইত্যাদি) সহ, ASCII উপযুক্ত নয় এবং আপনার আরও কিছু বিস্তৃত প্রয়োজন। আপনার আরও অক্ষর প্রয়োজন (একটি আলাদা অক্ষর সেট) এবং আপনার একটি পৃথক এনকোডিং প্রয়োজন কারণ 128 টি অক্ষর সমস্ত অক্ষরের সাথে খাপ খায় যথেষ্ট নয় Some কিছু এনকোডিংগুলি একটি বাইট (256 অক্ষর) বা ছয় বাইট পর্যন্ত অফার করে।

সময়ের সাথে সাথে প্রচুর এনকোডিং তৈরি করা হয়েছে। উইন্ডোজ বিশ্বে, সিপি 1252, বা আইএসও -8859-1 রয়েছে, যেখানে লিনাক্স ব্যবহারকারীরা ইউটিএফ -8 সমর্থন করে। জাভা ইউটিএফ -16 স্থানীয়ভাবে ব্যবহার করে।

একটি এনকোডিংয়ের একটি অক্ষরের জন্য বাইট মানগুলির একটি অনুক্রম অন্য এনকোডিংয়ে সম্পূর্ণ ভিন্ন চরিত্রের জন্য দাঁড়িয়ে থাকতে পারে বা অবৈধও হতে পারে।

উদাহরণস্বরূপ, আইএসও 8859-1 , একটি ¢ একটি মান এক বাইট দ্বারা প্রতিনিধিত্ব করা হয় 226, যেহেতু এ হল UTF-8 এটিকে দুটি বাইট: 195, 162। যাইহোক, এ আইএসও 8859-1 , 195, 162দুই অক্ষর, হবে , একটি ¢

এক্সএমএলটিকে অক্ষরের অনুক্রম হিসাবে নয়, বাইটের ক্রম হিসাবে ভাবেন।

এক্সএমএল প্রাপ্ত সিস্টেমটি বাইটগুলি দেখে কল্পনা করুন 195, 162। এটি কীভাবে জানতে পারে যে এগুলি চরিত্রগুলি কী?

সিস্টেমটি সেই বাইটগুলি প্রকৃত অক্ষর হিসাবে ব্যাখ্যা করার জন্য (এবং সেগুলি প্রদর্শিত হবে বা তাদের অন্য এনকোডিংয়ে রূপান্তর করবে), এটি এক্সএমএলে ব্যবহৃত এনকোডিংটি জানতে হবে।

যেহেতু বেশিরভাগ সাধারণ এনকোডিংগুলি ASCII এর সাথে সামঞ্জস্যপূর্ণ, যতক্ষণ না বেসিক বর্ণানুক্রমিক অক্ষর এবং চিহ্নগুলি দেখা যায়, এই ক্ষেত্রে, ঘোষনাটি নিজেই কেবলমাত্র ASCII অক্ষর ব্যবহার করে এনকোডিংটি কী তা থেকে দূরে সরে যেতে পারে। অন্যান্য ক্ষেত্রে, পার্সার অবশ্যই ঘোষণার এনকোডিংটি চেষ্টা করে দেখতে হবে। যেহেতু এটি জানে যে ঘোষণাটি এর সাথে শুরু হয় <?xmlএটি করা খুব সহজ।

পরিশেষে, versionবৈশিষ্ট্যটি এক্সএমএল সংস্করণ নির্দিষ্ট করে, যার মধ্যে এই মুহূর্তে দুটি রয়েছে ( উইকিপিডিয়া এক্সএমএল সংস্করণগুলি দেখুন the সংস্করণগুলির মধ্যে সামান্য পার্থক্য রয়েছে, তাই কোনও এক্সএমএল পার্সার এটি কী কাজ করছে তা জানতে হবে most বেশিরভাগ ক্ষেত্রে (ইংরেজী ক্ষেত্রে যাইহোক স্পিকার), সংস্করণ 1.0 যথেষ্ট।


9
"শিরোনাম নিজেই ASCII এনকোডিং ব্যবহার করে": আমি মনে করি আপনি XML ঘোষণার উল্লেখ করছেন। এটি অন্যান্য নথির মতো এনকোড করা আছে; ইউটিএফ -16 বা হোয়াট নোট। একটি এক্সএমএল প্রসেসর যতক্ষণ না এটি এনকোডিংয়ের বিশদটি পড়তে পারে ততক্ষণ কয়েকটি পরীক্ষা করা যায়।
টম ব্লডজেট

4
আমি এই ছাপে ছিলাম যে প্রিলামাল / প্রোলোগটি ইউটিএফ -8 এর অধীনে এনকোড করা হবে এবং যা পার্সারকে বলেছিল কীভাবে বাকী বাইটগুলি (প্রকৃত এক্সএমএল নথি )কে সঠিক এনকোডিংয়ে রূপান্তর করতে হয়। আবার ভুল! :-)
কেলি দাড়ি

5
এখানে একটি প্রস্তাবিত পাঠ্য: joelonsoftware.com/2003/10/08/…
সুদীপ ভান্ডারী

26

সমস্ত এক্সএমএল নথিগুলিতে একটি এক্সএমএল ঘোষণা প্রয়োজন হয় না; তবে এক্সএইচটিএমএল ডকুমেন্ট লেখকরা তাদের সমস্ত নথিতে এক্সএমএল ঘোষণাগুলি ব্যবহার করতে দৃ strongly়ভাবে উত্সাহিত হয়েছেন। যখন ডকুমেন্টের অক্ষর এনকোডিং ডিফল্ট UTF-8 বা UTF-16 ব্যতীত অন্য কোনও এনকোডিং উচ্চ স্তরের প্রোটোকল দ্বারা নির্ধারিত হয় না তখন এ জাতীয় ঘোষণার প্রয়োজন হয়। এখানে একটি এক্সএইচটিএমএল ডকুমেন্টের উদাহরণ রয়েছে। এই উদাহরণে, এক্সএমএল ঘোষণা অন্তর্ভুক্ত করা হয়েছে।

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html 
 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Virtual Library</title>
  </head>
  <body>
    <p>Moved to <a href="http://example.org/">example.org</a>.</p>
 </body>
</html>

এক্সএমএল এর জন্য ডাব্লু 3 মান উল্লেখ করুন ।


4
যে এক্সএমএল এক্সএইচটিএমএল লিঙ্ক। আপনি কি xML w3.org/TR/xML এর সাথে লিঙ্ক যুক্ত করতে চেয়েছিলেন বা xhtml লিঙ্কটির নাম বোঝাতে চাইছেন?
16

Xhtml xML ডকুমেন্টেশন বোঝায়। ডকুমেন্ট প্রকারের ঘোষণাটি সুগঠিত এক্সএমএল জন্য প্রয়োজন হয় না not
xvan

"দয়া করে এক্সএমএল এর জন্য ডাব্লু 3 মান উল্লেখ করুন।" আইওউ, ফ্যাকিং ফ্যাক্স পড়ুন, যা একটি দীর্ঘ দীর্ঘ নথি। কেন লোকেরা কেবল "কী" ব্যাখ্যা করতে পারে না? আছে এবং কেন সেখানে আছে ???
ধন্য

3

এটি এক্সএমএল al চ্ছিক উপস্থাপনা।

  • version="1.0" এর মানে এই যে এই ফাইলটি এই XML মানকে মেনে চলে
  • encoding="utf-8" ইউটিএফ -8 ইউনিকোড এনকোডিং ব্যবহার করে ফাইলটি এনকোড করা হয়েছে means


2

কেউ আমাকে এমন কোনও বই বা ওয়েবসাইটে নির্দেশ করতে পারেন যা এই মূল বিষয়গুলি পরিষ্কারভাবে ব্যাখ্যা করে?

আপনি উদাহরণ সহ এই এক্সএমএল টিউটোরিয়ালটি পরীক্ষা করতে পারেন ।

তবে এনকোডিং অংশটির কী হবে? কেন এটি প্রয়োজনীয়?

ডাব্লু 3 সি এনকোডিং সম্পর্কে ব্যাখ্যা সরবরাহ করে:

"এক্সএমএল এবং এইচটিএমএল 4.0.০ এর জন্য নির্ধারিত নথির অক্ষরটি ইউনিকোড (ওরফে আইএসও 10646) This যতক্ষণ ক্লায়েন্ট এবং সার্ভার এনকোডিংয়ে সম্মত হয় ততক্ষণ তারা ইউনিকোডে রূপান্তরিত হতে পারে এমন কোনও এনকোডিং ব্যবহার করতে পারে ... "


-1

নথির মানচিত্রে এক্সএমএল ঘোষণায় নিম্নলিখিতটি রয়েছে:

The version number, ?xml version="1.0"?. 

এই বাধ্যতামূলক. যদিও এক্সএমএলের ভবিষ্যতের সংস্করণগুলির জন্য নম্বরটি পরিবর্তিত হতে পারে, তবে বর্তমান সংস্করণ 1.0।

এনকোডিং ঘোষণা,

encoding="UTF-8"?

এটি alচ্ছিক। যদি ব্যবহার করা হয় তবে এক্সএমএল ঘোষণায় সংস্করণ তথ্যের পরে অবশ্যই এনকোডিং ঘোষণার উপস্থিত হতে হবে এবং বিদ্যমান অক্ষর এনকোডিংয়ের প্রতিনিধিত্বকারী একটি মান অবশ্যই থাকতে হবে contain

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