XmlNamespaceDeclarationsAttribute Sınıf

Tanım

Hedef özelliğin, parametrenin, dönüş değerinin veya sınıf üyesinin bir XML belgesinde kullanılan ad alanlarıyla ilişkilendirilmiş ön ekler içerdiğini belirtir.

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
Devralma
XmlNamespaceDeclarationsAttribute
Öznitelikler

Açıklamalar

XmlNamespaceDeclarationsAttribute özniteliği, bir nesne döndüren bir alana veya özelliğe bir sınıfta yalnızca bir XmlSerializerNamespaces kez uygulanabilir.

, XmlNamespaceDeclarationsAttribute ön ekleri ve xml belgesinde kullanılan ilişkili ad alanlarını depolamanıza olanak tanır. Örneğin, özniteliğin yaygın kullanımlarından biri, XML Dili (XPath) Sürüm 1.0 adlı World Wide Web Consortium belgesi tarafından tanımlandığı gibi XPath verilerini depolamaktır. Kısaca ifade etmek gerekirse, XPath birçok ad alanı öneki ve yerel adın yanı sıra başka söz dizimleri içeren bir dizedir.

XPath dili, bir ön ekin bir yolla ilişkilendirilip XML belgesinde ön ekin kullanılmasına olanak tanır. Örneğin, "select" adlı aşağıdaki XML belgesi belirli bir URIhttp://www.cohowinery.com/calendar/ () ile ilişkilendirilmiş bir ön ek ("cal") içerir. öğesi, XPath'i içeren "path" adlı bir öznitelik içerir.

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

Bunun şeması şu olabilir:

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

XmlNamespaceDeclarationsAttributeolmadan, ön ek ve ad alanı arasındaki ilişki kaybolur.

Ön ek ile ad alanı URI'si arasındaki ilişkiyi korumak için, XmlSerializerNamespaces nesnesi döndüren bir üye ekleyin ve aşağıdaki C# ve Visual Basic kodunda gösterildiği gibi üyeye XmlNamespaceDeclarationsAttribute özniteliğini uygulayın:

// 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

Seri hale getirildiğinde, oluşturulan XML belgesinin şeması adlı appinfoXML Şema tanımı (XSD) öğesini içerir. öğesi, ad alanı bildirimlerini içeren üyenin adına ayarlanmış adlı keepNamespaceDeclarationsbir meta veri öğesi içerir. Aşağıdaki XML parçası şemayı gösterir:

<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>

Seri durumdan çıkarma işleminde xmlns , alan tüm ad alanı ön ek tanımlarını içeren bir XmlSerializerNamespaces nesne içerir.

Serileştirmede, kullanıcı yöntemini kullanarak nesneye XmlSerializerNamespaces prefix-ad alanı çiftleri Add ekleyebilir. Bu, aşağıdaki C# ve Visual Basic kodunda gösterilir:

// 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" />

Ayrıca özniteliğinin uygulandığı üyenin yalnızca sınıfı tarafından tanımlanan XML öğesine ait olan prefix-namespace çiftlerini içerdiğini unutmayın. Örneğin, aşağıdaki XML belgesinde yalnızca "cal" ön ek çifti yakalanır, ancak "x" ön eki yakalanmaz. Bu verileri almak için öğesini temsil eden XmlNamespaceDeclarationsAttribute sınıfına ile root bir üye ekleyin.

<?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>

Oluşturucular

Name Description
XmlNamespaceDeclarationsAttribute()

XmlNamespaceDeclarationsAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

Name Description
TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)

Yöntemler

Name Description
Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğin karma kodunu döndürür.

(Devralındığı yer: Attribute)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

Name Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından kullanıma sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır