XMLOut
Início  Anterior  Próximo

minilogowi


seta Grid XMLOut



O grid XMLOut é usado para a geração de conteúdo XML tendo como fonte de dados uma consulta feita a um banco de dados. A estrutura XML a ser gerada segue o seguinte esquema baseado nas definições dos campos:

  [<valor-do-campo-HEADER>]
  [<valor-do-campo-ROOT>]
    [<valor-do-campo-CHILD>
    |conteúdo-do-arquivo-do-campo-MODELO|
    </valor-do-campo-CHILD>]
  </valor-do-campo-ROOT>


Nesta estrutura os elementos HEADER e ROOT apenas são processados uma vez enquanto que o elemento CHILD é processado tantas vezes quanto haja dados ainda a serem recuperados do banco de dados.

Para exemplificar caso quiséssemos gerar um conteúdo XML como o que segue logo abaixo:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE NoRaiz [
  <!ELEMENT NoRaiz (#PCDATA)>
  <!ENTITY nbsp &#160;>
  <!ENTITY cr &#13;>
  <!ENTITY lf &#10;>
]>

<NoRaiz>
  <NoFilho Id="0">
    <Elemento1>valor0.1</Elemento1>
    <Elemento2>valor0.2</Elemento2>
    <Elemento3>valor0.3</Elemento3>
  </NoFilho>
  <NoFilho Id="1">
    <Elemento1>valor1.1</Elemento1>
    <Elemento2>valor1.2</Elemento2>
    <Elemento3>valor1.3</Elemento3>
  </NoFilho>
  <NoFilho Id="2">
    <Elemento1>valor2.1</Elemento1>
    <Elemento2>valor2.2</Elemento2>
    <Elemento3>valor2.3</Elemento3>
  </NoFilho>
</NoRaiz>



nós usaríamos as seguintes definições:

Nome do Campo
Valor
Cabeçalho
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE |wi.xml.root| [
  <!ELEMENT NoRaiz (#PCDATA)>
  <!ENTITY nbsp &#160;>
  <!ENTITY cr &#13;>
  <!ENTITY lf &#10;>
]>
 
Root
NoRaiz

Child
NoFilho Id="|rowid|"

Conteúdo
<Elemento1>|valor1|</Elemento1>
<Elemento2>|valor2|</Elemento2>
<Elemento3>|valor3|</Elemento3>



Logo abaixo segue a relação dos campos que são utilizados para se definir a estrutura do conteúdo que será montada pelo grid XMLOut.


O campo
Banco de Dados indica o identificador de um dos servidores de bancos de dados definidos para o projeto que será usado para executar o comando.

O rótulo
Cabeçalho é um link para a página de edição do cabeçalho do conteúdo XML a ser gerado. O cabeçalho de um arquivo XML deverá possuir no mínimo uma entrada semelhante à:

<?xml version="1.0" encoding="ISO-8859-1"?>

Ainda no cabeçalho, opcionalmente, poderá ser definido qual o prólogo desse conteúdo XML.

O campo
Child define como será a estrutura dos elementos filhos.

O rótulo
Conteúdo é um link para a página de edição do conteúdo XML que será populado e gerado de acordo com o resultado vindo da consulta à fonte de dados.

O campo
Descrição serve para que o desenvolvedor da aplicação escreva um breve comentário sobre a ação a ser executada pelo componente em questão.

O campo
Filtrar define quais os caracteres que deverão ser filtrados do conteúdo das variáveis de sessão do WebIntegrator que estão sendo referenciadas no campo SQL antes da execução do comando. O objetivo é impedir que certos caracteres sejam passados para o comando a ser executada pelo banco de dados evitando que assim que o resultado do comando não seja intencionalmente alterado.

Como exemplo suponha que haja a instrução
SELECT * FROM tabCadastros WHERE nome LIKE |tmp.nome|% AND publico = 1 e o usuário da aplicação ao preencher o formulário coloque no campo correspondente à variável tmp.nome um valor como % OR nome = . Se o campo Filtrar não estiver definido com os caracteres % e o WebIntegrator irá processar a seguinte instrução SELECT * FROM cadastros WHERE nome LIKE % OR nome = % AND publico = 1 retornando como resultado todos as linhas da tabela.

A opção
Gerar indica se o WebIntegrator irá gerar o modelo simples do grid baseado nas configurações atuais. O modelo só será criado após a gravação da definição. Esse campo apenas se refere aos grids que utilizem o modelo simples.

O campo
Identação indica a quantidade de espaços em branco que será utilizada para realizar a identação do conteúdo XML gerado.

O campo
Identificador serve para que o desenvolvedor entre com um identificador único para o componente de página ou de projeto que está sendo definido. Será através desse identificador que o componente e/ou seus valores serão referenciado nas páginas do projeto.

A depender do componente que se estiver definindo para que o mesmo seja referenciado numa página será necessário o acréscimo de um prefixo como é o caso dos componentes Grid e Combo, nesses dois casos é obrigatório o uso dos prefixos
grid. e combo. antes dos respectivos identificadores para que o conteúdo correto seja exibido.

O campo
Root define como será a estrutura do elemento raiz do conteúdo XML a ser gerado.

O campo
SQL contém o comando que será enviado para ser processado pelo banco de dados. Caso o comando seja composto por mais de uma instrução SQL separe-as por ponto-e-vírgula.

No componente Upload de Banco de Dados o valor da coluna relativo ao conteúdo deverá ser referenciado por um sinal de interrogação, exemplo:
INSERT INTO MinhaTabela (arquivo, conteudo) VALUES (|tmp.arquivo|, ?).

A estrutura do comando a ser executado é dependente do banco de dados, podendo ser feitas chamadas a stored procedures, rotinas M (através do MJava), métodos de objetos do CachéFactory, execução de instruções SQL, etc. Para saber maiores detalhes como fazer essas chamadas clique aqui.