XmlSerializerNamespacesとは? わかりやすく解説

XmlSerializerNamespaces クラス

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

名前空間: System.Xml.Serialization
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

Public Class XmlSerializerNamespaces
Dim instance As XmlSerializerNamespaces
public class XmlSerializerNamespaces
public ref class XmlSerializerNamespaces
public class XmlSerializerNamespaces
public class XmlSerializerNamespaces
解説解説

XmlSerializerNamespaces には、XML 名前空間のコレクションと、それぞれの名前空間に関連付けられたプリフィックスが格納されています。XmlSerializer は、この XmlSerializerNamespaces クラスのインスタンスを使用して、XML ドキュメントで修飾名を作成します。

XmlSerializerNamespaces に格納される XML 名前空間は、W3C (www.w3.org) による仕様『Namespaces in XML』に準拠する必要があります。

XML 名前空間を使用すると、XML ドキュメント内の XML 要素と属性の名前を修飾できます。修飾名は、プリフィックスとローカル名をコロンで区切った構成になっています。プリフィックスはプレースホルダとしてだけ機能し、名前空間を指定する URI に割り当てられます。汎用的に管理された URI 名前空間とローカル名を組み合わせることにより、生成される名前は、必ず汎用的に一意となります。

XML ドキュメントで修飾名を作成するには、次の手順を実行します。

  1. XmlSerializerNamespaces インスタンスを作成します。

  2. Add メソッドを使用して、必要なプリフィックスと名前空間の各ペアをこのインスタンスに追加します。

  3. XmlSerializer が XML ドキュメントにシリアル化する各プロパティまたはクラスに、適切な .NET 属性を適用します。使用できる属性を次に示します。

  • XmlArrayAttribute

  • XmlArrayItemAttribute

  • XmlAttributeAttribute

  • XmlElementAttribute

  • XmlRootAttribute

  • XmlTypeAttribute

  1. 各属性の Namespace プロパティを、XmlSerializerNamespaces オブジェクトの名前空間値の 1 つに設定します。

  2. XmlSerializerNamespaces を XmlSerializer の Serialize メソッドに渡します。

メモメモ

空の名前空間とプレフィックスのペアの作成はサポートされません。つまり、次のコードを使ってペアを作成することはできません。

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

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

Imports System
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

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;
}

#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();
}
import System.*;
import System.IO.*;
import System.Xml.*;
import System.Xml.Serialization.*;

public class Run
{
    public static void main(String[]
 args)
    {
        Run test = new Run();
        test.SerializeObject("XmlNamespaces.xml");
    } //main

    public void SerializeObject(String filename)
    {
        XmlSerializer s = new XmlSerializer(Books.class.ToType());

        // 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 = Convert.ToDecimal(9.95);
        p.currency = "US Dollar";
        
        b.price = p;

        Books bks = new Books();
        bks.book = b;

        s.Serialize(t, bks, ns);
        t.Close();
    } //SerializeObject
} //Run

public class Books
{
    /** @attribute XmlElement(Namespace = "http://www.cohowinery.com")
     */
    public Book book;
} //Books

/** @attribute XmlType(Namespace = "http://www.cpandl.com")
 */
public class Book
{
    /** @attribute XmlElement(Namespace = "http://www.cpandl.com")
     */
    public String title;
    /** @attribute XmlElement(Namespace = "http://www.cohowinery.com")
     */
    public Price price;
} //Book

public class Price
{
    /** @attribute XmlAttribute(Namespace = "http://www.cpandl.com")
     */
    public String currency;
    /** @attribute XmlElement(Namespace = "http://www.cohowinery.com")
     */
    public System.Decimal price;
} //Price
継承階層継承階層
System.Object
  System.Xml.Serialization.XmlSerializerNamespaces
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

XmlSerializerNamespaces コンストラクタ ()

XmlSerializerNamespaces クラスの新しいインスタンスを初期化します。

