আমরা কি সম্পূর্ণভাবে JSON এর সাথে এক্সএমএল প্রতিস্থাপন করতে পারি? [বন্ধ]


78

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

যদি আমরা তাদের ধারণাগুলি মানচিত্র করার চেষ্টা করি, আমরা বলতে পারি (আমি ভুল হলে আমাকে সংশোধন করতে পারি):

  1. XML ট্যাগগুলি JSON এর সমতুল্য {}
  2. এক্সএমএল বৈশিষ্ট্যগুলি JSON বৈশিষ্ট্যের সমতুল্য
  3. XML ট্যাগ সংগ্রহটি JSON এর সমতুল্য []

আমি কেবল ভাবতে পারি, যা জেএসএনে নেই, এটি হ'ল এক্সএমএল নেমস্পেস

প্রশ্নটি হ'ল এই ম্যাপিংটি বিবেচনা করে এবং এই ম্যাপিংয়ে জেএসওন অত্যন্ত হালকা, আমরা কী এক্সএমএল ছাড়া ভবিষ্যতে (বা কমপক্ষে তাত্ত্বিকভাবে একটি বিশ্বের কথা ভাবতে পারি) একটি বিশ্ব দেখতে পাব, তবে জেএসওএন এক্সএমএল যা কিছু করে তা দিয়ে? এক্সএমএল ব্যবহৃত হয় আমরা যেখানেই JSON ব্যবহার করতে পারি?

পিএস: দয়া করে নোট করুন যে আমি এই প্রশ্নটি দেখেছি । আমি এখানে যা জিজ্ঞাসা করছি তার থেকে এটি সম্পূর্ণ আলাদা। সুতরাং দয়া করে সদৃশ উল্লেখ করবেন না ।


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

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

2
ফিলিপ, এটি কোনও কিছু ভাঙার জন্য প্রশ্ন নয়। এটি কেবল JSON এর অভাব কী তা দেখার চেষ্টা করে, যাতে আমরা এটি উন্নতি করতে পারি। :)
সা Saeedদ নেমতি

4
দুটি প্রযুক্তির মধ্যে পার্থক্য সম্পর্কে আলোচনা কোথায় উন্নতি করা যায় তা দেখার জন্য একটির অন্যটির সাথে প্রতিস্থাপন করা যায় কিনা তা জিজ্ঞাসার চেয়ে খুব আলাদা। পূর্বেরটি পরবর্তীকালের চেয়ে বেশি পণ্ডিত পর্যালোচনা যা কোনও কিছুর চেয়ে হতাশার চেয়ে বেশি বিরোধী মনে হয়
ফিলিপ রেগান

12
এটি কাল্পনিক নয়। জেএসএনের কাছে এমন কোনও বৈশিষ্ট্য নেই যা XML এর কাছে রয়েছে।
এস্লট

উত্তর:


153

যে জিনিসটি এক্সএমএলকে এর শক্তি দেয় এবং এর প্রচুর জটিলতা মিশ্রিত সামগ্রী। এই জাতীয় জিনিস:

<p>A <b>fine</b> mess we're in!</p>

এমনকি জেএসএনে এটি করার চেষ্টা করবেন না, বা এটি প্রচলিত প্রোগ্রামিং ভাষাগুলিতে কৌশলগত করুন। তারা কাজের জন্য ডিজাইন করা হয়নি।

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


33
+1: এটি স্বতন্ত্র বৈশিষ্ট্য। দুর্দান্ত পয়েন্ট।
এস .লট

7
@ মিশেল, আপনি আমাকে মূল্যবান কিছু শিখিয়েছেন। এটি একটি দুর্দান্ত উত্তর। +1 টি।
সাইদ নেমতি

9
.... পি, A বি উপাদান এবং `আমরা যে জগাখিচুড়ি করছি! Of এর 3 টি নোড রয়েছে` এটি একটি অ্যারে, যা আপনি কেবল JSON এ ব্যাখ্যা করতে পারবেন।
ছদ্মবেশে

