Delen via


Voorbeeld: Geef de ELEMENTXSINIL-instructie op

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Wanneer u de ELEMENT-instructie opgeeft om elementgerichte XML op te halen, wordt het bijbehorende element niet gegenereerd door de MODUS EXPLICIET als de kolom een NULL-waarde heeft. U kunt desgewenst de ELEMENTXSINIL-instructie opgeven om het genererende element aan te vragen voor NULL-waarden waarbij het kenmerk xsi:nil is ingesteld met de waarde TRUE.

Met de volgende query wordt XML samengesteld die een werknemersadres bevat. Voor AddressLine2 en City kolommen geven de kolomnamen de ELEMENTXSINIL instructie op. Hiermee wordt het element gegenereerd voor NULL-waarden in de AddressLine2 en City kolommen in de rijenset.

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;

Dit is het gedeeltelijke resultaat:

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

Zie ook