XmlAttributes.Xmlns 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定數值,指定當物件包含傳回已覆寫 XmlSerializerNamespaces 物件的成員時,是否要保留所有的命名空間宣告。
public:
property bool Xmlns { bool get(); void set(bool value); };
public bool Xmlns { get; set; }
member this.Xmlns : bool with get, set
Public Property Xmlns As Boolean
屬性值
如果應該保留命名空間宣告,則為 true
,否則為 false
。
範例
下列範例包含名為 的 Student
類別。 類別包含名為 的成員,該成員會 XmlSerializerNamespaces 傳 MyNamespaces
回 物件。 此範例會 XmlAttributes 建立物件,該物件會新增至 類別的 XmlAttributeOverrides 實例。 屬性 Xmlns 設定為 true
,指示 XmlSerializer 在覆寫物件的序列化 Student
時保留命名空間。
#using <System.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Serialization;
public ref class Student
{
public:
[XmlAttributeAttribute]
String^ Name;
[XmlNamespaceDeclarationsAttribute]
XmlSerializerNamespaces^ myNamespaces;
};
void SerializeStudent( String^ filename );
void DeserializeStudent( String^ filename );
int main()
{
SerializeStudent( "Student.xml" );
DeserializeStudent( "Student.xml" );
}
void SerializeStudent( String^ filename )
{
XmlAttributes^ atts = gcnew XmlAttributes;
// Set to true to preserve namespaces,
// or false to ignore them.
atts->Xmlns = true;
XmlAttributeOverrides^ xover = gcnew XmlAttributeOverrides;
// Add the XmlAttributes and specify the name of the element
// containing namespaces.
xover->Add( Student::typeid, "myNamespaces", atts );
// Create the XmlSerializer using the
// XmlAttributeOverrides object.
XmlSerializer^ xser = gcnew XmlSerializer( Student::typeid,xover );
Student^ myStudent = gcnew Student;
XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces;
ns->Add( "myns1", "http://www.cpandl.com" );
ns->Add( "myns2", "http://www.cohowinery.com" );
myStudent->myNamespaces = ns;
myStudent->Name = "Student1";
FileStream^ fs = gcnew FileStream( filename,FileMode::Create );
xser->Serialize( fs, myStudent );
fs->Close();
}
void DeserializeStudent( String^ filename )
{
XmlAttributes^ atts = gcnew XmlAttributes;
// Set to true to preserve namespaces, or false to ignore them.
atts->Xmlns = true;
XmlAttributeOverrides^ xover = gcnew XmlAttributeOverrides;
// Add the XmlAttributes and specify the name of the
// element containing namespaces.
xover->Add( Student::typeid, "myNamespaces", atts );
// Create the XmlSerializer using the
// XmlAttributeOverrides object.
XmlSerializer^ xser = gcnew XmlSerializer( Student::typeid,xover );
FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
Student^ myStudent;
myStudent = safe_cast<Student^>(xser->Deserialize( fs ));
fs->Close();
// Use the ToArray method to get an array of
// XmlQualifiedName objects.
array<XmlQualifiedName^>^qNames = myStudent->myNamespaces->ToArray();
for ( int i = 0; i < qNames->Length; i++ )
{
Console::WriteLine( "{0}:{1}", qNames[ i ]->Name, qNames[ i ]->Namespace );
}
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
public class Student
{
[XmlAttributeAttribute]
public string Name;
[XmlNamespaceDeclarationsAttribute]
public XmlSerializerNamespaces myNamespaces;
}
public class Run
{
public static void Main()
{
Run test = new Run();
test.SerializeStudent("Student.xml");
test.DeserializeStudent("Student.xml");
}
public void SerializeStudent(string filename)
{
XmlAttributes atts = new XmlAttributes();
// Set to true to preserve namespaces,
// or false to ignore them.
atts.Xmlns=true;
XmlAttributeOverrides xover = new XmlAttributeOverrides();
// Add the XmlAttributes and specify the name of the element
// containing namespaces.
xover.Add(typeof(Student),"myNamespaces", atts);
// Create the XmlSerializer using the
// XmlAttributeOverrides object.
XmlSerializer xser = new XmlSerializer(typeof (Student),xover);
Student myStudent = new Student();
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("myns1", "http://www.cpandl.com");
ns.Add("myns2", "http://www.cohowinery.com");
myStudent.myNamespaces= ns;
myStudent.Name= "Student1";
FileStream fs = new FileStream(filename,FileMode.Create);
xser.Serialize(fs,myStudent);
fs.Close();
}
private void DeserializeStudent(string filename)
{
XmlAttributes atts = new XmlAttributes();
// Set to true to preserve namespaces, or false to ignore them.
atts.Xmlns=true;
XmlAttributeOverrides xover = new XmlAttributeOverrides();
// Add the XmlAttributes and specify the name of the
// element containing namespaces.
xover.Add(typeof(Student),"myNamespaces", atts);
// Create the XmlSerializer using the
// XmlAttributeOverrides object.
XmlSerializer xser =
new XmlSerializer(typeof (Student),xover);
FileStream fs = new FileStream(filename,FileMode.Open);
Student myStudent;
myStudent= (Student) xser.Deserialize(fs);
fs.Close();
// Use the ToArray method to get an array of
// XmlQualifiedName objects.
XmlQualifiedName[] qNames= myStudent.myNamespaces.ToArray();
for(int i = 0; i < qNames.Length;i++)
{
Console.WriteLine("{0}:{1}",
qNames[i].Name,qNames[i].Namespace);
}
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
Public Class Student
<XmlAttributeAttribute()> _
Public Name As String
<XmlNamespaceDeclarationsAttribute()> _
Public myNamespaces As XmlSerializerNamespaces
End Class
Public Class Run
Public Shared Sub Main()
Dim test As New Run()
test.SerializeStudent("Student_v.xml")
test.DeserializeStudent("Student_v.xml")
End Sub
Public Sub SerializeStudent(filename As String)
Dim atts As New XmlAttributes()
' Set to true to preserve namespaces, or false to ignore them.
atts.Xmlns = True
Dim xover As New XmlAttributeOverrides()
' Add the XmlAttributes and specify the name of
' the element containing namespaces.
xover.Add(GetType(Student), "myNamespaces", atts)
' Create the XmlSerializer using the
' XmlAttributeOverrides object.
Dim xser As New XmlSerializer(GetType(Student), xover)
Dim myStudent As New Student()
Dim ns As New XmlSerializerNamespaces()
ns.Add("myns1", "http://www.cpandl.com")
ns.Add("myns2", "http://www.cohowinery.com")
myStudent.myNamespaces = ns
myStudent.Name = "Student1"
Dim fs As New FileStream(filename, FileMode.Create)
xser.Serialize(fs, myStudent)
fs.Close()
End Sub
Private Sub DeserializeStudent(filename As String)
Dim atts As New XmlAttributes()
' Set to true to preserve namespaces, or false to ignore them.
atts.Xmlns = True
Dim xover As New XmlAttributeOverrides()
' Add the XmlAttributes and specify the name
' of the element containing namespaces.
xover.Add(GetType(Student), "myNamespaces", atts)
' Create the XmlSerializer using the
' XmlAttributeOverrides object.
Dim xser As New XmlSerializer(GetType(Student), xover)
Dim fs As New FileStream(filename, FileMode.Open)
Dim myStudent As Student
myStudent = CType(xser.Deserialize(fs), Student)
fs.Close()
' Use the ToArray method to get an array
' of XmlQualifiedName objects.
Dim qNames As XmlQualifiedName() = _
myStudent.myNamespaces.ToArray()
Dim i As Integer
For i = 0 To qNames.Length - 1
Console.WriteLine("{0}:{1}", _
qNames(i).Name, qNames(i).Namespace)
Next i
End Sub
End Class