§

ਇਨਪੁੱਟ

ਮੋਡ
§

ਆਉਟਪੁੱਟ

ਭਾਰਤ ਵਿੱਚ ਟੀਮਾਂ ਰੋਜ਼ਾਨਾ XML ਅਤੇ JSON ਵਿੱਚ ਬਦਲਦੀਆਂ ਹਨ ਕਿਉਂਕਿ ਸਟੈੱਕ ਦੇ ਦੋ ਹਿੱਸੇ ਅਕਸਰ ਅਸਹਿਮਤ ਹੁੰਦੇ ਹਨ। FHIR ਸਿਹਤ ਰਿਕਾਰਡ, ਬੈਂਕਿੰਗ SOAP ਸੇਵਾਵਾਂ, ਸਰਕਾਰੀ XML ਡੇਟਾ ਐਕਸਪੋਰਟ, ਅਤੇ AWS SNS/SQS ਬਾਡੀਆਂ ਸਭ XML ਵਜੋਂ ਆਉਂਦੀਆਂ ਹਨ ਜੋ ਇੰਜੀਨੀਅਰ Snowflake ਜਾਂ BigQuery ਵਿੱਚ ਲੋਡ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ JSON ਵਿੱਚ ਬਦਲਦੇ ਹਨ। ਇਹ ਕਨਵਰਟਰ ਲੋਕਲੀ ਚੱਲਦਾ ਹੈ ਤਾਂ ਜੋ ਡੇਟਾ ਕਿਤੇ ਭੇਜੇ ਬਿਨਾਂ ਤੇਜ਼ੀ ਨਾਲ ਦੁਬਾਰਾ ਚਲਾਇਆ ਜਾ ਸਕੇ।

XML ↔ JSON ਬਦਲਾਅ ਕੀ ਹੈ?

XML (Extensible Markup Language) ਲੜੀਵਾਰ ਡੇਟਾ ਲਈ ਇੱਕ ਟੈਗ-ਆਧਾਰਤ ਟੈਕਸਟ ਫਾਰਮੈਟ ਹੈ। ਤੁਸੀਂ ਇਸਨੂੰ SOAP ਵੈੱਬ ਸੇਵਾਵਾਂ, RSS ਅਤੇ Atom ਫੀਡਾਂ, HL7 FHIR ਸਿਹਤ ਰਿਕਾਰਡਾਂ, sitemap.xml ਫਾਈਲਾਂ, ਅਤੇ ਉਹਨਾਂ ਕਾਨਫਿਗਰੇਸ਼ਨ ਫਾਈਲਾਂ ਵਿੱਚ ਦੇਖੋਗੇ ਜੋ Maven, Spring, ਅਤੇ Android Gradle ਨਾਲ ਆਉਂਦੀਆਂ ਹਨ। JSON (JavaScript Object Notation, RFC 8259 ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ) ਇੱਕੋ ਕਿਸਮ ਦੇ ਨੈਸਟਡ ਡੇਟਾ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ, ਪਰ ਖੁੱਲ੍ਹਣ ਅਤੇ ਬੰਦ ਹੋਣ ਵਾਲੇ ਟੈਗਾਂ ਦੀ ਬਜਾਏ ਬ੍ਰੇਸ ਅਤੇ ਐਰੇ ਨਾਲ। JSON ਉਹ ਹੈ ਜੋ ਅੱਜ ਲਗਭਗ ਹਰ REST API ਬੋਲਦਾ ਹੈ, ਅਤੇ ਇਹ ਹਰ ਬ੍ਰਾਊਜ਼ਰ ਰਨਟਾਈਮ ਦਾ ਮੂਲ ਮੁੱਲ ਆਕਾਰ ਹੈ। ਦੋਵਾਂ ਫਾਰਮੈਟਾਂ ਵਿਚਕਾਰ ਬਦਲਣਾ ਉਹਨਾਂ ਕੰਮਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ ਜੋ ਮਾਮੂਲੀ ਲੱਗਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਐਟ੍ਰੀਬਿਊਟ, ਮਿਕਸਡ ਸਮੱਗਰੀ, ਦੁਹਰਾਏ ਚਾਈਲਡਰਨ, ਅਤੇ CDATA ਨਾਲ ਨਾ ਟਕਰਾਓ। ਇੱਕ ਕਸਟਮ regex ਗਲਤ ਜਵਾਬ ਹੈ; ਇੱਕ ਅਸਲ ਪਾਰਸਰ ਸਹੀ ਜਵਾਬ ਹੈ। ਇਹ ਟੂਲ ਇੱਕ ਅਸਲ ਪਾਰਸਰ (fast-xml-parser) ਸ਼ਿਪ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਚਲਾਉਂਦਾ ਹੈ, ਤਾਂ ਜੋ ਤੁਸੀਂ ਇੱਕ ਲੀਗੇਸੀ SOAP ਸੇਵਾ ਦੁਆਰਾ ਵਾਪਸ ਕੀਤਾ XML ਲਿਫਾਫਾ ਪੇਸਟ ਕਰ ਸਕੋ ਅਤੇ ਇਸਨੂੰ ਇੱਕ JSON ਆਬਜੈਕਟ ਬਣਦਾ ਦੇਖ ਸਕੋ ਜਿਸਨੂੰ ਤੁਸੀਂ ਸਿੱਧਾ ਇੱਕ Redux ਸਟੋਰ ਵਿੱਚ ਪਾ ਸਕਦੇ ਹੋ, ਜਾਂ ਇੱਕ JSON ਪੇਲੋਡ ਲੈ ਸਕੋ ਜੋ ਤੁਸੀਂ ਇੱਕ REST ਕਲਾਇੰਟ ਵਿੱਚ ਇਕੱਠਾ ਕੀਤਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਵਾਪਸ ਉਸ XML ਆਕਾਰ ਵਿੱਚ ਬਦਲ ਸਕੋ ਜਿਸਦੀ ਇੱਕ ਐਂਟਰਪ੍ਰਾਈਜ਼ ਐਂਡਪੁਆਇੰਟ ਨੂੰ ਹਾਲੇ ਵੀ ਉਮੀਦ ਹੈ।

XML ↔ JSON ਮੈਪਿੰਗ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ?

ਹਰ ਬਦਲਾਅ ਬੰਡਲਡ fast-xml-parser ਲਾਇਬ੍ਰੇਰੀ ਵਰਤ ਕੇ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਲੋਕਲੀ ਚੱਲਦਾ ਹੈ। ਉੱਚ-ਪੱਧਰੀ ਮੈਪਿੰਗ ਨਿਯਮ:

  1. ਤੱਤ ਤੋਂ ਕੁੰਜੀ: ਹਰ XML ਤੱਤ ਨਾਮ JSON ਆਬਜੈਕਟ ਕੁੰਜੀ ਬਣਦਾ ਹੈ। <user><name>Alice</name></user> {"user":{"name":"Alice"}} ਤੇ ਮੈਪ ਹੁੰਦਾ ਹੈ।
  2. ਐਟ੍ਰੀਬਿਊਟ ਤੋਂ ਪ੍ਰੀਫਿਕਸਡ ਕੁੰਜੀ: ਇੱਕ ਐਟ੍ਰੀਬਿਊਟ ਚੁਣੇ ਪ੍ਰੀਫਿਕਸ ਜੋੜ ਕੇ ਬਣੀ ਕੁੰਜੀ ਹੇਠ ਸਟੋਰ ਹੁੰਦਾ ਹੈ। @ ਪ੍ਰੀਫਿਕਸ ਨਾਲ, <user id="1"> {"user":{"@id":"1"}} ਤਿਆਰ ਕਰਦਾ ਹੈ।
  3. ਟੈਕਸਟ ਸਮੱਗਰੀ ਟੈਕਸਟ-ਨੋਡ ਕੁੰਜੀ ਹੇਠ: ਜਦੋਂ ਕਿਸੇ ਤੱਤ ਵਿੱਚ ਐਟ੍ਰੀਬਿਊਟ ਅਤੇ ਟੈਕਸਟ ਦੋਵੇਂ ਹੋਣ, ਟੈਕਸਟ ਚੁਣੀ ਟੈਕਸਟ-ਨੋਡ ਕੁੰਜੀ ਹੇਠ ਆਉਂਦਾ ਹੈ। <price currency="USD">9.99</price> #text ਕੁੰਜੀ ਨਾਲ {"price":{"@currency":"USD","#text":"9.99"}} ਤਿਆਰ ਕਰਦਾ ਹੈ।
  4. ਦੁਹਰਾਏ ਚਾਈਲਡਰਨ ਤੋਂ ਐਰੇ: ਜਦੋਂ ਦੁਹਰਾਏ ਚਾਈਲਡ ਟੈਗਾਂ ਲਈ ਐਰੇ ਮਜਬੂਰ ਕਰੋ ਚਾਲੂ ਹੋਵੇ, ਤਾਂ ਇੱਕੋ ਨਾਮ ਵਾਲੇ ਕਈ ਭੈਣ-ਭਰਾ ਤੱਤ ਇੱਕ JSON ਐਰੇ ਵਿੱਚ ਸੰਕੁਚਿਤ ਹੋ ਜਾਂਦੇ ਹਨ। <items><item>A</item><item>B</item></items> {"items":{"item":["A","B"]}} ਬਣ ਜਾਂਦਾ ਹੈ।
  5. CDATA ਭਾਗ: <![CDATA[…]]> ਦੇ ਅੰਦਰ ਕੱਚਾ ਟੈਕਸਟ #cdata ਕੁੰਜੀ ਹੇਠ ਸੁਰੱਖਿਅਤ ਰਹਿੰਦਾ ਹੈ।
  6. JSON ਤੋਂ XML ਮੈਪਿੰਗ ਉਲਟਾਉਂਦਾ ਹੈ: ਆਬਜੈਕਟ ਕੁੰਜੀਆਂ ਤੱਤ ਬਣਦੀਆਂ ਹਨ, ਪ੍ਰੀਫਿਕਸਡ ਕੁੰਜੀਆਂ ਐਟ੍ਰੀਬਿਊਟ ਬਣਦੀਆਂ ਹਨ, ਅਤੇ ਐਰੇ ਦੁਹਰਾਏ ਭੈਣ-ਭਰਾ ਤੱਤਾਂ ਵਿੱਚ ਫੈਲਦੀਆਂ ਹਨ।

ਇਸ ਟੂਲ ਨਾਲ XML ਅਤੇ JSON ਕਿਉਂ ਬਦਲੋ?

  • ਤੁਹਾਡਾ ਡੇਟਾ ਤੁਹਾਡੀ ਮਸ਼ੀਨ ਤੇ ਰਹਿੰਦਾ ਹੈ। ਹਰ ਪਾਰਸ ਅਤੇ ਬਿਲਡ ਇਸ ਪੇਜ ਦੇ JavaScript ਸੰਦਰਭ ਵਿੱਚ ਚੱਲਦਾ ਹੈ। FHIR ਮਰੀਜ਼ ਬੰਡਲ, SOAP ਪ੍ਰਮਾਣਿਕਤਾ ਲਿਫਾਫੇ, ਮਾਲਕੀਅਤ ਕਾਨਫਿਗ ਫਾਈਲਾਂ — ਕੋਈ ਵੀ ਸਾਡੇ ਸਰਵਰਾਂ ਨੂੰ ਨਹੀਂ ਛੂੰਹਦਾ।
  • ਲੀਗੇਸੀ SOAP ਨੂੰ ਇੱਕ REST-ਪਹਿਲੇ ਫਰੰਟ ਐਂਡ ਵਿੱਚ ਬਦਲਣਾ ਸਭ ਤੋਂ ਆਮ ਮੰਗ ਹੈ ਜੋ ਅਸੀਂ ਸੁਣਦੇ ਹਾਂ। ਇੱਕ ਬੈਂਕ ਜਾਂ ਬੀਮਾ ਕੰਪਨੀ ਇੱਕ SOAP ਐਂਡਪੁਆਇੰਟ ਉਜਾਗਰ ਕਰਦੀ ਹੈ ਜੋ ਸਾਲਾਂ ਤੱਕ ਰਿਟਾਇਰ ਨਹੀਂ ਹੋਵੇਗਾ; ਇਸਨੂੰ ਕਾਲ ਕਰਨ ਵਾਲੀ React ਜਾਂ Vue ਐਪ XML ਸਿੱਖਣਾ ਨਹੀਂ ਚਾਹੁੰਦੀ। ਲਿਫਾਫਾ ਪੇਸਟ ਕਰੋ, ਐਟ੍ਰੀਬਿਊਟ ਪ੍ਰੀਫਿਕਸਡ ਅਤੇ ਨੇਮਸਪੇਸ ਸੁਰੱਖਿਅਤ ਨਾਲ JSON ਵਾਪਸ ਪਾਓ, Body ਦੀ ਸਮੱਗਰੀ ਆਪਣੇ ਸਟੇਟ ਸਟੋਰ ਵਿੱਚ ਪਾ ਦਿਓ।
  • RSS, Atom, ਅਤੇ sitemap ਖਪਤਕਾਰ ਵੀ ਫਾਇਦਾ ਉਠਾਉਂਦੇ ਹਨ। ਇੱਕ ਪੌਡਕਾਸਟ ਡਾਇਰੈਕਟਰੀ, ਇੱਕ ਨਿਊਜ਼ ਐਗ੍ਰੀਗੇਟਰ, ਜਾਂ ਇੱਕ ਅੰਦਰੂਨੀ ਡੈਸ਼ਬੋਰਡ ਜੋ sitemap.xml ਨੂੰ ਗ੍ਰਹਿਣ ਕਰਦਾ ਹੈ, ਪੂਰੀ ਤਰ੍ਹਾਂ ਇੱਕ XML ਪਾਰਸਰ ਲਿਖਣ ਨੂੰ ਛੱਡ ਸਕਦਾ ਹੈ। ਫੀਡ ਇੱਕ ਵਾਰ ਬਦਲੋ, JSON ਐਰੇ ਨਾਲ ਕੰਮ ਕਰੋ, ਅਤੇ ਤੁਹਾਡਾ ਕਲਾਇੰਟ ਕੋਡ ਉਸੇ ਭਾਸ਼ਾ ਵਿੱਚ ਰਹਿੰਦਾ ਹੈ ਜੋ ਇਹ ਪਹਿਲਾਂ ਹੀ ਬੋਲਦਾ ਹੈ।
  • ਕਾਨਫਿਗਰੇਸ਼ਨ ਐਕਸਪੋਰਟ ਸੂਚੀ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ। Maven, Spring, Android Gradle, ਅਤੇ ਪੁਰਾਣੇ ਜ਼ਮਾਨੇ ਦੇ Ant ਬਿਲਡ ਸਾਰੇ XML ਛੱਡਦੇ ਹਨ; ਦੂਜੇ ਸਿਰੇ ਉੱਤੇ ਕਲਾਊਡ-ਨੇਟਿਵ ਟੂਲਿੰਗ (Terraform, Ansible, GitHub Actions, cloud-init) JSON ਜਾਂ YAML ਪੜ੍ਹਦੀ ਹੈ। ਇੱਕ ਤੀਜੀ-ਧਿਰ ਨਿਰਭਰਤਾ ਵਾਲੀ Python ਸਕ੍ਰਿਪਟ ਚਲਾਉਣ ਦੀ ਬਜਾਏ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਬਦਲੋ, ਜੋ ਖਾਸ ਤੌਰ 'ਤੇ ਏਅਰ-ਗੈਪਡ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਲਾਭਦਾਇਕ ਹੈ ਜਿੱਥੇ ਕਿਸੇ ਅਣਜਾਣ ਵੈੱਬ ਸੇਵਾ ਵਿੱਚ ਪੇਸਟ ਕਰਨਾ ਇੱਕ ਅਸੰਭਵ ਗੱਲ ਹੈ।

XML ↔ JSON ਬਦਲਾਅ ਦੀਆਂ ਆਮ ਵਰਤੋਂ ਕੀ ਹਨ?

XML ਅਤੇ JSON ਵਿੱਚ ਪੁੱਲ ਕਰਨਾ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਇੰਜੀਨੀਅਰਿੰਗ, API ਟੂਲਿੰਗ, ਅਤੇ ਡੇਟਾ ਇੰਜੀਨੀਅਰਿੰਗ ਵਿੱਚ ਦਿਖਦਾ ਹੈ:

  • SOAP ਤੋਂ REST ਬ੍ਰਿੱਜਿੰਗ: ਇੱਕ ਲੀਗੇਸੀ ਬੈਂਕਿੰਗ ਜਾਂ ਬੀਮਾ API ਦੁਆਰਾ ਵਾਪਸ ਕੀਤੇ ਇੱਕ SOAP ਲਿਫਾਫੇ ਵਿੱਚੋਂ Body ਪੇਲੋਡ ਕੱਢਣਾ ਅਤੇ ਇਸਨੂੰ JSON ਵਿੱਚ ਬਦਲਣਾ ਤਾਂ ਜੋ ਇੱਕ React ਜਾਂ Vue ਫਰੰਟ-ਐਂਡ ਇਸਨੂੰ ਆਪਣੇ ਸਾਹਮਣੇ ਇੱਕ ਸਰਵਰ-ਸਾਈਡ ਪ੍ਰੌਕਸੀ ਪਰਤ ਤੋਂ ਬਿਨਾਂ ਖਪਤ ਕਰ ਸਕੇ।
  • FHIR ਸਿਹਤ ਰਿਕਾਰਡ: HL7 FHIR XML ਬੰਡਲਾਂ (ਉਹ ਫਾਰਮੈਟ ਜੋ ਕਲੀਨਿਕਲ ਡੇਟਾ ਅਦਲਾ-ਬਦਲੀ ਲਈ HHS/ONC ਅਤੇ NHS Digital ਦੁਆਰਾ ਲੋੜੀਂਦਾ ਹੈ) ਨੂੰ JSON ਵਿੱਚ ਬਦਲਣਾ ਤਾਂ ਜੋ ਉਹਨਾਂ ਨੂੰ ਇੱਕ MongoDB Atlas ਕਲੈਕਸ਼ਨ ਜਾਂ ਇੱਕ PostgreSQL JSONB ਕਾਲਮ ਵਿੱਚ ਲੋਡ ਕੀਤਾ ਜਾ ਸਕੇ ਜਿੱਥੇ ਵਿਸ਼ਲੇਸ਼ਕ ਉਹਨਾਂ ਨੂੰ ਕਵੇਰੀ ਕਰ ਸਕਣ।
  • Sitemap ਅਤੇ ਫੀਡ ਪ੍ਰੋਸੈਸਿੰਗ: sitemap.xml ਜਾਂ RSS/Atom ਫੀਡ ਨੂੰ JSON ਐਰੇ ਵਿੱਚ ਬਦਲਣਾ ਤਾਂ ਜੋ ਕਸਟਮ ਇੰਡੈਕਸਰ, Slack ਬੌਟ, ਜਾਂ ਡੈਸ਼ਬੋਰਡ ਵਿਜੇਟ ਐਂਟਰੀਆਂ ਤੇ ਦੁਹਰਾ ਸਕੇ।

XML ↔ JSON ਰਾਊਂਡ-ਟ੍ਰਿਪ ਕਿਵੇਂ ਦਿਖਦੀ ਹੈ?

ਇੱਕ ਛੋਟੀ ਉਦਾਹਰਣ ਲਓ। ਇਨਪੁੱਟ ਵਿੱਚ <user id="1"><name>Alice</name></user> ਪੇਸਟ ਕਰੋ, ਐਟ੍ਰੀਬਿਊਟ ਪ੍ਰੀਫਿਕਸ @ ਸੈੱਟ ਕਰੋ, ਮੋਡ ਨੂੰ XML ਤੋਂ JSON ਉੱਤੇ ਰੱਖੋ, ਅਤੇ Convert ਦਬਾਓ। ਆਉਟਪੁੱਟ {"user":{"@id":"1","name":"Alice"}} ਹੈ। ਮੋਡ ਨੂੰ JSON ਤੋਂ XML ਉੱਤੇ ਫਲਿੱਪ ਕਰੋ, ਉਹ JSON ਵਾਪਸ ਪੇਸਟ ਕਰੋ, ਇੰਡੈਂਟ ਨੂੰ 2 ਸਪੇਸ ਸੈੱਟ ਕਰੋ, ਅਤੇ ਦੁਬਾਰਾ Convert ਦਬਾਓ। ਤੁਹਾਨੂੰ <user id="1">\n <name>Alice</name>\n</user> ਮਿਲੇਗਾ, ਜੋ ਮੂਲ ਨਾਲ ਢਾਂਚਾਤਮਕ ਤੌਰ 'ਤੇ ਇੱਕੋ ਜਿਹਾ ਹੈ। ਰਾਊਂਡ-ਟ੍ਰਿਪ ਵਿੱਚ ਇੱਕੋ ਚੀਜ਼ ਜਿਸਦੀ ਗਾਰੰਟੀ ਨਹੀਂ ਹੈ ਉਹ ਹੈ ਐਟ੍ਰੀਬਿਊਟ ਕ੍ਰਮ, ਕਿਉਂਕਿ JSON ਆਬਜੈਕਟ ਕੁੰਜੀਆਂ ਸਪੈੱਕ ਦੁਆਰਾ ਅਣ-ਕ੍ਰਮਬੱਧ ਹੁੰਦੀਆਂ ਹਨ।

