XmlNamespaceDeclarationsAttribute Kelas

Definisi

Menentukan bahwa properti target, parameter, nilai pengembalian, atau anggota kelas berisi awalan yang terkait dengan namespace layanan yang digunakan dalam dokumen XML.

public ref class XmlNamespaceDeclarationsAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=false)]
public class XmlNamespaceDeclarationsAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue)]
public class XmlNamespaceDeclarationsAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=false)>]
type XmlNamespaceDeclarationsAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue)>]
type XmlNamespaceDeclarationsAttribute = class
    inherit Attribute
Public Class XmlNamespaceDeclarationsAttribute
Inherits Attribute
Warisan
XmlNamespaceDeclarationsAttribute
Atribut

Keterangan

Atribut XmlNamespaceDeclarationsAttribute hanya dapat diterapkan sekali di kelas ke bidang atau properti yang mengembalikan XmlSerializerNamespaces objek.

memungkinkan XmlNamespaceDeclarationsAttribute Anda menyimpan awalan, dan namespace terkait, yang digunakan dalam dokumen XML. Misalnya, salah satu penggunaan umum atribut adalah menyimpan data XPath, karena didefinisikan oleh dokumen World Wide Web Consortium bernama XML Language (XPath) Versi 1.0. Singkatnya, XPath adalah string yang berisi banyak awalan namespace dan nama lokal, bersama dengan beberapa sintaks lainnya.

Bahasa XPath memungkinkan asosiasi awalan dengan jalur, dan menggunakan awalan dalam dokumen XML. Misalnya, dokumen XML berikut bernama "select" berisi awalan ("cal") yang terkait dengan URI tertentu (http://www.cohowinery.com/calendar/). Elemen berisi atribut bernama "path" yang berisi XPath.

<select xmlns:cal ="http://www.cohowinery.com/calendar/" path="cal:appointments/@startTime" />

Skema untuk ini mungkin:

<element name="select">
   <complexType>
      <simpleContent>
         <attribute name="path" />
      </simpleContent>
   </complexType>
</element>

XmlNamespaceDeclarationsAttributeTanpa , hubungan antara awalan dan namespace hilang.

Untuk mempertahankan hubungan antara awalan dan URI namespace, tambahkan anggota yang mengembalikan objek XmlSerializerNamespaces dan terapkan atribut XmlNamespaceDeclarationsAttribute kepada anggota, seperti yang ditunjukkan dalam kode C# dan Visual Basic berikut:

// C#
public class Select {
  [XmlAttribute] public string path;
  [XmlNamespaceDeclarations] public XmlSerializerNamespaces xmlns;
}
' Visual Basic
Public Class Select
   <XmlAttribute> Public path As String
   <XmlNamespaceDeclarations> Public xmlns As XmlSerializerNamespaces
End Class

Saat diserialisasikan, skema untuk dokumen XML yang dihasilkan berisi elemen definisi Skema XML (XSD) bernama appinfo. Elemen selanjutnya berisi elemen metadata bernama keepNamespaceDeclarations, diatur ke nama anggota yang berisi deklarasi namespace. Fragmen XML berikut menunjukkan skema:

<xs:element name="select">
   <xs:complexType>
      <xs:annotation>
         <xs:appinfo>
          <keepNamespaceDeclarations>xmlns</keepNamespaceDeclarations>
         </xs:appinfo>
      </xs:annotation>
      <xs:simpleContent>
         <xs:attribute name="path" />
      </xs:simpleContent>
   </xs:complexType>
</xs:element>

Pada deserialisasi, xmlns bidang berisi XmlSerializerNamespaces objek yang berisi semua definisi awalan namespace.

Pada serialisasi, pengguna dapat menambahkan pasangan namespace awalan ke XmlSerializerNamespaces objek menggunakan Add metode . Ini ditunjukkan dalam kode C# dan Visual Basic berikut:

// C#
using System;
using System.IO;
using System.Xml.Serialization;
[XmlRoot("select")]
public class Select {
   [XmlAttribute]
   public string xpath;
   [XmlNamespaceDeclarations]
   public XmlSerializerNamespaces xmlns;
}
public class Test {
   public static void Main(string[] args) {
      Select mySelect = new Select();
      mySelect.xpath = "myNS:ref/@common:y";
      mySelect.xmlns = new XmlSerializerNamespaces();
      mySelect.xmlns.Add("MyNS", "myNS.tempuri.org");
      mySelect.xmlns.Add("common", "common.tempuri.org");
      XmlSerializer ser = new XmlSerializer(typeof(Select));
      ser.Serialize(Console.Out, mySelect);
   }
}
// Output:
// <?xml version="1.0" encoding="IBM437"?>
// <select xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
// xmlns:common="common.tempuri.org" xmlns:MyNS="myNS.tempuri.org" xpath="myNS:ref/@common:y" />
' Visual Basic
Imports System
Imports System.IO
Imports System.Xml.Serialization
<XmlRoot("select")> _
Public Class SelectPath
   <XmlAttribute> _
   Public xpath As String
   <XmlNamespaceDeclarations> _
   public xmlns As XmlSerializerNamespaces
End Class
Public Class Test
   Public Shared Sub Main()
      Dim mySelect As SelectPath = New SelectPath()
      mySelect.xpath = "myNS:ref/@common:y"
      mySelect.xmlns = New XmlSerializerNamespaces()
      mySelect.xmlns.Add("MyNS", "myNS.tempuri.org")
      mySelect.xmlns.Add("common", "common.tempuri.org")
      Dim ser As XmlSerializer = New XmlSerializer(mySelect.GetType)
      ser.Serialize(Console.Out, mySelect)
   End Sub
End Class
'Output:
' <?xml version="1.0" encoding="IBM437"?>
' <select xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
' xmlns:common="common.tempuri.org" xmlns:MyNS="myNS.tempuri.org" xpath="myNS:ref/@common:y" />

Perhatikan juga bahwa anggota tempat atribut diterapkan hanya berisi pasangan namespace awalan yang termasuk dalam elemen XML yang ditentukan oleh kelas . Misalnya, dalam dokumen XML berikut, hanya pasangan awalan "cal" yang diambil, tetapi bukan awalan "x". Untuk mendapatkan data tersebut XmlNamespaceDeclarationsAttribute , tambahkan anggota dengan ke kelas yang mewakili root elemen .

<?xml version="1.0"?>
<x:root xmlns:x="http://www.cohowinery.com/x/">
  <x:select xmlns:cal="http://www.cohowinery.com/calendar/" path="cal:appointments/@cal:startTime" />
</x:root>

Konstruktor

Nama Deskripsi
XmlNamespaceDeclarationsAttribute()

Menginisialisasi instans baru dari kelas XmlNamespaceDeclarationsAttribute.

Properti

Nama Deskripsi
TypeId

Ketika diimplementasikan dalam kelas turunan, mendapatkan pengidentifikasi unik untuk Attributeini.

(Diperoleh dari Attribute)

Metode

Nama Deskripsi
Equals(Object)

Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
GetHashCode()

Mengembalikan kode hash untuk instans ini.

(Diperoleh dari Attribute)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
IsDefaultAttribute()

Ketika ditimpa dalam kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan.

(Diperoleh dari Attribute)
Match(Object)

Saat ditimpa dalam kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

Nama Deskripsi
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1).

(Diperoleh dari Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Menyediakan akses ke properti dan metode yang diekspos oleh objek.

(Diperoleh dari Attribute)

Berlaku untuk