Bonjour,

Je dois construire un fichier XML à partir de données dans une table. Voici ce que je dois obtenir, notez la balise <Promos> et valeur "Default":

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
- <Promos>
    - <PromoType Id="Home" Theme="Default">
      <PromoName Language="eng" FromDate="1900-01-01" ToDate="2000-01-01">Default</PromoName>
      <PromoName Language="eng" FromDate="2000-01-01" ToDate="2100-01-01">Default</PromoName>
    </PromoType>
  </Promos>
Et voici ce que j'obtiens avec la requête suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
  <PromoType Id="Home" Theme="Default">
    <PromoName Language="eng" FromDate="2009-04-06T08:30:00" ToDate="2009-04-07T09:30:00" VALUE="Default" />
    <PromoName Language="eng" FromDate="2009-04-06T09:00:00" ToDate="2009-04-07T09:00:00" VALUE="Default" />
</PromoType>
Requête SQL:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  use maBD
  go
 
  SELECT   TOP 2
    PromoType.[Id] AS Id,
    PromoType.[THEME] AS Theme,
    PromoName.LANG_ID  AS Language,
    PromoName.FROM_DATE AS FromDate,
    PromoName.TO_DATE AS ToDate,
    PromoName.VALUE
  FROM EPC_PROMO  PromoType
    INNER JOIN EPC_PROMO PromoName
    ON PromoType.ID = PromoName.ID
  WHERE PromoType.GROUP_KEY = 'monGROUPE'
  ORDER BY PromoType.ID
  FOR XML AUTO
Avec FOR XML EXPLICIT, en utilisant la Directive element, la valeur se retrouve justement sur une hiérachie isolée et il doit être inclus avec les autres champs. Donc ça ne fonctionne pas de cette façon.

Existe-t-il une façon de créer un tel fichier XML automatiquement ?


Merci beaucoup pour votre aide.