5
@ রব নো, তবে আমি ব্যাখ্যা করছি যে আপনি এইচটিএমএল দ্বারা প্রকাশিত জিনিসগুলি আরও বেশি স্বচ্ছতার সাথে সংজ্ঞা দিতে পারেন, এবং সম্ভবত জেএসওনের মাধ্যমে দ্রুত পার্সিং করা (বিভিন্ন ধরণের নোডগুলি খুঁজে পাওয়ার জন্য পাঠ্যের কম পার্সিং করা প্রয়োজন)। এইচটিএমএল যদি JSON-ML থাকত তবে আমাদের কাছে আরও বেশি ডেভস থাকতে পারে যা আসলে ডম, পাঠ্য নোড এবং বাইন্ডিংগুলি বোঝে।
ছদ্মবেশ

5
@ বায়ার্নরিজ: হ্যাঁ এটি এক্সএমএল, এবং হ্যাঁ এটি বৈধ। এটিও এইচটিএমএল পয়েন্টের পাশে রয়েছে; আসলে, এক্সএইচটিএমএলটিও বৈধ এক্সএমএল। :-)
মার্টিজন

31

আমি মনে করি, মূল পার্থক্যটি হ'ল এক্সএমএলটি তার ডিডিডি এবং সমস্ত কিছুর সাথে স্ব-ব্যাখ্যা করার জন্য তৈরি করা হয়েছে।

জেএসওএন সহ, আপনি যে ডেটা গ্রহণ করছেন তা সম্পর্কে আপনাকে অনেকটা ধারণা করতে হবে।


7
"এক্সএমএল স্ব-ব্যাখ্যা করার জন্য ডিজাইন করা হয়েছে"। আপনি কি এর জন্য একটি লিঙ্ক বা একটি রেফারেন্স সরবরাহ করতে পারেন? আমি এক্সএমএলের জন্য ডাব্লু 3 সি স্ট্যান্ডার্ডে এটি দেখতে পাচ্ছি না এবং আমি ভাবছি যে এই ধারণাটি কোথা থেকে এসেছে। আমি একটি বর্ণিত ডিজাইন লক্ষ্য চেয়ে শহুরে কিংবদন্তির মতো মনে হচ্ছে।
এস .লট

6
@ এস.লট: আমি মনে করি যে সে এর দ্বারা যা বোঝায় তা হল এক্সএমএল ট্যাগগুলির প্রকৃতি এবং নিজের মধ্যে ট্যাগযুক্ত সামগ্রীকে স্ব-বর্ণনামূলক হতে দেয়, অর্থাত্ ডিটিডিগুলি alচ্ছিক, যাতে সু-গঠিত এক্সএমএলকে ছাড়াই পার্স করা যায়। তবে আমি এই বিষয়ে আপনার গ্রহণের সাথে একমত, কারণ, প্রযুক্তিগতভাবে, জেএসএনের একই ক্ষমতা রয়েছে, তাই আমি স্ব-ব্যাখ্যা মোটেও মূল পার্থক্য দেখছি না (কেন এটি কেন ভোটগ্রহণ চালিয়ে যায় তা আমি নিশ্চিত নই), বরং বরং মাইকেল কে আরও চিহ্নে রয়েছেন।
ফিলিপ রেগান

5
@ এসলট সম্মত হয়েছেন। আমি এখানে JSON বলতে চাই json.org/example.html এর ভারবসটির অভাবের কারণে সম্পর্কিত এক্সএমএলের চেয়ে বোঝা সহজ এবং স্ব স্ব নথিভুক্ত।
ডগ টি।

4
@ মিশেল বার্গওয়ার্ট: পুরো এক্সএসডি ব্যতীত (একরকম অ্যান্টোলজি সহায়তা সহ) ট্যাগের নামগুলি আমাকে কিছুই বলবে না। "অর্থবহ" সাধারণভাবে সম্পাদন করা শক্ত। উত্তরে "স্ব-ব্যাখ্যা" বলতে কী বোঝায় সে সম্পর্কে এটি আমাকে অস্পষ্ট করে দেয়। এবং আমার কাছে প্রমাণ নেই যে এটি এক্সএমএল এর জন্য এমনকি একটি ডিজাইনের লক্ষ্য ছিল।
এস .লট

4
@ ফিলিপ রেগান: "স্ব-ব্যাখ্যাকারী কোড" এর মতো এটি XML এর বৈশিষ্ট্য হিসাবে উপস্থিত হবে না বলে মনে হয় । যদি এটি কেবলমাত্র সর্বজনীন বাস্তবায়ন লক্ষ্য যা সমস্ত সফ্টওয়্যার ভাষার (কোড, ডেটা অ্যাক্সেস, মার্কআপ, যাই হোক না কেন) ক্ষেত্রে প্রযোজ্য হয় তবে লোকেরা এটি এক্সএমএল-এর আশেপাশে উল্লেখ না করা উচিত।
এস .লট

21

জেএসএনের একটি আক্ষরিক অনুবাদ প্রায়শই কম সংক্ষিপ্ত এবং কম পরিষ্কার clear বিবেচনা:

<foo>
   <x:bar x:prop1="g">
      <quuz />
   </bar>
</foo>

আমি দেখেছি সবচেয়ে কার্যকর জেএসওএন প্রতিনিধিত্ব:

{"localName":"foo",
 "children": // you need to have a special array to hold all children
 [
    {"localName": "bar",
     "namespace": "x"
        // once again, to ensure that there are no collisions,
        // attributes should be brought out into their own JSON structure 
        "attributes":[
            {"localName":"prop1",
             "namespace":"x",
             "value":"g"}
        ],
         "children":[
             {"name":"quux"}
         ]
     }
 ]}

এখন, পুরো এক্সএমএল ফাইলের জন্য এটি কল্পনা করুন। আমি বলছি না যে জেএসএনের এর জায়গা নেই তবে এক্সএমএলকে উড়িয়ে দেওয়া উচিত নয়।


8
এখন এসএক্সএমএল বিবেচনা করুন:(foo (x:bar (@ (x:prop1 "g")) (quuz)))
এসকে-যুক্তি

2
@ এসকে-লজিক: এটি একটি তুচ্ছ উদাহরণের জন্য দুর্দান্ত, তবে আমি গভীরভাবে বাসা বেঁধে, মিশ্র বিষয়বস্তুগুলি a বইয়ের মতো — এর সাথে ভাবতে পারি না। আমি মনে করি এসএক্সএমএল যে কোনও কিছুর মতোই একাডেমিক অনুশীলন।
ফিলিপ রেগান

3
@ ফিলিপ রেগান: শেভ্রোনাইটিস ব্যবহার করে কীভাবে কোনও এস-এক্সপ লেখা যায়, যখন এটি তুচ্ছ 1: 1 টি কম ভার্জোজ ফর্মে রূপান্তরিত হয়?
maaartinus

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

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

14

JSON এবং XML উভয় উপায়ে ডেটা ফর্ম্যাট করার উপায়। উভয়ই এটি পুরোপুরি ভালভাবে করতে সক্ষম, তাই জেএসওএন এক্সএমএল যা কিছু করতে পারে? হ্যাঁ.

তবে ..... আরও প্রাসঙ্গিক প্রশ্নটি এক্সএমএল / জেএসএন কী করতে পারে তা নয়, বরং আপনি এক্সএমএল / জেএসওএন দিয়ে কী করতে পারেন ।

এক্সএমএল-এর সাথে আপনি করতে পারেন এমন অনেকগুলি জিনিস যা আমি মনে করি না আপনি জেএসওএন এর সাথে করতে পারেন, যেমন এক্সএলএসটি এর সাথে অনুবাদ, এক্সপথের সাথে অনুসন্ধান এবং স্কিমার সাহায্যে বৈধতা দেওয়ার মতো। সব খুব, খুব দরকারী।


