§

XML Paste

§

વિકલ્પો

‍મ‍ો‍ડ
‍ઇ‍ન‍્‍ડ‍ે‍ન‍્‍ટ
XML ‍ડ‍ે‍ક‍્‍લ‍ે‍ર‍ે‍શ‍ન
‍સ‍્‍વ‍-‍બ‍ં‍ધ ‍void ‍ટ‍ૅ‍ગ‍્‍સ
§

ફૉ‍ર‍મ‍ૅ‍ટ ‍ક‍ર‍ે‍લ ‍આ‍ઉ‍ટ‍પ‍ુ‍ટ

xml

Pretty-printing XML structured documents human eyes: IANS RSS feeds, Indian government SOAP endpoints, HL7 patient records hospital systems, GOV.IN sitemap.xml Google Bing crawl. Maven POM, Gradle XML, SVG vector assets pull request diff.

XML formatting what?

XML (Extensible Markup Language) એ સંરચિત દસ્તાવેજો અને ડેટા-આદાનપ્રદાન માટે W3C દ્વારા માનકીકૃત લખાણ ફોર્મેટ છે. ફોર્મેટિંગ — જેને pretty-printing કે beautifying પણ કહેવાય છે — એક well-formed XML સ્રોત લે છે અને તેને ફરીથી ઇન્ડેન્ટ કરે છે જેથી દરેક element, attribute, comment, processing instruction અને CDATA section સરળતાથી નજરે પડે. પાર્સ થયેલ દસ્તાવેજ ટ્રી બરાબર એવું ને એવું જ સચવાય છે; માત્ર element-વચ્ચેની ખાલી જગ્યા બદલાય છે.

XML ફોર્મેટિંગ કેવી રીતે કામ કરે છે?

તમારું ઇનપુટ સંપૂર્ણપણે તમારા બ્રાઉઝરમાં નેટિવ DOMParser અને XMLSerializer APIs તથા એક કસ્ટમ recursive ઇન્ડેન્ટરનો ઉપયોગ કરીને પ્રક્રિયા થાય છે. મુખ્ય પગલાં આ પ્રમાણે છે:

  1. તમારો ઇનપુટ textarea માંથી શબ્દશઃ: પેસ્ટ કરેલો દરેક byte સ્થાનિક મેમરી માં રાખવામાં આવે છે.
  2. બ્રાઉઝર તેને new DOMParser().parseFromString(text, 'application/xml') વડે પાર્સ કરે છે. જો ઇનપુટ well-formed ન હોય, તો પાર્સર એક <parsererror> નોડ એમ્બેડ કરે છે જેનો લખાણ-પેલોડ એન્જિને દર્શાવેલ લાઇન અને કૉલમ સંકેતો વહન કરે છે — તે એરર સ્ટ્રિપમાં શબ્દશઃ દર્શાવાય છે.
  3. સફળ પાર્સ થયા પછી, એક કસ્ટમ ઇન્ડેન્ટર DOM ટ્રીને depth-first ચાલીને દરેક element, attribute set, CDATA section, comment અને processing instruction ને વર્તમાન ઊંડાઈ પર તેની પોતાની લાઇન પર ઉત્સર્જિત કરે છે. વિકલ્પ ચાલુ હોય ત્યારે સ્વ-બંધ થતા void ટૅગ્સનું સન્માન કરવામાં આવે છે.
  4. મિનિફાઇ મોડ પાઇપલાઇનને ઊલટાવી દે છે: XMLSerializer().serializeToString(doc) એક single-line રૂપ ઉત્સર્જિત કરે છે, પછી એક ગાર્ડેડ regex CDATA બ્લોક્સની અંદરના કે non-whitespace લખાણ નોડ્સના લખાણને સ્પર્શ કર્યા વગર element-વચ્ચેની ખાલી જગ્યા દૂર કરે છે.
  5. આઉટપુટ ફક્ત-વાંચન માટેના ટેક્સ્ટએરિયામાં લખાય છે, એરર સ્ટ્રિપ સાફ થઈ જાય છે, અને Download બટન પરિણામને એક .xml ફાઇલ તરીકે પૅકેજ કરે છે જેને તમે મોકલી શકો અથવા કોઈ ટિકિટ સાથે જોડી શકો.

