Поделиться через


Рекомендации по безопасности XML (SQLXML 4.0)

Режим FOR XML AUTO создает XML-иерархию, в которой имена элементов сопоставляют имена таблиц и имен атрибутов, сопоставленные с именами столбцов. Это предоставляет сведения о таблице базы данных и столбцах. Сведения о базе данных можно скрыть при использовании режима AUTO (форматирование на стороне сервера), указав псевдонимы таблиц и столбцов в запросе. Эти псевдонимы возвращаются в результирующем XML-документе в виде имен элементов и атрибутов.

Например, следующий запрос указывает режим AUTO; Поэтому форматирование XML выполняется на сервере:

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

В результирующем XML-документе псевдонимы используются для имен элементов и атрибутов:

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

При использовании режима NESTED (форматирование на стороне клиента) псевдонимы возвращаются только для атрибутов в результирующем XML-документе. Имена базовых таблиц всегда возвращаются в качестве имен элементов. Например, следующий запрос указывает режим NESTED.

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

В результирующем XML-документе имена базовых таблиц возвращаются как имена элементов и псевдонимы таблиц не используются:

<?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>