Compartir a través de


Cómo: Usar espacios de nombres XML en el enlace de datos

Actualización: noviembre 2007

Ejemplo

En este ejemplo se muestra cómo administrar los espacios de nombres especificados en el origen de enlace de XML.

Si los datos XML tienen la definición de espacio de nombres XML siguiente:

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

Puede utilizar el elemento XmlNamespaceMapping para asignar el espacio de nombres a Prefix, como en el ejemplo siguiente. A continuación, puede utilizar Prefix para hacer referencia al espacio de nombres XML. En este ejemplo, ListBox muestra los elementos title y 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 la propiedad Prefix que se especifica no tiene que coincidir necesariamente con la utilizada en el origen XML; aunque el prefijo cambie en el origen XML, la asignación sigue funcionando.

En este ejemplo concreto, los datos XML proceden de un servicio web, pero el elemento XmlNamespaceMapping también funciona con datos XML insertados o datos XML de un archivo incrustado.

Para obtener el ejemplo completo, consulte Ejemplo Binding Using XML Namespaces.

Vea también

Tareas

Cómo: Enlazar a datos XML mediante XMLDataProvider y consultas XPath

Conceptos

Información general sobre el enlace de datos

Otros recursos

Ejemplos de enlace de datos

Temas "Cómo..." sobre enlace de datos