XmlSerializerNamespaces Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Содержит пространства имен XML и префиксы, используемые XmlSerializer для генерирования полных имен в экземпляре документа XML.
public ref class XmlSerializerNamespaces
public class XmlSerializerNamespaces
type XmlSerializerNamespaces = class
Public Class XmlSerializerNamespaces
- Наследование
-
XmlSerializerNamespaces
Примеры
В следующем примере создается XmlSerializerNamespaces объект и добавляется две пары префиксов и пространств имен. Затем в примере передается XmlSerializerNamespaces Serialize метод, который сериализует 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-документе.
Пространства имен XML, содержащиеся в XmlSerializerNamespaces спецификации W3C с именем "Пространства имен" в XML.
Пространства имен XML позволяют квалифицировать имена XML-элементов и атрибутов в XML-документах. Полное имя состоит из префикса и локального имени, разделяемых двоеточием. Функцией префикса является только указание места заполнения, он сопоставлен URI, определяющим пространство имен. Сочетание пространства имен универсально управляемого URI и локального имени создает имя, которое гарантированно будет универсально уникальным.
Чтобы создать полные имена в XML-документе, выполните приведенные далее действия.
XmlSerializerNamespaces Создайте экземпляр.
Add каждая пара префиксов и пространств имен, которые требуется экземпляру.
Примените атрибут appropriate.NET к каждому свойству или классу, сериализуемого XmlSerializer в XML-документ. Доступны следующие атрибуты:
Присвойте свойству
Namespace
каждого атрибута одно из значений пространства имен из XmlSerializerNamespaces объекта.Передайте XmlSerializerNamespaces в метод Serialize, принадлежащий XmlSerializer.
Примечание
Создание пустого пространства имен и пары префиксов не поддерживается. То есть создать пару нельзя с помощью следующего кода:
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
Dim ns As XmlSerializerNamespaces ns = New XmlSerializerNamespaces()
ns.Add("", "")
Конструкторы
XmlSerializerNamespaces() |
Инициализирует новый экземпляр класса XmlSerializerNamespaces. |
XmlSerializerNamespaces(XmlQualifiedName[]) |
Инициализирует новый экземпляр класса XmlSerializerNamespaces. |
XmlSerializerNamespaces(XmlSerializerNamespaces) |
Инициализация нового экземпляра класса XmlSerializerNamespaces с помощью определенного экземпляра |
Свойства
Count |
Получает число пар префикса и пространства имен в коллекции. |
Методы
Add(String, String) |
Добавляет пару префикса и пространства имен объекту XmlSerializerNamespaces. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToArray() |
Получает массив пар префикса и пространства имен в объекте XmlSerializerNamespaces. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |