XmlSerializerNamespaces クラス

定義

XmlSerializer が XML ドキュメント インスタンスで修飾名を生成するために使用する XML 名前空間とプレフィックスが格納されています。

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

次の例では、 オブジェクトを XmlSerializerNamespaces 作成し、それに 2 つのプレフィックスと名前空間のペアを追加します。 次に、オブジェクトを XML ドキュメントにSerializeシリアル化Booksする メソッドに を渡XmlSerializerNamespacesします。 メソッドは、 オブジェクトをXmlSerializerNamespacesSerialize使用して、各 XML 要素と属性を 2 つの名前空間のいずれかで修飾します。

#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 要素と属性の名前を修飾する方法を提供します。 修飾名は、プレフィックスとローカル名がコロンで区切られた構成になっています。 プレフィックスはプレースホルダーとしてのみ機能し、名前空間を指定する 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)

適用対象

こちらもご覧ください