Expressões incorporadas em XML (Visual Basic)
Expressões incorporadas permitem criar literais XML que contenham expressões são avaliadas no tempo de execução.A sintaxe de uma expressão incorporada é <%=expression%>, que é o mesmo, conforme a sintaxe usada em ASP.NET.
Por exemplo, você pode criar um elemento XML literal, combinando as expressões incorporadas com 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>
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>
Validação e o local de expressão incorporada
Expressões incorporadas podem aparecer apenas 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 elemento XML |
Erro |
|
Conteúdo do elemento XML |
Objectou matriz deObject |
Ignorado |
Nome do atributo de elemento XML |
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 |
XAttributeou uma coleção deXAttribute |
Ignorado |
Elemento de raiz do documento XML |
XElementou 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 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 precisará verificar o conteúdo de elemento, valores de atributos e elementos de matriz não são Nothing antes de usar um literal XML.Necessário valores, como, por exemplo, nomes de elemento e atributo, não podem ser Nothing.
Para obter mais informações sobre como usar uma expressão incorporada em um determinado tipo de literal, consulte Literal de documento XML (Visual Basic), Literal do elemento XML (Visual Basic).
Regras de escopo
O compilador converte cada literal XML em uma chamada de construtor para o tipo apropriado de literal.O conteúdo literal e expressões incorporadas em um literal XML são passadas como argumentos para o construtor.Isso significa que todos os Visual Basic elementos de programação disponíveis para um literal XML também estão disponíveis para seus expressões incorporadas.
Dentro de um literal XML, você pode acessar o namespace XML prefixos declarados com o Imports instrução.Você pode declarar um novo prefixo de namespace XML ou sombrear um prefixo de namespace XML existente, em um elemento usando o xmlns atributo.O novo namespace está disponível a nós filho do elemento, mas não literais XML em expressões incorporadas.
Observação |
---|
Quando você declara um prefixo de namespace XML usando o xmlns atributo namespace, o valor do atributo deve ser uma seqüência de caracteres constante.Em relação a isso, usando o xmlns atributo é como usar o Imports a instrução para declarar um espaço para nome XML.Você não pode usar uma expressão incorporada para especificar o valor de espaço para nome XML. |
Consulte também
Referência
Literal de documento XML (Visual Basic)
Literal do elemento XML (Visual Basic)
Importa instrução (.NET espaço para nome e tipo)
Conceitos
Visão geral do literais XML (Visual Basic)