XML ਫਾਰਮੈਟਿੰਗ ਕੀ ਹੈ?
XML (Extensible Markup Language) ਢਾਂਚਾਗਤ ਦਸਤਾਵੇਜ਼ਾਂ ਅਤੇ ਡੇਟਾ ਅਦਾਨ-ਪ੍ਰਦਾਨ ਲਈ ਇੱਕ W3C-ਮਾਨਕੀਕ੍ਰਿਤ ਟੈਕਸਟ ਫਾਰਮੈਟ ਹੈ। ਫਾਰਮੈਟਿੰਗ — ਜਿਸਨੂੰ ਸੁੰਦਰ-ਪ੍ਰਿੰਟਿੰਗ ਜਾਂ ਸੁੰਦਰ ਬਣਾਉਣਾ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ — ਇੱਕ ਵੈੱਲ-ਫਾਰਮਡ XML ਸਰੋਤ ਲੈਂਦੀ ਹੈ ਅਤੇ ਇਸਨੂੰ ਦੁਬਾਰਾ-ਇੰਡੈਂਟ ਕਰਦੀ ਹੈ। ਪਾਰਸ ਕੀਤਾ ਦਸਤਾਵੇਜ਼ ਰੁੱਖ ਬਿਲਕੁਲ ਸੁਰੱਖਿਅਤ ਰਹਿੰਦਾ ਹੈ; ਕੇਵਲ ਐਲੀਮੈਂਟਾਂ ਵਿਚਕਾਰ ਵਾਈਟਸਪੇਸ ਬਦਲਦੀ ਹੈ।
XML ਫਾਰਮੈਟਿੰਗ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ?
ਤੁਹਾਡਾ ਇਨਪੁੱਟ ਮੂਲ DOMParser ਅਤੇ XMLSerializer APIs ਅਤੇ ਕਸਟਮ ਰੀਕਰਸਿਵ ਇੰਡੈਂਟਰ ਵਰਤ ਕੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਪ੍ਰੋਸੈੱਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਉੱਚ-ਪੱਧਰੀ ਕਦਮ ਹਨ:
- ਤੁਹਾਡਾ ਇਨਪੁੱਟ textarea ਤੋਂ ਜਿਉਂ ਦਾ ਤਿਉਂ ਪੜ੍ਹਿਆ ਜਾਂਦਾ ਹੈ — ਤੁਸੀਂ ਜੋ ਵੀ ਪੇਸਟ ਕੀਤਾ ਹਰ ਬਾਈਟ ਸਥਾਨਕ ਮੈਮੋਰੀ ਵਿੱਚ ਰੱਖੀ ਜਾਂਦੀ ਹੈ।
- ਬ੍ਰਾਊਜ਼ਰ
new DOMParser().parseFromString(text, 'application/xml')ਨਾਲ ਇਸਨੂੰ ਪਾਰਸ ਕਰਦਾ ਹੈ। ਜੇ ਇਨਪੁੱਟ ਵੈੱਲ-ਫਾਰਮਡ ਨਹੀਂ ਹੈ, ਪਾਰਸਰ ਇੱਕ<parsererror>ਨੋਡ ਏਮਬੈੱਡ ਕਰਦਾ ਹੈ ਜਿਸਦਾ ਟੈਕਸਟ ਪੇਲੋਡ ਇੰਜਣ ਦੇ ਲਾਈਨ ਅਤੇ ਕਾਲਮ ਸੰਕੇਤ ਰੱਖਦਾ ਹੈ। - ਸਫਲ ਪਾਰਸ 'ਤੇ, ਕਸਟਮ ਇੰਡੈਂਟਰ DOM ਰੁੱਖ ਵਿੱਚੋਂ ਡੈਪਥ-ਫਸਟ ਲੰਘਦਾ ਹੈ, ਹਰ ਐਲੀਮੈਂਟ, ਗੁਣ ਸੈੱਟ, CDATA ਹਿੱਸੇ, ਟਿੱਪਣੀ ਅਤੇ ਪ੍ਰੋਸੈਸਿੰਗ ਨਿਰਦੇਸ਼ ਨੂੰ ਮੌਜੂਦਾ ਡੂੰਘਾਈ 'ਤੇ ਆਪਣੀ ਲਾਈਨ 'ਤੇ ਜਾਰੀ ਕਰਦਾ ਹੈ।
- ਮਿਨੀਫਾਈ ਮੋਡ ਪਾਈਪਲਾਈਨ ਫਲਿੱਪ ਕਰਦਾ ਹੈ:
XMLSerializer().serializeToString(doc)ਇੱਕ-ਲਾਈਨ ਫਾਰਮ ਜਾਰੀ ਕਰਦਾ ਹੈ, ਫਿਰ ਇੱਕ ਗਾਰਡਡ regex CDATA ਬਲਾਕਾਂ ਜਾਂ ਗੈਰ-ਵਾਈਟਸਪੇਸ ਟੈਕਸਟ ਨੋਡਾਂ ਨੂੰ ਛੋਹੇ ਬਿਨਾਂ ਐਲੀਮੈਂਟਾਂ ਵਿਚਕਾਰ ਵਾਈਟਸਪੇਸ ਹਟਾਉਂਦੀ ਹੈ। - ਆਉਟਪੁੱਟ ਰੀਡ-ਓਨਲੀ textarea ਵਿੱਚ ਲਿਖਿਆ ਜਾਂਦਾ ਹੈ, ਗਲਤੀ ਪੱਟੀ ਸਾਫ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਅਤੇ ਡਾਊਨਲੋਡ ਬਟਨ ਨਤੀਜੇ ਨੂੰ
.xmlਫ਼ਾਈਲ ਵਜੋਂ ਪੈਕੇਜ ਕਰਦਾ ਹੈ।
ਇਸ ਸੰਦ ਨਾਲ XML ਸੁੰਦਰ-ਪ੍ਰਿੰਟ ਕਿਉਂ ਕਰੋ?
- ਗੋਪਨੀਯਤਾ: ਹਰ ਪਾਰਸ, ਫਾਰਮੈਟ ਅਤੇ ਮਿਨੀਫਾਈ ਪਾਸ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਹੁੰਦਾ ਹੈ। XML ਕਦੇ ਸਾਡੇ ਸਰਵਰਾਂ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚਦਾ — ਕੋਈ ਅਪਲੋਡ ਨਹੀਂ, ਕੋਈ ਟੈਲੀਮੈਟਰੀ ਨਹੀਂ, ਕੋਈ ਖਾਤਾ ਨਹੀਂ।
- ਸਟੀਕ ਗਲਤੀਆਂ: ਜਦੋਂ ਇਨਪੁੱਟ ਗਲਤ ਫਾਰਮ ਵਾਲਾ ਹੋਵੇ, ਪਾਰਸਰ ਉਹੀ ਸਹੀ ਲਾਈਨ ਅਤੇ ਕਾਲਮ ਦਿਖਾਉਂਦਾ ਹੈ ਜੋ ਬ੍ਰਾਊਜ਼ਰ ਇੰਜਣ ਖੁਦ ਦੱਸਦਾ ਹੈ — ਉਹੀ ਸੰਖਿਆਵਾਂ ਜੋ ਤੁਸੀਂ DevTools ਵਿੱਚ ਦੇਖੋਗੇ।
- ਵਿਸ਼ਵਾਸਯੋਗ ਰਾਊਂਡ-ਟ੍ਰਿੱਪ: ਫਾਰਮੈਟ ਕਰੋ ਫਿਰ ਮਿਨੀਫਾਈ ਕਰੋ ਅਤੇ ਤੁਸੀਂ ਆਪਣੇ ਅਸਲ ਦਸਤਾਵੇਜ਼ ਦੇ ਬਾਈਟ-ਸਮਾਨ ਵਾਪਸ ਪਾਓਗੇ — ਫਾਰਮੈਟਿੰਗ ਕਦੇ ਨੇਮਸਪੇਸ ਮੁੜ-ਮਾਨਕੀਕਰਨ ਜਾਂ ਗੁਣ ਕ੍ਰਮ ਮੁੜ ਲਿਖਦੀ ਨਹੀਂ।
- ਤੇਜ਼: ਸ਼ੁੱਧ DOMParser ਅਤੇ ~60-ਲਾਈਨ ਇੰਡੈਂਟਰ ਮਲਟੀ-ਮੈਗਾਬਾਈਟ SOAP ਲਿਫਾਫੇ ਅਤੇ OOXML ਹਿੱਸੇ ਤੁਰੰਤ ਸੰਭਾਲਦੇ ਹਨ, ਡਾਊਨਲੋਡ ਕਰਨ ਲਈ ਕੋਈ ਬਾਹਰੀ ਲਾਇਬ੍ਰੇਰੀ ਨਹੀਂ।
XML ਫਾਰਮੈਟਿੰਗ ਦੀਆਂ ਆਮ ਵਰਤੋਂ ਕੀ ਹਨ?
ਸੁੰਦਰ-ਪ੍ਰਿੰਟਿੰਗ XML ਵੈੱਬ ਪ੍ਰਕਾਸ਼ਨ, ਐਂਟਰਪ੍ਰਾਈਜ਼ ਏਕੀਕਰਨ ਅਤੇ ਡੇਟਾ ਸੰਗ੍ਰਹਿਣ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ:
- RSS / Atom ਫੀਡ ਨਿਰੀਖਣ: ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਚੈਨਲ ਮੈਟਾਡੇਟਾ, ਆਈਟਮ ਕ੍ਰਮ ਅਤੇ ਨੇਮਸਪੇਸ ਅਗੇਤਰ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਪੋਡਕਾਸਟ ਜਾਂ ਨਿਊਜ਼ ਫੀਡ ਬਾਡੀ ਪੇਸਟ ਕਰੋ।
- SOAP ਡੀਬੱਗਿੰਗ: Wireshark ਜਾਂ SOAP ਕਲਾਇੰਟ ਲਾਗ ਤੋਂ ਕਾਪੀ ਕੀਤਾ ਲਿਫਾਫਾ ਫਾਰਮੈਟ ਕਰੋ ਤਾਂ ਜੋ Header, Body ਅਤੇ Fault ਹਿੱਸੇ ਇੱਕ ਨਜ਼ਰ ਵਿੱਚ ਦਿਖਣ।
- Sitemap ਆਡਿਟਿੰਗ: ਮੁਕਾਬਲੇਕਾਰ ਜਾਂ ਆਪਣੀ ਸਟੇਜਿੰਗ ਸਾਈਟ ਤੋਂ ਪ੍ਰਾਪਤ sitemap.xml ਦੁਬਾਰਾ-ਇੰਡੈਂਟ ਕਰੋ ਐਂਟ੍ਰੀਆਂ ਗਿਣਨ ਅਤੇ ਪ੍ਰਤੀ URL hreflang ਬਦਲਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ।
XML ਫਾਰਮੈਟਿੰਗ ਉਦਾਹਰਨ ਕਿਹੋ ਜਿਹੀ ਦਿਖਦੀ ਹੈ?
3-ਐਲੀਮੈਂਟ <feed><entry><title>Hello</title></entry></feed> ਪੇਸਟ ਕਰੋ ਅਤੇ 2-ਸਪੇਸ ਇੰਡੈਂਟ ਵਿਕਲਪ ਨਾਲ ਫਾਰਮੈਟ ਦਬਾਓ ਤਾਂ ਚਾਰ-ਲਾਈਨ ਦਸਤਾਵੇਜ਼ ਮਿਲਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਹਰ ਐਲੀਮੈਂਟ ਆਪਣੀ ਲਾਈਨ 'ਤੇ ਡੂੰਘਾਈ ਅਨੁਸਾਰ ਇੰਡੈਂਟ ਹੈ। ਉਹੀ ਇਨਪੁੱਟ 'ਤੇ ਮਿਨੀਫਾਈ ਵਿੱਚ ਬਦਲਣ ਨਾਲ ਇਹ ਅਸਲ ਬਾਈਟ-ਸਤਰ ਵਿੱਚ ਵਾਪਸ ਸਮੇਟਦਾ ਹੈ।
ਕੀ ਇਹ ਔਫਲਾਈਨ ਚੱਲਦਾ ਹੈ?
ਹਾਂ। ਫਾਰਮੈਟ ਅਤੇ ਮਿਨੀਫਾਈ ਪਾਈਪਲਾਈਨ ਸ਼ੁੱਧ DOMParser + XMLSerializer ਅਤੇ ਇੱਕ ਛੋਟੇ ਰੀਕਰਸਿਵ ਇੰਡੈਂਟਰ ਹੈ, ਸਭ ਬ੍ਰਾਊਜ਼ਰ ਟੈਬ ਵਿੱਚ ਚੱਲਦੇ ਹਨ। ਕੁਝ ਵੀ ਅਪਲੋਡ ਨਹੀਂ ਹੁੰਦਾ, ਅਤੇ ਪੇਜ ਫਾਰਮੈਟ ਕਦਮ ਲਈ ਕੋਈ ਨੈੱਟਵਰਕ ਬੇਨਤੀ ਨਹੀਂ ਕਰਦਾ। ਤੁਹਾਡਾ XML ਕਦੇ Ultim8Soft ਤੱਕ ਨਹੀਂ ਪਹੁੰਚਦਾ।
ਕੀ ਫਾਰਮੈਟਿੰਗ ਦਸਤਾਵੇਜ਼ ਬਦਲਦੀ ਹੈ?
ਕੋਈ ਸਿਮੈਂਟਿਕ ਬਦਲਾਵ ਨਹੀਂ। ਫਾਰਮੈਟਿੰਗ ਕੇਵਲ ਐਲੀਮੈਂਟਾਂ ਵਿਚਕਾਰ ਵਾਈਟਸਪੇਸ ਨੂੰ ਮੁੜ ਲਿਖਦੀ ਹੈ। ਐਲੀਮੈਂਟ ਨਾਮ, ਗੁਣ ਮੁੱਲ, ਟੈਕਸਟ ਸਮੱਗਰੀ, CDATA ਪੇਲੋਡ, ਟਿੱਪਣੀਆਂ, ਅਤੇ ਪ੍ਰੋਸੈਸਿੰਗ ਨਿਰਦੇਸ਼ ਬਾਈਟ-ਦਰ-ਬਾਈਟ ਸੁਰੱਖਿਅਤ ਰਹਿੰਦੇ ਹਨ। ਨੇਮਸਪੇਸ ਘੋਸ਼ਣਾਵਾਂ ਅਤੇ ਅਗੇਤਰ ਬਿਲਕੁਲ ਉਸੇ ਤਰ੍ਹਾਂ ਰੱਖੇ ਜਾਂਦੇ ਹਨ ਜਿਵੇਂ ਇਨਪੁੱਟ ਨੇ ਉਹਨਾਂ ਨੂੰ ਲਿਖਿਆ ਸੀ — ਫਾਰਮੈਟਰ ਗੁਣਾਂ ਨੂੰ ਮੁੜ-ਕੈਨੋਨਿਕਲਾਈਜ਼ ਜਾਂ ਮੁੜ-ਕ੍ਰਮਬੱਧ ਨਹੀਂ ਕਰਦਾ। ਆਉਟਪੁੱਟ ਇਨਪੁੱਟ ਵਾਲੇ ਉਸੇ DOM ਟ੍ਰੀ ਵਿੱਚ ਪਾਰਸ ਹੁੰਦੀ ਹੈ, ਵਿਕਲਪਿਕ XML ਘੋਸ਼ਣਾ ਟੌਗਲ ਨੂੰ ਛੱਡ ਕੇ।
CDATA / ਟਿੱਪਣੀਆਂ / ਪ੍ਰੋਸੈਸਿੰਗ ਨਿਰਦੇਸ਼ ਕਿਵੇਂ ਸੰਭਾਲੇ ਜਾਂਦੇ ਹਨ?
ਹਰ ਇੱਕ ਨੂੰ ਮੌਜੂਦਾ ਇੰਡੈਂਟ ਡੂੰਘਾਈ 'ਤੇ ਆਪਣੀ ਖ਼ੁਦ ਦੀ ਲਾਈਨ 'ਤੇ ਜਿਉਂ ਦਾ ਤਿਉਂ ਜਾਰੀ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। CDATA ਪੇਲੋਡ <![CDATA[…]]> ਵਿੱਚ ਲਪੇਟੇ ਜਾਂਦੇ ਹਨ ਬਿਨਾਂ ਅੰਦਰ ਮੁੜ-ਇੰਡੈਂਟੇਸ਼ਨ ਦੇ — ਮਾਨਕ ਕਹਿੰਦਾ ਹੈ ਕਿ CDATA ਸਮੱਗਰੀ ਅਪਾਰਦਰਸ਼ੀ ਹੈ, ਇਸਲਈ ਫਾਰਮੈਟਰ ਇਸਨੂੰ ਕਦੇ ਨਹੀਂ ਛੂੰਹਦਾ। ਟਿੱਪਣੀਆਂ <!-- … --> ਵਰਤਦੀਆਂ ਹਨ; ਪ੍ਰੋਸੈਸਿੰਗ ਨਿਰਦੇਸ਼ <?target data?> ਵਰਤਦੇ ਹਨ। ਤਿੰਨੇ ਇੱਕ format → minify → format ਰਾਊਂਡ-ਟ੍ਰਿਪ ਵਿੱਚ ਆਪਣੀ ਸਮੱਗਰੀ ਬਰਕਰਾਰ ਰੱਖਦੇ ਹੋਏ ਬਚ ਜਾਂਦੇ ਹਨ।
XML ਫਾਰਮੈਟਿੰਗ ਅਤੇ ਮਿਨੀਫਾਈਕਰਨ ਵਿੱਚ ਕੀ ਫਰਕ ਹੈ?
ਫਾਰਮੈਟਿੰਗ ਵਾਈਟਸਪੇਸ ਵਧਾਉਂਦੀ ਹੈ ਤਾਂ ਜੋ ਮਨੁੱਖ ਦਸਤਾਵੇਜ਼ ਰੁੱਖ ਪੜ੍ਹ ਸਕਣ; ਮਿਨੀਫਾਈਕਰਨ ਆਵਾਜਾਈ ਅਤੇ ਸਟੋਰੇਜ ਲਈ ਇਸਨੂੰ ਵਾਪਸ ਹਟਾਉਂਦਾ ਹੈ। ਦੋਵੇਂ ਪਾਰਸ ਕੀਤੇ DOM 'ਤੇ ਕੰਮ ਕਰਦੇ ਹਨ, ਕੱਚੀ ਬਾਈਟ ਸਤਰ 'ਤੇ ਨਹੀਂ, ਇਸਲਈ ਇੱਕ ਰਾਊਂਡ-ਟ੍ਰਿੱਪ ਫਾਰਮੈਟ → ਮਿਨੀਫਾਈ ਇੱਕ ਵੈੱਲ-ਫਾਰਮਡ ਦਸਤਾਵੇਜ਼ ਲਈ ਅਸਲ ਮਿਨੀਫਾਈਡ ਫਾਰਮ ਦੇ ਬਾਈਟ-ਸਮਾਨ ਦਿੰਦਾ ਹੈ।
ਇਹ XML ਫਾਰਮੈਟਰ ਉਹੀ ਪਾਰਸਰ ਵਰਤਦਾ ਹੈ ਜੋ ਤੁਹਾਡਾ ਬ੍ਰਾਊਜ਼ਰ AJAX XHR ਜਵਾਬਾਂ ਅਤੇ SVG ਦਸਤਾਵੇਜ਼ਾਂ ਲਈ ਵਰਤਦਾ ਹੈ, ਇਸਲਈ ਕੋਈ ਵੀ ਵੈੱਲ-ਫਾਰਮਡ XML — RSS, Atom, SOAP, sitemap, OOXML, SVG — ਸਾਫ਼ਾਈ ਨਾਲ ਰਾਊਂਡ-ਟ੍ਰਿੱਪ ਕਰਦਾ ਹੈ। ਉੱਪਰ ਕੋਈ ਵੀ XML ਪੇਸਟ ਕਰੋ, ਆਉਟਪੁੱਟ ਕਾਪੀ ਕਰੋ, ਜਾਂ ਇਸਨੂੰ .xml ਵਜੋਂ ਡਾਊਨਲੋਡ ਕਰੋ।