Freigeben über


XmlSerializerNamespaces Klasse

Definition

Enthält die XML-Namespaces und Präfixe, die von XmlSerializer zum Generieren vollständiger Namen in einer XML-Dokumentinstanz verwendet werden.

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

Beispiele

Im folgenden Beispiel wird ein XmlSerializerNamespaces -Objekt erstellt und zwei Präfix- und Namespacepaare hinzugefügt. Das Beispiel übergibt dann die XmlSerializerNamespaces an die Serialize -Methode, die ein Books Objekt in ein XML-Dokument serialisiert. Mithilfe des XmlSerializerNamespaces -Objekts qualifiziert die Serialize -Methode jedes XML-Element und -Attribut mit einem der beiden Namespaces.

#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

Hinweise

Enthält XmlSerializerNamespaces eine Auflistung von XML-Namespaces mit jeweils einem zugeordneten Präfix. Verwendet XmlSerializer eine Instanz der XmlSerializerNamespaces -Klasse, um qualifizierte Namen in einem XML-Dokument zu erstellen.

Xml-Namespaces, die in enthalten XmlSerializerNamespaces sind, müssen der W3C-Spezifikation namens Namespaces in XML entsprechen.

XML-Namespaces bieten eine Möglichkeit, die Namen von XML-Elementen und -Attributen in XML-Dokumenten zu qualifizieren. Ein qualifizierter Name besteht aus einem Präfix und einem lokalen Namen, die durch einen Doppelpunkt voneinander getrennt sind. Das Präfix wird nur als Platzhalter verwendet und ist einem URI zugeordnet, der den Namespace angibt. Die Kombination aus dem universell verwalteten URI-Namespace und dem lokalen Namen erzeugt einen Namen, der garantiert universell eindeutig ist.

So erstellen Sie qualifizierte Namen in einem XML-Dokument:

  1. Erstellen Sie eine XmlSerializerNamespaces Instanz.

  2. Add jedes Präfix- und Namespacepaar, das Sie für die Instanz verwenden möchten.

  3. Wenden Sie das attribut appropriate.NET auf jede Eigenschaft oder Klasse an, die in XmlSerializer ein XML-Dokument serialisiert wird. Die verfügbaren Attribute sind:

  1. Legen Sie die Namespace Eigenschaft jedes Attributs auf einen der Namespacewerte aus dem XmlSerializerNamespaces -Objekt fest.

  2. Übergeben Sie XmlSerializerNamespaces an die Serialize-Methode von XmlSerializer.

Hinweis

Die Erstellung eines leeren Namespace- und Präfixpaars wird nicht unterstützt. Das heißt, Sie können kein Paar mit dem folgenden Code erstellen:

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

Konstruktoren

XmlSerializerNamespaces()

Initialisiert eine neue Instanz der XmlSerializerNamespaces-Klasse.

XmlSerializerNamespaces(XmlQualifiedName[])

Initialisiert eine neue Instanz der XmlSerializerNamespaces-Klasse.

XmlSerializerNamespaces(XmlSerializerNamespaces)

Initialisiert eine neue Instanz der XmlSerializerNamespaces-Klasse unter Verwendung der angegebenen Instanz von XmlSerializerNamespaces mit einer Auflistung von Paaren aus Präfix und Namespace.

Eigenschaften

Count

Ruft die Anzahl der Paare aus Präfix und Namespace in der Auflistung ab.

Methoden

Add(String, String)

Fügt einem XmlSerializerNamespaces-Objekt ein Paar aus Präfix und Namespace hinzu.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToArray()

Ruft das Array von Paaren aus Präfix und Namespace von einem XmlSerializerNamespaces-Objekt ab.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen