Beispiel: Angeben der ELEMENTXSINIL-Direktive

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzSQL-Datenbank in Microsoft Fabric

Wenn Sie zum Abrufen einer elementzentrierten XML-Ausgabe die ELEMENT-Direktive angeben, und eine Spalte einen NULL-Wert aufweist, wird das entsprechende Element im EXPLICIT-Modus nicht generiert. Sie können optional die ELEMENTXSINIL-Direktive angeben, um das Generieren von Elementen für NULL-Werte anzufordern, wenn das xsi:nil -Attribut auf TRUE festgelegt ist.

Die folgende Abfrage konstruiert eine XML-Ausgabe, die die Adressen der Mitarbeiter enthält. Für die Spalten AddressLine2 und City ist in den Spaltennamen die ELEMENTXSINIL -Direktive angegeben. So werden für NULL-Werte in der AddressLine2 - und City -Spalte des Rowsets Elemente generiert.

Hinweis

In Azure SQL-Datenbank und SQL Database in Microsoft Fabric ist die Anweisung USE nicht verfügbar. Stattdessen verbinden Sie sich direkt mit der vorgesehenen Datenbank und führen Sie den Rest des Codebeispiels aus.

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;

Dies ist das Teilergebnis:

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