2011-09-23 12 views
6

Hi iam scrivere questo codiceImpossibile aggiungere una relazione nidificato o di una colonna elemento a una tabella che contiene una colonna 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(); " 

e questo errore è happing

" Non è possibile aggiungere un nidificato relazione o una colonna di elementi a una tabella contenente una colonna SimpleContent "

+0

l'URL nel vostro esempio restituisce una risorsa 404 non trovato –

risposta

0

Sembra che il tuo xml contenga un elemento che ha sia figli di testo (contenuto semplice) che altro elemento bambini.

DataSet non consente a una tabella di avere sia colonne di contenuto semplice sia colonne di elementi.

Vedi http://msdn2.microsoft.com/en-us/library/zx8h06sz.aspx

8

Il tuo problema è che avete lo stesso nome di elemento con una struttura diversa da qualche parte nel documento.

Così, per esempio, se si dispone di

<Item>Bicycle</Item> 

e successivamente nel documento che si è

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

Il XSD non riuscirà a generare uno schema adeguato per la seconda voce attribuire struttura perché è Elemento già definito come colonna SimpleContent in base alla dichiarazione precedente.

La soluzione è (naturalmente) evitare di utilizzare lo stesso nome di elemento per diverse strutture all'interno dell'XML. Ovviamente nel caso in cui una specie di scomodo da quando Microsoft possiede l'XML in questione (ipoteticamente, dal momento che il commento da Deni indica questo sito non esiste più.) Dovreste usare XMLWriter o qualche variante di scambiare fuori il nome dell'elemento incriminato per qualcosa di unico.

0

Nel mio caso questo errore è apparso sul lato del WCF cliente. Sul lato del server WCF è stato causato dalla mancanza dell'autorizzazione SQL SELECT su una funzione - System.Data.SqlClient.SqlException.

Il client WCF che tentava di deserializzare un set di dati, che ovviamente non era presente, continuava a visualizzare l'errore "Impossibile aggiungere un SimpleContent ...". Non lo definirei un messaggio fuorviante, ma piuttosto uno che deve essere interpretato correttamente.

0

penso che questo errore viene visualizzato quando si sta cercando di ReadXml da responseText da chiamate di servizio. In questo caso, basta recuperare l'attributo nodo necessario richiesto nel formato outerxml. Quelli che non sono necessariamente saltano quell'elemento.

es

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(); 
       } 

nell'esempio precedente Voglio solo nodo 'record' nel flusso di risposta. In modo che sto recuperando solo quello & dato al set di dati per l'elaborazione.

Spero che aiuti !!!!!!!!!!!!!!!!!!!!!!!!!!!

Problemi correlati