Como: Usar Namespaces para XML na Associação de Dados
Exemplo
Este exemplo mostra como lidar com namespaces especificados em sua fonte de vínculos XML.
Se seus dados XML tiverem a seguinte definição de namespace XML:
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
Você pode usar o elemento XmlNamespaceMapping para mapear o namespace para um Prefix, como no exemplo a seguir. Em seguida, você pode usar o Prefix para referir-se ao namespace XML. O ListBox nesse exemplo exibe o title e dc:date de cada item.
<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}"/>
Observe que o Prefix que você especifica não precisa coincidir com aquele usado na fonte XML; se o prefixo mudar na fonte XML seu mapeamento ainda funciona.
Nesse exemplo específico, os dados XML vêm de um webservice, mas o elemento XmlNamespaceMapping também funciona com XML embutido ou dados XML em um arquivo incorporado.
For the complete example, see Ligação com o exemplo de espaços para nome XML.
Consulte também
Tarefas
Como: Bind to XML Data Using an XMLDataProvider and XPath Queries
Conceitos
Revisão de Associação de Dados