XML ফরম্যাটার ও ভ্যালিডেটর

XML পেস্ট করুন, সঠিক ইন্ডেন্টেশনে ফরম্যাট করুন, অথবা সিনট্যাক্স যাচাই করুন। অ্যাট্রিবিউট ও নেমস্পেস সমর্থিত। কোনো আপলোড নেই।

  1. বাম টেক্সট এরিয়ায় আপনার XML পেস্ট করুন।
  2. ফরম্যাট ক্লিক করুন যাতে fast-xml-parser-এর মধ্য দিয়ে রাউন্ড-ট্রিপ হয়ে ইন্ডেন্টেড XML তৈরি হয়।
  3. যাচাই ক্লিক করুন ইনপুট পরিবর্তন না করেই well-formedness পরীক্ষা করতে।
  4. ত্রুটি ডকুমেন্টে ভুল অবস্থানের দিকে ইঙ্গিত করে।
এটি কী করে?

fast-xml-parser দিয়ে XML পার্স করে এবং সামঞ্জস্যপূর্ণ ইন্ডেন্টেশন সহ পুনরায় এমিট করে। প্রতিটি এলিমেন্টের মধ্যে অ্যাট্রিবিউট ক্রম সংরক্ষিত; এলিমেন্ট নেস্টিং ঠিক যেমন আছে তেমনই সংরক্ষিত। মিশ্রিত সামগ্রী (টেক্সট + চাইল্ড এলিমেন্ট) এবং নেমস্পেস (prefix:tag) অক্ষত থাকে। আউটপুট well-formed XML — কিন্তু well-formed মানে valid নয় (validity-এর জন্য schema বা DTD লাগে, যা এই টুল পরীক্ষা করে না)।

উদাহরণ

অগোছালো XML ইনপুট:

<root version="1"><name>Ada</name><tags>math</tags><tags>logic</tags></root>

ফরম্যাট করা আউটপুট:

<root version="1">
  <name>Ada</name>
  <tags>math</tags>
  <tags>logic</tags>
</root>

সাধারণ XML ত্রুটি এবং কীভাবে ঠিক করবেন

XML-এর well-formedness নিয়ম HTML-এর চেয়ে কঠোর। নিচের প্যাটার্নগুলো বেশিরভাগ পার্সার ব্যর্থতা কভার করে।

  • অবন্ধ ট্যাগ। `<a><b></a>` অবৈধ — `<b>` কোথাও বন্ধ হতে হবে (`<b/>` বা `</b>`)। XML HTML-শৈলী ঐচ্ছিক বন্ধ ট্যাগ অনুমোদন করে না।
  • কেস বেমিল। XML কেস-সংবেদনশীল — `<Foo></foo>` দুটি ভিন্ন ট্যাগ নাম। কেস ঠিকঠাক মেলান।
  • এস্কেপ না করা বিশেষ অক্ষর। টেক্সট বা অ্যাট্রিবিউট মানের ভিতরে আক্ষরিক `<`, `>`, `&` বা উদ্ধৃতি এস্কেপ করতে হবে: `&lt;`, `&gt;`, `&amp;`, `&quot;`। এই অক্ষরযুক্ত ডেটা CDATA-তে মুড়ুন: `<![CDATA[...]]>`।
  • একাধিক রুট। XML-এর ঠিক একটি রুট এলিমেন্ট দরকার। শীর্ষ স্তরে `<a/><b/>` অবৈধ — মুড়ুন: `<root><a/><b/></root>`।
  • অবৈধ এলিমেন্ট নাম। এলিমেন্ট নাম অঙ্ক দিয়ে শুরু হতে পারে না, স্পেস থাকতে পারে না, বা সংরক্ষিত অক্ষর (`< > & " \'`) ব্যবহার করতে পারে না। `xml` (যেকোনো কেস) দিয়ে শুরু হওয়া নাম স্পেক দ্বারা সংরক্ষিত।
  • অ্যাট্রিবিউটের চারপাশে বেমিল উদ্ধৃতি। `<a name="value\'>` ডবল এবং সিঙ্গেল উদ্ধৃতি মেলায়। প্রতি অ্যাট্রিবিউট একটি স্টাইল ধারাবাহিকভাবে বেছে নিন। উভয়ই বৈধ XML।
প্রায়শই জিজ্ঞাসিত প্রশ্ন

ফরম্যাটিং কি আমার ডেটা পরিবর্তন করে?

শুধুমাত্র এলিমেন্টের মধ্যে হোয়াইটস্পেস। এলিমেন্ট ক্রম, অ্যাট্রিবিউট ক্রম, অ্যাট্রিবিউট মান, টেক্সট সামগ্রী এবং CDATA ফ্রেমিং সংরক্ষিত। সেলফ-ক্লোজিং রূপ (`<x/>`) এবং স্পষ্ট রূপ (`<x></x>`) স্বাভাবিক হতে পারে।

XML মন্তব্য কি সংরক্ষিত হয়?

fast-xml-parser ডিফল্টে মন্তব্য বাদ দেয়। যদি মন্তব্য-সংরক্ষণকারী ফরম্যাটিং দরকার হয়, একটি ভিন্ন টুল (যেমন XSLT identity transform, বা `xmllint --format`) ব্যবহার করুন।

এটি কি স্কিমার বিরুদ্ধে যাচাই করে?

না। এটি শুধু well-formedness পরীক্ষা করে — যে ডকুমেন্ট সিনট্যাক্টিকভাবে বৈধ XML হিসাবে পার্স হয়। স্কিমা যাচাই (XSD, DTD, RelaxNG) আলাদা ধাপ যার জন্য স্কিমা অতিরিক্ত ইনপুট হিসাবে দরকার।

নেমস্পেস কীভাবে সামলানো হয়?

নেমস্পেস প্রিফিক্স এলিমেন্ট নামের অংশ (`x:foo`) হিসাবে রাখা হয়। ডিফল্ট নেমস্পেস ঘোষণা এবং প্রিফিক্স বাইন্ডিং অ্যাট্রিবিউট হিসাবে সংরক্ষিত। নেমস্পেস-সচেতন প্রক্রিয়াকরণ (URI সমাধান) করা হয় না।

আমার XML কি আপলোড হয়?

না। সব আপনার ব্রাউজারে চলে — আপনার ইনপুট এই পেজের JavaScript দ্বারা পার্স ও পুনরায়-সিরিয়ালাইজ হয় এবং কখনো কোনো সার্ভারে পাঠানো হয় না।

আমি কি ইন্ডেন্টেশন কাস্টমাইজ করতে পারি?

বর্তমানে প্রতি স্তরে 2 স্পেসে নির্ধারিত। কাস্টমাইজ করতে, কমান্ড লাইনে fast-xml-parser চালান — একই লাইব্রেরি — এবং `{ indentBy: " " }` বা যেকোনো অন্য স্ট্রিং পাস করুন।