문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

방법: XML 요소 및 XML 특성 이름 한정

코드 예제

XmlSerializerNamespaces 클래스의 인스턴스에 의해 포함된 XML 네임스페이스는 "Namespaces in XML"이라는 World Wide Web 컨소시엄(www.w3.org) 사양을 따라야 합니다.

XML 네임스페이스는 XML 문서에서 XML 요소 및 XML 특성의 이름을 정규화하는 메서드를 제공합니다. 정규화된 이름은 콜론으로 구분된 접두사와 로컬 이름으로 이루어집니다. 접두사는 자리 표시자로만 사용되며 네임스페이스를 지정하는 URI에 매핑됩니다. 보편적으로 관리되는 URI 네임스페이스와 로컬 이름을 조합하면 보편적으로 고유한 이름이 만들어집니다.

XmlSerializerNamespaces 의 인스턴스를 만들고 네임스페이스 쌍을 개체에 추가하면 XML 문서에 사용되는 접두사를 지정할 수 있습니다.

XML 문서에서 정규화된 이름을 만들려면

  1. XmlSerializerNamespaces 클래스의 인스턴스를 만듭니다.

  2. 모든 접두사와 네임스페이스 쌍을 XmlSerializerNamespaces에 추가합니다.

  3. 적절한 System.Xml.Serialization 특성을 XmlSerializer가 XML 문서로 serialize할 각 멤버나 클래스에 적용합니다.

    사용할 수 있는 특성은 XmlAnyElementAttribute, XmlArrayAttribute, XmlArrayItemAttribute, XmlAttributeAttribute, XmlElementAttribute, XmlRootAttributeXmlTypeAttribute입니다.

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

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

다음 예제에서는 XmlSerializerNamespaces를 만들고 두 개의 접두사와 네임스페이스 쌍을 개체에 추가합니다. 코드에서는 Books 클래스의 인스턴스를 serialize하는 데 사용되는 XmlSerializer를 만듭니다. 코드는 XmlSerializerNamespaces를 사용하여 Serialize 메서드를 호출하여 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 mySerializer = new XmlSerializer(typeof(Books));
        // Writing a file requires a TextWriter.
        TextWriter myWriter = new StreamWriter(filename);

        // Creates an XmlSerializerNamespaces and adds two
        // prefix-namespace pairs.
        XmlSerializerNamespaces myNamespaces = 
        new XmlSerializerNamespaces();
        myNamespaces.Add("books", "http://www.cpandl.com");
        myNamespaces.Add("money", "http://www.cohowinery.com");

        // Creates a Book.
        Book myBook = new Book();
        myBook.TITLE = "A Book Title";
        Price myPrice = new Price();
        myPrice.price = (decimal) 9.95;
        myPrice.currency = "US Dollar";
        myBook.PRICE = myPrice;
        Books myBooks = new Books();
        myBooks.Book = myBook;
        mySerializer.Serialize(myWriter,myBooks,myNamespaces);
        myWriter.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;
}

커뮤니티 추가 항목

표시: