XmlNamespaceDeclarationsAttribute Sınıf
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.
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
- Ö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ı appinfo
XML Şema tanımı (XSD) öğesini içerir. öğesi, ad alanı bildirimlerini içeren üyenin adına ayarlanmış adlı keepNamespaceDeclarations
bir 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) |