Condividi tramite


Procedura: utilizzare gli spazi dei nomi XML nell'associazione dati

Esempio

In questo esempio viene illustrato come gestire gli spazi dei nomi specificati nell'origine di associazione XML.

Se i dati XML presentano la seguente definizione dello spazio dei nomi XML:

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

è possibile utilizzare l'elemento XmlNamespaceMapping per eseguire il mapping dello spazio dei nomi a un oggetto Prefix, come mostrato nell'esempio seguente. Successivamente è possibile utilizzare Prefix per fare riferimento allo spazio dei nomi XML. Nella classe ListBox dell'esempio vengono mostrati titolo e data:doc di ciascun elemento.

<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}"/>

Notare che l'oggetto Prefix specificata non deve necessariamente coincidere con quello utilizzato nell'origine XML; se il prefisso nell'origine XML viene modificato, il mapping continua a essere eseguito correttamente.

In questo specifico esempio, sebbene i dati XML provengano da un servizio Web, l'elemento XmlNamespaceMapping funzionerà anche con dati XML o XML inline in un file incorporato.

Vedere anche

Attività

Procedura: eseguire l'associazione a dati XML tramite un oggetto XMLDataProvider e query XPath

Concetti

Cenni preliminari sull'associazione dati

Altre risorse

Procedure relative all'associazione dati