এস-এক্সপ্রেশন (-শ) স্বরলিপি দ্বারা এক্সএমএল এর সুবিধা কী কী?


11

আমি এক্সএমএল এবং এস-এক্সপ্রেশন (-ish) স্বরলিপি সম্পর্কে একটি প্রশ্ন জিজ্ঞাসা করতে চাই। এস-এক্সপ্রেশনগুলি বেশ পুরানো; তারা সত্যিই সহজ। আমরা দুটি রূপকে বিবেচনা করতে পারি যা অর্থের সমান, বাক্য গঠনে পৃথক:

( পোলিশ উইকিপিডিয়া থেকে এক্সএমএল কোড নেওয়া )

<?xml version="1.0" encoding="UTF-8"?>
<ksiazka-telefoniczna kategoria="bohaterowie książek">
 <!-- komentarz -->
  <osoba charakter="dobry">
    <imie>Ambroży</imie>
    <nazwisko>Kleks</nazwisko>
    <telefon>123-456-789</telefon>
  </osoba>
  <osoba charakter="zły">
    <imie>Alojzy</imie>
    <nazwisko>Bąbel</nazwisko>
    <telefon/>
  </osoba>
</ksiazka-telefoniczna>

এস-এক্সপ্রেশন (-ish) সংস্করণ:

(:version "1.0" :encoding "utf-8")
(ksiazka-telefoniczna :category "bohaterowie książek"
  ; komentarz(a comment)
  (osoba :charakter "dobry"
    (imie Ambroży)
    (nazwisko Kleks)
    (telefon 123-456-789))
  (osoba :charakter "zły"
    (imie Alojzy)
    (nazwisko Bąbel)
    (telefon)))

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



5
ডাউনভোটারদের কাছে: আপনি যদি প্রশ্নটির সাথে একমত না হন তবে ডাউনोट করবেন না, তবে আপনি যদি এটি খারাপ মানের বলে মনে করেন (এবং তারপরে, মানের উন্নতির জন্য পরিবর্তনগুলি প্রস্তাব করুন)। @ রবার্টহারভে যদি আপনি মনে করেন যে এটি একটি উত্তর, তবে দয়া করে কোনও মন্তব্য বাদ দেওয়ার পরিবর্তে আমার প্রশ্নের উত্তর দিন।
ম্যাথিউরক

1
ডাউনভোট বোতামের সরঞ্জামদ্বারে "এই প্রশ্নটি কোনও গবেষণা প্রচেষ্টা দেখায় না" এই বাক্যটি অন্তর্ভুক্ত করে।
রবার্ট হার্ভে

1
এটি মনে করার চেষ্টা করুন যে এটি কোনও আলোচনার ফোরাম নয়। বাস্তব প্রশ্নের উত্তর রয়েছে এবং সম্প্রদায়ের সদস্যরা মতামত না দিয়ে উত্তর সরবরাহ করবেন বলে আশা করা হচ্ছে।
রবার্ট হার্ভে

1
এক্সএমএলের জন্য অতিরিক্ত বাজে আর্গুমেন্টগুলি (খোলার ব্র্যাকেটের নাম সহ বন্ধ বন্ধনী থাকা যেমন) সহজেই এস-এক্সপ্রেশন দ্বারা অনুকরণ করা যায়। সহজভাবে লিখুন (para "This is a paragraph " (footnote "(better than the one under there)" "." /footnote) /para)
অ্যান্ড্রু

উত্তর:


13

আমরা জানি এক্সএমএলের ডিজাইনাররা এস-এক্সপ্রেশনগুলির সাথে পরিচিত ছিলেন, যেহেতু এক্সএমএল এসজিএমএল ভিত্তিক, এবং এসজিএমএলের একটি স্টাইল শীট ল্যাঙ্গুয়েজ রয়েছে, ডিএসএসএসএল, যা এস-এক্সপ্রেশন সিনট্যাক্স ব্যবহার করে (এবং এম্বেডেড স্ক্রিপ্টিং ভাষা হিসাবে স্কিম)।

