XNamespace Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje obor názvů XML. Tato třída se nemůže dědit.
public ref class XNamespace sealed
public sealed class XNamespace
type XNamespace = class
Public NotInheritable Class XNamespace
- Dědičnost
-
XNamespace
Poznámky
Tato třída představuje XML konstrukt jmenných prostorů.
Každý XName obsahuje XNamespace. I když prvek není v oboru názvů, XName prvek stále obsahuje obor názvů , XNamespace.None. Vlastnost XName.Namespace je zaručena, že nebude null.
Vytvoření objektu XNamespace
Nejběžnější způsob, jak vytvořit XNamespace objekt, je jednoduše přiřadit řetězec k němu. Pak můžete jmenný prostor zkombinovat s místním názvem pomocí přetížení operátoru sčítání. Následující příklad ukazuje tento idiom:
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)
V jazyce Visual Basic však obvykle deklarujete globální výchozí obor názvů následujícím způsobem:
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
Tento příklad vytvoří následující výstup:
<Root xmlns="http://www.adventure-works.com">Content</Root>
Přiřadit řetězec k XNamespace používá implicitní konverzi z String.
Další informace a příklady najdete v tématu Vytvoření dokumentu s obory názvů v jazyce C# (LINQ to XML ).
Další informace o používání oborů názvů v jazyce Visual Basic naleznete v tématu Práce s obory názvů XML .
Správa předpon jmenného prostoru
Pokud vytvoříte atribut, který deklaruje obor názvů, předpona zadaná v atributu bude zachována v serializovaném XML. Chcete-li vytvořit atribut, který deklaruje obor názvů s předponou, vytvoříte atribut, kde je atribut s názvem oboru Xmlns, a název atributu je předpona tohoto oboru názvů. Hodnota atributu je identifikátor URI oboru názvů. Následující příklad ukazuje tento idiom:
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)
V jazyce Visual Basic místo vytvoření uzlu oboru názvů pro řízení předpon oboru názvů byste obvykle použili globální deklaraci oboru názvů:
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
Tento příklad vytvoří následující výstup:
<aw:Root xmlns:aw="http://www.adventure-works.com">Content</aw:Root>
Další informace naleznete v tématu Jak řídit předpony oboru názvů.
Vytvořte výchozí obor názvů
Při vytváření atributu, který bude obor názvů, pokud má název atributu zvláštní hodnotu "xmlns", pak při serializaci stromu XML bude obor názvů deklarován jako výchozí obor názvů. Speciální atribut se samotným názvem "xmlns" není v žádném oboru názvů. Hodnota atributu je identifikátor URI oboru názvů.
Následující příklad vytvoří strom XML, který obsahuje atribut deklarovaný takovým způsobem, že se obor názvů stane výchozím.
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)
V jazyce Visual Basic místo vytvoření uzlu oboru názvů k vytvoření výchozího oboru názvů byste obvykle použili globální výchozí deklaraci oboru názvů:
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
Tento příklad vytvoří následující výstup:
<Root xmlns="http://www.adventure-works.com">
<Child>content</Child>
</Root>
Atomizace XNamespace
XNamespace je zaručeno, že objekty jsou atomizovány; to znamená, že pokud dva XNamespace objekty mají přesně stejný identifikátor URI, budou používat stejnou instanci. Operátory rovnosti a porovnání jsou pro tento účel výslovně určeny.
Použití rozbalených názvů
Dalším způsobem, jak zadat obor názvů a místní název, je použít rozšířený název ve tvaru {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)
Tento příklad vytvoří následující výstup:
<Root p1:Att="content" xmlns:p1="http://www.adventure-works.com" xmlns="http://www.adventure-works.com" />
Tento přístup má vliv na výkon. Pokaždé, když předáte řetězec, který obsahuje rozbalené jméno do LINQ to XML, musí analyzovat jméno, najít atomizovaný jmenný prostor a najít atomizované jméno. Tento proces trvá čas procesoru. Pokud je výkon důležitý, možná budete chtít použít jiný přístup.
V jazyce Visual Basic se doporučuje použít literály XML, které nezahrnují použití rozšířených názvů.
Vlastnosti
| Name | Description |
|---|---|
| NamespaceName |
Získá identifikátor URI (Uniform Resource Identifier) tohoto oboru názvů. |
| None |
Získá objekt, který odpovídá žádnému XNamespace oboru názvů. |
| Xml |
XNamespace Získá objekt, který odpovídá identifikátoru URI XML ( |
| Xmlns |
XNamespace Získá objekt, který odpovídá xmlns URI ( |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda je zadaná XNamespace hodnota rovna aktuálnímu XNamespace. |
| Get(String) |
XNamespace Získá pro zadaný identifikátor URI (Uniform Resource Identifier). |
| GetHashCode() |
Získá hash kód pro tento XNamespace. |
| GetName(String) |
XName Vrátí objekt vytvořený z tohoto XNamespace objektu a zadaný místní název. |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí identifikátor URI tohoto XNamespaceidentifikátoru . |
Operátory
| Name | Description |
|---|---|
| Addition(XNamespace, String) |
XNamespace Kombinuje objekt s místním názvem k vytvoření objektu XName. |
| Equality(XNamespace, XNamespace) |
Vrátí hodnotu určující, zda jsou dvě instance rovny XNamespace . |
| Implicit(String to XNamespace) |
Převede řetězec obsahující identifikátor URI (Uniform Resource Identifier) na .XNamespace |
| Inequality(XNamespace, XNamespace) |
Vrátí hodnotu označující, zda se dvě instance XNamespace nerovnají. |