FeaturesPluginsDocs & SupportCommunityPartners

Funções e operações XPath no mapeador BPEL

O mapeador BPEL é uma ferramenta para trabalho visual com expressões XPath. O mapeador BPEL permite que você trabalhe com expressões, copiando variáveis, elementos XSD e atributos XSD. Essa ferramenta permite que você trabalhe com predicados e use funções XPath.
O editor de expressões XPath é usado para trabalhar com alguns elementos do processo comercial. As expressões permitidas seguintes são definidas para cada elemento: expressões de cópia, expressões de condição ou uso de funções de tempo.

Conteúdo

O conteúdo desta página se aplica ao NetBeans 6.0

Interface do usuário

O mapeador BPEL possui uma interface do usuário intuitiva e fácil de usar. A janela Mapeador BPEL aparece quando você seleciona um elemento de diagrama BPEL que pode conter expressões XPath. O mapeador BPEL é usado para os seguintes elementos do processo comercial: Atribuir, If, elemento ElseIf de If, ForEach, RepeatUntil, While e Aguardar. Cada elemento possui expressões permitidas, que incluem expressões de cópia, expressões de condição, uso de função de tempo. As expressões de condição são definidas para If, elemento ElseIf de If, elementos While e RepeatUntil. As expressões de cópia são definidas para o elemento Atribuir. As expressões de duração são definidas para o elemento Aguardar. E as expressões de condição com parâmetros são definidas para o elemento ForEach. Usando a interface do mapeador BPEL você pode fazer cálculos, atribuindo as operações XPath e as funções listadas acima a variáveis locais e globais, elementos e atributos XSD, e partes.

Cada elemento do processo comercial listado acima possui o item Mostrar mapeador BPEL no menu de contexto na visualização Design do BPEL Designer. O menu de contexto fica disponível quando você fecha a janela Mapeador BPEL. Você também pode abrir a janela do editor de expressões XPath, escolhendo Janela > Mapeador BPEL no menu principal.

Você pode editar expressões XPath no texto de origem de um arquivo BPEL como mostrado na Figura 1. O mapeador BPEL exibe as modificações corretas, como mostrado na Figura 2.

Figura 1: Visualização Código-fonte do arquivo BPEL

Visualização Código-fonte do arquivo BPEL
Clique para ampliar

Figura 2: Operação de adição para Assign1

Operação de adição para Assign1

início

Funções e operações usadas no mapeador BPEL

O mapeador BPEL suporta a versão 1.0 da linguagem XML Path (XPath 1.0). A linguagem XPath é uma parte principal da plataforma XML. A linguagem XPath desenvolvida pelo consórcio W3C é uma linguagem que lida com as partes estruturais de um documento XML. A linguagem possui funções para manipular strings, números e valores booleanos. A construção sintática principal de XPath é uma expressão. Como um resultado do processamento de uma expressão, um objeto que seja de um dos seguintes tipos fundamentais aparecerá:
  • conjunto de nós - conjunto desordenado de nós sem duplicatas
  • booleano - verdadeiro ou falso
  • número - número com um ponto flutuante
  • string - seqüência de símbolos UCS
A linguagem XPath suporta expressões de número, operações de igualdade e de comparação, e expressões booleanas. O mapeador BPEL suporta parte de operações e funções XPath.

Expressões e operações numéricas

O menu Operador do mapeador BPEL aparece como mostrado abaixo.

Figura 3: O menu Operador do mapeador BPEL

O menu Operador do Mapegador BPEL

Expressões numéricas

As expressões numéricas são usadas para realizar operações aritméticas com números. Operações de igualdade são usadas para verificar a igualdade de dois valores. Qualquer número na linguagem XPath possui uma representação com um ponto flutuante. Um número pode usar qualquer valor no formato de 64 bits de IEEE 754 DP. Isso inclui um valor "Not-a-Number" (NaN) especial, infinitos positivos e negativos, e nulos positivos e negativos.

Tabela 1: Operadores usados em expressões numéricas

Operador Descrição Exemplo Resultado
+ Adição de dois números 2 + 3 5
- Subtração de um número de outro
5 - 2 3
* Multiplicação de um número por outro número
2 * 5 10
div Divisão de um número por outro número
10 div 2 5
módulo Resto da divisão de um número por outro número
11 mod 3 2
- Menos unário -2 -2

Operações de igualdade

Observe que "length equal 5.50" é o dado inicial da tabela abaixo.

Tabela 2: Operadores usados em operações de igualdade

Operador Descrição Exemplo Resultado
= Operação de igualdade length=5.50 true
!= Operação de desigualdade length!=5.50 false

Operações de comparação

Observe que "length equal 5.50" é o dado inicial da tabela abaixo.

Tabela 3: Operadores usados em operações de comparação

Operador Descrição Exemplo Resultado
< Menor length<5.50 false
<= Menor ou igual length<=5.50 true
> Maior length>5.50 false
>= Maior ou igual length>=5.50 true

Observação: se nenhum dos objetos sujeitos a comparação for um conjunto de nós, e se o operador for <=, <, => ou >, os objetos comparados são primeiro convertidos em números e depois comparados.


início

Expressões e funções booleanas

O menu Booleano do mapeador BPEL é mostrado abaixo.

Figura 4: O menu Booleano do mapeador BPEL

O menu Booleano do mapeador BPEL

Expressões booleanas

answer = true

Tabela 4: Operadores usados em expressões booleanas

Operador Descrição Exemplo Resultado
ou Retorna true se pelo menos um dos operandos booleanos for igual a true false() ou answer true
e Retorna true se os operandos Booleanos forem iguais a true true() e answer true

Funções booleanas

