Elemento Literal XML
Um literal que representa um objeto XElement.
<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>
Partes
<
Obrigatório.Abre a marca do elemento inicial.name
Obrigatório.Nome do elemento.O formato é uma das seguintes opções:Texto literal para o nome do elemento do formulário [ePrefix:] eName, onde:
Parte
Descrição
ePrefix
Opcional.Prefixo do namespace XML para o elemento.Deve ser um namespace para XML global que é definido com uma instrução Imports no arquivo ou em nível de projeto, ou um namespace de XML local que está definido nesse elemento ou num elemento pai.
eName
Obrigatório.Nome do elemento.O formato é uma das seguintes opções:
Texto literal.SeeNomes de elementos XML declarado e atributos.
Expressão incorporada do formulário <%=e NameExp%> .O tipo de eNameExp deve ser String ou um tipo que é implicitamente conversível para XName.
Embedded expression of the form <%= nameExp %>.O tipo de nameExp deve ser String ou um tipo que é implicitamente conversível para XName.Uma expressão incorporada não é permitida em um marca de fechamento de um elemento.
attributeList
Opcional.Lista de atributos declarado no literal.attribute [ attribute ... ]
Cada attribute possui uma das seguintes sintaxes:
Atribuição de atributos, do formulário [aPrefix:] aName=aValue, onde:
Parte
Descrição
aPrefix
Opcional.Prefixo para namespace XML para o atributo.Deve ser um namespace para XML global que está definido com uma instrução Imports,ou um namespace de XML local que está definido nesse elemento ou um elemento pai.
aName
Obrigatório.Nome do atributo.O formato é uma das seguintes opções:
Texto literal.SeeNomes de elementos XML declarado e atributos.
Embedded expression of the form <%= aNameExp %>.O tipo de aNameExp deve ser String ou um tipo que é implicitamente conversível para XName.
aValue
Opcional.Valor do atributo.O formato é uma das seguintes opções:
Texto literal, entre aspas.
Embedded expression of the form <%= aValueExp %>.Qualquer tipo é permitido.
Embedded expression of the form <%= aExp %>.
/>
Opcional.Indica que o elemento é um elemento vazio, sem conteúdo.>
Obrigatório.Finaliza a marca do elemento iniciante ou vazio.elementContents
Opcional.Conteúdo do elemento.content [ content ... ]
O content pode ser um dos seguintes:
Texto literal.Todos os espaço em branco no elementContents tornam-se significativos se houver qualquer texto literal.
Embedded expression of the form <%= contentExp %>.
Elemento Literal XML
Literal de comentário XML.SeeLiteral de comentário XML..
Literal XML de instrução de processamento.SeeLiteral de instrução de processamento de XML.
Literal XML CDATASeeLiteral XML CDATA.
</[name]>
Opcional.Representa o marca de fechamento para o elemento.O parâmetro opcional name não é permitido quando ele é o resultado de uma expressão incorporada.
Valor de retorno
Um objeto XElement.
Comentários
Você pode usar a sintaxe de literal de elemento XML para criar objetos XElement no seu código.
Observação: |
---|
Um literal XML pode abranger várias linhas sem Usando caracteres de continuação de linha.Isso recurso permite a copiar o conteúdo de um XML do documento e colá-lo diretamente em um Visual Basic programa. |
Expressões incorporadas do formulário <%=exp%> permitem que você adicione informações dinâmicas a um literal de elemento XML.Para obter mais informações, consulte Expressões incorporados no XML.
O compilador Visual Basic converte o literal de elemento XML em chamadas para o construtor XElement e, se ela for necessária, para o construtor XAttribute .
Namespaces XML
Prefixos de namespace XML são úteis quando você tem que criar literais XML com elementos do mesmo namespace muitas vezes no código.Você pode usar prefixos globias de namespace XML, que você define usando a instrução Imports,ou prefixos locais, que você define usando a sintaxe de atributo xmlns:xmlPrefix = "xmlNamespace".Para obter mais informações, consulte Declaração Imports (Tipo e Namespace .NET).
De acordo com as regras de escopo para namespace XML, prefixos locais têm precedência sobre prefixos globais.No entanto, se um literal XML define um namespace XML, esse namespace não está disponível para expressões que apareçam em uma expressão incorporada.A expressão incorporada pode acessar somente o namespace de XML global.
O compilador Visual Basic converte cada namespace para XML global que é usado por um XML literal em uma definição de namespace local no código gerado.Namespaces de XML globais que não são usados não aparecem no código gerado.
Exemplo
O exemplo a seguir mostra como criar um elemento XML simples que possui dois elementos aninhados vazios.
Dim test1 As XElement = _
<outer>
<inner1></inner1>
<inner2/>
</outer>
Console.WriteLine(test1)
O exemplo exibe o seguinte texto.Observe que o literal preserva a estrutura dos elementos vazios.
<outer>
<inner1></inner1>
<inner2 />
</outer>
O exemplo a seguir mostra como usar expressões incorporadas para nomear um elemento e criar atributos.
Dim elementType As String = "book"
Dim attributeName1 As String = "year"
Dim attributeValue1 As Integer = 1999
Dim attributeName2 As String = "title"
Dim attributeValue2 As String = "My Book"
Dim book As XElement = _
<<%= elementType %>
isbn="1234"
<%= attributeName1 %>=<%= attributeValue1 %>
<%= New XAttribute(attributeName2, attributeValue2) %>
/>
Console.WriteLine(book)
Esse código exibe o texto a seguir:
<book isbn="1234" year="1999" title="My Book" />
O exemplo a seguir declara ns como um prefixo de namespace para XML.Em seguida, ele usa o prefixo do namespace para criar um XML literal e exibe o formulário 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
Esse código exibe o texto a seguir:
<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 de namespace para XML global em uma definição de prefixo para o namespace para 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.
Consulte também
Conceitos
Nomes de elementos XML declarado e atributos
Expressões incorporados no XML
Referência
Declaração Imports (Tipo e Namespace .NET)