XNamespace XNamespace XNamespace XNamespace Class

Definizione

Rappresenta uno spazio dei nomi XML.Represents an XML namespace. Questa classe non può essere ereditata.This class cannot be inherited.

public ref class XNamespace sealed
public sealed class XNamespace
type XNamespace = class
Public NotInheritable Class XNamespace
Ereditarietà
XNamespaceXNamespaceXNamespaceXNamespace

Commenti

Questa classe rappresenta il costrutto XML degli spazi dei nomi.This class represents the XML construct of namespaces.

Ogni XName contiene un XNamespace.Every XName contains an XNamespace. Anche se un elemento non è incluso in uno spazio dei nomi, l'oggetto XName dell'elemento contiene comunque uno spazio dei nomi, XNamespace.None.Even if an element is not in a namespace, the element's XName still contains a namespace, XNamespace.None. La proprietà XName.Namespace non è null.The XName.Namespace property is guaranteed to not be null.

Creazione di un oggetto XNamespaceCreating an XNamespace Object

Il modo più comune per creare un XNamespace oggetto è sufficiente assegnare una stringa a esso.The most common way to create an XNamespace object is to simply assign a string to it. È quindi possibile combinare lo spazio dei nomi con un nome locale mediante l'override dell'operatore di addizione.You can then combine the namespace with a local name by using the override of the addition operator. L'esempio seguente illustra questo linguaggio: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)  

Tuttavia, in Visual Basic, si sarebbe in genere dichiarare uno spazio dei nomi globale predefinito, come indicato di seguito: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  

Questo esempio produce il seguente output:This example produces the following output:

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

Assegnazione di una stringa a un XNamespace utilizza la conversione implicita da String.Assigning a string to an XNamespace uses the implicit conversion from String.

Vedere How to: Creare un documento con spazi dei nomi (C#) (LINQ to XML) per altre informazioni ed esempi.See How to: Create a Document with Namespaces (C#) (LINQ to XML) for more information and examples.

Visualizzare spazi dei nomi in Visual Basic (LINQ to XML) per altre informazioni sull'uso degli spazi dei nomi in Visual Basic.See Namespaces in Visual Basic (LINQ to XML) for more information on using namespaces in Visual Basic.

Controllo Namespace prefissiControlling Namespace Prefixes

Se si crea un attributo che dichiara uno spazio dei nomi, il prefisso specificato nell'attributo verrà rese persistenti nel XML serializzato.If you create an attribute that declares a namespace, the prefix specified in the attribute will be persisted in the serialized XML. Per creare un attributo che dichiara uno spazio dei nomi con un prefisso, viene creato un attributo in cui lo spazio dei nomi del nome dell'attributo è Xmlns e il nome dell'attributo è il prefisso dello spazio dei nomi.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. Il valore dell'attributo è l'URI dello spazio dei nomi.The value of the attribute is the URI of the namespace. L'esempio seguente illustra questo linguaggio: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)  

In Visual Basic, invece di creare un nodo dello spazio dei nomi per controllare i prefissi dello spazio dei nomi, è utilizzata in genere una dichiarazione dello spazio dei nomi globale: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  

Questo esempio produce il seguente output:This example produces the following output:

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