આ સાધનથી XML ને pretty-print શા માટે કરવું?

  • ગોપનીયતા: દરેક પાર્સ, ફોર્મેટ અને મિનિફાઇ પાસ તમારા બ્રાઉઝરમાં થાય છે. XML ક્યારેય અમારા સર્વર સુધી પહોંચતું નથી — કોઈ અપલોડ નહીં, કોઈ ટેલિમેટ્રી નહીં, કોઈ ખાતું નહીં.
  • ચોકસાઈભર્યા એરર: જ્યારે ઇનપુટ ખામીયુક્ત હોય, ત્યારે પાર્સર બરાબર એ જ લાઇન અને કૉલમ સામે લાવે છે જે બ્રાઉઝર એન્જિન પોતે રિપોર્ટ કરે છે, કોઈ કૃત્રિમ અનુમાન નહીં — એ જ નંબર જે તમે DevTools માં જોશો.
  • વફાદાર રાઉન્ડ-ટ્રિપ: ફોર્મેટ કરો પછી મિનિફાઇ કરો અને તમને તમારા મૂળ દસ્તાવેજનો byte-equivalent પાછો મળે છે (XML ઘોષણા વિકલ્પને બાદ કરતાં) — ફોર્મેટિંગ ક્યારેય namespaces ને ફરીથી canonicalise કરતું નથી કે attribute ક્રમ ફરી લખતું નથી.
  • ઝડપી: શુદ્ધ DOMParser તથા આશરે 60-લાઇનનું ઇન્ડેન્ટર અનેક-મેગાબાઇટ SOAP envelopes અને OOXML chunks ને તરત જ સંભાળે છે, અને ડાઉનલોડ કરવાની કોઈ external લાઇબ્રેરી નથી.

XML ફોર્મેટિંગના સામાન્ય ઉપયોગો કયા છે?

XML ને pretty-print કરવાનું વેબ પ્રકાશન, એન્ટરપ્રાઇઝ ઇન્ટિગ્રેશન અને ડેટા આર્કાઇવલ માં બધે જ જોવા મળે છે:

  • RSS / Atom feed તપાસ: કોઈ podcast કે news feed ની બોડી પેસ્ટ કરીને પ્રકાશન પહેલાં channel metadata, item ordering અને namespace prefixes ની ખાતરી કરો.
  • SOAP ડિબગિંગ: Wireshark કે કોઈ SOAP ક્લાયન્ટ લૉગ માંથી કૉપી કરેલ envelope ને ફોર્મેટ કરો જેથી Header, Body અને Fault sections એક નજરમાં દેખાય.
  • Sitemap ઑડિટિંગ: કોઈ હરીફ પાસેથી કે તમારી પોતાની staging site પરથી લાવેલ sitemap.xml ને ફરી ઇન્ડેન્ટ કરો, entries ગણો અને દરેક URL દીઠ hreflang alternates ની ખાતરી કરો.

XML ફોર્મેટિંગનું ઉદાહરણ કેવું દેખાય છે?

3-element <feed><entry><title>Hello</title></entry></feed> પેસ્ટ કરીને 2-સ્પેસ ઇન્ડેન્ટ વિકલ્પ સાથે Format દબાવવાથી એક ચાર-લાઇનનો દસ્તાવેજ બને છે જેમાં દરેક element ઊંડાઈ પ્રમાણે ઇન્ડેન્ટ થયેલ તેની પોતાની લાઇન પર હોય છે. એ જ ઇનપુટ પર Minify પર સ્વિચ કરવાથી તે પાછું મૂળ બાઇટ-સ્ટ્રિંગમાં સંકોચાઈ જાય છે. કોઈ પણ well-formed દસ્તાવેજ માટે રાઉન્ડ-ટ્રિપ ખોટ-રહિત છે.

Offline run?

