XNamespace Klasa

Definicja

Reprezentuje przestrzeń nazw XML.Represents an XML namespace. Klasa ta nie może być dziedziczona.This class cannot be inherited.

public ref class XNamespace sealed
public sealed class XNamespace
type XNamespace = class
Public NotInheritable Class XNamespace
Dziedziczenie
XNamespace

Uwagi

Ta klasa reprezentuje konstrukcję XML przestrzeni nazw.This class represents the XML construct of namespaces.

Każdy XName elementXNamespacezawiera.Every XName contains an XNamespace. Nawet jeśli element nie znajduje się w przestrzeni nazw, element XName nadal zawiera XNamespace.Noneprzestrzeń nazw.Even if an element is not in a namespace, the element's XName still contains a namespace, XNamespace.None. Właściwość ma gwarantowaną wartość nullnie równą. XName.NamespaceThe XName.Namespace property is guaranteed to not be null.

Tworzenie obiektu XNamespaceCreating an XNamespace Object

Najbardziej typowym sposobem utworzenia XNamespace obiektu jest po prostu przypisanie do niego ciągu.The most common way to create an XNamespace object is to simply assign a string to it. Następnie można połączyć przestrzeń nazw z lokalną nazwą przy użyciu przesłonięcia operatora dodawania.You can then combine the namespace with a local name by using the override of the addition operator. W poniższym przykładzie przedstawiono ten idiom:The following example shows this 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)  

Jednak w Visual Basic zwykle deklaruje globalną domyślną przestrzeń nazw w następujący sposób:However, in Visual Basic, you would typically declare a global default namespace, as follows:

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  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

Przypisanie ciągu do obiektu XNamespace używa niejawnej konwersji z. StringAssigning a string to an XNamespace uses the implicit conversion from String.

Zobacz How to: Utwórz dokument z przestrzeniami nazwC#() (LINQ to XML ), aby uzyskać więcej informacji i przykładów.See How to: Create a Document with Namespaces (C#) (LINQ to XML) for more information and examples.

Zobacz przestrzenie nazw w Visual Basic (LINQ to XML) , aby uzyskać więcej informacji na temat używania przestrzeni nazw w Visual Basic.See Namespaces in Visual Basic (LINQ to XML) for more information on using namespaces in Visual Basic.

Kontrolowanie prefiksów przestrzeni nazwControlling Namespace Prefixes

Jeśli utworzysz atrybut, który deklaruje przestrzeń nazw, prefiks określony w atrybucie zostanie utrwalony w serializowanym kodzie XML.If you create an attribute that declares a namespace, the prefix specified in the attribute will be persisted in the serialized XML. Aby utworzyć atrybut, który deklaruje przestrzeń nazw z prefiksem, utworzysz atrybut, w którym przestrzeń nazw atrybutu jest Xmlns, a nazwa atrybutu jest prefiksem przestrzeni nazw.To create an attribute that declares a namespace with a prefix, you create an attribute where the namespace of the name of the attribute is Xmlns, and the name of the attribute is the namespace prefix. Wartość atrybutu jest identyfikatorem URI przestrzeni nazw.The value of the attribute is the URI of the namespace. W poniższym przykładzie przedstawiono ten idiom:The following example shows this 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)  

W Visual Basic, zamiast tworzyć węzeł przestrzeni nazw w celu kontrolowania prefiksów przestrzeni nazw, zazwyczaj stosuje się globalną deklarację przestrzeni nazw:In Visual Basic, instead of creating a namespace node to control namespace prefixes, you would typically use a global namespace declaration:

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  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

Aby uzyskać więcej informacji, zobacz jak: Określ prefiksy przestrzeni nazwC#() (LINQ to XML).For more information, see How to: Control Namespace Prefixes (C#) (LINQ to XML).

Tworzenie domyślnej przestrzeni nazwCreating a Default Namespace

W przypadku konstruowania atrybutu, który będzie przestrzenią nazw, jeśli nazwa atrybutu ma specjalną wartość "xmlns", wówczas gdy drzewo XML zostanie Zserializowany, przestrzeń nazw zostanie zadeklarowana jako domyślna przestrzeń nazw.When constructing an attribute that will be a namespace, if the attribute name has the special value of "xmlns", then when the XML tree is serialized, the namespace will be declared as the default namespace. Atrybut specjalny o nazwie "xmlns" nie znajduje się w żadnej przestrzeni nazw.The special attribute with the name of "xmlns" itself is not in any namespace. Wartość atrybutu jest identyfikatorem URI przestrzeni nazw.The value of the attribute is the namespace URI.

