XmlSerializerNamespaces Класс

Определение

Содержит пространства имен XML и префиксы, используемые XmlSerializer для генерирования полных имен в экземпляре документа XML.Contains the XML namespaces and prefixes that the XmlSerializer uses to generate qualified names in an XML-document instance.

public ref class XmlSerializerNamespaces
public class XmlSerializerNamespaces
type XmlSerializerNamespaces = class
Public Class XmlSerializerNamespaces
Наследование
XmlSerializerNamespaces

Примеры

В следующем примере создается объект XmlSerializerNamespaces и в него добавляются две пары префикса и пространства имен.The following example creates an XmlSerializerNamespaces object, and adds two prefix and namespace pairs to it. Затем в примере передается XmlSerializerNamespaces методу Serialize, который сериализует объект Books в XML-документ.The example then passes the XmlSerializerNamespaces to the Serialize method, which serializes a Books object into an XML document. Используя объект XmlSerializerNamespaces, метод Serialize определяет каждый XML-элемент и атрибут с одним из двух пространств имен.Using the XmlSerializerNamespaces object, the Serialize method qualifies each XML element and attribute with one of the two namespaces.

#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, каждый из которых имеет соответствующий префикс.The XmlSerializerNamespaces contains a collection of XML namespaces, each with an associated prefix. XmlSerializer использует экземпляр класса XmlSerializerNamespaces для создания полных имен в XML-документе.The XmlSerializer uses an instance of the XmlSerializerNamespaces class to create qualified names in an XML document.

Пространства имен XML, содержащиеся в XmlSerializerNamespaces, должны соответствовать спецификации W3C, именуемой пространствами имен в XML.XML namespaces contained by the XmlSerializerNamespaces must conform to the W3C specification named Namespaces in XML.

Пространства имен XML предоставляют способ определения имен XML-элементов и атрибутов в XML-документах.XML namespaces provide a way to qualify the names of XML elements and attributes in XML documents. Полное имя состоит из префикса и локального имени, разделяемых двоеточием.A qualified name consists of a prefix and a local name, separated by a colon. Функцией префикса является только указание места заполнения, он сопоставлен URI, определяющим пространство имен.The prefix functions only as a placeholder; it is mapped to a URI that specifies a namespace. Сочетание универсального управляемого пространства имен универсального кода ресурса (URI) и локального имени создает имя, которое гарантированно является универсальным уникальным.The combination of the universally-managed URI namespace and the local name produces a name that is guaranteed to be universally unique.

Создание полных имен в XML-документе:To create qualified names in an XML document:

  1. Создайте экземпляр XmlSerializerNamespaces.Create an XmlSerializerNamespaces instance.

  2. Add каждую пару префиксов и пространств имен, которую вы хотите использовать в экземпляре.Add each prefix and namespace pair that you want to the instance.

  3. Примените атрибут appropriate.NET к каждому свойству или классу, который XmlSerializer сериализует в XML-документ.Apply the appropriate.NET attribute to each property or class that the XmlSerializer serializes into an XML document. Доступны следующие атрибуты:The available attributes are:

  1. Задайте для свойства Namespace каждого атрибута одно из значений пространства имен из объекта XmlSerializerNamespaces.Set the Namespace property of each attribute to one of the namespace values from the XmlSerializerNamespaces object.

  2. Передайте XmlSerializerNamespaces в метод Serialize, принадлежащий XmlSerializer.Pass the XmlSerializerNamespaces to the Serialize method of the XmlSerializer.

Примечание

Создание пустого пространства имен и пары префиксов не поддерживается.The creation of an empty namespace and prefix pair is not supported. Это значит, что нельзя создать пару с помощью следующего кода:That is, you cannot create a pair using the following code:

XmlSerializerNamespaces ns = new XmlSerializerNamespaces();   
ns.Add("", "");  
Dim ns As XmlSerializerNamespaces ns = New XmlSerializerNamespaces()  
ns.Add("", "")  

Конструкторы

XmlSerializerNamespaces()

Инициализирует новый экземпляр класса XmlSerializerNamespaces.Initializes a new instance of the XmlSerializerNamespaces class.

XmlSerializerNamespaces(XmlQualifiedName[])

Инициализирует новый экземпляр класса XmlSerializerNamespaces.Initializes a new instance of the XmlSerializerNamespaces class.

XmlSerializerNamespaces(XmlSerializerNamespaces)

Инициализация нового экземпляра класса XmlSerializerNamespaces с помощью определенного экземпляра XmlSerializerNamespaces, содержащего коллекцию пар префикса и пространства имен.Initializes a new instance of the XmlSerializerNamespaces class, using the specified instance of XmlSerializerNamespaces containing the collection of prefix and namespace pairs.

Свойства

Count

Получает число пар префикса и пространства имен в коллекции.Gets the number of prefix and namespace pairs in the collection.

Методы

Add(String, String)

Добавляет пару префикса и пространства имен объекту XmlSerializerNamespaces.Adds a prefix and namespace pair to an XmlSerializerNamespaces object.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToArray()

Получает массив пар префикса и пространства имен в объекте XmlSerializerNamespaces.Gets the array of prefix and namespace pairs in an XmlSerializerNamespaces object.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Применяется к

Дополнительно