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şkili ö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 sınıfta yalnızca bir XmlSerializerNamespaces kez uygulanabilir.

ön XmlNamespaceDeclarationsAttribute 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ığı için XPath verilerini depolamaktır. Kısaca ifade etmek gerekirse, XPath birçok ad alanı öneki ve yerel adın yanı sıra diğer bazı söz dizimlerini içeren bir dizedir.

XPath dili, ön ekin bir yol ile 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 ile ad alanı arasındaki ilişki kaybolur.

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

// 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 daha 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 çıkarmada xmlns , alanı tüm ad alanı ön ek tanımlarını içeren bir XmlSerializerNamespaces nesnesi içerir.

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

// 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 ön ek-ad alanı ç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 root sınıfına ile XmlNamespaceDeclarationsAttribute 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

XmlNamespaceDeclarationsAttribute()

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

Özellikler

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

Equals(Object)

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

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

Bu örneğe ilişkin karma kodu döndürür.

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

Type Geçerli örneğini 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 Objectöğesinin sığ bir kopyasını oluşturur.

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

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

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

_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 sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır