Condividi tramite


XmlSerializerNamespaces Classe

Definizione

Contiene gli spazi dei nomi e i prefissi XML che XmlSerializer usa per generare i nomi completi in un'istanza di un documento XML.

public ref class XmlSerializerNamespaces
public class XmlSerializerNamespaces
type XmlSerializerNamespaces = class
Public Class XmlSerializerNamespaces
Ereditarietà
XmlSerializerNamespaces

Esempio

Nell'esempio seguente viene creato un XmlSerializerNamespaces oggetto e vengono aggiunte due coppie di prefisso e spazio dei nomi. Nell'esempio XmlSerializerNamespaces viene quindi passato al Serialize metodo , che serializza un Books oggetto in un documento XML. Usando l'oggetto XmlSerializerNamespaces , il Serialize metodo qualifica ogni elemento XML e attributo con uno dei due spazi dei nomi.

#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

Commenti

XmlSerializerNamespaces Contiene una raccolta di spazi dei nomi XML, ognuno con un prefisso associato. XmlSerializer utilizza un'istanza della XmlSerializerNamespaces classe per creare nomi qualificati in un documento XML.

Gli spazi dei nomi XML contenuti da XmlSerializerNamespaces devono essere conformi alla specifica W3C denominata Namespaces in XML.

Gli spazi dei nomi XML consentono di qualificare i nomi di elementi e attributi XML nei documenti XML. Un nome completo è composto da un prefisso e da un nome locale, separati dal carattere di due punti. Il prefisso funge soltanto da segnaposto ed è mappato a un URI che specifica uno spazio dei nomi. La combinazione dello spazio dei nomi URI gestito universalmente e del nome locale produce un nome che è garantito essere univoco universalmente.

Per creare nomi qualificati in un documento XML:

  1. Creare un'istanza XmlSerializerNamespaces di .

  2. Add ogni coppia di prefissi e spazi dei nomi che si vuole usare per l'istanza di .

  3. Applicare l'attributo appropriate.NET a ogni proprietà o classe XmlSerializer serializzata in un documento XML. Gli attributi disponibili sono:

  1. Impostare la Namespace proprietà di ogni attributo su uno dei valori dello spazio dei nomi dell'oggetto XmlSerializerNamespaces .

  2. Passare XmlSerializerNamespaces al metodo Serialize di XmlSerializer.

Nota

La creazione di uno spazio dei nomi vuoto e una coppia di prefissi non è supportata. Ciò significa che non è possibile creare una coppia usando il codice seguente:

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

Costruttori

XmlSerializerNamespaces()

Inizializza una nuova istanza della classe XmlSerializerNamespaces.

XmlSerializerNamespaces(XmlQualifiedName[])

Inizializza una nuova istanza della classe XmlSerializerNamespaces.

XmlSerializerNamespaces(XmlSerializerNamespaces)

Inizializza una nuova istanza della classe XmlSerializerNamespaces, utilizzando l'istanza specificata di XmlSerializerNamespaces che contiene l'insieme delle coppie di prefisso e spazio dei nomi.

Proprietà

Count

Ottiene il numero di coppie di prefisso e spazio dei nomi nell'insieme.

Metodi

Add(String, String)

Aggiunge una coppia di prefisso e spazio dei nomi a un oggetto XmlSerializerNamespaces.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToArray()

Ottiene la matrice delle coppie di prefisso e spazio dei nomi in un oggetto XmlSerializerNamespaces.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche