XmlSerializerNamespaces 類別

定義

將 XML 命名空間 (Namespace) 和 XmlSerializer 用來產生限定名稱的前置詞包含在 XML 文件執行個體中。

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

範例

下列範例會建立 物件,並在其中新增兩個 XmlSerializerNamespaces 前置詞和命名空間組。 然後,此範例會將 傳遞 XmlSerializerNamespacesSerialize 方法,以將 物件序列化 Books 為 XML 檔。 XmlSerializerNamespaces使用 物件時,方法會 Serialize 使用兩個命名空間之一來限定每個 XML 元素和屬性。

#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

備註

XmlSerializerNamespaces包含 XML 命名空間的集合,每個命名空間都有相關聯的前置詞。 會 XmlSerializer 使用 類別的實例, XmlSerializerNamespaces 在 XML 檔中建立限定的名稱。

所包含的 XmlSerializerNamespaces XML 命名空間必須符合 XML 中名為 Namespaces 的W3C 規格。

XML 命名空間提供一種方式來限定 XML 檔中 XML 專案和屬性的名稱。 限定名稱 (Qualified Name) 是由前置詞和本機名稱所組成,並以半形冒號 (:) 隔開。 前置詞的作用只是個替代符號 (Placeholder),它會對應到指定命名空間的 URI。 通用受控 URI 命名空間和本機名稱的組合會產生保證為通用唯一的名稱。

若要在 XML 檔中建立限定名稱:

  1. 建立 XmlSerializerNamespaces 實例。

  2. Add 您想要實例的每個前置詞和命名空間配對。

  3. 將 appropriate.NET 屬性套用至序列化至 XML 檔的每個屬性或類別 XmlSerializer 。 可用的屬性如下:

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

  2. 傳遞 XmlSerializerNamespacesSerializeXmlSerializer 方法。

注意

不支援建立空的命名空間和前置片語。 也就是說,您無法使用下列程式碼建立配對:

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

建構函式

XmlSerializerNamespaces()

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

XmlSerializerNamespaces(XmlQualifiedName[])

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

XmlSerializerNamespaces(XmlSerializerNamespaces)

使用包含前置詞和命名空間配對集合之 XmlSerializerNamespaces 的指定執行個體,初始化 XmlSerializerNamespaces 類別的新執行個體。

屬性

Count

取得集合中前置詞和命名空間配對的數目。

方法

Add(String, String)

將前置詞和命名空間配對加入 XmlSerializerNamespaces 物件。

Equals(Object)

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

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToArray()

取得 XmlSerializerNamespaces 物件中前置詞和命名空間配對的陣列。

ToString()

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

(繼承來源 Object)

適用於

另請參閱