¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo

XmlSerializerNamespaces (Clase)

Contiene los espacios de nombres XML y prefijos que XmlSerializer utiliza para generar nombres cualificados en una instancia de documento XML.

Espacio de nombres: System.Xml.Serialization
Ensamblado: System.Xml (en system.xml.dll)

public class XmlSerializerNamespaces
public class XmlSerializerNamespaces
public class XmlSerializerNamespaces
No aplicable.

XmlSerializerNamespaces contiene una colección de espacios de nombres XML, cada uno de ellos con un prefijo asociado. XmlSerializer utiliza una instancia de la clase XmlSerializerNamespaces para crear nombres cualificados en un documento XML.

Los espacios de nombres XML que contiene XmlSerializerNamespaces deben ajustarse a la especificación denominada Namespaces in XML que puede verse en www.w3.org.

Los espacios de nombres XML proporcionan una forma para cualificar los nombres de elementos y atributos XML en documentos XML. Un nombre cualificado se compone de un prefijo y un nombre local, separados por dos puntos. El prefijo funciona únicamente como marcador de posición y está asignado a un identificador URI que especifica un espacio de nombres. La combinación del espacio de nombres del URI universalmente administrado y el nombre local genera un nombre del que se garantiza que es universalmente único.

Para crear nombres cualificados en un documento XML:

  1. Cree una instancia XmlSerializerNamespaces.

  2. Aplique el método Add para agregar los prefijos y espacios de nombres que desee a la instancia.

  3. Aplique el atributo .NET adecuado a cada propiedad o clase que XmlSerializer serializa en un documento XML. Los atributos disponibles son:

  1. Establezca la propiedad Namespace de cada atributo en uno de los valores de espacio de nombres del XmlSerializerNamespaces.

  2. Pase XmlSerializerNamespaces al método Serialize de XmlSerializer.

NotaNota:

No se permite la creación de un par de espacio de nombres y prefijo vacío. Es decir, no puede crear un par mediante el código siguiente:

XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); 
ns.Add("", "");

En el siguiente ejemplo, se crea un objeto XmlSerializerNamespaces al que se agregan dos pares de prefijo y espacio de nombres. A continuación, se pasa en el ejemplo XmlSerializerNamespaces al método Serialize, que serializa un objeto Books en un documento XML. Mediante el objeto XmlSerializerNamespaces, el método Serialize cualifica cada elemento y atributo XML con uno de los dos espacios de nombres.

using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
 
public class Run
{
   public static void Main()
   {
      Run test = new Run();
      test.SerializeObject("XmlNamespaces.xml");
   }
 
   public void SerializeObject(string filename)
   {
      XmlSerializer s = new XmlSerializer(typeof(Books));
      // Writing a file requires a TextWriter.
      TextWriter t = new StreamWriter(filename);

      /* Create an XmlSerializerNamespaces object and add two
      prefix-namespace pairs. */
      XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
      ns.Add("books", "http://www.cpandl.com");
      ns.Add("money", "http://www.cohowinery.com");

      // Create a Book instance.
      Book b = new Book();
      b.TITLE = "A Book Title";
      Price p = new Price();
      p.price = (decimal) 9.95;
      p.currency = "US Dollar";
      b.PRICE = p;
      Books bks = new Books();
      bks.Book = b;
      s.Serialize(t,bks,ns);
      t.Close();
   }
}

public class Books
{
   [XmlElement(Namespace = "http://www.cohowinery.com")]
   public Book Book;
}

[XmlType(Namespace ="http://www.cpandl.com")]
public class Book
{
   [XmlElement(Namespace = "http://www.cpandl.com")]
   public string TITLE;
   [XmlElement(Namespace ="http://www.cohowinery.com")]
   public Price PRICE;
}

public class Price
{
   [XmlAttribute(Namespace = "http://www.cpandl.com")]
   public string currency;
   [XmlElement(Namespace = "http://www.cohowinery.com")]
   public decimal price;
}


import System.*;
import System.IO.*;
import System.Xml.*;
import System.Xml.Serialization.*;

public class Run
{
    public static void main(String[] args)
    {
        Run test = new Run();
        test.SerializeObject("XmlNamespaces.xml");
    } //main

    public void SerializeObject(String filename)
    {
        XmlSerializer s = new XmlSerializer(Books.class.ToType());

        // Writing a file requires a TextWriter.
        TextWriter t = new StreamWriter(filename);

        /* Create an XmlSerializerNamespaces object and add two
           prefix-namespace pairs. */
        XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
        ns.Add("books", "http://www.cpandl.com");
        ns.Add("money", "http://www.cohowinery.com");

        // Create a Book instance.
        Book b = new Book();
        b.title = "A Book Title";

        Price p = new Price();
        p.price = Convert.ToDecimal(9.95);
        p.currency = "US Dollar";
        
        b.price = p;

        Books bks = new Books();
        bks.book = b;

        s.Serialize(t, bks, ns);
        t.Close();
    } //SerializeObject
} //Run

public class Books
{
    /** @attribute XmlElement(Namespace = "http://www.cohowinery.com")
     */
    public Book book;
} //Books

/** @attribute XmlType(Namespace = "http://www.cpandl.com")
 */
public class Book
{
    /** @attribute XmlElement(Namespace = "http://www.cpandl.com")
     */
    public String title;
    /** @attribute XmlElement(Namespace = "http://www.cohowinery.com")
     */
    public Price price;
} //Book

public class Price
{
    /** @attribute XmlAttribute(Namespace = "http://www.cpandl.com")
     */
    public String currency;
    /** @attribute XmlElement(Namespace = "http://www.cohowinery.com")
     */
    public System.Decimal price;
} //Price

System.Object
  System.Xml.Serialization.XmlSerializerNamespaces

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0

XNA Framework

Compatible con: 1.0
Mostrar:
© 2015 Microsoft