Expressões incorporados no XML

Expressões incorporadas permitem criar literais XML que contêm expressões são avaliadas no time de execução.The syntax for an embedded expression is <%= expression %>, which is the same as the syntax used in ASP.NET.

Por exemplo, você pode criar um elemento XML literal, combinando expressões incorporadas com o conteúdo de 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>

If isbnNumber contém o número inteiro 12345 e contentcontém a seqüência de caracteres "Catálogo da semana", quando esse código é executado, o valor de book é:

<book category="fiction" isbn="12345">Book of the week</book>

Localização do expressão incorporado e validação

Expressões incorporadas podem aparecer somente em determinados locais dentro de expressões literal XML.Os controles de local de expressão que digitar 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 de Nothing

Nome do elemento XML

XName

Erro

Conteúdo do elemento XML

Object matriz de ou Object

Ignorado

Nome de atributo do elemento XML

XName

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

Valor de atributo do elemento XML

Object

Declaração de atributo ignorada

Atributo de elemento XML

XAttribute ou uma coleção de XAttribute

Ignorado

Elemento de raiz do documento XML

XElement ou uma coleção de um 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 atributo de 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 raiz do documento XML:

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

Se você habilitar Option Strict, o compilador verifica que amplia o tipo de cada expressão incorporada 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 time de execução.

Em locais onde o conteúdo é opcional, expressões que contenham incorporadasNothing são ignorados. Isso significa que você não precisa verificar esse elemento de conteúdo, os valores de atributos e elementos de matriz não são Nothing antes de usar um literal XML. Valores necessários, sistema autônomo nomes de elemento e atributo não podem ser Nothing.

Para obter mais informações sobre como usar uma expressão incorporada em um tipo específico de literal, consulte Literal de documento XML, Elemento Literal XML.

Regras de escopo

O compilador converte cada literal XML em uma telefonar de construtor para o tipo apropriado de literal.O conteúdo literal e expressões incorporadas em um literal XML são passadas sistema autônomo argumentos ao construtor.Isso significa que todos os Visual Basic elementos de programação disponível para um literal XML também estão disponível para seus expressões incorporadas.

Dentro de um literal XML, você pode acessar os prefixos de namespace de XML declarados com o Imports demonstrativo. Você pode declarar um novo prefixo de namespace de XML ou um prefixo de namespace de XML existente, em um elemento usando o de sombraxmlns atributo. O novo namespace está disponível a nós filho do elemento, mas não para literais em expressões incorporadas.

Observação:

Quando Você declara um namespace de XML por meio de prefixo o xmlns atributo namespace, o valor do atributo deve ser uma seqüência de caracteres constante. Nesse aspecto, usando o xmlns atributo é como usar o Imports demonstrativo para declarar um namespace de XML. Você não pode usar uma expressão incorporada para especificar o valor de namespace de XML.

Consulte também

Conceitos

Visão geral de literais XML

Referência

Literal de documento XML

Elemento Literal XML

Opção declaração estrito

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

Outros recursos

Criando XML em Visual Basic