2008-12-17 12 views

उत्तर

3

यह वैध एक्सएमएल नहीं है, लेकिन इसे SQL सर्वर 2005 में एक्सएमएल कॉलम में डाला जा सकता है। मैं ओरेकल के लिए बात नहीं कर सकता, लेकिन मैं इसे शर्त लगाने के लिए लगभग तैयार हूं।

SQL सर्वर 2005 के साथ जाहिर है, आप एकल उद्धरण के लिए दोहरे उद्धरण सौदा करने के लिए की जरूरत है:

Insert Into MyTestTable(MyXmlColumn) Values(''); 

कि बस ठीक काम करता है - मैं सिर्फ यह परीक्षण किया है और डालने सफल रहा था।

+0

क्या आपको नहीं लगता कि एमएसएसएलएल 2005 से यह व्यवहार कमजोर है? कल्पना करें कि आप उस कॉलम से डेटा को डॉट नेट पर XElement पर पार्स करें .... –

+0

@CodeMelt: यह आपके लिए माइक्रोसॉफ्ट है - उनके उत्पादों के बारे में बहुत अजीब है। यदि आप चाहते थे कि मैं एमएस उत्पादों के बारे में अजीब बातों की एक सूची शुरू करूं, तो मैं यहां अनंत काल तक रहूंगा। – BenAlabaster

1

यह मान्य xml नहीं है। मान्य एक्सएमएल को एन्कोडिंग प्रकार और रूट नोड के साथ एक एक्सएमएल घोषणा की आवश्यकता होती है। ओरेकल या एसक्यूएल सर्वर इसे स्वीकार करेगा या नहीं, वैसे भी ऐसा कुछ है जिसे आप स्वयं जांच सकते हैं।

+0

एमएसएसएलएल कॉलम खाली स्ट्रिंग के साथ ठीक है और यहां तक ​​कि एक मुफ्त टेक्स्ट जो किसी भी XML शैली में नहीं है। मुझे नहीं पता कि यह कैसे संभालने के लिए ओरेकल। यही कारण है कि मैं पूछता हूँ! –

+0

एक्सएमएल घोषणा वास्तव में मान्य एक्सएमएल के लिए सख्त आवश्यकता नहीं है। –

6

सं spec का कहना है एक अच्छी तरह से गठित XML दस्तावेज़ को संतुष्ट करता है:

document ::= prolog element Misc* 

जहां

element ::= EmptyElemTag 
       | STag content ETag 
3

यह एक XML दस्तावेज नहीं है - कम से कम एक और अधिकतम एक बार जड़ होने की जरूरत है तत्व। (एक्सएमएल घोषणा वैकल्पिक है यदि एन्कोडिंग यूटीएफ -8 है और संस्करण 1.0 है - एक्सएमएल सिफारिश का उत्पादन 22)। यह एक वैध एक्सएमएल खंड - या तो खाली टेक्स्ट नोड या खाली सीमा के रूप में है।

आपको परिभाषित करना होगा कि आपके संदर्भ में 'एक्सएमएल का टुकड़ा' का अर्थ क्या है।

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