Partager via


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

Exemple

Cet exemple montre comment gérer les espaces de noms spécifiés dans votre XML source 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é.

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

Rubriques "Comment" relatives aux liaisons de données