COBOL - XML PARSE - Parsing XML documents with validation



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COBOL - XML PARSE - Parsing XML documents with validation
Enterprise COBOL for z/OS 6.3.0, Language Reference

A validação de um documento XML determina se a estrutura e o conteúdo do documento estão em conformidade com um conjunto de regras.
No Enterprise COBOL, as regras são expressas em um esquema XML, que é essencialmente um blueprint para uma classe de documentos.

Para validar documentos XML durante a análise, use a frase VALIDATING da instrução XML PARSE.
Para fazer isso, você deve compilar seu programa usando a opção de compilador XMLPARSE (XMLSS).

Você pode validar documentos XML apenas em um esquema XML.

No Enterprise COBOL, um esquema usado para validação de XML deve estar em um formato pré-processado conhecido como Representação de Esquema Otimizada ou OSR.
Para gerar um esquema no formato OSR a partir de um esquema em formato de texto, use o comando zs OS UNIX xsdosrg, que chama o gerador OSR fornecido pelo z/OS System Services.
(Como alternativa, você pode chamar o gerador OSR programaticamente.
Para obter detalhes, consulte a referência relacionada sobre os Serviços de Sistema z/OS XML.)

Por exemplo, para converter o esquema de formato de texto no arquivo item.xsd em um esquema no formato pré-processado no arquivo item.osr, é possível usar o seguinte comando do z/OS UNIX:

xsdosrg -v -o /u/HLQ/xml/item.osr /u/HLQ/xml/item.xsd

Use uma das duas formas da frase VALIDATING, dependendo do local do esquema pré-processado:

  • Em um formulário, você usa a palavra-chave FILE e especifica um nome de esquema XML.
    Nesse caso, o esquema deve estar em um conjunto de dados MVS ou em um arquivo z/OS UNIX.
  • No outro formulário, você especifica o identificador de um item de dados que contém o esquema.

Se você usar a palavra-chave FILE e especificar um nome de esquema XML, a biblioteca de tempo de execução COBOL recuperará automaticamente o esquema durante a execução da instrução XML PARSE.
O seguinte fragmento de código mostra este método de especificação de validação:

           XML PARSE document-item
               VALIDATING WITH FILE schema-name
               PROCESSING PROCEDURE xml-event-handler
            ON EXCEPTION
               DISPLAY 'Document has an error.'
               GOBACK
            NOT ON EXCEPTION
               DISPLAY 'Document is valid.'
           END-XML

Para associar um nome de esquema XML ao arquivo externo que contém o esquema, codifique a cláusula XML-SCHEMA no parágrafo SPECIAL-NAMES, especificando uma palavra literal ou definida pelo usuário para identificar o arquivo.

Por exemplo, você pode associar o nome do esquema XML schema-name mostrado no fragmento acima ao ddname DDSCHEMA, codificando o ddname como um literal na cláusula XML-SCHEMA da seguinte maneira:

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SPECIAL-NAMES.
                   XML-SCHEMA schema-name IS 'DDSCHEMA'.

Para executar o programa, você pode associar ddname DDSCHEMA ao arquivo z/OS UNIX item.osr, codificando uma instrução DD da seguinte maneira:

//GO.DDSCHEMA DD PATH='/u/HLQ/xml/item.osr'

Ou você pode usar um comando análogo TSO ALLOCATE.

Como alternativa, DDSCHEMA no exemplo acima pode ser o nome de uma variável de ambiente que identifica o arquivo externo por meio de uma opção DSN que especifica um conjunto de dados MVS ou uma opção PATH que especifica um arquivo UNIX do z/OS.

Se o seu esquema estiver em um conjunto de dados MVS, o conjunto de dados poderá ser qualquer conjunto de dados sequencial (por exemplo, QSAM fixo bloqueado ou variável bloqueado ou VSAM ESDS).

Para obter detalhes adicionais sobre como associar um nome de esquema XML ao arquivo externo que contém o esquema, consulte a referência relacionada sobre a cláusula XML-SCHEMA.

Restrição:
A validação XML usando a palavra-chave FILE não é suportada no CICS®.

A recuperação automática que ocorre quando você usa a palavra-chave FILE é conveniente.
Mas se você tiver vários documentos XML do mesmo tipo para validar, a leitura do esquema na memória uma vez e a reutilização do esquema para cada um dos documentos fornecerão melhor desempenho do que a recuperação automática.
Nesse caso, você usa a outra forma da frase VALIDATING, na qual especifica um identificador que faz referência a um item de dados alfanuméricos que contém o esquema XML.

Por exemplo:

           XML PARSE document-item
               VALIDATING WITH xmlschema
               PROCESSING PROCEDURE xml-event-handler
            ON EXCEPTION
               DISPLAY 'Document has an error.'
               GOBACK
            NOT ON EXCEPTION
               DISPLAY 'Document is valid.'
           END-XML

Leia o esquema pré-processado no item de dados, por exemplo, usando instruções COBOL normais.

Para obter mais informações sobre este formulário da frase VALIDATING, consulte a referência relacionada sobre a instrução XML PARSE.

Durante a análise com validação, os eventos XML normais são retornados até que ocorra uma exceção devido a um erro de validação ou erro de formação.
Se um documento XML não for válido, o analisador sinaliza uma exceção XML e passa o controle para o procedimento de processamento com o registro especial XML-EVENT contendo 'EXCEPTION' e o registro especial XML-CODE contendo o código de retorno 24 na meia-ordem de alta ordem e uma palavra-chave específica código de razão de validação na meia palavra de ordem baixa.

Para obter informações sobre o código de retorno e o código de razão para exceções que podem ocorrer ao analisar documentos XML com validação, consulte a referência relacionada sobre exceções com XMLPARSE (XMLSS) em vigor.

Example: parsing XML documents with validation - Exemplo: Analisando Documentos XML com Validação


© Copyright IBM Corp.