Função: XmlC14N
Esta função permite aplicar o algoritmo canonicalization C14N na string que contém um XML.
XmlC14N( < cXML>, < cOption>, < @cErro>, < @cWarning> ) --> cRetXML
Nome | Tipo | Descrição | Obrigatório | Referência |
cXML | Caracter | Indica o conteúdo XML que assumirá a formato canonical. | X | |
cOption | Caracter | Reservado para implementação futura. Deve ser informada uma string em branco. | X | |
cErro | Caracter | Retorna uma descrição de erro, em caso de falha no Parser. | X | X |
cWarning | Caracter | Retorna uma descrição de advertência emitida pelo Parser. | X | X |
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 a string XML informada como parâmetro não seja válida, 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 a string XML seja vazia, a aplicação AdvPL será interrompida com uma ocorrência de erro fatal "Invalid empty document on XmlC14N".
- Caso a string XML seja válida, porém o processo de canonicalização não seja completo com sucesso, a função retonará uma string em branco.
Importante |
---|
Em build superior a 7.00.121227P há mudança de comportamento na canonicalização do caracter de referência  . |
User function tstC14N()
Local cError := ""
Local cWarning := ""
Local cXml := memoread("\xml\example.xml")
Local cXmlRet := ""
cXmlRet := XmlC14N( cXML , "" , @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
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas