2012-06-13 5 views
5

मैं फ़ाइलों की सूची कैश करने के लिए XDocument का उपयोग कर रहा हूं।एक्सएमएल में फ़ाइल नाम स्टोर करने का सही तरीका क्या है?

<file id="20" size="244318208">a file with an &amp;ersand.txt</file> 

इस उदाहरण में, मैं XText इस्तेमाल किया, और यह स्वचालित रूप से इस तरह के रूप के साथ & &amp;

<file id="20" size="244318208"><![CDATA[a file with an &ersand.txt]]></file> 

इस एक में फ़ाइल के नाम में वर्ण, से बचने के हैं, मैं XCData इस्तेमाल किया मुझे का उपयोग करने देने बच निकलने की बजाए एक शाब्दिक स्ट्रिंग, इसलिए यह एक्सएमएल में दिखाई देता है क्योंकि यह मेरे आवेदन में होगा।

मुझे आश्चर्य है कि उनमें से कोई भी किसी भी निश्चित शर्तों के तहत दूसरे से बेहतर है, या यदि यह केवल व्यक्तिगत स्वाद है। इसके अलावा, अगर इसका मतलब कुछ भी है, तो फ़ाइल नामों में अवैध वर्ण हो सकते हैं या नहीं।

उत्तर

3

दोनों अनिवार्य रूप से वही हैं और कोई विशिष्ट "सर्वोत्तम अभ्यास" नहीं है।

व्यक्तिगत रूप से, मैं <![CDATA[]]> को बड़ी मात्रा में टेक्स्ट के लिए आरक्षित करता हूं जिसके लिए बहुत से भागने की आवश्यकता होती है (कोड या HTML मार्कअप के बिट्स कहें)।

इस विशिष्ट मामले में, मैं आपके पहले उदाहरण के रूप में & से &amp; से बच जाऊंगा।

0

इससे कोई फर्क नहीं पड़ता।
वे दोनों वैध एक्सएमएल हैं, और दोनों का एक ही अर्थ है।

5

मैं करूंगा नहीं स्पष्ट उपयोग या तो XText या XCData - मैं सिर्फ एक स्ट्रिंग प्रदान करते हैं और जो कुछ भी यह चाहता है कर एक्सएमएल के लिए LINQ जाने चाहते हैं।

मुझे लगता है कि गैर-सीडीएटीए संस्करण आमतौर पर स्पष्ट है। हां, एम्परैंड बच निकले हैं - और < भी होंगे - लेकिन यह अभी भी CDATA प्रारंभ/समाप्ति अनुभाग से काफी कम फ्लाफ है।

यह मत भूलना कि मनुष्यों के लिए एक्सएमएल प्रतिनिधित्व स्वयं को देखना बहुत दुर्लभ होना चाहिए - विचार यह है कि यह जानकारी के लिए एक परिवहन है जो में उस संदर्भ में उचित रूप से पठनीय है जब आपको की आवश्यकता होती है। मैं इसके बारे में भी लटका नहीं होगा।

1

अधिकांश फ़ाइल नामों में एम्परसैंड, या कम प्रतीकों नहीं होंगे। तो XText के साथ जाओ। उन मामलों के लिए रिजर्व एक्ससीडीटा जहां आप उन पात्रों की अपेक्षा करते हैं, जैसे कि जब XML दस्तावेज़ में एम्बेडिंग और HTML खंड।

तर्क: सीरियलाइज़ेशन में सीरियलाइज़ करने और पाठ को पार्स करने के लिए अंतर पूरी तरह से नगण्य हैं। लेकिन स्टोरेज, बैंडविड्थ या मेमोरी जरूरतों में एक (छोटा) अंतर है। बाकी सब कुछ बराबर है, उस प्रारूप का उपयोग करें जो कम से कम स्थान का उपयोग करता है (भले ही मतभेद छोटे हों)।

संबंधित मुद्दे