XML پارسر
XML دستاویزات فوری فارمیٹ، ویلیڈیٹ اور کوئری کریں۔ زیادہ سے زیادہ رفتار اور پرائیویسی کے لیے نیٹو براؤزر API پر چلتا ہے۔
XML ویل-فارمد نہیں ہے
نتائج
نوڈ ٹری
XML پارسر کا استعمال کیسے کریں
اپنا XML پیسٹ کریں
اپنا XML مواد کاپی کر کے ان پٹ فیلڈ میں پیسٹ کریں، یا نمونہ XML لوڈ کریں پر کلک کریں۔
فارمیٹ اور ویلیڈیٹ
خوشنما بنانے کے لیے فارمیٹ، کمپریس کے لیے منی فائی، ایرر چیک کے لیے ویلیڈیٹ استعمال کریں۔
XPath سے کوئری
ایک XPath ایکسپریشن لکھیں اور مخصوص نوڈ نکالنے کے لیے XPath چلائیں پر کلک کریں۔
XML کیا ہے؟
XML (eXtensible Markup Language) ایک مارک اپ زبان ہے جو دستاویزات کو ایسے فارمیٹ میں انکوڈ کرنے کے اصولوں کا سیٹ بیان کرتی ہے جو انسان اور مشین دونوں پڑھ سکیں۔ کنفیگریشن فائلوں، ڈیٹا ایکسچینج (SOAP, RSS, Atom) اور دستاویز ذخیرہ کاری میں بکثرت استعمال ہوتی ہے۔
XML کی نمایاں خصوصیات
خود بیان کرنے والی
XML ڈیٹا ساخت بیان کرنے کے لیے حسب ضرورت ٹیگ استعمال کرتی ہے، جس سے مواد اور درجہ بندی ایک نظر میں سمجھ آ جاتی ہے۔
پلیٹ فارم سے آزاد
سادہ متن کے طور پر XML ہر پلیٹ فارم، پروگرامنگ زبان اور سسٹم پر بغیر مطابقت کے مسئلے کے کام کرتی ہے۔
توسیع پذیر
DTD یا XML Schema سے آپ کسی بھی ڈیٹا ماڈل کے مطابق اپنے ٹیگ اور دستاویز ساخت بیان کر سکتے ہیں۔
عام سوالات
ویل-فارمد XML بنیادی XML نحوی اصولوں پر چلتی ہے (درست نیسٹنگ، بند ٹیگ، واحد روٹ ایلیمنٹ)۔ ویلیڈ XML ویل-فارمد بھی ہوتی ہے اور ایسے اسکیما (DTD, XSD) کے مطابق بھی جو اجازت شدہ ساخت اور ڈیٹا ٹائپس بیان کرتا ہے۔
نہیں، یہ ٹول صرف ویل-فارمدنیس (نحو کی درستی) چیک کرتا ہے۔ DTD یا XSD کے خلاف اسکیما پر مبنی ویلیڈیشن براؤزر میں نیٹو طور پر معاون نہیں۔
براؤزر کا نیٹو document.evaluate() XPath 1.0 معاون ہے۔ اس میں axes، predicates اور contains(), text(), @attribute جیسے فنکشنز سمیت عام کوئریز کی اکثریت آ جاتی ہے۔
نیمسپیس xmlns ایٹریبیوٹس کے ذریعے ایلیمنٹ ناموں کو ایک URI سے جوڑتا ہے - مثلاً ایک atom:feed ایلیمنٹ xmlns:atom="http://www.w3.org/2005/Atom" کا اعلان کرتا ہے۔ پریفکس کوئی بھی ہو سکتا ہے؛ صرف URI ہی نیمسپیس کی شناخت کرتا ہے، اس لیے دو دستاویزات ایک ہی ذخیرہ الفاظ کے لیے مختلف پریفکس رکھ سکتی ہیں۔ اسی لیے پریفکس مختلف ہوں تو XPath میچنگ میں اکثر local-name() والا طریقہ لگتا ہے۔
XPath 1.0 ایکسپریشنز ٹری پر چلتے ہیں: /rss/channel/item راستے سے منتخب کرتا ہے، //item دستاویز میں کہیں بھی item تلاش کرتا ہے، item[@type='news'] ایک ایٹریبیوٹ پر فلٹر کرتا ہے، اور item[1] یا item[last()] جیسے predicates مخصوص نوڈ چنتے ہیں۔ یہی XSLT، بے شمار ٹیسٹ فریم ورکس اور اس ٹول کے ایویلیوایٹر کے پیچھے کی کوئری زبان ہے۔
XXE (XML External Entity) انجیکشن فائل پاتھ یا URL کی طرف اشارہ کرتے DTD entity کا غلط استعمال کر کے سرور سائیڈ پارسر سے اسے حاصل کرواتا ہے - ماضی میں /etc/passwd یا اندرونی سروسز لیک ہوئے ہیں۔ براؤزر کے XML پارسر بیرونی entity حل نہیں کرتے، اور یہ ٹول سرور کے بغیر مکمل طور پر آپ کے براؤزر میں چلتا ہے، اس لیے پیسٹ کیا گیا XML فائل پڑھنا یا SSRF ٹرگر نہیں کر سکتا۔
DOM پوری دستاویز ایک ٹری میں لوڈ کرتا ہے جسے آپ بے ترتیب نیویگیٹ کر سکتے ہیں - بدیہی مگر عظیم فائلوں کے لیے میموری خور۔ SAX ایک ہی پاس میں ایونٹس (اسٹارٹ ٹیگ، ٹیکسٹ، اینڈ ٹیگ) مستقل میموری کے ساتھ اسٹریم کرتا ہے - تیز مگر صرف آگے کی طرف۔ براؤزر JavaScript میں DOMParser (DOM طرز) ملتا ہے؛ JavaScript میں اسٹریمنگ XML کے لیے لائبریری یا Web Streams درکار ہیں۔
عام متن میں انہیں < اور & کے طور پر ایسکیپ کریں - کریکٹر ڈیٹا میں خام < اور & غیر قانونی ہیں۔ مارک اپ سے بھرپور متن کے بلاکس کے لیے CDATA سیکشن میں لپیٹ دیں، جس کے آخر میں ]]> تسلسل نہ آئے تب تک کوئی ایسکیپنگ نہیں چاہیے۔ مواد میں صرف < اور & لازمی ہیں؛ > صرف اُس وقت ایسکیپ کرنا ہوتا ہے جب وہ وہی اختتامی تسلسل بناتا ہو۔
متعلقہ ٹولز
مستند حوالہ جات
اس ٹول کے پیچھے کے بنیادی ذرائع — ثانوی خلاصے نہیں بلکہ سرکاری معیار اور specifications۔
W3C - Extensible Markup Language (XML) 1.0
W3C Recommendation جو فارمیٹ کی بنیاد Extensible Markup Language 1.0 کو بیان کرتی ہے۔
XML - Wikipedia
XML کا ٹری ماڈل، namespaces، اور فارمیٹ کا validity اور well-formedness پر کیوں زور ہے۔
MDN Web Docs - XML
براؤزر میں XML پروسیسنگ پر Mozilla گائیڈ، DOMParser کے استعمال سمیت۔