তবুও এক্সএমএল-এর ব্যবহারের ক্ষেত্রে তারা এস-এক্সপ্রেশনগুলির চেয়ে আলাদা সিনট্যাক্স বেছে নিয়েছে। এক্সএমএল প্রাথমিকভাবে মেশিন দ্বারা উত্পাদিত কাঠামোগত ডেটা এবং এইচটিএমএল এর মতো মার্কআপ ল্যাঙ্গুয়েজ উভয়কে সমর্থন করার জন্য ডিজাইন করা হয়েছিল, যা ম্যানুয়ালি রচনা করা হয় এবং এতে মিশ্র সামগ্রী রয়েছে (মেটাডাটা সহ উপাদানগুলির সাথে মেশানো টেক্সট)।

অতিরেক

মার্কআপ পাঠ্যের নথিগুলি প্রায়শই স্ক্রিনফুলের চেয়ে দীর্ঘ হয় are আপনি যদি একটি দেখতে পান )এবং আপনি কাঠামোর শুরু দেখতে না পান তবে আপনি বেশ হারিয়ে গেছেন; আপনি জানেন না যে কোনও অধ্যায় বা একটি সাইডবার যা সবে শেষ হয়েছিল। এক্সএমএলের মতো এন্ডট্যাগগুলিতে ট্যাগনামটি পুনরাবৃত্তি করার অনর্থকতা </sidebar>মানব লেখকের পক্ষে এটিকে অনেক সহজ করে তোলে। এটি এটিকে আরও দৃ makes় করে তোলে: আপনি যদি ভুলক্রমে কোনও শেষ ট্যাগ মুছে ফেলেন তবে আপনি প্রায়শই নির্ধারণ করতে পারেন কোন শেষ ট্যাগটি অনুপস্থিত।

এসজিএমএল (এক্সএমএলের পূর্বসূরী) আপনাকে একক অক্ষরটিতে বিকল্প ট্যাগটি সংক্ষিপ্ত আকারে ছোট করার অনুমতি দিয়েছে, তবে সরলতার জন্য এই বৈশিষ্ট্যটি এক্সএমএল থেকে বাদ ছিল।

সুতরাং সংক্ষেপে, এক্সএমএল ডিজাইন দ্বারা আরও ভার্বোজ, কারণ এটি মানব-সম্পাদনযোগ্য ডকুমেন্টকে সমর্থন করার জন্য ডিজাইন করা হয়েছে। আজ এক্সএমএল বিভিন্ন উদ্দেশ্যে ব্যবহৃত হয়েছে, খাঁটি মেশিন থেকে মেশিন যোগাযোগের জন্যও, যেখানে এই অতিরিক্ত ব্যবহারের প্রয়োজন নেই।

মিশ্রিত সামগ্রী

আপনার প্রস্তাবিত বাক্য গঠন মিশ্রিত সামগ্রী খুব ভাল সমর্থন করবে না। এইচটিএমএলে এই উদাহরণটি নিন:

<p>Hi! <a href="example.com">Click here</a>!</p>

আপনি আপনার সিনট্যাক্সে এটি কীভাবে প্রকাশ করবেন? বৈশিষ্ট্য এবং পাঠ্য সামগ্রীর মধ্যে পার্থক্য করার জন্য আপনার এক ধরণের অতিরিক্ত ডিলিমিটারের প্রয়োজন হবে। হঠাৎ এটি আর সংক্ষিপ্ত না।

বিশেষ অক্ষর

অ্যাঙ্গেল বন্ধনীগুলি প্রথম পাঠ্যে বন্ধনী এবং কোলনগুলির চেয়ে বিরল।

সঙ্গতি

এক্সএমএল ডিজাইন করার সময় এইচটিএমএল ইতিমধ্যে বন্যপ্রাণে সফল ছিল এবং অনুরূপ বাক্য গঠনটি বেছে নেওয়ার পক্ষে তা বোঝা যায়।

এক্সএমএল কেন জিতল?

এস-এক্সপ্রেশনগুলি কখনই এক্সএমএলের বিকল্প ছিল না। এক্সএমএল অনুমানটি কোণ বন্ধনীগুলির চেয়ে অনেক বেশি; এটি উপাদান এবং বৈশিষ্ট্য এবং মিশ্র সামগ্রী, পলায়ন, চরিত্রের এনকোডিং, ডিটিডি-সিনট্যাক্স এবং বৈধতা ইত্যাদির জন্য একটি সিনট্যাক্স সংজ্ঞায়িত করে। এস-এক্সপ্রেশনগুলির জন্য অনুরূপ কিছুই বিদ্যমান নেই। আপনি এখানে প্রস্তাব হিসাবে অবশ্যই একটি অনুরূপ মানটি সংজ্ঞায়িত করতে পারেন, তবে এই সময় কেউ এটি করেনি। এক্সএমএল ডাব্লু 3 সি দ্বারা আশীর্বাদ পেয়েছে এবং তাই প্রধান খেলোয়াড়দের দ্বারা গৃহীত হয়েছিল এবং ডেটা এক্সচেঞ্জের জন্য ডিফ্যাক্টোর স্ট্যান্ডার্ডে পরিণত হয়েছিল।


