Expressões inseridas no XML (Visual Basic)

Expressões incorporadas permitem criarliteraisXML que contenham expressões são avaliadas em tempo de execução. A sintaxe de uma expressão incorporada é <%= expression %>, que é o mesmo que a sintaxe usada em ASP.NET.

Por exemplo, você pode criar um elemento XML literal, combinando as expressões incorporadas com o conteúdodo texto literal.

Dim isbnNumber As String = "12345"
Dim modifiedDate As String = "3/5/2006"
Dim book As XElement = 
    <book category="fiction" isbn=<%= isbnNumber %>>
        <modifiedDate><%= modifiedDate %></modifiedDate>
    </book>

Se isbnNumber contém o inteiro 12345 e modifiedDate contém a data de 3/5/2006, quando esse código é executado, o valor de book é:

<book category="fiction" isbn="12345">
  <modifiedDate>3/5/2006</modifiedDate>
</book>

Incorporado de expressão Local e validação

Expressões incorporadas podem aparecer somente em determinados locais dentro de expressões de literais XML . Os controles de local de expressão que digita a expressão podem retornar e como Nothing é tratado. A tabela a seguir descreve os locais permitidos e os tipos de expressões incorporadas.

Local no literal

Tipo de expressão

Tratamento deNothing

Nome do elementoXML

XName

Error

conteúdodo elementoXML

Objectou matriz deObject

Ignorado

Nome de atributo do elementoXML

XName

Erro, a menos que o valor do atributo também éNothing

Valor de atributo do elementoXML

Object

declaração de atributo ignorado

atributodo elementoXML

XAttributeou uma coleção deXAttribute

Ignorado

Elemento de raiz do documentoXML

XElementou uma coleção de uma XElement objeto e um número arbitrário de XProcessingInstruction e XComment objetos

Ignorado

  • Exemplo de uma expressão incorporada em um nome de elemento XML :

    Dim elementName As String = "contact"
    Dim contact1 As XElement = <<%= elementName %>/>
    
  • Exemplo de uma expressão incorporada no conteúdo de um elemento XML :

    Dim contactName As String = "Patrick Hines"
    Dim contact2 As XElement = 
      <contact><%= contactName %></contact>
    
  • Exemplo de uma expressão incorporada em um nome de atributo do elemento XML :

    Dim phoneType As String = "home"
    Dim contact3 As XElement = 
      <contact <%= phoneType %>="206-555-0144"/>
    
  • Exemplo de uma expressão incorporada em um valor de atributo do elemento XML :

    Dim phoneNumber As String = "206-555-0144"
    Dim contact4 As XElement = 
      <contact home=<%= phoneNumber %>/>
    
  • Exemplo de uma expressão incorporada em um atributodo elemento XML :

    Dim phoneAttribute As XAttribute = 
      New XAttribute(XName.Get(phoneType), phoneNumber)
    Dim contact5 As XElement = 
      <contact <%= phoneAttribute %>/>
    
  • Exemplo de uma expressão incorporada em um elemento de raiz do documento XML :

    Dim document As XDocument = 
      <?xml version="1.0"?><%= contact1 %>
    

Se você habilitar Option Strict, o compilador verifica que o tipo de cada expressão incorporada amplia para o tipo necessário. A única exceção é para o elemento raiz de um documento XML , que é verificado quando o código é executado. Se você compilar sem Option Strict, você pode incorporar expressões do tipo Object e seu tipo é verificado em tempo de execução.

Em locais onde o conteúdo é opcional, expressões incorporadas que contêm Nothing são ignoradas. Isso significa que você não tem que verificar que o elemento conteúdo, os valores de atributo e elementos de matriz não são Nothing antes de usar um literal XML . ValoresNecessário , como nomes de elemento e atributo , não podem ser Nothing.

Para obter mais informações sobre o uso de uma expressão incorporada em um determinado tipo de literal, consulte Literal de documento XML (Visual Basic), Literal de elemento XML (Visual Basic).

Regras de escopo

O compilador converte cada XML literal em uma chamada de construtor para o tipo apropriado de literal. O literal de conteúdo e expressões incorporadas em um XML literal são passadas como argumentos para o construtor. Isso significa que todos os Visual Basic elementos de programação disponíveis para um XML literal estão também disponíveis para suas expressões incorporadas.

Dentro de um XML literal, você pode acessar os prefixos denamespace XMLdeclarados com o Importsdemonstrativo. Você pode declarar um novo prefixo denamespace XMLou sombrear um prefixo denamespace XMLexistente, em um elemento usando o xmlnsatributo. O novo namespace está disponível para os nós filho do elemento, mas não para os literais XML em expressões incorporadas.

ObservaçãoObservação

Quando você declara um prefixo denamespace XMLusando o xmlnsoatributonamespace, o atributo de valor deve ser uma seqüência de caracteres constante. Em relação a isso, usando o xmlnsatributo é como usar o Importsdedemonstrativo para declarar umnamespacede XML. É possível usar uma expressão incorporada para especificar o valor denamespace XML.

Consulte também

Referência

Literal de documento XML (Visual Basic)

Literal de elemento XML (Visual Basic)

Opção declaração estrito

Declaração Imports (Tipo e Namespace .NET)

Conceitos

Visão geral dos literais XML (Visual Basic)

Outros recursos

Criando XML em Visual Basic