Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 6 Próxima »

Função: XmlC14NFile

Esta função permite aplicar o algoritmo canonicalization C14N em um arquivo que contém um XML.

XmlC14NFile( < cXMLFile>, < cOption>, < @cErro>, < @cWarning> ) --> cRetXML

 

NomeTipoDescriçãoObrigatórioReferência
cXMLFileCaracterIndica o arquivo XML que assumirá a formato canonical.X 
cOptionCaracterReservado para implementação futura. Deve ser informada uma string em branco.X 
cErroCaracterRetorna uma descrição de erro, em caso de falha no Parser.XX
cWarningCaracterRetorna uma descrição de advertência emitida pelo Parser.XX

 

cRetXML
    (caracter)
  • Retorna o XML recodificado na forma canonical.

Um algoritmo de canonicalization tem o objetivo de aplicar as seguintes regras em um XML:

  • Normalizar quebras de linha
  • Normalizar valores de atributos
  • Trocar seções  CDATA pelo seu conteúdo explícito


Essa função atende às especificação W3C - World Wide Web Consortium REC-xml-c14n-20010315 . A função  XmlC14N() aplica a canonicalização na string XML informada como parâmetro em conformidade com a especificação de canonicalização C14N 1.0 ( não-exclusiva), removendo comentários. 

Observações

  • Caso o conteúdo do arquivo XML seja válido, porém o processo de canonicalização não seja completo com sucesso, a função retonará uma string em branco.
  • Caso o arquivo XML informado como parâmetro não tenha conteúdo válido, não seja um XML, caso seja um XML mal-formado, a função retornará uma string em branco e colocará no parâmetro <cErro> a mensagem "Failed to parse XML".
  • Essa função trabalha somente com arquivos e diretórios localizados no servidor (rootPath). Caso seja passado um caminho de arquivo do SmartClient, o programa será interrompido e será apresentada a mensagem "Only server path are allowed on XmlC14NFile".

 

Importante

Em build superior a 7.00.121227P há mudança de comportamento na canonicalização do caracter de referência &#x20;.

 

User function tstC14NFil()
Local cError := ""
Local cWarning := ""
Local cXmlFile := "\xml\example.xml"
Local cXmlRet := ""

cXmlRet := XmlC14NFile( cXMLFile, "" , @cError, @cWarning )

if ( Len( cXmlRet ) > 0 )
memowrite( "\xml\canonical.xml", cXmlRet )
else
conout( "Nao foi possível canonicalizar o XML" )
varinfo( "cError", cError )
varinfo( "cWarning", cWarning )
endif

Return
Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10

 

  • Sem rótulos