5
মিশ্র-সামগ্রী ব্যতীত যেখানে ডেটাতে ট্যাগ রয়েছে। জেএসওএন এটি খুব একটা খুব ভাল করে না।
এস .লট

11

এক্সএসএলটি ব্যবহার করে প্রচুর কার্যকারিতা রয়েছে যা জেএসওএন দিয়ে সম্ভব নাও হতে পারে। সুতরাং, যদি তারা কার্যকরীভাবে সমতুল্য না হয় তারা একে অপরকে প্রতিস্থাপন করতে পারে না।


3
এটি বলেছিল, আপনি জেএসএনকে ডিসিরিয়ালাইজ, হেরফের এবং সিরিয়ালাইজ করতে অন্য ভাষা ব্যবহার করতে পারেন, এবং এক্সএসএলটি এক্সএমএল নয়, সুতরাং এই পয়েন্টটি সত্যই সত্য oot
স্টুপারউজার

3
XSLT হয় এক্সএমএল - স্কিমা দেখুন এখানে
treecoder

ধন্যবাদ @ গ্রেনজিট, আমি এটির জন্য কেবল একটি সংক্ষিপ্ত প্রকাশ করেছি, উত্তরটি আপডেট করেছি।
স্টুপার ইউজার

2
@ স্টুপার ইউজার: জেএসএনের সাথে এটি কীভাবে "অসম্ভব" হতে পারে ? এটি কেবল একটি রূপান্তর, সম্ভবত সরঞ্জামগুলি এখনও অনুপস্থিত। বা JSON এ গুণাবলীর অভাবের সাথে সমস্যা সম্পর্কিত?
মার্টিনাস

1
@ স্টুপারউজার: এক্সএসএলটি একটি ভাষা (এক্সএমএল এর উপসেট) যার জন্য কিছু দোভাষী কমপক্ষে অন্য একটি ভাষায় লেখা হয়েছিল (সম্ভবত সি, জাভা, ... এ)। একইভাবে JSON এর জন্যও করা যেতে পারে (কিছু জেএসওএন-টি সংজ্ঞায়িত করুন, ইন্টারপ্রিটার লিখুন), তাই না?
মার্টিনাস

8

আসল বিষয়টি হল, আমরা দীর্ঘদিন উভয়ের সাথেই বাঁচতে যাচ্ছি, এবং জেএসওন ধর্মাবলম্বী হওয়াকে "ক্ষতিকারক হিসাবে বিবেচনা করা হয়"।


7

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


2
আপনার উত্তর দেওয়ার জন্য ধন্যবাদ. আমার মনে যা আছে তা বাস্তবায়নের কৌশল না করে প্রযুক্তিগত পর্যালোচনা। আমি কেবল উদাহরণস্বরূপ জানতে চাই, এই লিগ্যাসি সিস্টেমগুলির নতুন সংস্করণগুলির জন্য, আমরা কী এক্সএমএলকে পুরোপুরি ছেড়ে দিতে এবং জেএসএন ব্যবহার করতে পারি? যদি না হয় তবে আমরা JSON এ কী মিস করছি?
সাইদ নেমতি

অন্যদিকে, আমি গত কয়েক বছরে কোনও এক্সএমএল, কেবল জেএসএন ব্যবহার করি নি। এবং ভাল পরিতোষ। অবশ্যই এক্সএমএল আরও উদ্যোগী। যা কাজের সুরক্ষার জন্য দুর্দান্ত, দক্ষতার জন্য এত দুর্দান্ত নয়।
gnasher729

6

আমি বলতে চাই যে cwallenpoole একটি দুর্দান্ত পয়েন্ট তোলে। যদিও বেশিরভাগ এক্সএমএল জেএসএনে অনুবাদ করা যেতে পারে, এর জন্য এটি করা ভাল কিনা এটি আলাদা একটি পয়েন্ট।

