2011-09-23 11 views
6

हाय iam इस कोडएक नेस्टेड संबंध या एक SimpleContent स्तंभ युक्त एक मेज पर एक तत्व स्तंभ नहीं जोड़ा जा सकता

लिखने "

XmlTextReader read = new XmlTextReader("http://msdn.microsoft.com/rss.xml"); 
     DataSet ds = new DataSet(); 
     ds.ReadXml(read); 
     ListView1.DataSource = ds.Tables[4]; 
     ListView1.DataBind(); " 

और इस त्रुटि happing है

" एक नेस्टेड नहीं जोड़ा जा सकता संबंध या एक SimpleContent कॉलम "

+0

आपके उदाहरण में यूआरएल 404 संसाधन नहीं मिला –

उत्तर

0

यह अपने xml की तरह लग रहा युक्त एक मेज पर एक तत्व स्तंभ एक तत्व है जो दोनों पाठ बच्चे हैं (सरल सामग्री) और अन्य शामिल हैं तत्व बच्चे

डेटासेट एक मेज दोनों सरल सामग्री कॉलम के साथ ही तत्व कॉलम के लिए अनुमति नहीं है।

देखें http://msdn2.microsoft.com/en-us/library/zx8h06sz.aspx

8

आपकी समस्या आप दस्तावेज़ में कहीं एक अलग संरचना के साथ एक ही तत्व का नाम है।

तो, उदाहरण के लिए, यदि आप

<Item>Bicycle</Item> 

और बाद में दस्तावेज़ में है आप

<Item Type="Sports"><Name>Bicycle</Name></Item> 

है XSD दूसरे मद के लिए एक उचित स्कीमा उत्पन्न करने के लिए असफल हो जायेगी संरचना विशेषता यह है, क्योंकि पहले घोषित घोषणा के आधार पर पहले से ही एक सरल सामग्री कॉलम के रूप में परिभाषित आइटम।

समाधान करने के लिए है (स्वाभाविक रूप से) अपने एक्सएमएल के भीतर विभिन्न संरचनाओं के लिए एक ही तत्व नाम का उपयोग करने से बचें। जाहिर है कि आपके मामले में यह असुविधाजनक है क्योंकि माइक्रोसॉफ्ट के पास एक्सएमएल का सवाल है (hypothetically, क्योंकि डेनी से टिप्पणी इंगित करता है कि यह साइट अब मौजूद नहीं है।) आपको XMLWriter या किसी भिन्नता का उपयोग अपमानजनक तत्व के नाम को स्वैप करने के लिए करना होगा कुछ अद्वितीय के लिए।

0

मेरे मामले में यह त्रुटि डब्ल्यूसीएफ क्लाइंट की तरफ दिखाई दी। डब्ल्यूसीएफ सर्वर की तरफ यह एक फ़ंक्शन पर SQL SELECT अनुमति अनुपलब्ध होने के कारण हुआ - System.Data.SqlClient.SqlException।

WCF ग्राहक एक डाटासेट है, जो स्पष्ट रूप से वहाँ नहीं था deserialize की कोशिश कर रहा है, यह प्रदर्शित "एक SimpleContent जोड़ा नहीं जा सकता ..." त्रुटि रखा। मैं इसे एक भ्रामक संदेश नहीं कहूंगा, बल्कि एक जिसे सही तरीके से व्याख्या किया जाना चाहिए।

0

मुझे लगता है कि इस त्रुटि को प्रदर्शित करेगा जब आप सेवा कॉल से responseText से ReadXml करने की कोशिश कर रहे हैं। इस मामले में बस आवश्यक नोड विशेषता प्राप्त करें जिसे आपको बाहरी एक्सएमएल प्रारूप में आवश्यक है। वे जो तत्व नहीं हैं उस तत्व को छोड़ दें।

उदा

var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); 
       XmlDocument doc = new XmlDocument(); 
       DataSet ds = new DataSet(); 
       doc.LoadXml(responseString); 

       foreach (XmlNode node in doc.SelectNodes("result/records")) 
       { 
        doc = new XmlDocument(); 
        doc.LoadXml(node.OuterXml.ToString()); 
       } 

       using (XmlReader reader = new XmlNodeReader(doc.DocumentElement)) 
       { 
        ds.ReadXml(reader); 
        reader.Close(); 
       } 

ऊपर के उदाहरण में मैं केवल 'रिकॉर्ड' प्रतिक्रिया स्ट्रीम में नोड चाहते हैं। ताकि मैं प्रसंस्करण के लिए डेटासेट को केवल & ला रहा हूं।

मुझे आशा है कि यह मदद करता है !!!!!!!!!!!!!!!!!!!!!!!!!!!

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