XNamespace Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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 ( |
| Xmlns |
Lekéri az XNamespace xmlns URI -nak ( |
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. |