Funções e operações XPath no mapeador BPEL
Contribuição e manutenção por VictoriaZhukovskaya e Alyona Stashkova
Dezembro de 2007
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
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 2: 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
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
| + |
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
| = |
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
| < |
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
Expressões booleanas
answer = true
Tabela 4: Operadores usados em expressões booleanas
| 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
| 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
Tabela 6: Uso de funções numéricas
| 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
Tabela 7: Uso de funções String
| 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 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
| 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
Tabela 9: Funções para trabalhar com uso de data e hora
| 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