XmlArrayAttribute.Namespace Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
XML öğesinin ad alanını alır veya ayarlar.
public:
property System::String ^ Namespace { System::String ^ get(); void set(System::String ^ value); };
public string Namespace { get; set; }
public string? Namespace { get; set; }
member this.Namespace : string with get, set
Public Property Namespace As String
Özellik Değeri
XML öğesinin ad alanı.
Örnekler
Aşağıdaki örnek, biri kitap başlıkları, diğeri de düzenli aralıklarla başlıklar içeren iki üye içeren sınıfın bir örneğini Library
serileştirir. Her iki XML öğesi de olarak adlandırılmış Titles
olsa da, her biri farklı bir ön ek içerir. Örnek ayrıca, iki öğe adını nitelemek için kullanılan ad alanlarını ve ön ekleri içeren sınıfın bir örneğini XmlSerializerNamespaces içerir.
#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 Book
{
public:
String^ Title;
String^ Author;
String^ ISBN;
[XmlAttributeAttribute]
String^ Publisher;
};
public ref class Periodical
{
private:
String^ title;
public:
property String^ Title
{
String^ get()
{
return title;
}
void set( String^ value )
{
title = value;
}
}
};
public ref class Library
{
private:
array<Book^>^books;
array<Periodical^>^periodicals;
public:
/* 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")]
property array<Book^>^ Books
{
array<Book^>^ get()
{
return books;
}
void set( array<Book^>^value )
{
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")]
property array<Periodical^>^ Periodicals
{
array<Periodical^>^ get()
{
return periodicals;
}
void set( array<Periodical^>^value )
{
periodicals = value;
}
}
};
void WriteBook( String^ filename )
{
// Creates a new XmlSerializer.
XmlSerializer^ mySerializer = gcnew XmlSerializer( Library::typeid );
// Writing the file requires a StreamWriter.
TextWriter^ myStreamWriter = gcnew StreamWriter( filename );
/* Creates an XmlSerializerNamespaces and adds prefixes and
namespaces to be used. */
XmlSerializerNamespaces^ myNamespaces = gcnew 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 = gcnew Library;
// Creates two book objects.
Book^ b1 = gcnew Book;
b1->Title = "My Book Title";
b1->Author = "An Author";
b1->ISBN = "000000000";
b1->Publisher = "Microsoft Press";
Book^ b2 = gcnew 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. */
array<Book^>^myBooks = {b1,b2};
myLibrary->Books = myBooks;
// Creates two Periodical objects.
Periodical^ per1 = gcnew Periodical;
per1->Title = "My Magazine Title";
Periodical^ per2 = gcnew Periodical;
per2->Title = "Another Magazine Title";
// Sets the Periodicals property to the array.
array<Periodical^>^myPeridocials = {per1,per2};
myLibrary->Periodicals = myPeridocials;
// Serializes the myLibrary object.
mySerializer->Serialize( myStreamWriter, myLibrary, myNamespaces );
myStreamWriter->Close();
}
void ReadBook( String^ filename )
{
/* Creates an instance of an XmlSerializer
with the class used to read the document. */
XmlSerializer^ mySerializer = gcnew XmlSerializer( Library::typeid );
// A FileStream is needed to read the file.
FileStream^ myFileStream = gcnew FileStream( filename,FileMode::Open );
Library^ myLibrary = dynamic_cast<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();
}
for ( int i = 0; i < myLibrary->Periodicals->Length; i++ )
{
Console::WriteLine( myLibrary->Periodicals[ i ]->Title );
}
}
int main()
{
WriteBook( "MyLibrary.xml" );
ReadBook( "MyLibrary.xml" );
}
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);
}
}
}
Option Explicit
Option Strict
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
Public Class Library
Private myBooks() As Book
Private myPeriodicals() As Periodical
' 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 Property Books() As Book()
Get
Return myBooks
End Get
Set
myBooks = value
End Set
End Property
' 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 Property Periodicals() As Periodical()
Get
Return myPeriodicals
End Get
Set
myPeriodicals = value
End Set
End Property
End Class
Public Class Book
Public Title As String
Public Author As String
Public ISBN As String
<XmlAttribute()> Public Publisher As String
End Class
Public Class Periodical
Private myTitle As String
Public Property Title() As String
Get
Return myTitle
End Get
Set
myTitle = value
End Set
End Property
End Class
Public Class Run
Public Shared Sub Main()
Dim test As New Run()
test.WriteBook("MyLibrary.xml")
test.ReadBook("MyLibrary.xml")
End Sub
Public Sub WriteBook(ByVal filename As String)
' Creates a new XmlSerializer.
Dim mySerializer As New XmlSerializer(GetType(Library))
' Writing the file requires a StreamWriter.
Dim myStreamWriter As New StreamWriter(filename)
' Creates an XmlSerializerNamespaces and adds prefixes and
' namespaces to be used.
Dim myNamespaces As New XmlSerializerNamespaces()
myNamespaces.Add("books", "http://wwww.cpandl.com")
myNamespaces.Add("magazines", "http://www.proseware.com")
' Create an instance of the class to be serialized.
Dim myLibrary As New Library()
' Creates two book objects.
Dim b1 As New Book()
b1.Title = "My Book Title"
b1.Author = "An Author"
b1.ISBN = "000000000"
b1.Publisher = "Microsoft Press"
Dim b2 As 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.
Dim myBooks As Book() = {b1, b2}
myLibrary.Books = myBooks
' Creates two Periodical objects.
Dim per1 As New Periodical()
per1.Title = "My Magazine Title"
Dim per2 As New Periodical()
per2.Title = "Another Magazine Title"
' Sets the Periodicals property to the array.
Dim myPeriodicals() As Periodical = {per1, per2}
myLibrary.Periodicals = myPeriodicals
' Serializes the myLibrary object.
mySerializer.Serialize(myStreamWriter, myLibrary, myNamespaces)
myStreamWriter.Close()
End Sub
Public Sub ReadBook(ByVal filename As String)
' Creates an instance of an XmlSerializer
' with the class used to read the document.
Dim mySerializer As New XmlSerializer(GetType(Library))
' A FileStream is needed to read the file.
Dim myFileStream As New FileStream(filename, FileMode.Open)
Dim myLibrary As Library = _
CType(mySerializer.Deserialize(myFileStream), Library)
' Reads each book in the array returned by the Books property.
Dim i As Integer
For i = 0 To myLibrary.Books.Length - 1
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()
Next i
' Reads each Periodical returned by the Periodicals property.
For i = 0 To myLibrary.Periodicals.Length - 1
Console.WriteLine(myLibrary.Periodicals(i).Title)
Next i
End Sub
End Class
Açıklamalar
özelliği, Namespace nitelenmiş XML öğesi adları oluşturmanıza olanak tanır. özelliği, Namespace XML'de Ad Alanları başlıklı 1999 World Wide Web Konsorsiyumu belgesinde bulunan xml ad alanı oluşturma kurallarına uygundur.
Bir ön ek ile ilişkilendirilmiş ad alanları oluşturmak için, XML belgesinde kullanılan ad alanlarını ve ön ekleri içeren sınıfın bir örneğini XmlSerializerNamespaces oluşturmanız gerekir. Her XmlArrayAttributeiçin ad alanını ayarladığınızda, içindeki ad alanlarının XmlSerializerNamespacesbiriyle eşleşmesi gerekir. XML oluşturulduğunda, her diziye belirtilen ad alanıyla ilişkilendirilmiş ön ek doğru ön ek eklenir.