XmlArrayAttribute.Namespace Proprietà

Definizione

Ottiene o imposta lo spazio dei nomi dell'elemento XML.

public string Namespace { get; set; }
public string? Namespace { get; set; }

Valore della proprietà

String

Lo spazio dei nomi dell'elemento XML.

Esempio

L'esempio seguente serializza un'istanza della Library classe che contiene due membri, uno che contiene titoli del libro e un altro che contiene titoli periodici. Anche se entrambi gli elementi XML sono denominati Titles, ognuno contiene un prefisso diverso. L'esempio include anche un'istanza XmlSerializerNamespaces della classe che contiene gli spazi dei nomi e i prefissi usati per qualificare i due nomi di elemento.

using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

public class Library
   {
   private Book[] books;
   private Periodical [] periodicals;
   /* This element will be qualified with the prefix
   that is associated with the namespace http://wwww.cpandl.com. */
   [XmlArray(ElementName = "Titles",
   Namespace="http://wwww.cpandl.com")]
   public Book[] Books
   {
      get{return books;}
      set{books = value;}
   }
   /* This element will be qualified with the prefix that is
   associated with the namespace http://www.proseware.com. */
   [XmlArray(ElementName = "Titles", Namespace =
   "http://www.proseware.com")]
   public Periodical[] Periodicals
   {
      get{return periodicals;}
      set{periodicals = value;}
   }
}

public class Book
{
   public string Title;
   public string Author;
   public string ISBN;
   [XmlAttribute]
   public string Publisher;
}

public class Periodical
{
   private string title;
   public string Title
   {
      get{return title;}
      set{title = value;}
   }
}

public class Run
{
   public static void Main()
   {
      Run test = new Run();
      test.WriteBook("MyLibrary.xml");
      test.ReadBook("MyLibrary.xml");
   }

   public void WriteBook(string filename)
   {
      // Creates a new XmlSerializer.
      XmlSerializer mySerializer = new XmlSerializer(typeof(Library));
      // Writing the file requires a StreamWriter.
      TextWriter myStreamWriter = new StreamWriter(filename);
      /* Creates an XmlSerializerNamespaces and adds prefixes and
      namespaces to be used. */
      XmlSerializerNamespaces myNamespaces =
      new XmlSerializerNamespaces();
      myNamespaces.Add("books", "http://wwww.cpandl.com");
      myNamespaces.Add("magazines", "http://www.proseware.com");
      // Creates an instance of the class to be serialized.
      Library myLibrary = new Library();

      // Creates two book objects.
      Book b1 = new Book();
      b1.Title = "My Book Title";
      b1.Author = "An Author";
      b1.ISBN = "000000000";
      b1.Publisher = "Microsoft Press";

      Book b2 = new Book();
      b2.Title = "Another Book Title";
      b2.Author = "Another Author";
      b2.ISBN = "00000001";
      b2.Publisher = "Another Press";

      /* Creates an array using the objects, and sets the Books property
      to the array. */
      Book[] myBooks = {b1,b2};
      myLibrary.Books = myBooks;

      // Creates two Periodical objects.
      Periodical per1 = new Periodical();
      per1.Title = "My Magazine Title";
      Periodical per2 = new Periodical();
      per2.Title = "Another Magazine Title";

      // Sets the Periodicals property to the array.
      Periodical[] myPeridocials = {per1, per2};
      myLibrary.Periodicals = myPeridocials;

      // Serializes the myLibrary object.
      mySerializer.Serialize(myStreamWriter, myLibrary, myNamespaces);

       myStreamWriter.Close();
    }

   public void ReadBook(string filename)
   {
      /* Creates an instance of an XmlSerializer
      with the class used to read the document. */
      XmlSerializer mySerializer = new XmlSerializer(typeof(Library));
      // A FileStream is needed to read the file.
      FileStream myFileStream = new FileStream(filename, FileMode.Open);

      Library myLibrary = (Library) mySerializer.Deserialize(myFileStream);

      // Reads each book in the array returned by the Books property.
      for(int i = 0; i< myLibrary.Books.Length;i++)
      {
         Console.WriteLine(myLibrary.Books[i].Title);
         Console.WriteLine(myLibrary.Books[i].Author);
         Console.WriteLine(myLibrary.Books[i].ISBN);
         Console.WriteLine(myLibrary.Books[i].Publisher);
         Console.WriteLine();
      }
      // Reads each Periodical returned by the Periodicals property.
      for(int i = 0; i< myLibrary.Periodicals.Length;i++)
      {
         Console.WriteLine(myLibrary.Periodicals[i].Title);
      }
   }
}

Commenti

La Namespace proprietà consente di creare nomi di elementi XML qualificati. La Namespace proprietà è conforme alle regole per la creazione di uno spazio dei nomi XML, come indicato nel documento World Wide Web Consortium del 1999 denominato Spazi dei nomi in XML.

Per creare spazi dei nomi associati a un prefisso, è necessario creare un'istanza della XmlSerializerNamespaces classe contenente gli spazi dei nomi e i prefissi usati nel documento XML. Quando si imposta lo spazio dei nomi per ogni XmlArrayAttributeoggetto , deve corrispondere a uno degli spazi dei nomi nell'oggetto XmlSerializerNamespaces. Quando viene generato il codice XML, ogni matrice viene preceduta correttamente dal prefisso associato allo spazio dei nomi specificato.

Si applica a

Prodotto Versioni
.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
.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
.NET Standard 2.0, 2.1
UWP 10.0

Vedi anche