Example: Specifying the ELEMENTXSINIL Directive
When you specify the ELEMENT directive to retrieve element-centric XML, if the column has a
When you specify the ELEMENT directive to retrieve element-centric XML, if the column has a
NULL value, the corresponding element isn’t generated by the EXPLICIT mode. You can
optionally specify the ELEMENTXSINIL directive to request the generating element for NULL
values where the
attribute is set with the value TRUE.
The following query constructs XML that includes an employee address. For
and
columns, the column names specify the
directive. This generates the
element for NULL values in the
and
columns in the rowset.
This is the partial result:
AddressLine2
City
ELEMENTXSINIL
AddressLine2
City
USE
AdventureWorks2022;
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;