Comment : utiliser des espaces de noms XML dans la liaison de données

Mise à jour : novembre 2007

Exemple

Cet exemple montre comment gérer les espaces de noms spécifiés dans votre XMLsource de liaison.

Si vos données XML possèdent la définition d'espace de noms XML suivante :

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">

Vous pouvez utiliser l'élément XmlNamespaceMapping pour mapper l'espace de noms à un Prefix, comme dans l'exemple suivant. Vous pouvez ensuite utiliser le Prefix pour référencer l'espace de noms XML. Le ListBox de cette exemple affiche le titre et le dc:date de chaque élément.

<StackPanel.Resources>
  <XmlNamespaceMappingCollection x:Key="mapping">
    <XmlNamespaceMapping Uri="http://purl.org/dc/elements/1.1/" Prefix="dc" />
  </XmlNamespaceMappingCollection>

  <XmlDataProvider Source="https://msdn.microsoft.com/subscriptions/rss.xml"
                   XmlNamespaceManager="{StaticResource mapping}"
                   XPath="rss/channel/item" x:Key="provider"/>

  <DataTemplate x:Key="dataTemplate">
    <Border BorderThickness="1" BorderBrush="Gray">
      <Grid Width="600" Height="50">
        <Grid.RowDefinitions>
          <RowDefinition Height="25"/>
          <RowDefinition Height="25"/>
        </Grid.RowDefinitions>
        <TextBlock Grid.Row="0" Text="{Binding XPath=title}" />
        <TextBlock Grid.Row="1" Text="{Binding XPath=dc:date}" />
      </Grid>
    </Border>
  </DataTemplate>
</StackPanel.Resources>

<ListBox
  Width="600"
  Height="600"
  Background="Honeydew"
  ItemsSource="{Binding Source={StaticResource provider}}"
  ItemTemplate="{StaticResource dataTemplate}"/>

Notez que le Prefix spécifié ne doit pas correspondre à celui utilisé dans la source XML ; en cas de modification du préfixe dans la source XML, votre mappage fonctionne toujours.

Dans cet exemple, les données XML proviennent d'un service Web, mais l'élément XmlNamespaceMapping fonctionne aussi avec des données XML inline ou les données XML d'un fichier incorporé.

Pour obtenir l'exemple complet, consultez Liaison à l'aide d'espaces de noms XML, exemple.

Voir aussi

Tâches

Comment : effectuer une liaison à des données XML à l'aide d'un XMLDataProvider et de requêtes XPath

Concepts

Vue d'ensemble de la liaison de données

Autres ressources

Exemples de liaisons de données

Rubriques Comment relatives aux liaisons de données