Presumo che da XML-safe intendi fuga di speciali tag XML. Se si dispone di una colonna XML che si desidera includere in un altro documento XML, allora si hanno due opzioni:
- progetto la colonna come
[*]
: select ..., xmlcolumn as [*], ... from ... for xml path...
questo incorporerà il contenuto XML della colonna nel XML risultato. Per esempio. se la colonna ha il valore <element>value</element>
, il risultato sarà come <root><row><element>value</element></row></root>
.
- progetto la colonna come nome della colonna:
select ..., xmlcolumn, ... from ... for xml path...
verrà inserito il contenuto della colonna come valore (cioè sarà sfuggire.). Per esempio. lo stesso valore di cui sopra produrrà <root><row><xmlcolumn><element><value</element>
.
Se la tua domanda riguarda qualcos'altro, dovrai riformularlo correttamente e usare i termini correttamente. Non inventare nuovi termini che nessuno capisce ma tu.
Aggiornamento:
Se si sta inserendo valori XML nella colonna, allora non c'è bisogno di fare nulla. Le librerie client sanno come gestire la corretta escaping. Finché si scrive correttamente il codice. Ricorda, XML è NON una stringa e non dovrebbe mai, mai essere trattato come uno. Se si scrive XML nel client, utilizzare una libreria XML appropriata (XmlWriter, XML DOM, Linq to XML ecc.). quando si passa in XML a SQL Server, utilizzare il tipo appropriato: SqlXml. Le stored procedure devono utilizzare il tipo di parametro appropriato: XML. Quando lo leggi, utilizza il metodo appropriato per leggere XML: GetSqlXml(). Lo stesso vale per dichiarare il tipo in uno dei designer miriad (LINQ a SQL, EF ecc.). In definitiva, c'è mai qualsiasi necessità di sfuggire manualmente ai caratteri XML. Se ti accorgi di farlo, stai usando l'API sbagliata e devi tornare al tavolo da disegno.
Una lettura buon inizio è XML Support in Microsoft SQL Server 2005.
E, infine, di manipolare XML come lei (colonna XML aggiornamento tabella A con la colonna XML della tabella B), si utilizza XML methods, specificamente modify (... insert...), e si associa la colonna della tabella B all'interno del XQuery utilizzando sql:column
:
In un commento si minaccia XML come stringa e, come ho già detto, non si dovrebbe mai farlo: stringhe e XML sono come acqua e olio.
fonte
2010-07-27 19:48:16
"xml-safe" ?? Che cosa vuoi dire con questo?? Per favore spiega - non è un'espressione comunemente usata secondo me .... –
Cosa intendi con "evita di sostituirmi"? Di cosa si tratta "sostituisci" di cui parli? – NotMe
Scommetto che pensa di dover tradurre '<' in '<', per esempio. –