名前空間: System.Xml.Serialization
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

Dim instance As New XmlSerializerNamespaces
public XmlSerializerNamespaces ()
public:
XmlSerializerNamespaces ()
public XmlSerializerNamespaces ()
public function XmlSerializerNamespaces ()
使用例使用例

XmlSerializerNamespaces クラスのインスタンスを作成し、そのオブジェクトにプリフィックスと名前空間のペアを追加する例を次に示します。

Private Sub CreateBook(filename As
 String)
   Try
      ' Create instance of XmlSerializerNamespaces and add the namespaces.
      Dim myNameSpaces As New
 XmlSerializerNamespaces()
      myNameSpaces.Add("BookName", "http://www.cpandl.com")

      ' Create instance of XmlSerializer and specify the type of object;
      ' to be serialized.
      Dim mySerializerObject As New
 XmlSerializer(GetType(MyBook))

      Dim myWriter = New StreamWriter(filename)
      ' Create object to be serialized.
      Dim myXMLBook As New
 MyBook()

      myXMLBook.Author = "XMLAuthor"
      myXMLBook.BookName = "DIG THE XML"
      myXMLBook.Description = "This is a XML Book"

      Dim myBookPrice As New
 MyPriceClass()
      myBookPrice.Price = CDec(45.89)
      myBookPrice.Units = "$"
      myXMLBook.BookPrice = myBookPrice

      ' Serialize the object.
      mySerializerObject.Serialize(myWriter, myXMLBook, myNameSpaces)
      myWriter.Close()
   Catch e As Exception
      Console.WriteLine("Exception :" & e.Message
 & "Occured")
   End Try
End Sub
private void CreateBook(string
 filename)
{
   try
   {
      // Create instance of XmlSerializerNamespaces and add the namespaces.
      XmlSerializerNamespaces myNameSpaces = new XmlSerializerNamespaces();
      myNameSpaces.Add("BookName", "http://www.cpandl.com");
   
      // Create instance of XmlSerializer and specify the type of object
      // to be serialized.
      XmlSerializer mySerializerObject = 
         new XmlSerializer(typeof(MyBook));

      TextWriter myWriter = new StreamWriter(filename);
      // Create object to be serialized.
      MyBook myXMLBook = new MyBook();
   
      myXMLBook.Author = "XMLAuthor";
      myXMLBook.BookName = "DIG THE XML";
      myXMLBook.Description = "This is a XML Book";

      MyPriceClass myBookPrice = new MyPriceClass();
      myBookPrice.Price = (decimal) 45.89;
      myBookPrice.Units = "$";
      myXMLBook.BookPrice = myBookPrice;

      // Serialize the object.
      mySerializerObject.Serialize(myWriter, myXMLBook,myNameSpaces);
      myWriter.Close();
   }
   catch(Exception e)
   {
      Console.WriteLine("Exception :" + e.Message + "Occured");
   }
}
public:
   void CreateBook( String^ filename )
   {
      try
      {
         // Create instance of XmlSerializerNamespaces and add the namespaces.
         XmlSerializerNamespaces^ myNameSpaces = gcnew XmlSerializerNamespaces;
         myNameSpaces->Add( "BookName", "http://www.cpandl.com"
 );
         
         // Create instance of XmlSerializer and specify the type of
 object
         // to be serialized.
         XmlSerializer^ mySerializerObject =
            gcnew XmlSerializer( MyBook::typeid );

         TextWriter^ myWriter = gcnew StreamWriter( filename );
         // Create object to be serialized.
         MyBook^ myXMLBook = gcnew MyBook;

         myXMLBook->Author = "XMLAuthor";
         myXMLBook->BookName = "DIG THE XML";
         myXMLBook->Description = "This is a XML Book";

         MyPriceClass^ myBookPrice = gcnew MyPriceClass;
         myBookPrice->Price = (Decimal)45.89;
         myBookPrice->Units = "$";
         myXMLBook->BookPrice = myBookPrice;
         
         // Serialize the object.
         mySerializerObject->Serialize( myWriter, myXMLBook, myNameSpaces );
         myWriter->Close();
      }
      catch ( Exception^ e ) 
      {
         Console::WriteLine( "Exception: {0} occured", e->Message );
      }
   }
private void CreateBook(String fileName)
{
    try {
        // Create instance of XmlSerializerNamespaces and add the namespaces.
        XmlSerializerNamespaces myNameSpaces = new XmlSerializerNamespaces();
        myNameSpaces.Add("bookName", "http://www.cpandl.com");
        // Create instance of XmlSerializer and specify the type of
 object
        // to be serialized.
        XmlSerializer mySerializerObject = new XmlSerializer(
            MyBook.class.ToType());

        TextWriter myWriter = new StreamWriter(fileName);
        // Create object to be serialized.
        MyBook myXMLBook = new MyBook();

        myXMLBook.author = "XMLauthor";
        myXMLBook.bookName = "DIG THE XML";
        myXMLBook.description = "This is a XML Book";

        MyPriceClass mybookPrice = new MyPriceClass();
        mybookPrice.price = System.Convert.ToDecimal(45.89);
        mybookPrice.units = "$";
        myXMLBook.bookPrice = mybookPrice;
        // Serialize the object.
        mySerializerObject.Serialize(myWriter, myXMLBook, myNameSpaces);
        myWriter.Close();
    }
    catch (System.Exception e) {
        Console.WriteLine("Exception :" + e.get_Message() + "Occured");
    }
} //CreateBook
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
XmlSerializerNamespaces クラス
XmlSerializerNamespaces メンバ
System.Xml.Serialization 名前空間

XmlSerializerNamespaces コンストラクタ (XmlSerializerNamespaces)

プレフィックスと名前空間のペアのコレクションを保持する XmlSerializerNamespaces のインスタンスを指定して、XmlSerializerNamespaces クラスの新しいインスタンスを初期化します。

名前空間: System.Xml.Serialization
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

Public Sub New ( _
    namespaces As XmlSerializerNamespaces _
)
Dim namespaces As XmlSerializerNamespaces

Dim instance As New XmlSerializerNamespaces(namespaces)
public XmlSerializerNamespaces (
    XmlSerializerNamespaces namespaces
)
public:
XmlSerializerNamespaces (
    XmlSerializerNamespaces^ namespaces
)
public XmlSerializerNamespaces (
    XmlSerializerNamespaces namespaces
)
public function XmlSerializerNamespaces (
    namespaces : XmlSerializerNamespaces
)

パラメータ

namespaces

名前空間とプレフィックスのペアを保持する XmlSerializerNamespaces のインスタンス。

使用例使用例

2 つの XmlQualifiedName オブジェクトを作成し、それらのオブジェクトから新しい XmlSerializerNamespaces インスタンスを作成する例を次に示します。

Private Function CreateFromQNames() As
 XmlSerializerNamespaces
    Dim q1 As New XmlQualifiedName("money",
 "http://www.cohowinery.com")
    Dim q2 As New XmlQualifiedName("books",
 "http://www.cpandl.com")
    
    Dim names() As XmlQualifiedName =  {q1,
 q2}
    
    Return New XmlSerializerNamespaces(names)
End Function

private XmlSerializerNamespaces CreateFromQNames()
{
   XmlQualifiedName q1 = 
   new XmlQualifiedName("money", "http://www.cohowinery.com");
        
   XmlQualifiedName q2 = 
   new XmlQualifiedName("books", "http://www.cpandl.com");
        
   XmlQualifiedName[] names = {q1, q2};

   return new XmlSerializerNamespaces(names);
}