Per altre informazioni, vedere Procedura: Controllare i prefissi Namespace (C#) (LINQ to XML).For more information, see How to: Control Namespace Prefixes (C#) (LINQ to XML).

Creazione di un Namespace predefinitoCreating a Default Namespace

Quando si crea un attributo che fungerà da uno spazio dei nomi, se il nome dell'attributo è il valore speciale "xmlns", quando viene serializzato l'albero XML, lo spazio dei nomi verrà dichiarato come spazio dei nomi predefinito.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. L'attributo speciale con il nome del "xmlns" stesso non è presente in spazi dei nomi.The special attribute with the name of "xmlns" itself is not in any namespace. Il valore dell'attributo è l'URI dello spazio dei nomi.The value of the attribute is the namespace URI.

L'esempio seguente crea un albero XML che contiene un attributo dichiarato in modo tale che lo spazio dei nomi diventerà lo spazio dei nomi predefinito: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)  

In Visual Basic, invece di creare un nodo dello spazio dei nomi per creare uno spazio dei nomi predefinito, è utilizzata in genere una dichiarazione dello spazio dei nomi globale predefinito: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  

Questo esempio produce il seguente output:This example produces the following output:

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

Atomizzazione XNamespaceXNamespace Atomization

Gli oggetti XNamespace vengono suddivisi in elementi di base; ovvero, se due oggetti XNamespace hanno esattamente lo stesso URI, condivideranno la stessa istanza.XNamespace objects are guaranteed to be atomized; that is, if two XNamespace objects have exactly the same URI, they will share the same instance. Gli operatori di uguaglianza e confronto vengono forniti in modo esplicito per questo scopo.The equality and comparison operators are provided explicitly for this purpose.

Usando nomi espansiUsing Expanded Names

Un altro modo per specificare un nome locale e uno spazio dei nomi consiste nell'utilizzare un nome espanso nel formato {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)  

Questo esempio produce il seguente output:This example produces the following output:

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

Questo approccio può tuttavia incidere sulle prestazioni.This approach has performance implications. Ogni volta che si passa una stringa che contiene un nome esteso a LINQ to XMLLINQ to XML, è infatti necessario analizzare il nome e individuare trovare lo spazio dei nomi e il nome suddivisi in elementi di base.Each time that you pass a string that contains an expanded name to LINQ to XMLLINQ to XML, it must parse the name, find the atomized namespace, and find the atomized name. Questo processo impiega il tempo della CPU.This process takes CPU time. Se le prestazioni sono importanti, è possibile usare un approccio diverso.If performance is important, you may want to use a different approach.

Con Visual Basic, l'approccio consigliato è usare valori letterali XML, che non comporta l'utilizzo di nomi espansi.With Visual Basic, the recommended approach is to use XML literals, which does not involve the use of expanded names.

Proprietà

NamespaceName NamespaceName NamespaceName NamespaceName

Ottiene l'URI (Uniform Resource Identifier) dello spazio dei nomi.Gets the Uniform Resource Identifier (URI) of this namespace.

None None None None

Ottiene l'oggetto XNamespace che non corrisponde ad alcuno spazio dei nomi.Gets the XNamespace object that corresponds to no namespace.

Xml Xml Xml Xml

Ottiene l'oggetto XNamespace che corrisponde all'URI XML (http://www.w3.org/XML/1998/namespace).Gets the XNamespace object that corresponds to the XML URI (http://www.w3.org/XML/1998/namespace).

Xmlns Xmlns Xmlns Xmlns

Ottiene l'oggetto XNamespace che corrisponde all'URI xmlns (http://www.w3.org/2000/xmlns/).Gets the XNamespace object that corresponds to the xmlns URI (http://www.w3.org/2000/xmlns/).

Metodi

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto XNamespace specificato è uguale all'oggetto XNamespace corrente.Determines whether the specified XNamespace is equal to the current XNamespace.

Get(String) Get(String) Get(String) Get(String)

Ottiene uno XNamespace per l'URI (Uniform Resource Identifier) specificato.Gets an XNamespace for the specified Uniform Resource Identifier (URI).

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Ottiene un codice hash per XNamespace.Gets a hash code for this XNamespace.

GetName(String) GetName(String) GetName(String) GetName(String)

Restituisce un oggetto XName creato da questo XNamespace e il nome locale specificato.Returns an XName object created from this XNamespace and the specified local name.

GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Restituisce l'URI del XNamespace.Returns the URI of this XNamespace.

Operatori

Addition(XNamespace, String) Addition(XNamespace, String) Addition(XNamespace, String) Addition(XNamespace, String)

Combina un oggetto XNamespace con un nome locale per creare un XName.Combines an XNamespace object with a local name to create an XName.

Equality(XNamespace, XNamespace) Equality(XNamespace, XNamespace) Equality(XNamespace, XNamespace) Equality(XNamespace, XNamespace)

Restituisce un valore che indica se due istanze di XNamespace sono uguali.Returns a value indicating whether two instances of XNamespace are equal.

Implicit(String to XNamespace) Implicit(String to XNamespace) Implicit(String to XNamespace) Implicit(String to XNamespace)

Converte una stringa che contiene un URI (Uniform Resource Identifier) in un XNamespace.Converts a string containing a Uniform Resource Identifier (URI) to an XNamespace.

Inequality(XNamespace, XNamespace) Inequality(XNamespace, XNamespace) Inequality(XNamespace, XNamespace) Inequality(XNamespace, XNamespace)

Restituisce un valore che indica se due istanze di XNamespace non sono uguali.Returns a value indicating whether two instances of XNamespace are not equal.

Si applica a

Vedi anche