다음을 통해 공유


XmlSerializerNamespaces 클래스

정의

XmlSerializer가 XML 문서 인스턴스에서 정규화된 이름을 생성하는 데 사용하는 XML 네임스페이스 및 접두사를 포함합니다.

public ref class XmlSerializerNamespaces
public class XmlSerializerNamespaces
type XmlSerializerNamespaces = class
Public Class XmlSerializerNamespaces
상속
XmlSerializerNamespaces

예제

다음 예제에서는 개체를 XmlSerializerNamespaces 만들고 두 개의 접두사 및 네임스페이스 쌍을 추가합니다. 그런 다음 개체를 XmlSerializerNamespaces Serialize XML 문서로 serialize하는 메서드에 전달합니다 Books . 이 메서드는 Serialize 개체를 XmlSerializerNamespaces 사용하여 각 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 문서에서 정규화된 이름을 만듭니다.

포함된 XML 네임스페이스는 XML의 XmlSerializerNamespaces 네임스페이스라는 W3C 사양을 준수해야 합니다.

XML 네임스페이스는 XML 문서에서 XML 요소 및 특성의 이름을 한정하는 방법을 제공합니다. 정규화된 이름은 콜론으로 구분된 접두사와 로컬 이름으로 구성됩니다. 접두사는 자리 표시자로만 기능하여 네임스페이스를 지정하는 URI에 매핑됩니다. 범용으로 관리되는 URI 네임스페이스와 로컬 이름의 조합은 범용으로 고유하도록 보장되는 이름을 생성합니다.

XML 문서에서 정규화된 이름을 만들려면 다음을 수행합니다.

  1. 인스턴스를 만듭니다 XmlSerializerNamespaces .

  2. Add 인스턴스에 사용할 각 접두사 및 네임스페이스 쌍입니다.

  3. xml 문서로 직렬화하는 각 속성 또는 클래스에 XmlSerializer appropriate.NET 특성을 적용합니다. 사용 가능한 특성은 다음과 같습니다.

  1. Namespace 각 특성의 속성을 개체의 네임스페이스 값 XmlSerializerNamespaces 중 하나로 설정합니다.

  2. XmlSerializerNamespacesXmlSerializerSerialize 메서드에 전달합니다.

참고

빈 네임스페이스 및 접두사 쌍 만들기는 지원되지 않습니다. 즉, 다음 코드를 사용하여 쌍을 만들 수 없습니다.

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)

적용 대상

추가 정보