XNamespace Osztály

Definíció

XML-névteret jelöl. Ez az osztály nem örökölhető.

public ref class XNamespace sealed
public sealed class XNamespace
type XNamespace = class
Public NotInheritable Class XNamespace
Öröklődés
XNamespace

Megjegyzések

Ez az osztály a névterek XML-szerkezetét jelöli.

Mindegyik XName tartalmaz egy XNamespace. Még akkor is, ha egy elem nincs névtérben, az elem XName továbbra is tartalmaz egy névteret. XNamespace.None A XName.Namespace tulajdonság garantáltan nem lesz null.

XNamespace-objektum létrehozása

Az egy objektum létrehozásának XNamespace leggyakoribb módja, ha egyszerűen hozzárendelünk egy karakterláncot. Ezután a névteret egy helyi névvel kombinálhatja az összeadási operátor felülbírálásával. Az alábbi példa ezt az idiómát mutatja be:

XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root", "Content");
Console.WriteLine(root);
Dim aw As XNamespace = "http://www.adventure-works.com"
Dim root As XElement = New XElement(aw + "Root", "Content")
Console.WriteLine(root)

A Visual Basicben azonban általában egy globális alapértelmezett névteret deklarálna az alábbiak szerint:

Imports <xmlns='http://www.adventure-works.com'>

Module Module1
    Sub Main()
        Dim root As XElement = _
            <Root>Content</Root>
        Console.WriteLine(root)
    End Sub
End Module

Ez a példa a következő kimenetet hozza létre:

<Root xmlns="http://www.adventure-works.com">Content</Root>

Egy sztring hozzárendelése egy XNamespace-hoz az String implicit konverzióját használja.

További információkért és példákért tekintse meg a névterekkel rendelkező dokumentum létrehozását c# nyelven (LINQ–XML).

A Névterek Visual Basicben való használatáról további információt az XML-névterek használata című témakörben talál.

Névtér-előtagok szabályozása

Ha névteret deklaráló attribútumot hoz létre, az attribútumban megadott előtag megmarad a szerializált XML-ben. Ha olyan attribútumot szeretne létrehozni, amely egy előtaggal rendelkező névteret deklarál, hozzon létre egy attribútumot, amelyben az attribútum nevének névtere van Xmlns, az attribútum neve pedig a névtér előtagja. Az attribútum értéke a névtér URI-ja. Az alábbi példa ezt az idiómát mutatja be:

XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
    new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),
    "Content");
Console.WriteLine(root);
Dim aw As XNamespace = "http://www.adventure-works.com"
Dim root As XElement = New XElement(aw + "Root", _
    New XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"), _
    "Content")
Console.WriteLine(root)

A Visual Basicben a névtér-előtagok szabályozására létrehozott névtércsomópont helyett általában globális névtér-deklarációt használ:

Imports <xmlns:aw='http://www.adventure-works.com'>

Module Module1
    Sub Main()
        Dim root As XElement = _
            <aw:Root>Content</aw:Root>
        Console.WriteLine(root)
    End Sub
End Module

Ez a példa a következő kimenetet hozza létre:

<aw:Root xmlns:aw="http://www.adventure-works.com">Content</aw:Root>

További információ: A névtér előtagjainak szabályozása.

Alapértelmezett névtér létrehozása

Névtérként létrehozott attribútum létrehozásakor, ha az attribútum neve "xmlns" különleges értékkel rendelkezik, akkor az XML-fa szerializálásakor a névtér lesz az alapértelmezett névtér. Az "xmlns" nevű speciális attribútum nincs névtérben. Az attribútum értéke a névtér URI-ja.

Az alábbi példa létrehoz egy XML-fát, amely egy olyan attribútumot tartalmaz, amely úgy van deklarálva, hogy a névtér legyen az alapértelmezett névtér:

XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
    new XAttribute("xmlns", "http://www.adventure-works.com"),
    new XElement(aw + "Child", "content")
);
Console.WriteLine(root);
Dim aw As XNamespace = "http://www.adventure-works.com"
Dim root As XElement = New XElement(aw + "Root", _
    New XAttribute("xmlns", "http://www.adventure-works.com"), _
    New XElement(aw + "Child", "content") _
)
Console.WriteLine(root)

A Visual Basicben ahelyett, hogy létrehozna egy névtércsomópontot egy alapértelmezett névtér létrehozásához, általában globális alapértelmezett névtérdeklarációt használna:

Imports <xmlns='http://www.adventure-works.com'>

Module Module1
    Sub Main()
        Dim root As XElement = _
            <Root>
                <Child>content</Child>
            </Root>
        Console.WriteLine(root)
    End Sub
End Module

Ez a példa a következő kimenetet hozza létre:

<Root xmlns="http://www.adventure-works.com">
  <Child>content</Child>
</Root>

XNamespace atomizálás

XNamespace az objektumok garantáltan atomizálva lesznek; vagyis ha két XNamespace objektum pontosan ugyanazzal az URI-val rendelkezik, akkor ugyanazt a példányt fogják megosztani. Az egyenlőségi és összehasonlító operátorok kifejezetten erre a célra szolgálnak.

Bővített nevek használata

A névtér és a helyi név megadásának másik módja, ha az alábbi formátumú kibővített nevet használ: {namespace}name.

XElement e = new XElement("{http://www.adventure-works.com}Root",
     new XAttribute("{http://www.adventure-works.com}Att", "content")
);
Console.WriteLine(e);
Dim e As XElement = New XElement("{http://www.adventure-works.com}Root", _
     New XAttribute("{http://www.adventure-works.com}Att", "content") _
)
Console.WriteLine(e)

Ez a példa a következő kimenetet hozza létre:

<Root p1:Att="content" xmlns:p1="http://www.adventure-works.com" xmlns="http://www.adventure-works.com" />

Ez a megközelítés teljesítménybeli következményekkel jár. Minden alkalommal, amikor kibontott nevet tartalmazó sztringet ad át a LINQ-nak az XML-nek, elemeznie kell a nevet, meg kell keresnie az atomizált névteret, és meg kell keresnie az atomizált nevet. Ez a folyamat processzoridőt igényel. Ha a teljesítmény fontos, érdemes lehet más megközelítést használni.

A Visual Basic használata esetén az ajánlott módszer az XML-literálok használata, amely nem foglalja magában a kiterjesztett nevek használatát.

Tulajdonságok

Name Description
NamespaceName

Lekéri a névtér egységes erőforrás-azonosítóját (URI).

None

Lekéri a XNamespace névtér nélküli objektumot.

Xml

Lekéri az XNamespace XML URI-nak (http://www.w3.org/XML/1998/namespace) megfelelő objektumot.

Xmlns

Lekéri az XNamespace xmlns URI -nak (http://www.w3.org/2000/xmlns/) megfelelő objektumot.

Metódusok

Name Description
Equals(Object)

Meghatározza, hogy a megadott XNamespace érték megegyezik-e az aktuális XNamespaceértékével.

Get(String)

XNamespace Lekéri a megadott egységes erőforrás-azonosítót (URI).

GetHashCode()

Ehhez lekéri a XNamespacekivonatkódot.

GetName(String)

XName Az ebből XNamespace létrehozott objektumot és a megadott helyi nevet adja vissza.

GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Ennek az URI-ját XNamespaceadja vissza.

Operátorok

Name Description
Addition(XNamespace, String)

Egy objektum és XNamespace egy helyi név kombinálása egy XName.

Equality(XNamespace, XNamespace)

Egy értéket ad vissza, amely jelzi, hogy két példány XNamespace egyenlő-e.

Implicit(String to XNamespace)

Egységes erőforrás-azonosítót (URI) tartalmazó sztringet konvertál .XNamespace

Inequality(XNamespace, XNamespace)

Egy értéket ad vissza, amely azt jelzi, hogy két példány XNamespace nem egyenlő-e.

A következőre érvényes:

Lásd még