Udostępnij za pośrednictwem


XmlSerializerNamespaces Klasa

Definicja

Zawiera przestrzenie nazw XML i prefiksy używane XmlSerializer do generowania kwalifikowanych nazw w wystąpieniu dokumentu XML.

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

Przykłady

Poniższy przykład tworzy XmlSerializerNamespaces obiekt i dodaje do niego dwa prefiksy i pary przestrzeni nazw. Następnie przykład przekazuje metodę XmlSerializerNamespacesSerialize do metody , która serializuje Books obiekt do dokumentu XML. XmlSerializerNamespaces Przy użyciu obiektu Serialize metoda kwalifikuje każdy element XML i atrybut z jedną z dwóch przestrzeni nazw.

#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

Uwagi

Zawiera XmlSerializerNamespaces kolekcję przestrzeni nazw XML, z których każda ma skojarzony prefiks. Klasa XmlSerializer używa wystąpienia XmlSerializerNamespaces klasy do tworzenia kwalifikowanych nazw w dokumencie XML.

Przestrzenie nazw XML zawarte przez XmlSerializerNamespaces element muszą być zgodne ze specyfikacją W3C o nazwie Przestrzenie nazw w formacie XML.

Przestrzenie nazw XML umożliwiają kwalifikowanie nazw elementów XML i atrybutów w dokumentach XML. Kwalifikowana nazwa składa się z prefiksu i lokalna nazwa, rozdzielone średnikiem. Prefiks działa tylko jako symbol zastępczy; jest mapowany na identyfikator URI, który określa przestrzeń nazw. Kombinacja uniwersalnego zarządzanego identyfikatora URI i nazwy lokalnej generuje nazwę, która ma gwarancję, że będzie uniwersalnie unikatowa.

Aby utworzyć kwalifikowane nazwy w dokumencie XML:

  1. Utwórz XmlSerializerNamespaces wystąpienie.

  2. Add każdy prefiks i para przestrzeni nazw, które mają być wystąpieniem.

  3. Zastosuj atrybut appropriate.NET do każdej właściwości lub klasy, którą XmlSerializer serializuje do dokumentu XML. Dostępne atrybuty to:

  1. Namespace Ustaw właściwość każdego atrybutu na jedną z wartości przestrzeni nazw z XmlSerializerNamespaces obiektu.

  2. Przekaż XmlSerializerNamespaces do Serialize metody XmlSerializer.

Uwaga

Tworzenie pustej przestrzeni nazw i pary prefiksów nie jest obsługiwane. Oznacza to, że nie można utworzyć pary przy użyciu następującego kodu:

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

Konstruktory

XmlSerializerNamespaces()

Inicjuje nowe wystąpienie klasy XmlSerializerNamespaces.

XmlSerializerNamespaces(XmlQualifiedName[])

Inicjuje nowe wystąpienie klasy XmlSerializerNamespaces.

XmlSerializerNamespaces(XmlSerializerNamespaces)

Inicjuje nowe wystąpienie XmlSerializerNamespaces klasy przy użyciu określonego wystąpienia zawierającego XmlSerializerNamespaces kolekcję par prefiksu i przestrzeni nazw.

Właściwości

Count

Pobiera liczbę par prefiksów i przestrzeni nazw w kolekcji.

Metody

Add(String, String)

Dodaje do obiektu prefiks i parę XmlSerializerNamespaces przestrzeni nazw.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToArray()

Pobiera tablicę par prefiksów i przestrzeni nazw w XmlSerializerNamespaces obiekcie.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Zobacz też