語言

XmlSerializerNamespaces 類別

定義

包含用於在 XML 文件實例中產生合格名稱的 XML 命名空間與前綴 XmlSerializer 。

public ref class XmlSerializerNamespaces
public class XmlSerializerNamespaces
type XmlSerializerNamespaces = class
Public Class XmlSerializerNamespaces
繼承
XmlSerializerNamespaces

範例

以下範例建立一個 XmlSerializerNamespaces 物件,並在其上加入兩個前綴與命名空間對。 範例接著將 傳遞 XmlSerializerNamespaces 給 Serialize 方法,該方法將物件序列化 Books 為 XML 文件。 利用物件 XmlSerializerNamespaces ,方法 Serialize 會以兩個命名空間中的一個來限定每個 XML 元素和屬性。

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

備註

包含 XmlSerializerNamespaces 一組 XML 命名空間,每個命名空間都有對應的前綴。 它 XmlSerializer 會使用該 XmlSerializerNamespaces 類別的實例在 XML 文件中建立合格名稱。

包含於 的 XmlSerializerNamespaces XML 命名空間必須符合 W3C 規範 中稱為 XML 命名空間的規範。

XML 命名空間提供了一種方法,可以限定 XML 文件中 XML 元素和屬性的名稱。 一個合格名稱由前綴和一個地方名稱組成,中間以冒號分隔。 前綴僅作為佔位符;它被映射到指定命名空間的 URI。 將普遍管理的 URI 命名空間與本地名稱結合,產生一個保證全域唯一無疑的名稱。

要在 XML 文件中建立合格名稱:

  1. 建立一個 XmlSerializerNamespaces 實例。

  2. Add 每個你想要的前綴和命名空間配對。

  3. 對每個屬性或類別套用適當的.NET屬性,XmlSerializer 序列化成 XML 文件。 可用的屬性包括:

  1. 將每個屬性的屬性設 Namespace 為物件中的 XmlSerializerNamespaces 命名空間值之一。

  2. 將 傳遞 XmlSerializerNamespaces 給 SerializeXmlSerializer的方法。

Note

不支援建立空命名空間與前綴對。 也就是說,你無法用以下程式碼建立一對:

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

建構函式

名稱 Description
XmlSerializerNamespaces()

初始化 XmlSerializerNamespaces 類別的新執行個體。

XmlSerializerNamespaces(XmlQualifiedName[])

初始化 XmlSerializerNamespaces 類別的新執行個體。

XmlSerializerNamespaces(XmlSerializerNamespaces)

初始化該類別的新實例 XmlSerializerNamespaces ,使用包含前綴與命名空間對集合的指定實例 XmlSerializerNamespaces 。

屬性

名稱 Description
Count

取得集合中前綴與命名空間對的數量。

方法

名稱 Description
Add(String, String)

為物件加上前綴與命名空間對 XmlSerializerNamespaces 。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetType()

取得目前實例的 Type。

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
ToArray()

取得物件中 XmlSerializerNamespaces 前綴與命名空間對的陣列。

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

適用於

另請參閱