XmlSerializerNamespaces 类
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
包含 XmlSerializer 用于在 XML 文档实例中生成限定名的 XML 命名空间和前缀。
public ref class XmlSerializerNamespaces
public class XmlSerializerNamespaces
type XmlSerializerNamespaces = class
Public Class XmlSerializerNamespaces
- 继承
-
XmlSerializerNamespaces
以下示例创建一个 XmlSerializerNamespaces 对象,并为其添加两个前缀和命名空间对。 然后,该示例将 传递给 XmlSerializerNamespacesSerialize 方法,该方法将 Books
对象序列化为 XML 文档。
XmlSerializerNamespaces使用 对象,Serialize方法使用两个命名空间之一来限定每个 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 文档中创建限定名称。
包含的 XmlSerializerNamespaces XML 命名空间必须符合名为 XML 中命名空间的 W3C 规范。
XML 命名空间提供了一种限定 XML 文档中 XML 元素和属性的名称的方法。 限定名由前缀和本地名称组成,两者之间用冒号分隔。 前缀仅用作占位符;它将映射到用于指定命名空间的 URI。 通用管理的 URI 命名空间和本地名称的组合会生成保证通用唯一的名称。
在 XML 文档中创建限定名称:
Add 需要实例的每个前缀和命名空间对。
将 appropriate.NET 属性应用于 序列化为 XML 文档的每个属性或类 XmlSerializer 。 可用属性包括:
将
Namespace
每个属性的 属性设置为 对象中的命名空间值 XmlSerializerNamespaces 之一。将 XmlSerializerNamespaces 传递到 Serialize 的 XmlSerializer 方法。
备注
不支持创建空命名空间和前缀对。 也就是说,不能使用以下代码创建对:
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
Dim ns As XmlSerializerNamespaces ns = New XmlSerializerNamespaces()
ns.Add("", "")
Xml |
初始化 XmlSerializerNamespaces 类的新实例。 |
Xml |
初始化 XmlSerializerNamespaces 类的新实例。 |
Xml |
使用包含前缀和命名空间对集合的 |
Count |
获取集合中前缀和命名空间对的数目。 |
Add(String, String) |
将前缀和命名空间对添加到 XmlSerializerNamespaces 对象。 |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
Get |
作为默认哈希函数。 (继承自 Object) |
Get |
获取当前实例的 Type。 (继承自 Object) |
Memberwise |
创建当前 Object 的浅表副本。 (继承自 Object) |
To |
获取 XmlSerializerNamespaces 对象中前缀和命名空间对的数组。 |
To |
返回表示当前对象的字符串。 (继承自 Object) |
产品 | 版本 |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
UWP | 10.0 |