XmlSerializerNamespaces 클래스

정의

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

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

예제

다음 예제에서는 개체를 XmlSerializerNamespaces 만들고 두 개의 접두사 및 네임스페이스 쌍을 추가합니다. 그런 다음 개체를 XmlSerializerNamespacesSerialize XML 문서로 serialize하는 메서드에 전달합니다 Books . 이 메서드는 Serialize 개체를 XmlSerializerNamespaces 사용하여 각 XML 요소와 특성을 두 네임스페이스 중 하나로 한정합니다.

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에 포함된 XmlSerializerNamespaces XML 네임스페이스는 XML의 네임스페이스라는 W3C 사양을 준수해야 합니다.

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

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

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

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

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

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

  2. XmlSerializerNamespaces 메서드에 Serialize 전달합니다 XmlSerializer.

Note

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

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

생성자

Name Description
XmlSerializerNamespaces()

XmlSerializerNamespaces 클래스의 새 인스턴스를 초기화합니다.

XmlSerializerNamespaces(XmlQualifiedName[])

XmlSerializerNamespaces 클래스의 새 인스턴스를 초기화합니다.

XmlSerializerNamespaces(XmlSerializerNamespaces)

접두사 및 네임스페이 XmlSerializerNamespaces 스 쌍의 컬렉션을 포함하는 지정된 인스턴스를 사용하여 클래스의 새 인스턴스 XmlSerializerNamespaces 를 초기화합니다.

속성

Name Description
Count

컬렉션의 접두사 및 네임스페이스 쌍 수를 가져옵니다.

메서드

Name Description
Add(String, String)

개체에 접두사 및 네임스페이스 쌍을 XmlSerializerNamespaces 추가합니다.

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToArray()

개체의 접두사 및 네임스페이스 쌍 배열을 XmlSerializerNamespaces 가져옵니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상

추가 정보