Domanda

Esiste un framework per l'interrogazione della sintassi XML SQL, mi stanco seriamente di scorrere le liste dei nodi.


O è solo un pio desiderio (se non idiota) e certamente non è possibile poiché XML non è un database relazionale?

È stato utile?

Soluzione

XQuery e XPath ... XQuery è più ciò che stai cercando se è auspicabile una struttura SQL.

Altri suggerimenti

Potresti provare LINQ to XML, ma non è linguaggio agnostico.

.Net Framework fornisce LINQ per farlo oppure puoi usare lo spazio dei nomi .Net System.Data per caricare dati da file XML.

Puoi persino creare query con join tra le tabelle, ecc.

Ad esempio, System.Data.DataTable fornisce un metodo ReadXml () .

XQuery è un linguaggio funzionale più vicino a SQL. XPath è una notazione per individuare un nodo all'interno del documento che viene utilizzato come parte di XSLT e XQuery .

Database XML come MarkLogic fungono da motori XQuery per dati XML, così come i database relazionali fungono da SQL motori per dati relazionali.

Dipende dal problema che stai risolvendo. Se il file XML è piuttosto grande, a volte è necessario utilizzare qualcosa come i parser SAX per attraversare il nodo file per nodo, oppure otterrai OutOfMemoryException o esaurirai anche la memoria virtuale sul tuo computer.

Ma, se la dimensione prevista del file XML è relativamente piccola, puoi semplicemente usare qualcosa come Linq, vedi anche il mio risposta - qui ho cercato di spiegare, come rendere molto più facile l'attraversamento di nodi con costruzioni come rendimento tornare .

SQL Server 2005 supporta DML XML sul suo codice xml tipo di dati.

XQuery è sicuramente la strada da percorrere. Questo è ciò che viene utilizzato dai database XML come eXist e MarkLogic .

Nel mondo Java ci sono diverse soluzioni per eseguire XQuery su file flat, in particolare Saxon

Per .NET, non c'è molto disponibile. Microsoft aveva una libreria XQuery, anche se questa è stata estratta da .NET 2 e non è mai riemersa. XQSharp è un'alternativa nativa .NET, sebbene al momento sia stata rilasciata solo una versione da riga di comando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top