XmlSerializerNamespaces クラス

定義

XmlSerializer が XML ドキュメント インスタンスで修飾名を生成するために使用する XML 名前空間とプレフィックスが格納されています。Contains the XML namespaces and prefixes that the XmlSerializer uses to generate qualified names in an XML-document instance.

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

次の例ではXmlSerializerNamespaces 、オブジェクトを作成し、そのオブジェクトに2つのプレフィックスと名前空間のペアを追加します。The following example creates an XmlSerializerNamespaces object, and adds two prefix and namespace pairs to it. この例では、 XmlSerializerNamespacesSerializeメソッドに渡します。このBooksメソッドは、オブジェクトを XML ドキュメントにシリアル化します。The example then passes the XmlSerializerNamespaces to the Serialize method, which serializes a Books object into an XML document. メソッドはSerialize 、オブジェクトを使用して、各 XML 要素と属性に2つの名前空間のいずれかを限定します。 XmlSerializerNamespacesUsing the XmlSerializerNamespaces object, the Serialize method qualifies each XML element and attribute with one of the two namespaces.

#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 名前空間のコレクションが含まれています。The XmlSerializerNamespaces contains a collection of XML namespaces, each with an associated prefix. XmlSerializerXmlSerializerNamespacesクラスのインスタンスを使用して、XML ドキュメント内に修飾名を作成します。The XmlSerializer uses an instance of the XmlSerializerNamespaces class to create qualified names in an XML document.

に含まれる xml 名前XmlSerializerNamespaces空間は、 xml の名前空間の W3C 仕様に準拠している必要があります。XML namespaces contained by the XmlSerializerNamespaces must conform to the W3C specification named Namespaces in XML.

Xml 名前空間は、xml ドキュメント内の XML 要素と属性の名前を修飾する手段を提供します。XML namespaces provide a way to qualify the names of XML elements and attributes in XML documents. 修飾名は、プレフィックスとローカル名がコロンで区切られた構成になっています。A qualified name consists of a prefix and a local name, separated by a colon. プレフィックスはプレースホルダーとしてのみ機能し、名前空間を指定する URI に割り当てられます。The prefix functions only as a placeholder; it is mapped to a URI that specifies a namespace. 汎用的に管理された URI 名前空間とローカル名の組み合わせによって、一意であることが保証される名前が生成されます。The combination of the universally-managed URI namespace and the local name produces a name that is guaranteed to be universally unique.

XML ドキュメントで修飾名を作成するには、次のようにします。To create qualified names in an XML document:

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

  2. Addインスタンスに必要な各プレフィックスと名前空間のペア。Add each prefix and namespace pair that you want to the instance.

  3. によっXmlSerializerて XML ドキュメントにシリアル化される各プロパティまたはクラスに、appropriate.NET 属性を適用します。Apply the appropriate.NET attribute to each property or class that the XmlSerializer serializes into an XML document. 使用できる属性は次のとおりです。The available attributes are:

  1. 各属性のXmlSerializerNamespacesプロパティを、オブジェクトの名前空間のいずれかの値に設定します。 NamespaceSet the Namespace property of each attribute to one of the namespace values from the XmlSerializerNamespaces object.

  2. XmlSerializerNamespacesSerializeXmlSerializer メソッドに渡します。Pass the XmlSerializerNamespaces to the Serialize method of the XmlSerializer.

注意

空の名前空間とプレフィックスのペアの作成はサポートされていません。The creation of an empty namespace and prefix pair is not supported. つまり、次のコードを使用してペアを作成することはできません。That is, you cannot create a pair using the following code:

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

コンストラクター

XmlSerializerNamespaces()

XmlSerializerNamespaces クラスの新しいインスタンスを初期化します。Initializes a new instance of the XmlSerializerNamespaces class.

XmlSerializerNamespaces(XmlQualifiedName[])

XmlSerializerNamespaces クラスの新しいインスタンスを初期化します。Initializes a new instance of the XmlSerializerNamespaces class.

XmlSerializerNamespaces(XmlSerializerNamespaces)

プレフィックスと名前空間のペアのコレクションを保持する XmlSerializerNamespaces のインスタンスを指定して、XmlSerializerNamespaces クラスの新しいインスタンスを初期化します。Initializes a new instance of the XmlSerializerNamespaces class, using the specified instance of XmlSerializerNamespaces containing the collection of prefix and namespace pairs.

プロパティ

Count

コレクション内のプレフィックスと名前空間のペアの数を取得します。Gets the number of prefix and namespace pairs in the collection.

メソッド

Add(String, String)

XmlSerializerNamespaces オブジェクトにプレフィックスと名前空間のペアを追加します。Adds a prefix and namespace pair to an XmlSerializerNamespaces object.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToArray()

XmlSerializerNamespaces オブジェクト内のプレフィックスと名前空間のペアの配列を取得します。Gets the array of prefix and namespace pairs in an XmlSerializerNamespaces object.

ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)

適用対象

こちらもご覧ください