Sto lavorando contro un xml api di terze parti. Hanno definito una struttura XML richiesta simile alla seguente.Nome elemento xml con i due punti
<ns1:E xmlns:ns1="schema">
<ns1:B>
<ns2:S>
<ns2:V>
<ns2:Bl />
</ns2:V>
</ns2:S>
</ns1:B>
</ns1:E>
C'è una tabella SQL con le informazioni che ho bisogno di mettere in questo formato xml. Ho un adattatore LINQ to SQL per ottenere i dati e sto usando un System.Xml
per creare un documento XML.
XmlDocument.CreateElement("ns1:E"); etc
Questo funziona benissimo fintanto che rimuovo i due punti dai nomi degli elementi. Con i due punti, solo il lato destro dei due punti si trova nel nome dell'elemento. So che i due punti sono un no-no ma non ho alcun controllo su ciò che l'API di terze parti sta dettando.
Quali sono le mie opzioni per aggirare questo? Esistono modi utili per forzare i due punti nei nomi degli elementi? Non devo usare XMLDocument
ma non sono sicuro di quale altro metodo mi porterà lì.
AGGIORNAMENTO: Mi rendo conto che lo <ns1:
fa riferimento a uno spazio dei nomi. E sì, ci sono 2. Quando si scrive il XML, posso farlo funzionare se dico -
XmlDocument.CreateElement(ns1:E", "http://schema);
Tuttavia, l'output XML di questo è
<ns1:E xmlns:ns1="http://schema">
Se dico solo XmlDocument.CreateElement("ns1:E");
con no uri, quindi l'output è solo <E>
. Non voglio che l'output abbia il riferimento allo schema ma ho bisogno di avere il prefisso. Il risultato che voglio ottenere è semplicemente <ns1:E>
. Entrambi i namspace sono dichiarati in alto, il che direi che avrei dovuto dichiararli su ogni nodo.
Ho lo stesso problema, anche questo metodo non funziona per me. come hai ottenuto semplicemente? –