Udostępnij za pośrednictwem


Przykład: Określanie dyrektywy ELEMENTXSINIL

Po określeniu dyrektywy ELEMENT pobrać zorientowany na element XML, jeśli kolumna ma wartość NULL, odpowiadającego im elementu nie jest generowany przez JAWNE tryb.Opcjonalnie można określić dyrektywy ELEMENTXSINIL na żądanie, gdzie wartości elementu generowania NULL xsi:nil atrybut jest zestaw o wartości TRUE.

Następująca kwerenda konstrukcje XML, który zawiera adres pracownika.Dla AddressLine2 i City kolumnas, kolumna określić nazwy ELEMENTXSINIL dyrektywy.Generuje elementu dla wartości NULL w AddressLine2 i City kolumn w zestawie zestaw wierszy.

USE AdventureWorks2008R2;
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;

Jest to wynik częściowy:

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

...

Zobacz także

Odwołanie