요소 중심 XML을 검색하는 ELEMENT 지시문을 지정하는 경우 열에 NULL 값이 있는 경우 해당 요소는 EXPLICIT 모드에서 생성되지 않습니다. 필요에 따라 ELEMENTXSINIL 지시문을 지정하여 특성이 TRUE 값으로 설정된 NULL 값에 xsi:nil 대한 생성 요소를 요청할 수 있습니다.
다음 쿼리는 직원 주소를 포함하는 XML을 생성합니다.
AddressLine2 열과 City 열의 열 이름이 ELEMENTXSINIL 지시문을 지정합니다.
AddressLine2 및 City 열에서 NULL 값에 대한 요소가 행 집합에서 생성됩니다.
USE AdventureWorks2012;
GO
SELECT 1 as Tag,
NULL as Parent,
E.BusinessEntityID as [Employee!1!EmpID],
BEA.AddressID as [Employee!1!AddressID],
NULL as [Address!2!AddressID],
NULL as [Address!2!AddressLine1!ELEMENT],
NULL as [Address!2!AddressLine2!ELEMENTXSINIL],
NULL as [Address!2!City!ELEMENTXSINIL]
FROM HumanResources.Employee AS E
INNER JOIN Person.BusinessEntityAddress AS BEA
ON E.BusinessEntityID = BEA.BusinessEntityID
UNION ALL
SELECT 2 as Tag,
1 as Parent,
E.BusinessEntityID,
BEA.AddressID,
A.AddressID,
AddressLine1,
AddressLine2,
City
FROM HumanResources.Employee AS E
INNER JOIN Person.BusinessEntityAddress AS BEA
ON E.BusinessEntityID = BEA.BusinessEntityID
INNER JOIN Person.Address AS A
ON BEA.AddressID = A.AddressID
ORDER BY [Employee!1!EmpID],[Address!2!AddressID]
FOR XML EXPLICIT;
다음은 결과의 일부입니다.
<Employee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
EmpID="1" AddressID="249">
<Address AddressID="249">
<AddressLine1>4350 Minute Dr.</AddressLine1>
<AddressLine2 xsi:nil="true" />
<City>Minneapolis</City>
</Address>
</Employee>
...