Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los espacios de nombres XML contenidos por instancias de la clase XmlSerializerNamespaces deben cumplir con la especificación de World Wide Web Consortium (W3C) llamada Espacios de nombres en XML.
Los espacios de nombres XML proporcionan una método para 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 del URI, universalmente administrado, y el nombre local genera un nombre del que se garantiza que es universalmente único.
Creando una instancia de XmlSerializerNamespaces
y agregando los pares de espacio de nombres al objeto, puede especificar los prefijos utilizados en un documento XML.
Cree una instancia de la clase
XmlSerializerNamespaces
.Agregue todos los prefijos y pares de espacio de nombres a
XmlSerializerNamespaces
.Aplique el atributo apropiado
System.Xml.Serialization
a cada método o clase que XmlSerializer vaya a serializar en un documento XML.Los atributos disponibles son: XmlAnyElementAttribute, XmlArrayAttribute, XmlArrayItemAttribute, XmlAttributeAttribute, XmlElementAttribute, XmlRootAttribute, y XmlTypeAttribute.
Establezca la propiedad
Namespace
de cada atributo en uno de los valores de espacio de nombres delXmlSerializerNamespaces
.Pase
XmlSerializerNamespaces
al métodoSerialize
deXmlSerializer
.
En el siguiente ejemplo, se crea un XmlSerializerNamespaces
al que se agregan dos prefijos y pares de espacio de nombres al objeto. El código crea XmlSerializer
que se utiliza para serializar una instancia de la clase Books
. El código llama al método Serialize
con XmlSerializerNamespaces
, permitiéndole al XML contener los espacios de nombres prefijados.
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
Public Module Program
Public Sub Main()
SerializeObject("XmlNamespaces.xml")
End Sub
Public Sub SerializeObject(filename As String)
Dim mySerializer As New XmlSerializer(GetType(Books))
' Writing a file requires a TextWriter.
Dim myWriter As New StreamWriter(filename)
' Creates an XmlSerializerNamespaces and adds two
' prefix-namespace pairs.
Dim myNamespaces As New XmlSerializerNamespaces()
myNamespaces.Add("books", "http://www.cpandl.com")
myNamespaces.Add("money", "http://www.cohowinery.com")
' Creates a Book.
Dim myBook As New Book()
myBook.TITLE = "A Book Title"
Dim myPrice As New Price()
myPrice.price = CDec(9.95)
myPrice.currency = "US Dollar"
myBook.PRICE = myPrice
Dim myBooks As New Books()
myBooks.Book = myBook
mySerializer.Serialize(myWriter, myBooks, myNamespaces)
myWriter.Close()
End Sub
End Module
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
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
public class Program
{
public static void Main()
{
SerializeObject("XmlNamespaces.xml");
}
public static void SerializeObject(string filename)
{
var mySerializer = new XmlSerializer(typeof(Books));
// Writing a file requires a TextWriter.
TextWriter myWriter = new StreamWriter(filename);
// Creates an XmlSerializerNamespaces and adds two
// prefix-namespace pairs.
var myNamespaces = new XmlSerializerNamespaces();
myNamespaces.Add("books", "http://www.cpandl.com");
myNamespaces.Add("money", "http://www.cohowinery.com");
// Creates a Book.
var myBook = new Book();
myBook.TITLE = "A Book Title";
var myPrice = new Price();
myPrice.price = (decimal) 9.95;
myPrice.currency = "US Dollar";
myBook.PRICE = myPrice;
var myBooks = new Books();
myBooks.Book = myBook;
mySerializer.Serialize(myWriter, myBooks, myNamespaces);
myWriter.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;
}
- XmlSerializer
- Herramienta de definición de esquema XML y serialización XML
- Introducción a la serialización XML
- XmlSerializer (clase)
- Atributos que controlan la serialización XML
- Cómo: Especificar un nombre de elemento alternativo para una secuencia XML
- Cómo: Serialización de un objeto
- Cómo: Deserialización de un objeto
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: