XML Formatter / Validator

قالب‌بند / اعتبارسنج XML

Pretty-print، minify و اعتبارسنجی هر XML — پاسخ‌های REST، پاکت‌های SOAP، فیدهای RSS، sitemapها، Maven، AndroidManifest. خروجی با برجسته‌سازی نحوی، گزارش خطای خط + ستون. همه در مرورگر شما.

well-formed بودن مجموعهٔ قواعد ساختاری پایه است: تگ‌ها باید به‌درستی تو در تو و بسته شوند، attributeها باید در گیومه باشند، باید یک عنصر ریشه واحد وجود داشته باشد و کاراکترهای ویژه باید escape شوند (<، &، و غیره). این ابزار با استفاده از DOMParser بومی مرورگر well-formed بودن را بررسی می‌کند.

اعتبار یک بررسی سخت‌گیرانه‌تر در برابر یک schema (DTD، XSD، RelaxNG) است — «سند با این گرامر مطابقت دارد». DOMParser مرورگر اعتبارسنجی schema انجام نمی‌دهد؛ برای اعتبارسنجی XSD به ابزار سمت سرور مانند xmllint --schema نیاز دارید.

بله. بخش‌های CDATA (<![CDATA[…]]>) محتوای خود را دقیقاً همان‌طور که نوشته شده‌اند نگه می‌دارند — کاراکترهای ویژه داخل آن‌ها مجدداً escape نمی‌شوند. نظرات (<!-- … -->) و processing instructionها (<?xml-stylesheet … ?>) در موقعیت‌های اصلی خود قرار می‌گیرند. خط declaration و doctype XML به‌عنوان خطوط اول حفظ می‌شوند.

ورودی
خروجی

            

ساخته‌شده برای XML واقعی، نه نمونه‌های اسباب‌بازی

پاکت‌های SOAP، فیدهای RSS، sitemapها، `pom.xml` Maven، AndroidManifest — همه در قالب‌بندی، فشرده‌سازی و اعتبارسنجی به‌درستی مدیریت می‌شوند.

Pretty-print با تورفتگی مناسب

تورفتگی قابل تنظیم ۲ فاصله، ۴ فاصله یا Tab. تگ‌های self-closing به همان صورت باقی می‌مانند. بخش‌های CDATA، نظرات، processing instructionها و declaration XML همگی پس از یک رفت‌وبرگشت قالب‌بندی حفظ می‌شوند.

فشرده‌سازی

حذف فاصله‌های بی‌اهمیت بین عناصر و فشرده کردن کل سند به یک خط. برای جاسازی XML در یک فیلد رشته JSON یا ارسال روی یک سیم محدود مفید است.

اعتبارسنجی با خط + ستون

بررسی well-formed بودن با استفاده از DOMParser بومی مرورگر. در صورت خطا، خط و ستون نشانه‌گذاری معیوب به‌صورت inline نمایش داده می‌شود تا مستقیماً به مشکل بپرید.

خروجی با برجسته‌سازی نحوی

نام تگ‌ها، attributeها، مقادیر attribute، متن، نظرات، CDATA و processing instructionها همه رنگی شده‌اند تا ساختار بلافاصله قابل خواندن باشد.

حریم خصوصی به‌صورت طراحی‌شده

هر بایت در مرورگر باقی می‌ماند. پارس، قالب‌بندی، اعتبارسنجی و دانلود همگی به‌صورت JavaScript روی دستگاه شما اجرا می‌شوند. DevTools → Network را باز کنید و صفر درخواست خروجی را تأیید کنید.

کوچک + سریع

JavaScript خالص، بدون runtime فریم‌ورک. بارگذاری اولیه زیر ۲۵ کیلوبایت gzip شده. قالب‌بندی یک سند XML با حجم ۲۰۰ کیلوبایت و رندر مجدد با برجسته‌سازی نحوی زیر ۸۰ میلی‌ثانیه طول می‌کشد.

