XmlNamespaceDeclarationsAttribute Classe

Definição

Especifica que a propriedade de destino, parâmetro, o valor retornado ou o membro da classe contém prefixos associados a namespaces que são usados em um documento XML.Specifies that the target property, parameter, return value, or class member contains prefixes associated with namespaces that are used within an XML document.

public ref class XmlNamespaceDeclarationsAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=false)]
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue)]
public class XmlNamespaceDeclarationsAttribute : Attribute
type XmlNamespaceDeclarationsAttribute = class
    inherit Attribute
Public Class XmlNamespaceDeclarationsAttribute
Inherits Attribute
Herança
XmlNamespaceDeclarationsAttribute
Atributos

Comentários

O XmlNamespaceDeclarationsAttribute atributo só pode ser aplicado uma vez em uma classe a um campo ou propriedade que retorna XmlSerializerNamespaces um objeto.The XmlNamespaceDeclarationsAttribute attribute can only be applied once in a class to a field or property that returns an XmlSerializerNamespaces object.

O XmlNamespaceDeclarationsAttribute permite que você armazene os prefixos e os namespaces associados, usados em um documento XML.The XmlNamespaceDeclarationsAttribute allows you to store the prefixes, and the associated namespaces, used in an XML document. Por exemplo, um uso comum do atributo é armazenar dados XPath, pois eles são definidos pelo documento World Wide Web Consortium chamado XML Language (XPath) versão 1,0.For example, one common usage of the attribute is to store XPath data, as it is defined by the World Wide Web Consortium document named XML Language (XPath) Version 1.0. Em resumo, um XPath é uma cadeia de caracteres que contém muitos prefixos de namespace e nomes locais, juntamente com alguma outra sintaxe.In brief, an XPath is a string that contains many namespace prefixes and local names, along with some other syntax.