હા. ફોર્મેટ અને મિનિફાઇ પાઇપલાઇન શુદ્ધ DOMParser + XMLSerializer તથા એક નાનકડા recursive ઇન્ડેન્ટર પર આધારિત છે, બધું જ બ્રાઉઝર ટેબની અંદર ચાલે છે. કંઈ પણ અપલોડ થતું નથી, કોઈ service worker તમારા ઇનપુટને proxy કરતું નથી, અને પેજ ફોર્મેટ પગલા માટે પોતે શૂન્ય નેટવર્ક વિનંતી કરે છે. એકમાત્ર બહારગામી ટ્રાફિક માનક page-load assets (CSS, fonts, analytics) છે — તમારું XML ક્યારેય Ultim8Soft સુધી પહોંચતું નથી.

શું ફોર્મેટિંગ ડોક્યુમેન્ટને બદલે છે?

કોઈ semantic ફેરફાર નહીં. ફોર્મેટિંગ માત્ર elements વચ્ચેની ખાલી જગ્યા ફરી લખે છે. Element names, attribute values, લખાણ-સામગ્રી, CDATA payloads, comments અને processing instructions byte-for-byte સચવાય છે. Namespace declarations અને prefixes બરાબર એવા જ રખાય છે જેવા ઇનપુટે લખ્યા હતા — ફોર્મેટર re-canonicalise કરતું નથી કે attributes ને ફરી ગોઠવતું નથી. આઉટપુટ એ જ DOM ટ્રીમાં પાર્સ થાય છે જેમાં ઇનપુટ, વૈકલ્પિક XML ઘોષણા ટૉગલને બાદ કરતાં.

CDATA / comments / processing instructions કેવી રીતે હેન્ડલ થાય છે?

દરેક પોતાની લાઇન પર વર્તમાન ઇન્ડેન્ટ ઊંડાઈએ શબ્દશઃ ઉત્સર્જિત થાય છે. CDATA payloads ને <![CDATA[…]]> માં લપેટવામાં આવે છે, અંદર કોઈ ફરી-ઇન્ડેન્ટેશન વગર — spec કહે છે કે CDATA content opaque છે, તેથી ફોર્મેટર તેને ક્યારેય સ્પર્શતું નથી. Comments <!-- … --> વાપરે છે; processing instructions <?target data?> વાપરે છે. ત્રણેય format → minify → format રાઉન્ડ-ટ્રિપમાં તેમની સામગ્રી અકબંધ રાખીને ટકી રહે છે.

XML ને ફોર્મેટ કરવા અને મિનિફાય કરવા વચ્ચે શો તફાવત છે?

ફોર્મેટિંગ ખાલી જગ્યા વિસ્તારે છે જેથી માણસો દસ્તાવેજ ટ્રી વાંચી શકે; મિનિફાઇ તેને પરિવહન અને સંગ્રહ માટે પાછી છીનવી લે છે. બંને parsed DOM પર કામ કરે છે, કાચા બાઇટ સ્ટ્રિંગ પર નહીં, તેથી well-formed દસ્તાવેજ પર format → minify નો રાઉન્ડ-ટ્રિપ મૂળ મિનિફાઇડ રૂપનો byte-equivalent આપે છે. જ્યારે તમારે કોઈ XML payload વાંચવું કે diff કરવું હોય ત્યારે format દિશા વાપરો, અને જ્યારે તેને metered API gateway પરથી મોકલવું હોય કે કોઈ બીજા દસ્તાવેજમાં embed કરવું હોય ત્યારે minify દિશા વાપરો.

આ XML ફોર્મેટર એ જ પાર્સર વાપરે છે જે તમારું બ્રાઉઝર AJAX XHR responses અને SVG documents માટે વાપરે છે, તેથી કોઈ પણ well-formed XML — RSS, Atom, SOAP, sitemap, OOXML, SVG — સ્વચ્છ રીતે રાઉન્ડ-ટ્રિપ કરે છે. ઉપર કોઈ પણ XML પેસ્ટ કરો, આઉટપુટ કૉપી કરો, અથવા તેને .xml તરીકે ડાઉનલોડ કરો.