XmlSerializerNamespaces クラス
アセンブリ: System.Xml (system.xml.dll 内)


XmlSerializerNamespaces には、XML 名前空間のコレクションと、それぞれの名前空間に関連付けられたプリフィックスが格納されています。XmlSerializer は、この XmlSerializerNamespaces クラスのインスタンスを使用して、XML ドキュメントで修飾名を作成します。
XmlSerializerNamespaces に格納される XML 名前空間は、W3C (www.w3.org) による仕様『Namespaces in XML』に準拠する必要があります。
XML 名前空間を使用すると、XML ドキュメント内の XML 要素と属性の名前を修飾できます。修飾名は、プリフィックスとローカル名をコロンで区切った構成になっています。プリフィックスはプレースホルダとしてだけ機能し、名前空間を指定する URI に割り当てられます。汎用的に管理された URI 名前空間とローカル名を組み合わせることにより、生成される名前は、必ず汎用的に一意となります。
XML ドキュメントで修飾名を作成するには、次の手順を実行します。
-
XmlArrayAttribute
-
XmlArrayItemAttribute
-
XmlAttributeAttribute
-
XmlElementAttribute
-
XmlRootAttribute
-
XmlTypeAttribute
-
各属性の Namespace プロパティを、XmlSerializerNamespaces オブジェクトの名前空間値の 1 つに設定します。
-
XmlSerializerNamespaces を XmlSerializer の Serialize メソッドに渡します。
![]() |
---|
空の名前空間とプレフィックスのペアの作成はサポートされません。つまり、次のコードを使ってペアを作成することはできません。 |

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.Xml.Serialization.XmlSerializerNamespaces


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- XmlSerializerNamespaces クラスのページへのリンク