|
이 문서는 수동으로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오.
|
번역
원본
|
방법: XML 요소 및 XML 특성 이름 한정
XML 문서에서 정규화된 이름을 만들려면
-
XmlSerializerNamespaces 클래스의 인스턴스를 만듭니다. -
모든 접두사와 네임스페이스 쌍을 XmlSerializerNamespaces에 추가합니다. -
적절한 System.Xml.Serialization 특성을 XmlSerializer가 XML 문서로 serialize할 각 멤버나 클래스에 적용합니다. 사용할 수 있는 특성은 XmlAnyElementAttribute, XmlArrayAttribute, XmlArrayItemAttribute, XmlAttributeAttribute, XmlElementAttribute, XmlRootAttribute 및 XmlTypeAttribute입니다. -
각 특성의 Namespace 속성을 XmlSerializerNamespaces의 네임스페이스 값 중 하나로 설정합니다. -
XmlSerializer 의 Serialize 메서드에 XmlSerializerNamespaces를 전달합니다.
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; }