O método retorna a canonicalização de um XML apontado pela string cXML.
Sintaxe
CanonicalC14N( < cXML >, [ cParam2 ], [ nOptions ], [ cNS ], [ nComments ] )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
|---|---|---|---|---|
cXML | caractere | String contendo um XML em que será feita a canonicalização. | X | |
cParam2 | caractere | Parametro para uso futuro. Passar Nil ou string vazia (""). | ||
nOptions | numérico | Opção para alterar o comportamento da canonicalização. Valor padrão: 0(zero). | ||
cNS | caractere | String contendo os namespaces que serão incluídos para a canonicalização. Valor padrão: Nil. | ||
nComments | numérico | Valor que indica se os comentários serão removidos ou não na canonicalização. Valores: 0 (remove) ou 1 (não remove). Valor padrão: 0 (zero). |
Retorno
Nome | Tipo | Descrição |
|---|---|---|
cRet | caractere | String contendo o XML canonicalizado ou uma string vazia("") caso houve algum erro no processo. |
Observações
Valores aceitos para o parâmetro nOptions:
0 | Especificação Original C14N 1.0 |
1 | Especificação Exclusive C14N 1.0 |
2 | Especificação C14N 1.1 |
Valores aceitos para o parâmetro nComments:
0 | Remove comentários |
1 | Não remove comentários |
Exemplos
user function TXCanon()
Local cXML := "", cNewXML := ""
Local oXML
oXML := TXMLManager():New()
cXML := '<?xml version="1.0"?>' + CRLF
cXML += CRLF
cXML += '<?xml-stylesheet href="doc.xsl"' + CRLF
cXML += ' type="text/xsl" ?>' + CRLF
cXML += CRLF
cXML += '<!DOCTYPE doc SYSTEM "doc.dtd">' + CRLF
cXML += CRLF
cXML += '<doc>Hello, world!<!-- Comment 1 --></doc>' + CRLF
cXML += CRLF
cXML += '<?pi-without-data ?>' + CRLF
cXML += CRLF
cXML += '<!-- Comment 2 -->' + CRLF
cXML += CRLF
cXML += '<!-- Comment 3 -->' + CRLF
if !oXML:Parse( cXML )
conout( "Errors on Parse!" )
return
endif
cNewXML := oXML:CanonicalC14N( cXML, , 0, , 0 )
// Vai exibir ".F."
conout( cNewXML == cXML )
// Vai exibir
// <?xml-stylesheet href="doc.xsl"
// type="text/xsl" ?>
// <doc>Hello, world!</doc>
// <?pi-without-data?>
//
conout( cNewXML )
cNewXML := oXML:CanonicalC14N( cXML, , 0, , 1 )
// Vai exibir ".F."
conout( cNewXML == cXML )
// Vai exibir
// <?xml-stylesheet href="doc.xsl"
// type="text/xsl" ?>
// <doc>Hello, world!<!-- Comment 1 --></doc>
// <?pi-without-data?>
// <!-- Comment 2 -->
// <!-- Comment 3 -->
//
conout( cNewXML )
return