Observe que "answer" é igual a "true" e a linguagem do nó de contexto xml:lang="en" são os dados iniciais da tabela abaixo.


Tabela 5: Uso de funções booleanas

Nome Descrição Exemplo Resultado
booleano Converte um argumento em um tipo booleano boolean(2) true
false Retorna false false() ou answer true
true Retorna false true() ou answer true
not Retorna negação not(false()) true
lang
Retorna true ou false dependendo se a linguagem do nó de contexto definida nos atributos xml:lang for a mesma linguagem (ou sublinguagem) que aquela definida na string do atributo lang('en') true

início

Funções numéricas

O menu Número do mapeador BPEL é mostrado abaixo.

Figura 5: O menu Número do mapeador BPEL

O menu Número do mapeador BPEL

Tabela 6: Uso de funções numéricas

Nome Descrição Exemplo Resultado
arredondar Arredonda para o inteiro mais próximo arredondar (3.14) 3
teto A função retorna o menor inteiro que seja maior ou igual ao argumento teto (3.14) 4
chão A função retorna o maior inteiro que seja menor ou igual ao argumento chão (3.14) 3
número Converte um argumento em um número number(length) Valor numérico do elemento length
soma A função converte cada nó de um conjunto de nós para um número e soma-os sum(/apple/count) Soma de todos os nós contagem
Literal de número Número (em XPath, um número possui uma representação com um ponto flutuante) 1.2 1.2

início

Funções de string

O menu String do mapeador BPEL é mostrado abaixo.

Figura 6: O menu String do mapeador BPEL

O menu String do mapeador BPEL

Tabela 7: Uso de funções String

Nome Descrição Exemplo Resultado
string Converte um argumento em uma string string(3.14) '3.14'
tamanho da string Retorna o tamanho da string string-lenght('MyString') 8
substring Retorna a parte da string do primeiro argumento que começa com a posição definida pelo segundo argumento e possui o tamanho definido no terceiro argumento substring('1234',2,3) '234'
substring após Retorna a parte da string do primeiro argumento que segue a primeira ocorrência da string do segundo argumento substring-after('20-30','-') '30'
substring antes Retorna a parte da string do primeiro argumento que precede a primeira ocorrência da string do segundo argumento substring-before('14-30','-') '14'
contém Retorna true se a primeira string contiver a segunda

contains('XPath','X')

true
começa com Retorna true se a primeira string começa com a segunda starts-with('XPath','X') true
concat Retorna a concatenação de duas strings concat('String1 ','String2') 'String1 String2'
normalizar espaço Retorna a string do argumento com normalização de símbolos de espaço normalize-space('  1     2    ') '1 2'
traduzir Retorna a string do primeiro argumento onde os símbolos definidos na string do segundo argumento são substituídos pelos símbolos da string do terceiro argumento em uma posição correspondente translate('black','kcalb','etihw') 'branco'
Literal de string Constante string; as strings são formadas por uma seqüência de símbolos nulos e outros definidos na referência XML 'String' 'String'

início

Funções de conjuntos de nós

O menu Nós do mapeador BPEL é mostrado abaixo.

Figura 7: O menu Nós do mapeador BPEL

O menu Nós do mapeador BPEL

O código seguinte é uma amostra de uma mensagem SOAP.

Exemplo de código 1: Amostra de mensagem SOAP
<soapenv:Envelope
xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:syn="http://xml.netbeans.org/schema/SynchronousSample">

  <soapenv:Body>
    <syn:typeA>
      <syn:paramA>String1</syn:paramA>
      <syn:paramA>String2</syn:paramA>
      <syn:paramA>String3</syn:paramA>
      </syn:typeA>
  </soapenv:Body>
</soapenv:Envelope>


Tabela 8: Uso das funções de conjunto de nós

Nome Descrição Exemplo Resultado
contagem Retorna o número de conjuntos de nós no argumento count($inputVar.inputType/xs:paramA) 3
último Retorna o número do último elemento em uma multidão $inputVar.inputType/paramA[last()] String3
posição Retorna a posição de um elemento em uma multidão
nome local
Retorna o nome da primeira marca em uma multidão sem namespace local-name($inputVar.inputType/xs:paramA) paramA
nome Retorna o nome completo da primeira marca em uma multidão  name($inputVar.inputType/xs:paramA) syn:paramA
uri do namespace Retorna uma referência à url que define o namespace namespace-uri($inputVar.inputType/xs:paramA) http://xml.netbeans.org/schema/SynchronousSample

início

Funções para trabalhar com data e hora

O mapeador BPEL permite que você defina constantes e use funções de hora com a ajuda de uma interface gráfica.

O menu Data-hora do mapeador BPEL é mostrado abaixo.

Figura 8: O menu Data-hora do mapeador BPEL

O menu Data-hora do mapeador BPEL

Tabela 9: Funções para trabalhar com uso de data e hora

Nome Descrição
hora atual Retorna a hora atual
data atual Retorna a data atual
data-hora atual Retorna a data e a hora atuais
Literal de duração String; permite a definição do intervalo de hora no formato 'P1Y2M3DT4H5M6S'.

início

Resumo

A representação gráfica oferece análise fácil e visão das expressões XPath. O mapeador BPEL é uma ferramenta que permite que você crie e edite expressões XPath em um modo visual. A interface gráfica do mapeador BPEL permite que você defina constantes, use funções de tempo e trabalhe com predicados. A interface do mapeador BPEL permite que você realize cálculos usando operações e funções XPath listadas neste artigo sobre variáveis locais e globais, elementos e atributos XSD, e partes.


início

Veja também



início


Esta página foi modificada pela última vez em23 de novembro de 2007

início

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by