Condividi tramite


Considerazioni sulla sicurezza FOR XML (SQLXML 4.0)

La modalità FOR XML AUTO genera una gerarchia XML in cui i nomi degli elementi vengono mappati ai nomi di tabella e ai nomi degli attributi a nomi di colonna. In questo modo vengono esposte le informazioni sulla tabella e sulla colonna del database. È possibile nascondere le informazioni sul database quando si usa la modalità AUTO (formattazione lato server) specificando alias di tabella e colonna nella query. Questi alias vengono restituiti nel documento XML risultante come nomi di elementi e attributi.

Ad esempio, la query seguente specifica la modalità AUTO; pertanto, la formattazione XML viene eseguita nel server:

SELECT C.FirstName as F,C.LastName as L   
FROM Person.Contact C   
FOR XML AUTO  

Nel documento XML risultante gli alias vengono usati per i nomi degli elementi e degli attributi:

<?xml version="1.0" encoding="utf-8" ?>   
<root>  
  <C F="Nancy" L="Fuller" />   
  <CE F="Andrew" L="Peacock" />   
  <C F="Janet" L="Leverling" />   
  ...  
</root>  

Quando si usa la modalità NESTED (formattazione lato client), gli alias vengono restituiti solo per gli attributi nel documento XML risultante. I nomi delle tabelle di base vengono sempre restituiti come nomi di elemento. Ad esempio, la query seguente specifica la modalità NESTED.

SELECT C.FirstName as F,C.LastName as L   
FROM Person.Contact C   
FOR XML AUTO  

Nel documento XML risultante, i nomi delle tabelle di base vengono restituiti come nomi di elemento e alias di tabella non vengono utilizzati:

<?xml version="1.0" encoding="utf-8" ?>   
<root>  
  <Person.Contact F="Nancy" L="Fuller" />   
  <Person.Contact F="Andrew" L="Peacock" />   
  <Person.Contact F="Janet" L="Leverling" />   
       ...  
</root>