Compartir a través de


XmlSerializerNamespaces Clase

Definición

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

public ref class XmlSerializerNamespaces
public class XmlSerializerNamespaces
type XmlSerializerNamespaces = class
Public Class XmlSerializerNamespaces
Herencia
XmlSerializerNamespaces

Ejemplos

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

#using <System.Xml.dll>
#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Serialization;
public ref class Price
{
public:

   [XmlAttributeAttribute(Namespace="http://www.cpandl.com")]
   String^ currency;

   [XmlElement(Namespace="http://www.cohowinery.com")]
   Decimal price;
};

[XmlType(Namespace="http://www.cpandl.com")]
public ref class Book
{
public:

   [XmlElement(Namespace="http://www.cpandl.com")]
   String^ TITLE;

   [XmlElement(Namespace="http://www.cohowinery.com")]
   Price^ PRICE;
};

public ref class Books
{
public:

   [XmlElement(Namespace="http://www.cohowinery.com")]
   Book^ Book;
};

public ref class Run
{
public:
   static void main()
   {
      Run^ test = gcnew Run;
      test->SerializeObject( "XmlNamespaces.xml" );
   }

   void SerializeObject( String^ filename )
   {
      XmlSerializer^ s = gcnew XmlSerializer( Books::typeid );

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

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

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

int main()
{
   Run::main();
}
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;
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization


Public Class Run
    
    Public Shared Sub Main()
        Dim test As New Run()
        test.SerializeObject("XmlNamespaces.xml")
    End Sub    
    
    Public Sub SerializeObject(ByVal filename As String)
        Dim s As New XmlSerializer(GetType(Books))
        ' Writing a file requires a TextWriter.
        Dim t As New StreamWriter(filename)
        
        ' Create an XmlSerializerNamespaces object and add two
        ' prefix-namespace pairs. 
        Dim ns As New XmlSerializerNamespaces()
        ns.Add("books", "http://www.cpandl.com")
        ns.Add("money", "http://www.cohowinery.com")
        
        ' Create a Book instance.
        Dim b As New Book()
        b.TITLE = "A Book Title"
        Dim p As New Price()
        p.price = CDec(9.95)
        p.currency = "US Dollar"
        b.PRICE = p
        Dim bks As New Books()
        bks.Book = b
        s.Serialize(t, bks, ns)
        t.Close()
    End Sub
End Class

Public Class Books
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public Book As Book
End Class

<XmlType(Namespace := "http://www.cpandl.com")> _
Public Class Book
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public TITLE As String

    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public PRICE As Price
End Class

Public Class Price
    <XmlAttribute(Namespace := "http://www.cpandl.com")> _
    Public currency As String
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public price As Decimal
End Class

Comentarios

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

Los espacios de nombres XML contenidos en XmlSerializerNamespaces deben ajustarse a la especificación W3C denominada Espacios de nombres en XML.

Los espacios de nombres XML proporcionan una manera de calificar los nombres de elementos y atributos XML en documentos XML. Un nombre calificado 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 de URI administrado universalmente y el nombre local genera un nombre que se garantiza que sea universalmente único.

Para crear nombres completos en un documento XML:

  1. Cree una XmlSerializerNamespaces instancia.

  2. Add cada par de prefijos y espacios de nombres que desee en la instancia.

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

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

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

Nota

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

XmlSerializerNamespaces ns = new XmlSerializerNamespaces();   
ns.Add("", "");  
Dim ns As XmlSerializerNamespaces ns = New XmlSerializerNamespaces()  
ns.Add("", "")  

Constructores

XmlSerializerNamespaces()

Inicializa una nueva instancia de la clase XmlSerializerNamespaces.

XmlSerializerNamespaces(XmlQualifiedName[])

Inicializa una nueva instancia de la clase XmlSerializerNamespaces.

XmlSerializerNamespaces(XmlSerializerNamespaces)

Inicializa una nueva instancia de la clase XmlSerializerNamespaces, utilizando la instancia especificada de XmlSerializerNamespaces que contiene la colección de pares prefijo y espacio de nombres.

Propiedades

Count

Obtiene el número de pares de prefijo y espacio de nombres de la colección.

Métodos

Add(String, String)

Agrega un par de prefijo y espacio de nombres a un objeto XmlSerializerNamespaces.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToArray()

Obtiene la matriz de pares de prefijo y espacio de nombres en un objeto XmlSerializerNamespaces.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también