XName 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.
XML öğesinin veya özniteliğinin adını temsil eder.
public ref class XName sealed : IEquatable<System::Xml::Linq::XName ^>
public ref class XName sealed : IEquatable<System::Xml::Linq::XName ^>, System::Runtime::Serialization::ISerializable
public sealed class XName : IEquatable<System.Xml.Linq.XName>
public sealed class XName : IEquatable<System.Xml.Linq.XName>, System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class XName : IEquatable<System.Xml.Linq.XName>, System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.Runtime.Serialization.KnownType(typeof(System.Xml.Linq.NameSerializer))]
public sealed class XName : IEquatable<System.Xml.Linq.XName>, System.Runtime.Serialization.ISerializable
type XName = class
interface IEquatable<XName>
type XName = class
interface IEquatable<XName>
interface ISerializable
[<System.Serializable>]
type XName = class
interface IEquatable<XName>
interface ISerializable
[<System.Serializable>]
[<System.Runtime.Serialization.KnownType(typeof(System.Xml.Linq.NameSerializer))>]
type XName = class
interface IEquatable<XName>
interface ISerializable
Public NotInheritable Class XName
Implements IEquatable(Of XName)
Public NotInheritable Class XName
Implements IEquatable(Of XName), ISerializable
- Devralma
-
XName
- Öznitelikler
- Uygulamalar
Açıklamalar
XML adları bir ad alanı ve yerel ad içerir. Tam nitelikli ad, ad alanı ile yerel adın birleşimidir.
XName nesnesi oluşturma
XName herhangi bir ortak oluşturucu içermez. Bunun yerine, String öğesinden bir XName oluşturmanızı sağlayan örtük bir dönüştürme sunar. Bu dönüştürmeyi en sık kullandığınız yer, bir öğe veya öznitelik oluştururken olur: XElement oluşturucusunun ilk bağımsız değişkeni bir XName'dir. Bir dize geçirerek örtük dönüştürmeden yararlanacaksınız. Aşağıdaki kod, herhangi bir ad alanında olmayan bir ada sahip bir öğe oluşturur.
XElement root = new XElement("ElementName", "content");
Console.WriteLine(root);
Visual Basic'te XML ifadelerini kullanmak daha uygun olabilir.
Dim root As XElement = <ElementName>content</ElementName>
Console.WriteLine(root)
Bu örnek aşağıdaki çıkışı oluşturur:
<ElementName>content</ElementName>
Bir dizeyi XName öğesine atamak, String'den örtük dönüşüm kullanır.
Visual Basic örneği, XElement öğesini XML literalleri kullanarak oluşturur. XML değişmez değerleri kullanılmasına rağmen, XName için bir XElement nesne oluşturulur.
Ayrıca, bir Get nesne için XName yöntemini çağırabilirsiniz. Ancak, önerilen yol, dizenin örtük dönüşümünü kullanmaktır.
Ad alanında XName oluşturma
XML'de olduğu gibi, bir XName ad alanında veya ad alanında bulunmayabilir.
C# için, bir ad alanında XName oluşturmanın önerilen yaklaşımı, XNamespace nesnesini bildirmek ve ardından toplama işleç geçersiz kılmasını kullanmaktır.
Visual Basic için önerilen yaklaşım, bir ad alanında XML oluşturmak için XML değişmezlerini ve genel ad alanı bildirimlerini kullanmaktır.
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "ElementName", "content");
Console.WriteLine(root);
Imports <xmlns="http://www.adventure-works.com">
Module Module1
Sub Main()
Dim root As XElement = <ElementName>content</ElementName>
Console.WriteLine(root)
End Sub
End Module
Bu örnek aşağıdaki çıkışı oluşturur:
<ElementName xmlns="http://www.adventure-works.com">content</ElementName>
Alan adı olmadan XName oluşturma
Namespace Bir XName nesnenin özelliğinin null olmaması garanti edilir. XName herhangi bir ad alanında değilse, Namespace özelliği None olarak ayarlanır. Aşağıdaki kod bunu gösterir:
XElement root = new XElement("ElementName", "content");
if (root.Name.Namespace == XNamespace.None)
Console.WriteLine("The element is in no namespace.");
else
Console.WriteLine("The element is in a namespace.");
Dim root As XElement = <ElementName>content</ElementName>
If (root.Name.Namespace Is XNamespace.None) Then
Console.WriteLine("The element is in no namespace.")
Else
Console.WriteLine("The element is in a namespace.")
End If
Bu örnek aşağıdaki çıkışı oluşturur:
The element is in no namespace.
Genişletilmiş adları kullanma
Bir genişletilmiş XML adı biçimindeki XName'den de {namespace}localname oluşturabilirsiniz.
XElement root = new XElement("{http://www.adventure-works.com}ElementName", "content");
Console.WriteLine(root);
Dim root As XElement = New XElement("{http://www.adventure-works.com}ElementName", "content")
Console.WriteLine(root)
Bu örnek aşağıdaki çıkışı oluşturur:
<ElementName xmlns="http://www.adventure-works.com">content</ElementName>
Genişletilmiş bir isim kullanarak XName oluşturmanın, XNamespace nesnesi oluşturup toplama operatörünün geçersiz kılmasını kullanmaktan daha az verimli olduğunu unutmayın. Ayrıca, genel ad alanını içeri aktarmaktan ve Visual Basic'te XML değişmez değerlerini kullanmaktan daha az verimlidir.
Genişletilmiş bir ad kullanarak bir XName oluşturursanız, LINQ to XML bir ad alanının atomize örneğini bulmalıdır. Bu çalışma, genişletilmiş bir adın her kullanımı için yinelenmelidir. LinQ sorguları yazarken bu ek süre göz ardı edilebilir; ancak, büyük bir XML ağacı oluştururken önemli olabilir.
XName nesneleri atomize edilir
XName nesnelerin atomize edilmesi garanti edilir; yani, iki XName nesne tam olarak aynı ad alanına ve tam olarak aynı yerel ada sahipse, aynı örneği paylaşır. Eşitlik ve karşılaştırma işleçleri de bu amaçla açıkça sağlanır.
Bu özellik, diğer avantajlar arasında, sorguların daha hızlı yürütülmesini sağlar. Öğelerin veya özniteliklerin adı filtrelendiğinde, koşullarda ifade edilen karşılaştırmalar değer karşılaştırmasını değil kimlik karşılaştırmasını kullanır. İki başvurunun aslında aynı nesneye başvurduğunu belirlemek, iki dizeyi karşılaştırmaktan çok daha hızlıdır.
Özellikler
| Name | Description |
|---|---|
| LocalName |
Adın yerel (nitelenmemiş) bölümünü alır. |
| Namespace |
Tam adın ad alanı bölümünü alır. |
| NamespaceName |
Bu XNamespaceiçin öğesinin URI'sini XName döndürür. |
Yöntemler
| Name | Description |
|---|---|
| Equals(Object) |
Belirtilen XName öğesinin bu XNameöğesine eşit olup olmadığını belirler. |
| Get(String, String) |
XName Yerel bir ad ve ad alanından bir nesne alır. |
| Get(String) |
XName Genişletilmiş bir addan nesne alır. |
| GetHashCode() |
Bu XNameiçin bir karma kodu alır. |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ToString() |
Genişletilmiş XML adını biçiminde |
İşleçler
| Name | Description |
|---|---|
| Equality(XName, XName) |
İki örneğinin XName eşit olup olmadığını belirten bir değer döndürür. |
| Implicit(String to XName) |
Genişletilmiş XML adı olarak biçimlendirilmiş bir dizeyi nesneye |
| Inequality(XName, XName) |
İki örneğinin XName eşit olup olmadığını belirten bir değer döndürür. |
Belirtik Arabirim Kullanımları
| Name | Description |
|---|---|
| IEquatable<XName>.Equals(XName) |
Geçerli XName değerin belirtilen XNamedeğerine eşit olup olmadığını gösterir. |
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
hedef nesneyi seri hale getirmek için gereken verilerle doldurur SerializationInfo . |