文件
-
HOW TO:指定 XML 資料流的替代元素名稱 - .NET
瞭解如何建立使用備用元素名稱的 XML 資料流,例如,XML Web Service 需要相同但略有差異的資訊。
-
屬性可用來控制物件的 XML 序列化或從相同的類別集建立其他的 XML 資料流。
XmlSerializerNamespaces 類別執行個體所包含的 XML 命名空間,必須符合稱為 XML 中的命名空間
XML 命名空間提供限定 XML 文件中 XML 項目和 XML 屬性名稱的方法。 限定名稱 (Qualified Name) 是由前置詞和本機名稱所組成,並以半形冒號 (:) 隔開。 前置詞的作用只是個替代符號 (Placeholder),它會對應到指定命名空間的 URI。 通用管理的 URI 命名空間和本機名稱的組合會產生保證是通用唯一的名稱。
藉由建立 XmlSerializerNamespaces
執行個體以及將命名空間配對加入物件中,您可指定 XML 文件使用的前置詞。
建立 XmlSerializerNamespaces
類別的執行個體。
加入所有前置詞與命名空間配對至 XmlSerializerNamespaces
。
套用適當的 System.Xml.Serialization
屬性至 XmlSerializer 將要序列化至 XML 文件的每個成員或類別。
可用的屬性為:XmlAnyElementAttribute、XmlArrayAttribute、XmlArrayItemAttribute、XmlAttributeAttribute、XmlElementAttribute、XmlRootAttribute 與 XmlTypeAttribute。
將每個屬性 (Attribute) 的 Namespace
屬性 (Property) 設定為 XmlSerializerNamespaces
的其中一個命名空間值。
傳遞 XmlSerializerNamespaces
至 Serialize
的 XmlSerializer
方法。
下列範例建立 XmlSerializerNamespaces
,並在物件加入兩個前置詞和命名空間配對。 程式碼建立用來系列化 XmlSerializer
類別執行個體的 Books
。 程式碼以 Serialize
XmlSerializerNamespaces
呼叫 方法,讓 XML 能包含有前置詞的命名空間。
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
Public Module Program
Public Sub Main()
SerializeObject("XmlNamespaces.xml")
End Sub
Public Sub SerializeObject(filename As String)
Dim mySerializer As New XmlSerializer(GetType(Books))
' Writing a file requires a TextWriter.
Dim myWriter As New StreamWriter(filename)
' Creates an XmlSerializerNamespaces and adds two
' prefix-namespace pairs.
Dim myNamespaces As New XmlSerializerNamespaces()
myNamespaces.Add("books", "http://www.cpandl.com")
myNamespaces.Add("money", "http://www.cohowinery.com")
' Creates a Book.
Dim myBook As New Book()
myBook.TITLE = "A Book Title"
Dim myPrice As New Price()
myPrice.price = CDec(9.95)
myPrice.currency = "US Dollar"
myBook.PRICE = myPrice
Dim myBooks As New Books()
myBooks.Book = myBook
mySerializer.Serialize(myWriter, myBooks, myNamespaces)
myWriter.Close()
End Sub
End Module
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
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
public class Program
{
public static void Main()
{
SerializeObject("XmlNamespaces.xml");
}
public static void SerializeObject(string filename)
{
var 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.
var myNamespaces = new XmlSerializerNamespaces();
myNamespaces.Add("books", "http://www.cpandl.com");
myNamespaces.Add("money", "http://www.cohowinery.com");
// Creates a Book.
var myBook = new Book();
myBook.TITLE = "A Book Title";
var myPrice = new Price();
myPrice.price = (decimal) 9.95;
myPrice.currency = "US Dollar";
myBook.PRICE = myPrice;
var 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;
}
public class Price
{
[XmlAttribute(Namespace = "http://www.cpandl.com")]
public string currency;
[XmlElement(Namespace = "http://www.cohowinery.com")]
public decimal price;
}
文件
HOW TO:指定 XML 資料流的替代元素名稱 - .NET
瞭解如何建立使用備用元素名稱的 XML 資料流,例如,XML Web Service 需要相同但略有差異的資訊。
屬性可用來控制物件的 XML 序列化或從相同的類別集建立其他的 XML 資料流。
訓練
模組
瞭解如何使用 JsonSerializer 類別、JsonSerializerOptions 類別和數據傳輸物件,串行化和還原串行化 JavaScript 物件表示法 (JSON) 字串。