Considerazioni sulla sicurezza per FOR XML (SQLXML 4.0)
La modalità FOR XML AUTO genera una gerarchia XML in cui i nomi di elemento vengono mappati ai nomi di tabella e i nomi di attributo vengono mappati ai nomi di colonna. In questo modo vengono esposte le informazioni sulle colonne e sulle tabelle di database. È possibile nascondere le informazioni del database quando si utilizza la modalità AUTO (formattazione sul lato server) specificando gli alias di colonne e di tabelle nella query. Questi alias vengono restituiti nel documento XML risultante come nomi di elemento e di attributo.
Nella query seguente ad esempio viene specificata la modalità AUTO; pertanto, la formattazione XML viene eseguita nel server:
SELECT P.FirstName AS F,P.LastName AS L
FROM Person.Person AS P
FOR XML AUTO
Nel documento XML risultante vengono utilizzati gli alias per i nomi di elemento e di attributo:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<P F="Nancy" L="Fuller" />
<P F="Andrew" L="Peacock" />
<P F="Janet" L="Leverling" />
...
</root>
Quando si utilizza la modalità NESTED (formattazione sul lato client), gli alias vengono restituiti solo per gli attributi nel documento XML risultante. I nomi delle tabelle di base vengono restituiti sempre come nomi di elemento. Ad esempio, nella query seguente viene specificata la modalità NESTED.
SELECT P.FirstName as F,P.LastName as L
FROM Person.Person AS P
FOR XML AUTO
Nel documento XML risultante i nomi delle tabelle di base vengono restituiti come nomi di elemento e gli alias di tabella non vengono utilizzati:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<Person.Person F="Nancy" L="Fuller" />
<Person.Person F="Andrew" L="Peacock" />
<Person.Person F="Janet" L="Leverling" />
...
</root>