3
তার উদাহরণে, কলোনগুলি গুণাবলীর জন্য ব্যবহার করা হয় না? E. g। (পি হাই! (a: href "example.com" এখানে ক্লিক করুন))? (বা আপনার উত্তর পোস্ট হওয়ার পরে তিনি কেবল এটিকে সম্পাদন করেছিলেন?)
হেডক্র্যাব

যদিও এটি আপনার (দুর্দান্ত) উত্তর থেকে কিছুটা দূরে নেয় না, কে তাদের ডান মনের হাতে XML নথি তৈরি করে?
জারেড স্মিথ

আরে জ্যাকস, এই দুর্দান্ত উত্তরের জন্য ধন্যবাদ! আমি হেডক্র্যাবের সাথে একমত হই যে মিশ্র সামগ্রীগুলি কোনও সমস্যা নয়। আমি জারেডের সাথেও একমত, যদিও আমি অনুমান করি যে XML কখনও কখনও ম্যানুয়ালি পড়ে / লেখা হয় wrote
ম্যাথু রক

@ হ্যাডক্র্যাব: এটি বলা শক্ত যেহেতু প্রকৃত অনুমান নেই, কেবল একটি অনুমানমূলক উদাহরণ। তবে আমার কাছে মনে হয় যে উদ্ধৃত স্ট্রিংয়ের পরিবর্তে পাঠ্যকে প্রতীক হিসাবে উপস্থাপন করা শ্বেত স্পেসের সাথে অস্পষ্টতার দিকে পরিচালিত করবে। এস-এক্সপ্রেশনগুলি পরমাণু AFAIK এর মধ্যে উল্লেখযোগ্য সাদা স্থানকে সমর্থন করে না, তবে <PRE>এইচটিএমএল-তে থাকা উপাদানকে সমর্থন করার জন্য আপনার এটি দরকার । সুতরাং আমি ধরে নিয়েছিলাম উদ্ধৃতিগুলির প্রয়োজন হবে।
জ্যাকবিবি

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

9

ব্যক্তিগতভাবে, আমি মনে করি এক্সএমএল সম্পর্কে সর্বোত্তম অংশটি হ'ল এর সিনট্যাক্সের পরিবর্তে সু-সংজ্ঞায়িত স্কিমা ক্ষমতা। স্কিমা মেকানিজম ব্যবহারকারীদের তাদের ডকুমেন্ট ফর্ম্যাটটি প্রকাশ করার অনুমতি দেয় যা তারা বৈধ নথি হিসাবে বিবেচনা করে share অটোমেটেড ভ্যালিডিটারও রয়েছে। এছাড়াও, এক ব্যবহারকারী দ্বারা তৈরি প্রকার এবং স্কিমার অন্যান্য ব্যবহারকারীদের দ্বারা প্রসারিত করা যেতে পারে।

যতদূর আমি জানি যে এলআইএসপি ভাষা নিজেই (যা ওপি-র প্রশ্নের নমুনা ব্যবহার করছে না) বাদে এস-এক্সপ্রেশনটির জন্য সাধারণ উদ্দেশ্যে স্কিমার ব্যবস্থাটি মানক করার প্রয়াসের কাছাকাছি কেউ কোথাও তৈরি করেনি।


1
যদিও আমি এক্সএমএল এর ভার্বোসটি অপছন্দ করি, স্কিমা ক্ষমতাগুলি উল্লেখ করার জন্য এটি +1 যা এটি প্রায় মূল্যবান করে তোলে। :-)
user949300


1

এখানে দুটি কারণ যা আমি কোনও "এস-এক্সপ্রেশন-ইশ" এর চেয়ে এক্সএমএলকে বেছে নেব:

একটি ভাল সংজ্ঞাযুক্ত সিনট্যাকটিক এবং শব্দার্থক মডেল