জেএসএন ডেটা স্ট্রাকচারগুলিতে কমপক্ষে পাশাপাশি এক্সএমএল এবং সম্ভবত আরও উন্নত হিসাবে নিজেকে ndsণ দেয়, তবে এক্সএমএল পাঠ্য দলিলগুলি চিহ্নিত করার সময় জেএসএনের চেয়ে অনেক বেশি স্বাভাবিকভাবে পড়েন, যেখানে ট্যাগগুলি একটি শ্রেণিবিন্যাসকে সীমিত করার উপায় হিসাবে কেবল পাঠ্যের বৃহত প্রবাহের মধ্যে ব্যবহার করা হয় where ক্ষেত্রের।

এইচটিএমএল 5 এর নিজস্ব পার্সার থাকতে পারে, যা ডকবুকের মতো অ্যাপ্লিকেশনকে এখনও রেখে দেয়।


জেএসএন স্পষ্টতই স্ট্রিংগুলিতে থাকতে পারে যাতে এইচটিএমএল থাকতে পারে।
gnasher729

6

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

এখন, আপনি যখন ডকবুক বা অন্যান্য প্রয়োগের মতো স্টাইলের তথ্য সহ জটিল, কাঠামোগত ডেটা সম্পর্কে কথা বলছেন? এটি এক্সএমএলের জন্য একটি সঠিক ডোমেন।


4

যখন YAML একটি সুপার সেট এবং এক্সএমএল বা জেএসন এর চেয়ে অনেক বেশি অভিব্যক্তিপূর্ণ এবং তাই শক্তিশালী তখন কেন নিজেকে জেএসনে সীমাবদ্ধ করুন।

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


3

আপনি JSON এ এই দুটি অবজেক্টকে মডেল করার চেষ্টা করার সময় এটি কুশ্রী হয়ে ওঠে:

<customer><name>John Doe</name></customer>
<employee><name>John Doe</name</employee>

JSON ব্যবহার করা যেমন এটি ব্যবহৃত হয় 99% ক্ষেত্রে এর সাথে একজন হারিয়ে যায়:

{ name: "John Doe" } 

এবং এখন আপনাকে কিছু মেটা-কাঠামো যুক্ত করতে হবে এবং আপনি ডাউনসাইডগুলি রেখে যাওয়ার সময় জেএসএনের সমস্ত সৌন্দর্য চলে গেছে।


11
আপনার প্রদত্ত এক্সএমএল এর সমতুল্য JSON হ'ল { customer: { name: 'John Doe' }, employee : { name: 'John Doe' } }। প্রযুক্তিগতভাবে, আপনার উত্তর সঠিক নয়। :)
সা Saeedদ নেমতি

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

2
@ সৈয়দনায়েটি, আপনি কীভাবে জেএসনে মডেল করবেন <customer><name>John Doe</name></customer><customer><name>John Doe</name></customer>?
সুইভ

6
{গ্রাহকরা: [{নাম: 'জন দো'}, {নাম: 'জন দো'}]}?
scrwtp

2
@ স্টিজন - ডান, এবং এটি কার্যকর, তবে এটি মূল উত্তর থেকে মন্তব্যটিকে নিশ্চিত করে যে এক্সএমএলে প্রাকৃতিকভাবে উদ্ভূত কিছু জিনিসকে মডেল করতে "আপনাকে কিছু মেটা-কাঠামো যুক্ত করতে হবে"।
ম্যাট আর

3

আমি জানি না যে এই জাতীয় সুবিধা জেএসএনের জন্য বিদ্যমান কিনা, তবে। নেট এ কমপক্ষে আপনি প্রদত্ত স্কিমাটির বিপরীতে এক্সএমএলকে বৈধতা দিতে পারেন। এটি আমার চোখে এক্সএমএলের একটি মূল্যবান সুবিধা।


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