Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Portuguese

Pagetitle
XmlC14NFile
XmlC14NFile

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 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 aplicação Advpl será interrompida com uma ocorrência de erro fatal "Failed to parse XML".
  • 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.
  • 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