ਇਹ XML ↔ JSON ਕਨਵਰਟਰ ਉਸੇ ਮੂਲ (origin) ਉੱਤੇ ਬੰਡਲ ਕੀਤਾ fast-xml-parser@4 ਸ਼ਿਪ ਕਰਦਾ ਹੈ, ਐਟ੍ਰੀਬਿਊਟ, CDATA, ਦੁਹਰਾਏ ਚਾਈਲਡ ਟੈਗ, ਅਤੇ ਨੇਮਸਪੇਸ ਪ੍ਰੀਫਿਕਸ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ, ਅਤੇ ਪੇਜ ਲੋਡ ਹੋਣ ਤੋਂ ਬਾਅਦ ਔਫਲਾਈਨ ਕੰਮ ਕਰਦਾ ਰਹਿੰਦਾ ਹੈ। ਕੋਈ ਅਪਲੋਡ ਕਦਮ ਨਹੀਂ, ਕੋਈ CDN ਪ੍ਰੌਕਸੀ ਨਹੀਂ, ਕੋਈ ਐਨਾਲਿਟਿਕਸ ਬੀਕਨ ਨਹੀਂ, ਕਿਸੇ ਵੀ ਕਿਸਮ ਦੀ ਕੋਈ ਟੈਲੀਮੈਟਰੀ ਨਹੀਂ। ਇਨਪੁੱਟ ਅਤੇ ਆਉਟਪੁੱਟ ਦਾ ਹਰ ਬਾਈਟ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਰਹਿੰਦਾ ਹੈ, ਜੋ ਬਿਲਕੁਲ ਉਹੀ ਹੈ ਜੋ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ ਜਦੋਂ ਪੇਲੋਡ ਇੱਕ FHIR ਮਰੀਜ਼ ਬੰਡਲ, ਇੱਕ SOAP ਪ੍ਰਮਾਣੀਕਰਨ ਲਿਫਾਫਾ, ਜਾਂ ਡੇਟਾ ਦਾ ਕੋਈ ਹੋਰ ਆਕਾਰ ਹੋਵੇ ਜਿਸਨੂੰ ਤੁਹਾਡੀ ਟੀਮ ਤੋਂ ਬਾਹਰ ਕਿਸੇ ਨੂੰ ਕਦੇ ਨਹੀਂ ਦੇਖਣਾ ਚਾਹੀਦਾ।