A linguagem XPath permite a associação de um prefixo com um caminho e o uso do prefixo dentro do documento XML.The XPath language allows for the association of a prefix with a path, and using the prefix within the XML document. Por exemplo, o seguinte documento XML chamado "Select" contém um prefixo ("Cal") associado a um URI específico (http://www.cohowinery.com/calendar/).For example, the following XML document named "select" contains a prefix ("cal") associated with a specific URI (http://www.cohowinery.com/calendar/). O elemento contém um atributo chamado "Path" que contém o XPath.The element contains an attribute named "path" that contains the XPath.

<select xmlns:cal ="http://www.cohowinery.com/calendar/" path="cal:appointments/@startTime" />  

O esquema para isso pode ser:The schema for this might be:

<element name="select">  
   <complexType>  
      <simpleContent>  
         <attribute name="path" />  
      </simpleContent>  
   </complexType>  
</element>  

Sem o XmlNamespaceDeclarationsAttribute, a associação entre o prefixo e o namespace é perdida.Without the XmlNamespaceDeclarationsAttribute, the association between the prefix and the namespace is lost.

Para manter a associação entre o prefixo e o URI do namespace, adicione um membro que retorne um XmlSerializerNamespaces objeto e aplique o XmlNamespaceDeclarationsAttribute atributo ao membro, conforme mostrado no código C# a seguir e Visual Basic:To retain the association between the prefix and the namespace URI, add a member that returns an XmlSerializerNamespaces object and apply the XmlNamespaceDeclarationsAttribute attribute to the member, as shown in the following C# and Visual Basic code:

// C#  
public class Select {  
  [XmlAttribute] public string path;  
  [XmlNamespaceDeclarations] public XmlSerializerNamespaces xmlns;  
}  
' Visual Basic  
Public Class Select  
   <XmlAttribute> Public path As String  
   <XmlNamespaceDeclarations> Public xmlns As XmlSerializerNamespaces  
End Class  

Quando serializado, o esquema para o documento XML gerado contém o elemento de definição de esquema XML (XSD appinfo) chamado.When serialized, the schema for the generated XML document contains the XML Schema definition (XSD) element named appinfo. O elemento contém mais um elemento de metadados keepNamespaceDeclarationsdenominado, definido como o nome do membro que contém as declarações de namespace.The element further contains a metadata element named keepNamespaceDeclarations, set to the name of the member that contains the namespace declarations. O fragmento XML a seguir mostra o esquema:The following XML fragment shows the schema:

<xs:element name="select">  
   <xs:complexType>  
      <xs:annotation>   
         <xs:appinfo>  
          <keepNamespaceDeclarations>xmlns</keepNamespaceDeclarations>  
         </xs:appinfo>   
      </xs:annotation>   
      <xs:simpleContent>  
         <xs:attribute name="path" />  
      </xs:simpleContent>  
   </xs:complexType>  
</xs:element>  

Na desserialização, o xmlns campo contém um XmlSerializerNamespaces objeto que contém todas as definições de prefixo de namespace.On deserialization, the xmlns field contains an XmlSerializerNamespaces object that contains all namespace prefix definitions.

Na serialização, o usuário pode adicionar pares de namespace de prefixo ao XmlSerializerNamespaces objeto usando o Add método.On serialization, the user can add prefix-namespace pairs to the XmlSerializerNamespaces object using the Add method. Isso é mostrado no código a C# seguir e Visual Basic:This is shown in the following C# and Visual Basic code:

// C#  
using System;  
using System.IO;  
using System.Xml.Serialization;  
[XmlRoot("select")]  
public class Select {  
   [XmlAttribute]  
   public string xpath;  
   [XmlNamespaceDeclarations]  
   public XmlSerializerNamespaces xmlns;  
}  
public class Test {  
   public static void Main(string[] args) {  
      Select mySelect = new Select();  
      mySelect.xpath = "myNS:ref/@common:y";  
      mySelect.xmlns = new XmlSerializerNamespaces();  
      mySelect.xmlns.Add("MyNS", "myNS.tempuri.org");  
      mySelect.xmlns.Add("common", "common.tempuri.org");  
      XmlSerializer ser = new XmlSerializer(typeof(Select));  
      ser.Serialize(Console.Out, mySelect);  
   }  
}  
// Output:  
// <?xml version="1.0" encoding="IBM437"?>  
// <select xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
// xmlns:common="common.tempuri.org" xmlns:MyNS="myNS.tempuri.org" xpath="myNS:ref/@common:y" />  
' Visual Basic  
Imports System  
Imports System.IO  
Imports System.Xml.Serialization  
<XmlRoot("select")> _  
Public Class SelectPath  
   <XmlAttribute> _  
   Public xpath As String   
   <XmlNamespaceDeclarations> _  
   public xmlns As XmlSerializerNamespaces   
End Class  
Public Class Test   
   Public Shared Sub Main()   
      Dim mySelect As SelectPath = New SelectPath()  
      mySelect.xpath = "myNS:ref/@common:y"  
      mySelect.xmlns = New XmlSerializerNamespaces()  
      mySelect.xmlns.Add("MyNS", "myNS.tempuri.org")  
      mySelect.xmlns.Add("common", "common.tempuri.org")  
      Dim ser As XmlSerializer = New XmlSerializer(mySelect.GetType)  
      ser.Serialize(Console.Out, mySelect)  
   End Sub  
End Class  
'Output:  
' <?xml version="1.0" encoding="IBM437"?>  
' <select xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
' xmlns:common="common.tempuri.org" xmlns:MyNS="myNS.tempuri.org" xpath="myNS:ref/@common:y" />  

Observe também que o membro ao qual o atributo é aplicado contém apenas os pares de namespace de prefixo que pertencem ao elemento XML definido pela classe.Also note that the member to which the attribute is applied contains only the prefix-namespace pairs that belong to the XML element defined by the class. Por exemplo, no documento XML a seguir, somente o par de prefixo "Cal" é capturado, mas não o prefixo "x".For example, in the following XML document, only the prefix pair "cal" is captured, but not the "x" prefix. Para obter esses dados, adicione um membro com o XmlNamespaceDeclarationsAttribute à classe que representa o root elemento.To get that data, add a member with the XmlNamespaceDeclarationsAttribute to the class that represents the root element.

<?xml version="1.0"?>  
<x:root xmlns:x="http://www.cohowinery.com/x/">  
  <x:select xmlns:cal="http://www.cohowinery.com/calendar/" path="cal:appointments/@cal:startTime" />  
</x:root>  

Construtores

XmlNamespaceDeclarationsAttribute()

Inicializa uma nova instância da classe XmlNamespaceDeclarationsAttribute.Initializes a new instance of the XmlNamespaceDeclarationsAttribute class.

Propriedades

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Herdado de Attribute)

Métodos

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.Returns a value that indicates whether this instance is equal to a specified object.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para essa instância.Returns the hash code for this instance.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

Implantações explícitas de interface

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.Maps a set of names to a corresponding set of dispatch identifiers.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.Provides access to properties and methods exposed by an object.

(Herdado de Attribute)

Aplica-se a