Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um literal que representa um XElement objeto.
Sintaxe
<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>
Partes
<Obrigatório Abre a marca de elemento inicial.
nameObrigatório Nome do elemento. O formato é um dos seguintes:
Texto literal para o nome do elemento, do formulário
[ePrefix:]eName, em que:Parte Descrição ePrefixOpcional. Prefixo de namespace XML para o elemento. Deve ser um namespace XML global definido com uma instrução Importsno arquivo ou no nível do projeto, ou um namespace XML local definido neste elemento ou um elemento pai.eNameObrigatório Nome do elemento. O formato é um dos seguintes:
- Texto literal. Consulte nomes de elementos e atributos XML declarados.
- Expressão inserida do formulário<%= eNameExp %>. O tipo deveeNameExpserStringou um tipo que seja implicitamente conversível para XName.Expressão inserida do formulário
<%= nameExp %>. O tipo devenameExpserStringou um tipo implicitamente conversível para XName. Uma expressão inserida não é permitida em uma marca de fechamento de um elemento.
attributeListOpcional. Lista de atributos declarados no literal.
attribute [ attribute ... ]Cada
attributeuma tem uma das seguintes sintaxes:Atribuição de atributo, do formulário
[aPrefix:]aName=aValue, em que:Parte Descrição aPrefixOpcional. Prefixo de namespace XML para o atributo. Deve ser um namespace XML global definido com uma instrução Importsou um namespace XML local definido neste elemento ou um elemento pai.aNameObrigatório Nome do atributo . O formato é um dos seguintes:
- Texto literal. Consulte nomes de elementos e atributos XML declarados.
- Expressão inserida do formulário<%= aNameExp %>. O tipo deveaNameExpserStringou um tipo que seja implicitamente conversível para XName.aValueOpcional. Valor do atributo . O formato é um dos seguintes:
- Texto literal, entre aspas.
- Expressão inserida do formulário<%= aValueExp %>. Qualquer tipo é permitido.Expressão inserida do formulário
<%= aExp %>.
/>Opcional. Indica que o elemento é um elemento vazio, sem conteúdo.
>Obrigatório Termina a marca de elemento inicial ou vazia.
elementContentsOpcional. Conteúdo do elemento.
content [ content ... ]Cada
contentum pode ser um dos seguintes:Texto literal. Todo o espaço em
elementContentsbranco se torna significativo se houver algum texto literal.Expressão inserida do formulário
<%= contentExp %>.Literal do elemento XML.
Literal de comentário XML. Consulte o literal de comentário XML.
Literal de instrução de processamento XML. Consulte a instrução de processamento XML literal.
Literal CDATA XML. Consulte o Literal da CDATA XML.
</[name]>Opcional. Representa a marca de fechamento do elemento. O parâmetro opcional
namenão é permitido quando é o resultado de uma expressão inserida.
Valor de retorno
Um XElement objeto.
Observações
Você pode usar a sintaxe literal do elemento XML para criar XElement objetos em seu código.
Observação
Um literal XML pode abranger várias linhas sem usar caracteres de continuação de linha. Esse recurso permite que você copie o conteúdo de um documento XML e cole-o diretamente em um programa do Visual Basic.
Expressões inseridas do formulário <%= exp %> permitem adicionar informações dinâmicas a um literal de elemento XML. Para obter mais informações, consulte Expressões Inseridas em XML.
O compilador do Visual Basic converte o literal do elemento XML em chamadas para o XElement construtor e, se necessário, o XAttribute construtor.
Namespaces de XML
Prefixos de namespace XML são úteis quando você precisa criar literais XML com elementos do mesmo namespace muitas vezes no código. Você pode usar prefixos de namespace XML globais, que você define usando a Imports instrução ou prefixos locais, que você define usando a sintaxe do xmlns:xmlPrefix="xmlNamespace" atributo. Para obter mais informações, confira Instrução Imports (namespace de XML).
De acordo com as regras de escopo para namespaces XML, os prefixos locais têm precedência sobre prefixos globais. No entanto, se um literal XML definir um namespace XML, esse namespace não estará disponível para expressões que aparecem em uma expressão inserida. A expressão inserida pode acessar apenas o namespace XML global.
O compilador do Visual Basic converte cada namespace XML global que é usado por um literal XML em uma definição de namespace local no código gerado. Namespaces XML globais que não são usados não aparecem no código gerado.
Exemplo 1
O exemplo a seguir mostra como criar um elemento XML simples que tem dois elementos vazios aninhados.
Dim test1 As XElement =
<outer>
<inner1></inner1>
<inner2/>
</outer>
Console.WriteLine(test1)
O exemplo exibe o texto a seguir. Observe que o literal preserva a estrutura dos elementos vazios.
<outer>
<inner1></inner1>
<inner2 />
</outer>
Exemplo 2
O exemplo a seguir mostra como usar expressões inseridas para nomear um elemento e criar atributos.
Dim elementType = "book"
Dim authorName = "My Author"
Dim attributeName1 = "year"
Dim attributeValue1 = 1999
Dim attributeName2 = "title"
Dim attributeValue2 = "My Book"
Dim book As XElement =
<<%= elementType %>
isbn="1234"
author=<%= authorName %>
<%= attributeName1 %>=<%= attributeValue1 %>
<%= New XAttribute(attributeName2, attributeValue2) %>
/>
Console.WriteLine(book)
Este código exibe o seguinte texto:
<book isbn="1234" author="My Author" year="1999" title="My Book" />
Exemplo 3
O exemplo a seguir declara ns como um prefixo de namespace XML. Em seguida, ele usa o prefixo do namespace para criar um literal XML e exibe a forma final do elemento.
' Place Imports statements at the top of your program.
Imports <xmlns:ns="http://SomeNamespace">
Class TestClass1
Shared Sub TestPrefix()
' Create test using a global XML namespace prefix.
Dim inner2 = <ns:inner2/>
Dim test =
<ns:outer>
<ns:middle xmlns:ns="http://NewNamespace">
<ns:inner1/>
<%= inner2 %>
</ns:middle>
</ns:outer>
' Display test to see its final form.
Console.WriteLine(test)
End Sub
End Class
Este código exibe o seguinte texto:
<ns:outer xmlns:ns="http://SomeNamespace">
<ns:middle xmlns:ns="http://NewNamespace">
<ns:inner1 />
<inner2 xmlns="http://SomeNamespace" />
</ns:middle>
</ns:outer>
Observe que o compilador converteu o prefixo do namespace XML global em uma definição de prefixo para o namespace XML. O <elemento ns:middle> redefine o prefixo de namespace XML para o <elemento ns:inner1> . No entanto, o <elemento ns:inner2> usa o namespace definido pela instrução Imports .