Partager via


Exemple : Spécification de la directive ELEMENT

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Cette directive extrait des informations sur les employés et génère des données XML centrées sur l'élément, comme illustré par le code suivant :

<Employee EmpID=...>
  <Name>
    <FName>...</FName>
    <LName>...</LName>
  </Name>
</Employee>

La requête demeure la même, à l'exception du fait que vous ajoutez la directive ELEMENT dans les noms de colonnes. Par conséquent, au lieu d'attributs, les éléments enfants <FName> et <LName> sont ajoutés à l'élément <Name>. Étant donné que la colonne Employee!1!EmpID ne spécifie pas la directive ELEMENT, EmpID est ajouté en tant qu'attribut de l'élément <Employee>.

SELECT 1    as Tag,
       NULL as Parent,
       E.BusinessEntityID as [Employee!1!EmpID],
       NULL       as [Name!2!FName!ELEMENT],
       NULL       as [Name!2!LName!ELEMENT]
FROM   HumanResources.Employee AS E
INNER JOIN Person.Person AS P
ON  E.BusinessEntityID = P.BusinessEntityID
UNION ALL
SELECT 2 as Tag,
       1 as Parent,
       E.BusinessEntityID,
       FirstName,
       LastName
FROM   HumanResources.Employee AS E
INNER JOIN Person.Person AS P
ON  E.BusinessEntityID = P.BusinessEntityID
ORDER BY [Employee!1!EmpID],[Name!2!FName!ELEMENT]
FOR XML EXPLICIT;

Le résultat partiel est le suivant.

<Employee EmpID="1">
  <Name>
    <FName>Ken</FName>
    <LName>Sánchez</LName>
  </Name>
</Employee>
<Employee EmpID="2">
  <Name>
    <FName>Terri</FName>
    <LName>Duffy</LName>
  </Name>
</Employee>
...

Voir aussi