এক্সএমএল কেবল নোডের গাছ নয়, শ্রেণিবদ্ধ নোডগুলির একটি গাছ যা বিভিন্ন সিনট্যাক্টিকাল প্রতিনিধিত্ব এবং ভিন্ন আচরণ করে। উদাহরণস্বরূপ, প্রদত্ত নামের একটি বৈশিষ্ট্য কেবলমাত্র কোনও প্রদত্ত নোডের জন্য উপস্থিত হতে পারে, যখন শিশু নোড একাধিকবার উপস্থিত হতে পারে।

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

সাধনী দ্বারা প্রয়োগকরণ

মানক সিনট্যাকটিক এবং শব্দার্থক মডেল থেকে আপনি সরঞ্জামগুলি তৈরি করতে পারেন - এবং প্রচুর লোক রয়েছে। আপনি প্রতিটি সাধারণ ভাষা / প্ল্যাটফর্মের জন্য এক্সএমএল পার্সার / সিরিয়ালাইজার, এক্সপ্যাথ এবং এক্সএসএলটি প্রসেসরের কিছু ফর্ম খুঁজে পেতে পারেন। এবং আপনি জানেন যে তারা প্রত্যেকে প্রতিটি প্ল্যাটফর্মে একই রকম আচরণ করবে।


এবং এখানে আরও কয়েকটি বিষয় বিবেচনা করতে হবে:

গ্র্যান্ড স্কিমে, এক্সএমএল সেই ভারবস নয়

আপনার উদাহরণে, আপনি আসলে কী সরিয়ে দিয়েছেন? আমি এটি পড়তে হিসাবে, আপনি:

  • প্রতিটি এক্সপ্রেশন জন্য ক্লোজিং ট্যাগ মুছে ফেলা।
  • এটি >মুছে ফেলা হয়েছে যা সাধারণত বাচ্চাদের থেকে উদ্বোধনী ট্যাগকে আলাদা করে দেয়।
  • =বৈশিষ্ট্যটির নাম এবং মান পৃথক করে এমনটি প্রতিস্থাপন করে যা :শিশুটি একটি বৈশিষ্ট্য হিসাবে চিহ্নিত করে; কোন সঞ্চয় নেই।

আমি মনে করি এটি XML এর অভ্যন্তরীণ এবং বাহ্যিক উপস্থাপনা খুব আলাদা যে স্বীকৃতি প্রদান করাও গুরুত্বপূর্ণ। অভ্যন্তরীণভাবে, একটি এক্সএমএল ট্রি খুব কমপ্যাক্ট। এবং বিভিন্ন উপাদান ইতিমধ্যে শ্রেণীবদ্ধ করা হয়েছে, এটি কৌশল ব্যবহার খুব দক্ষ। বাহ্যিকভাবে, ভাল, হ্যাঁ আপনি এই সমস্ত ক্লোজিং ট্যাগ পান তবে সেগুলি খুব ভালভাবে সংকোচিত হয়।

"ভারবোসিটি" কি আসল ইস্যু?

আমি মনে করি যে আসল প্রশ্নটি এক্সএমএল "ভার্বোজ" কিনা তা নয়, তবে এটি কোনও নির্দিষ্ট উদ্দেশ্যে প্রয়োজনের চেয়ে বেশি অভিব্যক্তিপূর্ণ কিনা। কিছু উদাহরণ:

  • কোনও উপাদানকে বৈশিষ্ট্য ধারণ করার ক্ষমতা, যা শিশু উপাদানগুলির থেকে শব্দার্থগতভাবে পৃথক। ব্যান্ডের বাইরে থাকা তথ্যের জন্য যেমন উপাদানটির সামগ্রীর নেটিভ ডেটা ধরণের বিবরণ হিসাবে দরকারী। তবে সম্ভবত আপনার এটির দরকার নেই, কারণ আপনার বাহ্যিক স্পেসটি সামগ্রীটিকে সংজ্ঞায়িত করে।
  • মিশ্র সামগ্রী, যাতে কোনও উপাদান শিশু উপাদান এবং পাঠ উভয়কে ধরে রাখতে পারে (পাশাপাশি মন্তব্য এবং প্রক্রিয়াকরণের নির্দেশাবলী)। মার্কআপের জন্য দরকারী, তবে সাধারণ উপাত্ত উপস্থাপনের জন্য নাও হতে পারে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.