Pagetitle |
---|
| XmlC14NFileXmlC14NXmlC14NFile |
---|
| XmlC14N |
---|
|
Armazena ou apaga um objeto na lista de objetos do servidorEsta função permite aplicar o algoritmo canonicalization C14N em um arquivo que contém um XML. < cID>< cXMLFile>, < cOption>, < @cErro>, < oMailObj> Nil Nome | Tipo | Descrição | Obrigatório | Referência |
cID um identificador, usado para recuperar o objeto armazenado posteriormenteo arquivo 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 |
oMailObjQualquer | Indica um objeto do tipo TMailManager ou Caracter | Retorna uma descrição de advertência emitida pelo Parser |
nulo Nil Nulo)Esta função, pode ser utilizada para armazenar um objeto de conexão de e-mail (TMailManager), assim como limpar o objeto já gravado anteriormente. Sempre deve ser passado uma string como ID de referência para o objeto que será gravado ou limpado. Quando for informado um valor nulo, no parâmetro [oMailObj], o item com o identificador <cID> será removido da lista de objetos de e-mail.
IMPORTANTE: Documentar os parâmetros obrigatórios que estão faltando (3º e 4º). user function tstmailobj(cSMTPServer, cMailSever, cUser, cPass)Local oSMTPManager := NilLocal oPOPManager := NilLocal nret := 0oSMTPManager:= tMailManager():New()oSMTPManager:Init("", cSMTPServer, cUser, cPass)// CONEXAO SMTP ---------------------------------------oSMTPManager:SetSmtpTimeOut( 120 )nRet := oSMTPManager:SmtpConnect()If nRet != 0 Conout("[SMTPCONNECT] Fail ao conectar" ) Conout("[SMTPCONNECT][ERROR] " + str(nRet,6) , oSMTPManager:GetErrorString(nRet)) Return .F.Else Conout( "[SMTPCONNECT] Sucess ao conectar" )EndIf nRet := oSMTPManager:SMTPAuth(cUser, cPass)If nRet != 0 conout("[AUTH] FAIL TRY with USER() and PASS()") conout("[AUTH][ERROR] " + str(nRet,6) , oSMTPManager:GetErrorString(nRet)) Return .F.else conout("[AUTH] SUCEEDED TRY with USER() and PASS()")Endif// GUARDA OBJETO COM CONEXAO SMTP ONLYSetMailObj("SMTPCONN", oSMTPManager)// CONEXAO POP ---------------------------------------oPOPManager:= tMailManager():New()oPOPManager:Init(cMailSever, "", cUser, cPass)nRet := oPOPManager:POPConnect()If nRet != 0 Conout("[POPCONNECT] Fail ao conectar" ) Conout("[POPCONNECT][ERROR] " + str(nRet,6) , oSMTPManager:GetErrorString(nRet)) Return .F.Else Conout( "[POPCONNECT] Sucess ao conectar" )EndIf // GUARDA OBJETO COM CONEXAO POP ONLYSetMailObj("POPCONN", oPOPManager)Return .T.User Function DummyPOP()Local oMailManager := NilLocal oMessage := NilLocal nError := 0, nCount := 0, nLoop := 0oMailManager := GetMailObj("POPCONN")nError := oMailManager:GetNumMsgs(@nLoop)If nError <> 0 ConOut(oMailManager:GetErrorString(nError)) Return MsgStop(oMailManager:GetErrorString(nError), "oMailManager:GetNumMsgs")EndIfConOut(cValToChar(nLoop) + " mensagem(ns)")For nCount := 1 To nLoop oMessage := Nil oMessage := tMailMessage():New() oMessage:Clear() oMessage:Receive(oMailManager, nCount) ConOut("Mensagem " + cValToChar(nCount)) Next nCountReturn .T.User Function LIMPAPOP() // LIMPANDO POSICAO POPCONN SetMailObj("POPCONN", NIL)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".
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 GetMailObj |