Poniższy przykład tworzy drzewo XML, który zawiera atrybut zadeklarowany w taki sposób, że przestrzeń nazw stanie się domyślną przestrzenią nazw:The following example creates an XML tree that contains an attribute that is declared in such a way that the namespace will become the default namespace:

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)  

W Visual Basic, zamiast tworzyć węzeł przestrzeni nazw w celu utworzenia domyślnej przestrzeni nazw, zazwyczaj stosuje się globalną deklarację przestrzeni nazw:In Visual Basic, instead of creating a namespace node to create a default namespace, you would typically use a global default namespace declaration:

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  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

XNamespace rozproszenieXNamespace Atomization

XNamespaceobiekty są gwarantowane jako atomowe; oznacza to, że jeśli XNamespace dwa obiekty mają dokładnie ten sam identyfikator URI, współużytkują to samo wystąpienie.XNamespace objects are guaranteed to be atomized; that is, if two XNamespace objects have exactly the same URI, they will share the same instance. Operatory równości i porównania są udostępniane w tym celu jawnie.The equality and comparison operators are provided explicitly for this purpose.

Używanie rozwiniętych nazwUsing Expanded Names

Innym sposobem określenia przestrzeni nazw i lokalnej nazwy jest użycie rozwiniętej nazwy w postaci {namespace}name:Another way to specify a namespace and a local name is to use an expanded name in the form {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)  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

Takie podejście ma wpływ na wydajność.This approach has performance implications. Za każdym razem, gdy przekazujesz ciąg zawierający rozszerzoną nazwę do LINQ do XMLLINQ to XML, musi on analizować nazwę, znaleźć wykorzystaną przestrzeń nazw i znaleźć nazwę atomową.Each time that you pass a string that contains an expanded name to LINQ do XMLLINQ to XML, it must parse the name, find the atomized namespace, and find the atomized name. Ten proces pobiera czas procesora CPU.This process takes CPU time. Jeśli wydajność jest ważna, warto użyć innego podejścia.If performance is important, you may want to use a different approach.

W przypadku Visual Basic Zalecanym podejściem jest użycie literałów XML, które nie obejmują użycia rozwiniętych nazw.With Visual Basic, the recommended approach is to use XML literals, which does not involve the use of expanded names.

Właściwości

NamespaceName

Pobiera Uniform Resource Identifier (URI) tej przestrzeni nazw.Gets the Uniform Resource Identifier (URI) of this namespace.

None

XNamespace Pobiera obiekt, który odnosi się do braku przestrzeni nazw.Gets the XNamespace object that corresponds to no namespace.

Xml

Pobiera obiekt, który odnosi się do identyfikatora URI XMLhttp://www.w3.org/XML/1998/namespace(). XNamespaceGets the XNamespace object that corresponds to the XML URI (http://www.w3.org/XML/1998/namespace).

Xmlns

Pobiera obiekt, który odnosi się do identyfikatora URI xmlnshttp://www.w3.org/2000/xmlns/(). XNamespaceGets the XNamespace object that corresponds to the xmlns URI (http://www.w3.org/2000/xmlns/).

Metody

Equals(Object)

Określa, czy określony XNamespace element jest równy bieżącemu XNamespace.Determines whether the specified XNamespace is equal to the current XNamespace.

Get(String)

XNamespace Pobiera dla określonego Uniform Resource Identifier (URI).Gets an XNamespace for the specified Uniform Resource Identifier (URI).

GetHashCode()

Pobiera kod skrótu dla tego XNamespaceelementu.Gets a hash code for this XNamespace.

GetName(String)

Zwraca obiekt utworzony z tego XNamespace i określonej nazwy lokalnej. XNameReturns an XName object created from this XNamespace and the specified local name.

GetType()

Type Pobiera bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy skróconą kopię bieżącego Objectelementu.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToString()

Zwraca identyfikator URI tego XNamespaceelementu.Returns the URI of this XNamespace.

Operatory

Addition(XNamespace, String)

Łączy obiekt z lokalną nazwą, aby XNameutworzyć. XNamespaceCombines an XNamespace object with a local name to create an XName.

Equality(XNamespace, XNamespace)

Zwraca wartość wskazującą, czy dwa wystąpienia XNamespace są równe.Returns a value indicating whether two instances of XNamespace are equal.

Implicit(String to XNamespace)

Konwertuje ciąg zawierający Uniform Resource Identifier (URI) na XNamespace.Converts a string containing a Uniform Resource Identifier (URI) to an XNamespace.

Inequality(XNamespace, XNamespace)

Zwraca wartość wskazującą, czy dwa wystąpienia XNamespace nie są równe.Returns a value indicating whether two instances of XNamespace are not equal.

Dotyczy

Zobacz też