इसका उत्तर यह है कि हर स्थिति के लिए एक ही उचित इंडेंटेशन चरित्र नहीं हो सकता है। वर्णों का उपयोग करते हुए स्वरूपण अनम्य है और जब किसी टीम के भीतर विभिन्न शैलियों का उपयोग किया जाता है तो यह संघर्ष का कारण बन सकता है।
कोड को त्रुटिपूर्ण और लचीले ढंग से अलग-अलग प्रारूपण शैलियों के साथ प्रारूपित करने का एकमात्र तरीका यह है कि इसे वस्तुतः, अर्थात् बिना किसी इंडेंटेशन वर्ण के किया जाए। एकमात्र कोड संपादक जो मुझे पता है कि इसका समर्थन करता है, हालांकि नीचे दिए गए नमूने में इसका उपयोग किया गया है:
आभासी स्वरूपण को प्रदर्शित करने के लिए , नीचे दिया गया स्क्रीनशॉट एक XSLT संपादक से है जो इस इंडेंटेशन विधि का उपयोग करता है (यहां एक छोटा वीडियो भी है )। XSLT में प्रत्येक चरित्र को पीले रंग में चित्रित किया गया है, उदाहरण के लिए, सामग्री में एकमात्र टैब या स्थान वर्णों को स्पष्ट रूप से देखने की अनुमति देने के लिए। कोड इंडेंटेशन को संपादक के रेंडरिंग सिस्टम ने बाएं मार्जिन (जिसमें एक सफेद पृष्ठभूमि है) को समायोजित करके नियंत्रित किया है।
केवल प्रमुख अंतरिक्ष वर्ण ही बुक्स लाइनों को पसंद करते हैं, क्योंकि यह शाब्दिक पाठ सामग्री है, कोड नहीं, इन अंतरिक्ष वर्णों को संरक्षित किया जाना चाहिए।
वर्चुअल स्वरूपण के साथ आप स्रोत फ़ाइल में किसी भी वर्ण को प्रभावित किए बिना पर्यावरण और इंडेंटेशन शैली के अनुरूप इंडेंटेशन चौड़ाई चुनते हैं। आप इंडेंटेशन चौड़ाई को 0 पर भी सेट कर सकते हैं, अगर आपको नीचे दिखाए अनुसार कोड का एक चपटा दृश्य चाहिए:
अंतरिक्ष वर्ण प्रारूपण के साथ इसके विपरीत, आभासी स्वरूपण के बिना संपादक में खोले गए समान XSLT को उस संपादक के ऑटो-फ़ॉर्मेटर द्वारा इस में बदल दिया जाता है:
स्क्रीनशॉट में बड़ा खाली पीला ब्लॉक पारंपरिक संपादक के फ़ॉर्मेटर द्वारा जोड़े गए अंतरिक्ष वर्णों को स्पष्ट रूप से दिखाता है। दुर्भाग्य से, अब इन्हें वास्तविक सामग्री से अलग नहीं किया जा सकता है, इसलिए XSLT को इस समस्या को ठीक करने के लिए संशोधित करना होगा।
सारांश
XSLT संभवतः एक चरम मामला है, लेकिन यह सिद्धांत कई प्रोग्रामिंग भाषाओं के लिए सही है: वर्णों का उपयोग सामग्री के लिए किया जाना चाहिए और एक वैकल्पिक विधि की आवश्यकता होती है जब यह स्वरूपण की बात आती है।
** प्रकटीकरण: आभासी प्रारूपण के साथ XSLT संपादक मेरी अपनी कंपनी द्वारा विकसित किया गया था *