private:
   XmlSerializerNamespaces^ CreateFromQNames()
   {
      XmlQualifiedName^ q1 =
         gcnew XmlQualifiedName( "money","http://www.cohowinery.com"
 );

      XmlQualifiedName^ q2 =
         gcnew XmlQualifiedName( "books","http://www.cpandl.com"
 );

      array<XmlQualifiedName^>^ names = { q1, q2 };

      return gcnew XmlSerializerNamespaces( names );
   }
private XmlSerializerNamespaces CreateFromQNames()
{
    XmlQualifiedName q1 =
        new XmlQualifiedName("money", "http://www.cohowinery.com");
    XmlQualifiedName q2 =
        new XmlQualifiedName("books", "http://www.cpandl.com");
    XmlQualifiedName names[] =  { q1, q2 };
    return new XmlSerializerNamespaces(names);
} //CreateFromQNames
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
XmlSerializerNamespaces クラス
XmlSerializerNamespaces メンバ
System.Xml.Serialization 名前空間

XmlSerializerNamespaces コンストラクタ (XmlQualifiedName[])

XmlSerializerNamespaces クラスの新しいインスタンスを初期化します。

名前空間: System.Xml.Serialization
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

Public Sub New ( _
    namespaces As XmlQualifiedName() _
)
Dim namespaces As XmlQualifiedName()

Dim instance As New XmlSerializerNamespaces(namespaces)
public XmlSerializerNamespaces (
    XmlQualifiedName[] namespaces
)
public:
XmlSerializerNamespaces (
    array<XmlQualifiedName^>^ namespaces
)
public XmlSerializerNamespaces (
    XmlQualifiedName[] namespaces
)
public function XmlSerializerNamespaces (
    namespaces : XmlQualifiedName[]
)

パラメータ

namespaces

XmlQualifiedName オブジェクトの配列。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
XmlSerializerNamespaces クラス
XmlSerializerNamespaces メンバ
System.Xml.Serialization 名前空間

XmlSerializerNamespaces コンストラクタ

XmlSerializerNamespaces クラスの新しいインスタンスを初期化します。
オーバーロードの一覧オーバーロードの一覧

名前 説明
XmlSerializerNamespaces () XmlSerializerNamespaces クラスの新しいインスタンスを初期化します。

.NET Compact Framework によってサポートされています。

XmlSerializerNamespaces (XmlQualifiedName[]) XmlSerializerNamespaces クラスの新しいインスタンスを初期化します。

.NET Compact Framework によってサポートされています。

XmlSerializerNamespaces (XmlSerializerNamespaces) プレフィックスと名前空間のペアのコレクションを保持する XmlSerializerNamespaces のインスタンスを指定して、XmlSerializerNamespaces クラスの新しいインスタンスを初期化します。

.NET Compact Framework によってサポートされています。

参照参照

関連項目

XmlSerializerNamespaces クラス
XmlSerializerNamespaces メンバ
System.Xml.Serialization 名前空間

XmlSerializerNamespaces プロパティ


XmlSerializerNamespaces メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

XmlSerializerNamespaces クラス
System.Xml.Serialization 名前空間
XmlAttributes クラス

その他の技術情報

XML シリアル化の概要
方法 : XML ストリームの代替要素名を指定する
属性を使用した XML シリアル化の制御
XML シリアル化の例
XML スキーマ定義ツール (Xsd.exe)

XmlSerializerNamespaces メンバ

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

XmlSerializerNamespaces データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド XmlSerializerNamespaces オーバーロードされます。 XmlSerializerNamespaces クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

XmlSerializerNamespaces クラス
System.Xml.Serialization 名前空間
XmlAttributes クラス

その他の技術情報

XML シリアル化の概要
方法 : XML ストリームの代替要素名を指定する
属性を使用した XML シリアル化の制御
XML シリアル化の例
XML スキーマ定義ツール (Xsd.exe)



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「XmlSerializerNamespaces」の関連用語

XmlSerializerNamespacesのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



XmlSerializerNamespacesのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS