XML فارمیٹر اور ویلیڈیٹر
XML پیسٹ کریں، مناسب انڈینٹیشن کے ساتھ فارمیٹ کریں، یا سنٹیکس چیک کریں۔ ایٹریبیوٹس اور نیم اسپیس کو ہینڈل کرتا ہے۔ کوئی اپ لوڈ نہیں۔
- بائیں ٹیکسٹ ایریا میں اپنا XML پیسٹ کریں۔
- فارمیٹ پر کلک کریں تاکہ fast-xml-parser کے ذریعے راؤنڈ-ٹرپ ہو اور انڈینٹڈ XML نکلے۔
- تصدیق پر کلک کریں ان پٹ کو تبدیل کیے بغیر well-formedness چیک کرنے کے لیے۔
- غلطیاں دستاویز میں غلط مقام کی نشاندہی کرتی ہیں۔
یہ کیا کرتا ہے؟
fast-xml-parser کے ساتھ XML کو پارس کرتا ہے اور مستقل انڈینٹیشن کے ساتھ اسے دوبارہ ایمٹ کرتا ہے۔ ہر ایلیمنٹ کے اندر ایٹریبیوٹ کی ترتیب محفوظ ہے؛ ایلیمنٹ نیسٹنگ بالکل وہی محفوظ ہے۔ مخلوط مواد (ٹیکسٹ + بچے ایلیمنٹس) اور نیم اسپیسز (prefix:tag) برقرار رکھے جاتے ہیں۔ آؤٹ پٹ well-formed XML ہے — لیکن well-formed valid کے برابر نہیں (validity کے لیے اسکیما یا 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>` دو مختلف ٹیگ نام ہیں۔ کیس کو بالکل ملائیں۔
- بغیر ایسکیپ کے خاص حروف۔ ٹیکسٹ یا ایٹریبیوٹ ویلیو کے اندر لٹرل `<`, `>`, `&`, یا کوٹ کو ایسکیپ کرنا ضروری ہے: `<`, `>`, `&`, `"`۔ ایسے حروف والے ڈیٹا کو 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: " " }` یا کوئی دوسری سٹرنگ پاس کریں۔