چگونه XML را قالب‌بندی و اعتبارسنجی کنیم

چهار مرحله از XML شلوغ تا خروجی تمیز و اعتبارسنجی‌شده.

  1. 1

    XML خود را بچسبانید

    هر payload XML را رها یا بچسبانید — پاسخ‌های REST API، پاکت‌های SOAP، فیدهای RSS / Atom، sitemapها، configها. ابزار همزمان با تایپ شما به‌طور خودکار قالب‌بندی می‌کند (با debounce ۳۵۰ میلی‌ثانیه).

  2. 2

    تورفتگی را انتخاب کنید

    ۲ فاصله پیش‌فرض مدرن است (با Prettier و بیشتر راهنماهای سبک مطابقت دارد). ۴ فاصله قرارداد قدیمی‌تر است (Java و.NET). Tab با عرض tab ویرایشگر شما مطابقت دارد — وقتی سند قرار است دستی ویرایش شود مفید است.

  3. 3

    اعتبارسنجی یا فشرده‌سازی

    اعتبارسنجی هر گونه خطای well-formed بودن را با خط + ستون گزارش می‌کند. فشرده‌سازی سند را به یک خط جمع می‌کند — برای جاسازی XML در یک رشته JSON، ستون پایگاه‌داده یا متغیر shell مفید است.

  4. 4

    کپی یا دانلود

    روی آیکون کپی کلیک کنید تا XML تمیزشده به کلیپ‌بورد شما ارسال شود، یا به‌صورت formatted.xml دانلود کنید. خروجی CDATA، نظرات، processing instructionها و declaration XML را حفظ می‌کند.

ساخته‌شده برای SOAP، RSS، sitemap و فایل‌های پیکربندی

چهار جریان کاری متداول XML که در آن‌ها یک قالب‌بند مرورگری با اولویت حریم خصوصی بهتر از باز کردن IDE است.

اشکال‌زدایی SOAP / API

یک پاسخ خام SOAP را از log شبکه خود بچسبانید، آن را قالب‌بندی کنید و حالا fault واقعی داخل پاکت قابل مشاهده است. خط + ستون خطا به شما اجازه می‌دهد در عرض چند ثانیه به یک پیشوند namespace بدشکل یا & escape نشده بپرید.

نگارش sitemap و RSS

`sitemap.xml` یا فید RSS دستی‌نوشته خود را بچسبانید و well-formed بودن را قبل از ارسال به Search Console / aggregatorها اعتبارسنجی کنید. برای جاسازی در اسکریپت‌های اتوماسیون به یک خط فشرده کنید.

فایل‌های build و configها

pom.xml Maven، beanهای Spring، نگاشت‌های NHibernate، AndroidManifest.xml Android — همه پس از ویرایش‌های دستی از قالب‌بندی مجدد سود می‌برند. قبل از commit کردن اعتبارسنجی کنید تا اشتباهات تایپی که build در غیر این صورت از آن‌ها شکایت می‌کرد گرفته شود.

اسناد آفیس و درون EPUB

.docx، .xlsx، .pptx و .epub همگی ZIPهایی از XML هستند. XML داخلی را استخراج کنید، اینجا بچسبانید، قالب‌بندی کنید و می‌توانید ساختار را تمیز بخوانید یا ویرایش کنید قبل از اینکه دوباره zip شود.

۱۰۰٪ خصوصی — در مرورگر شما اجرا می‌شود

payloadهای XML هرگز دستگاه شما را ترک نمی‌کنند. DevTools → Network را باز کنید و در حین قالب‌بندی، اعتبارسنجی، کپی یا دانلود صفر درخواست خروجی خواهید دید.

  • پارس از DOMParser بومی مرورگر استفاده می‌کند؛ قالب‌بندی و فشرده‌سازی پیمایش‌های ساده JavaScript روی درخت DOM حاصل هستند.
  • بدون اعتبارسنج راه دور، بدون API XML شخص ثالث. هر بایت از XML شما روی دستگاه شما باقی می‌ماند.
  • بدون ورود، بدون تله‌متری روی محتوای سند. ما فقط از یک cookie برای وضعیت رضایت cookie و یکی برای ترجیح زبان استفاده می‌کنیم.

راهنماهای مرتبط

خواندنی‌های دست‌چین‌شده درباره XML، اشکال‌زدایی SOAP و جریان‌های کاری فایل پیکربندی.

پرسش‌های متداول

well-formed بودن چیست و تفاوتش با XML «معتبر» چیست؟

well-formed بودن مجموعهٔ قواعد ساختاری پایه است: تگ‌ها باید به‌درستی تو در تو و بسته شوند، attributeها باید در گیومه باشند، باید یک عنصر ریشه واحد وجود داشته باشد و کاراکترهای ویژه باید escape شوند (&lt;، &amp;، و غیره). این ابزار با استفاده از DOMParser بومی مرورگر well-formed بودن را بررسی می‌کند.

اعتبار یک بررسی سخت‌گیرانه‌تر در برابر یک schema (DTD، XSD، RelaxNG) است — «سند با این گرامر مطابقت دارد». DOMParser مرورگر اعتبارسنجی schema انجام نمی‌دهد؛ برای اعتبارسنجی XSD به ابزار سمت سرور مانند xmllint --schema نیاز دارید.

آیا قالب‌بندی، CDATA، نظرات و processing instructionها را حفظ می‌کند؟

بله. بخش‌های CDATA (<![CDATA[…]]>) محتوای خود را دقیقاً همان‌طور که نوشته شده‌اند نگه می‌دارند — کاراکترهای ویژه داخل آن‌ها مجدداً escape نمی‌شوند. نظرات (<!-- … -->) و processing instructionها (<?xml-stylesheet … ?>) در موقعیت‌های اصلی خود قرار می‌گیرند. خط declaration و doctype XML به‌عنوان خطوط اول حفظ می‌شوند.

آیا می‌توانم یک پاکت SOAP یا فید RSS را بچسبانم؟

بله، هر چیزی که well-formed باشد کار می‌کند — پاکت‌های SOAP (با پیشوندهای namespace مانند soap:Envelope، soap:Body)، فیدهای RSS / Atom، sitemapها، SVG، plist، pom.xml Maven، تنظیمات Spring، container.xml EPUB، AndroidManifest.xml Android. پیشوندهای namespace حفظ می‌شوند — ما attributeهای xmlns: را حذف نمی‌کنیم.

چرا XML من «parser error» می‌دهد در حالی که به نظر درست می‌رسد؟

متداول‌ترین دلایل: (۱) & escape نشده در داخل متن یا مقادیر attribute — باید &amp; باشد؛ (۲) دو عنصر ریشه (XML دقیقاً یکی را اجازه می‌دهد)؛ (۳) تگی که املای متفاوتی با تگ بستن خود دارد (مثلاً <Item>…</item> — XML به حروف بزرگ و کوچک حساس است)؛ (۴) مقدار attribute در گیومه قرار نگرفته است؛ (۵) یک < بدون جفت در محتوای متنی. خط + ستون نمایش‌داده‌شده در پیام خطا به موقعیت ناموفق اشاره می‌کند.

آیا چیزی به سرور شما ارسال می‌شود؟

خیر. پارس، قالب‌بندی، فشرده‌سازی، اعتبارسنجی، برجسته‌سازی نحوی و دانلود همگی به‌صورت JavaScript در مرورگر شما اجرا می‌شوند. DevTools → Network را باز کنید و در حین استفاده صفر درخواست خروجی خواهید دید. ما از یک cookie برای وضعیت رضایت cookie و یکی برای ترجیح زبان استفاده می‌کنیم، همین.