XmlSerializerNamespaces Classe

Definição

Contém os espaços de nomes XML e prefixos que utiliza XmlSerializer para gerar nomes qualificados numa instância de documento XML.

public ref class XmlSerializerNamespaces
public class XmlSerializerNamespaces
type XmlSerializerNamespaces = class
Public Class XmlSerializerNamespaces
Herança
XmlSerializerNamespaces

Exemplos

O exemplo seguinte cria um XmlSerializerNamespaces objeto e adiciona-lhe dois pares de prefixo e namespace. O exemplo passa então para XmlSerializerNamespaces o Serialize método, que serializa um Books objeto num documento XML. Usando o XmlSerializerNamespaces objeto, o Serialize método qualifica cada elemento XML e atributo com um dos dois namespaces.

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

Observações

Contém XmlSerializerNamespaces uma coleção de espaços de nomes XML, cada um com um prefixo associado. Utiliza XmlSerializer uma instância da XmlSerializerNamespaces classe para criar nomes qualificados num documento XML.

Os espaços de nomes XML contidos pelo XmlSerializerNamespaces devem estar em conformidade com a especificação do W3C chamada Namespaces in XML.

Os espaços de nomes XML fornecem uma forma de qualificar os nomes dos elementos e atributos XML em documentos XML. Um nome qualificado consiste num prefixo e num nome local, separados por dois pontos. O prefixo funciona apenas como um marcador de posição; é mapeado para um URI que especifica um namespace. A combinação do espaço de nomes URI universalmente gerido e do nome local produz um nome que é garantidamente universalmente único.

Para criar nomes qualificados num documento XML:

  1. Cria uma XmlSerializerNamespaces instância.

  2. Add cada par de prefixos e namespace que queres para a instância.

  3. Aplicar o atributo apropriado.NET a cada propriedade ou classe que o XmlSerializer serializa num documento XML. Os atributos disponíveis são:

  1. Defina a Namespace propriedade de cada atributo para um dos valores do namespace do XmlSerializerNamespaces objeto.

  2. Passe o XmlSerializerNamespaces para o Serialize método do XmlSerializer.

Note

A criação de um par vazio de namespace e prefixo não é suportada. Ou seja, não pode criar um par usando o seguinte código:

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

Construtores

Name Description
XmlSerializerNamespaces()

Inicializa uma nova instância da XmlSerializerNamespaces classe.

XmlSerializerNamespaces(XmlQualifiedName[])

Inicializa uma nova instância da XmlSerializerNamespaces classe.

XmlSerializerNamespaces(XmlSerializerNamespaces)

Inicializa uma nova instância da XmlSerializerNamespaces classe, usando a instância especificada de XmlSerializerNamespaces contendo a coleção de pares de prefixo e espaço de nomes.

Propriedades

Name Description
Count

Obtém o número de pares de prefixo e namespace na coleção.

Métodos

Name Description
Add(String, String)

Adiciona um par de prefixo e namespace a um XmlSerializerNamespaces objeto.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToArray()

Obtém o array dos pares de prefixo e namespace num XmlSerializerNamespaces objeto.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Ver também