XML ফরম্যাটার ও বিউটিফায়ার

XML পেস্ট করুন এবং তা beautify করুন (পরিষ্কার ইনডেন্টেশনসহ প্রিটি-প্রিন্ট), minify করুন (এক লাইনে গুটিয়ে ফেলুন), বা validate করুন (যাচাই করুন তা well-formed কিনা)। Comments, CDATA ও attributes সংরক্ষিত থাকে — সবকিছু আপনার ব্রাউজারে চলে এবং কিছুই আপলোড হয় না।

XML ফরম্যাটার কীভাবে কাজ করে

এই টুল আপনার XML অক্ষরে অক্ষরে পড়ে এবং তা tokens-এ বিভক্ত করে — start tags, end tags, self-closing tags, টেক্সট, comments, CDATA সেকশন, processing instructions ও ডিক্লারেশন। তারপর এটি সেই tokens আবার নির্গত করে, প্রতিটি খোলা এলিমেন্টের জন্য এক স্তর ইনডেন্টেশন যোগ করে এবং বন্ধ হওয়ার সময় সরিয়ে দেয়, যাতে নেস্টিং-এর গভীরতা প্রতিটি লাইন কতটা ইনডেন্ট তা দিয়ে বোঝা যায়। যেহেতু এটি কিছু ফেলে দেওয়ার বদলে tokens নিয়ে কাজ করে, আপনার নথিতে কিছুই হারায় না: attributes, comments ও CDATA সেকশনের কাঁচা বিষয়বস্তু ঠিক তেমনই আসে যেমন আপনি টাইপ করেছিলেন। Minify এর উল্টো করে — এটি tags-এর মধ্যেকার ফাঁকা জায়গা সরিয়ে দেয় যাতে নথিটি একটিমাত্র সংক্ষিপ্ত লাইনে গুটিয়ে যায়, যখন টেক্সট ও CDATA বিষয়বস্তু অক্ষত থাকে।

Beautify বনাম minify বনাম validate

ক্রিয়াএটি কী করেএটি তখন ব্যবহার করুন…
Beautifyইনডেন্টেশন ও লাইন ব্রেক যোগ করে (2/4-স্পেস বা ট্যাব)।আপনাকে এমন XML পড়তে বা ডিবাগ করতে হবে যা মিনিফাই করা বা এক লাইনে এসেছে।
Minifytags-এর মধ্যেকার ফাঁকা জায়গা সরায়; টেক্সট ও CDATA রাখে।আপনার নেটওয়ার্কে পাঠানো বা সংরক্ষণের জন্য সবচেয়ে ছোট ফাইল দরকার।
Validatewell-formedness যাচাই করে এবং সঠিক এরর জানায়।কোনো পার্সার আপনার XML প্রত্যাখ্যান করছে এবং আপনাকে কারণ খুঁজতে হবে।

প্রতিবার যখন আপনি ইনপুট সম্পাদনা করেন বা ক্রিয়া বদলান, টুল আবার well-formedness যাচাই করে, তাই বক্সের নিচের স্ট্যাটাস লাইন সবসময় জানায় নথিটি পার্স হয় কিনা, এবং না হলে কোথায় ব্যর্থ হয়।

XML সিনট্যাক্স রেফারেন্স

অংশউদাহরণমন্তব্য
Prolog / ডিক্লারেশন<?xml version="1.0" encoding="UTF-8"?>ঐচ্ছিক প্রথম লাইন যা XML সংস্করণ ও ক্যারেক্টার এনকোডিং জানায়।
Element (এলিমেন্ট)<title>Midnight Rain</title>একটি start tag, বিষয়বস্তু, এবং একটি মিল end tag। প্রতিটি start tag বন্ধ করা আবশ্যক।
খালি এলিমেন্ট<br/>একটি self-closing tag — বিষয়বস্তুবিহীন এলিমেন্টের সংক্ষিপ্ত রূপ।
Attribute (অ্যাট্রিবিউট)<book id="bk101">start tag-এ একটি name="value" জোড়া; মান উদ্ধৃতিতে থাকতে হবে (একক বা দ্বৈত)।
Comment (কমেন্ট)<!-- notes here -->পার্সার এটি উপেক্ষা করে; এই ফরম্যাটার এটি অক্ষরে অক্ষরে রাখে।
CDATA সেকশন<![CDATA[ if (a < b) … ]]>কাঁচা টেক্সট যাতে escaping ছাড়াই < ও & থাকতে পারে — ঠিক যেমন আছে তেমনই রাখা হয়।
Processing instruction<?xml-stylesheet href="s.xsl"?>নথিটি প্রক্রিয়াকারী অ্যাপ্লিকেশনের জন্য একটি নির্দেশ।
Entity reference&lt; &gt; &amp; &quot; &apos;পাঁচটি সংরক্ষিত অক্ষর < > & " ও অ্যাপোস্ট্রফির জন্য escapes।

Well-formed বনাম valid XML

এই টুল যাচাই করে আপনার XML well-formed কিনা — এটি মৌলিক সিনট্যাক্স নিয়ম মেনে চলে: একটিমাত্র root এলিমেন্ট, প্রতিটি start tag বন্ধ, tags সঠিকভাবে নেস্টেড, attribute মান উদ্ধৃতিতে, এবং পাঁচটি সংরক্ষিত অক্ষর escaped (বা CDATA-তে মোড়া)। এটি valid হওয়া থেকে আলাদা, যার অতিরিক্ত মানে হলো নথিটি কোনো নির্দিষ্ট schema (একটি DTD বা XSD)-এর সঙ্গে সংগতিপূর্ণ, যা ঠিকঠাক সংজ্ঞায়িত করে কোন এলিমেন্ট ও attributes কোন ক্রমে অনুমোদিত। Well-formed হলো পূর্বশর্ত: কোনো schema-র বিপরীতে যাচাই করার আগে XML-কে well-formed হতে হবে। আপনার যদি কেবল আপনার ফাইলটি পরিষ্কারভাবে পার্স হওয়া দরকার হয়, তবে well-formedness-ই আপনার প্রয়োজন — এবং সেটিই এখানে স্ট্যাটাস লাইন জানায়।

সাধারণ ব্যবহার

  • এক লাইনে ফিরে আসা মিনিফাই করা API রেসপন্স (SOAP, RSS/Atom ফিড, sitemaps) পড়া।
  • কোনো diff বা কোড রিভিউয়ের আগে কনফিগারেশন ফাইল (pom.xml, Android layouts, web.xml, .svg) পরিষ্কার করা।
  • কোনো XML payload পাঠানোর আগে ছোট করা, তারপর ডিবাগ করার জন্য তা আবার বিস্তৃত করা।
  • কোনো বন্ধ না-করা বা অমিল tag খুঁজে বের করা যা কোনো কঠোর পার্সার প্রত্যাখ্যান করছে।

গোপনীয়তা

ফরম্যাটারটি সম্পূর্ণ ক্লায়েন্ট-সাইড। আপনার XML আপনার নিজের ব্রাউজারেই পার্স ও আবার ইনডেন্ট হয়, কখনো কোনো সার্ভারে পাঠানো হয় না, এবং সংরক্ষণ বা লগও করা হয় না — তাই এটি ব্যক্তিগত কনফিগারেশন ও API ডেটার সঙ্গে নিরাপদ, এবং পৃষ্ঠা লোড হওয়ার পরে অফলাইনেও কাজ করে।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

