Freigeben über


Beispiel: Angeben der ELEMENTXSINIL-Anweisung

Wenn Sie die ELEMENT-Direktive angeben, um elementorientierte XML abzurufen, wenn die Spalte einen NULL-Wert aufweist, wird das entsprechende Element nicht vom EXPLICIT-Modus generiert. Optional können Sie die ELEMENTXSINIL-Direktive angeben, um das generierende Element für NULL-Werte anzufordern, bei denen das xsi:nil Attribut mit dem Wert TRUE festgelegt wird.

Die folgende Abfrage erstellt XML, die eine Mitarbeiteradresse enthält. Für AddressLine2 und City Spalten geben die Spaltennamen die ELEMENTXSINIL Direktive an. Dadurch wird das Element für NULL-Werte in den AddressLine2 Zeilen und City Spalten im Rowset generiert.

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;  

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>

...

Siehe auch

Verwenden des EXPLIZITEN Modus mit FOR XML