একটি XML ফরম্যাটার (বিউটিফায়ার) কী করে?
এটি XML-কে আবার ইনডেন্ট করে যাতে নেস্টেড গঠন পড়তে সহজ হয়। মিনিফাই করা বা এক-লাইনের XML — যেভাবে API ও কনফিগ ফাইল প্রায়ই সংরক্ষণ করে — আলাদা লাইনে বিস্তৃত করা হয়, প্রতিটি চাইল্ড এলিমেন্ট তার প্যারেন্টের নিচে ইনডেন্ট হয়। এই টুল ডেটা বদলায় না: এলিমেন্ট নাম, attributes, টেক্সট বিষয়বস্তু, comments ও CDATA সেকশন সবই ঠিক তেমনই সংরক্ষিত থাকে; কেবল tags-এর মধ্যেকার ফাঁকা জায়গা আবার লেখা হয়। আপনি 2-স্পেস, 4-স্পেস বা ট্যাব ইনডেন্ট বেছে নিতে পারেন।
বিউটিফাই, মিনিফাই ও ভ্যালিডেট করার মধ্যে পার্থক্য কী?
Beautify (প্রিটি-প্রিন্ট) ইনডেন্টেশন ও লাইন ব্রেক যোগ করে যাতে একজন মানুষ গঠন পড়তে পারে। Minify tags-এর মধ্যেকার সমস্ত ফাঁকা জায়গা সরিয়ে দেয় যাতে ফাইলটি পাঠানো বা সংরক্ষণের জন্য যতটা সম্ভব ছোট হয় — এলিমেন্ট ও CDATA-এর ভেতরের টেক্সট অক্ষত থাকে। Validate যাচাই করে নথিটি well-formed কিনা: প্রতিটি tag বন্ধ, tags সঠিকভাবে নেস্ট হয়, attribute মান উদ্ধৃতিতে থাকে এবং একটিমাত্র root এলিমেন্ট থাকে। এই টুল তিনটিই করতে পারে, এবং কোনো এরর থাকলে সঠিক well-formedness এরর জানায়।
এটি কি যাচাই করে আমার XML well-formed কিনা?
হ্যাঁ। এটি আপনার ইনপুট ব্রাউজারের অন্তর্নির্মিত XML পার্সার দিয়ে পার্স করে এবং একটি সবুজ "well-formed" স্ট্যাটাস বা সঠিক এরর দেখায় (যে লাইন ও কলামে পার্সিং ব্যর্থ হয়েছে সেসহ) — যেমন একটি বন্ধ না-করা tag, একটি অমিল end tag বা উদ্ধৃতিবিহীন attribute। মনে রাখবেন এটি একটি well-formedness যাচাই, schema ভ্যালিডেশন নয়: এটি নিশ্চিত করে XML ভাষার সিনট্যাক্স নিয়ম মেনে চলে, তবে এটি কোনো DTD বা XSD-এর বিপরীতে ভ্যালিডেট করে না, তাই আপনার এলিমেন্টগুলো কোনো নির্দিষ্ট schema-র সঙ্গে মেলে কিনা তা জানাবে না।
comments, CDATA ও attributes কি রাখা হয়?
হ্যাঁ। ফরম্যাটার নথিটিকে টোকেনাইজ করে, অংশ ফেলে দেয় না, তাই XML comments (<!-- … -->), CDATA সেকশন (<![CDATA[ … ]]>), processing instructions, <?xml …?> ডিক্লারেশন ও DOCTYPE লাইন সবই অক্ষরে অক্ষরে সংরক্ষিত থাকে। Attribute-এর ক্রম ও মান অক্ষত থাকে, এবং CDATA-এর ভেতরের কাঁচা টেক্সট — যেকোনো < বা & অক্ষরসহ — ঠিক তেমনই কপি হয়, কারণ এটিই তো একটি CDATA সেকশনের পুরো উদ্দেশ্য।
"unclosed tag" বা "mismatched tag" এরর কীভাবে ঠিক করব?
এই এররগুলোর মানে কোনো start tag-এর কোনো মিল end tag নেই, বা end tag-এর নাম নিকটতম খোলা এলিমেন্টের সঙ্গে মেলে না। রিপোর্ট করা লাইন ও কলাম পড়ুন, তারপর যাচাই করুন প্রতিটি <tag>-এর একটি সংশ্লিষ্ট </tag> আছে এবং tags যে ক্রমে খুলেছে ঠিক তার উল্টো ক্রমে বন্ধ হয় — <a><b></b></a>, কখনো <a><b></a></b> নয়। এছাড়া নিশ্চিত করুন নথিতে ঠিক একটি টপ-লেভেল (root) এলিমেন্ট আছে এবং প্রতিটি attribute মান উদ্ধৃতিতে মোড়া। বৈধ XML beautify করলে এই কাঠামোগত ভুলগুলো অনেক সহজে চোখে পড়ে।

সম্পর্কিত টুল

আরও টুল দেখুন

সব 70টি টুল দেখুন →