Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) XML Inclusive CanonicalizationDemonstrates how to convert XML to the Inclusive XML Canonicalization form as specified in http://www.w3.org/TR/xml-c14n/
Use ChilkatAx-win32.pkg Procedure Test Handle hoHttp Variant vSbXml Handle hoSbXml Handle hoCanon String sCanonVersion Boolean iWithComments String sUrl Boolean iSuccess String sXmlInclCanon String sXmlExclCanon String sTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // The XML digital signature verification class provides utility methods for // XML canonicalization. This example demonstrates how to do inclusive XML canonicalization. Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End Get Create (RefClass(cComChilkatStringBuilder)) To hoSbXml If (Not(IsComObjectCreated(hoSbXml))) Begin Send CreateComObject of hoSbXml End Get Create (RefClass(cComChilkatXmlDSig)) To hoCanon If (Not(IsComObjectCreated(hoCanon))) Begin Send CreateComObject of hoCanon End // Use inclusive XML canonicalization. Move "C14N" To sCanonVersion Move False To iWithComments Move "https://www.chilkatsoft.com/exampleData/c14n/test7.xml" To sUrl Get pvComObject of hoSbXml to vSbXml Get ComQuickGetSb Of hoHttp sUrl vSbXml To iSuccess // This is the input XML: // The XML comment is referring to when exclusive XML canonicalization is applied. With inclusive canonicalization, the namespace nodes // are kept, as we'll see below.. // <doc> // <!-- A namespace node N is ignored if the nearest ancestor element of the node's parent element that is in the node-set has a namespace node in the node-set with the same local name and value as N. --> // <animal xmlns:aa="https://www.animal.com/"> // <reptile xmlns:bb="https://www.reptile.com/"> // <lizard xmlns="" type="african fat tailed" abc="xyz" xmlns:aa="https://www.animal.com/" /> // <snake type="poisonous rattler" xmlns:bb="https://www.reptile.com/" > // </snake> // </reptile> // </animal> // </doc> Get ComGetAsString Of hoSbXml To sTemp1 Get ComCanonicalizeXml Of hoCanon sTemp1 sCanonVersion iWithComments To sXmlInclCanon Showln sXmlInclCanon // The C14N (inclusive) canonicalization is: // <doc> // // <animal xmlns:aa="https://www.animal.com/"> // <reptile xmlns:bb="https://www.reptile.com/"> // <lizard abc="xyz" type="african fat tailed"></lizard> // <snake type="poisonous rattler"> // </snake> // </reptile> // </animal> // </doc> // To see the difference, let's do exclusive canonicalization.. Move "EXCL_C14N" To sCanonVersion Get ComGetAsString Of hoSbXml To sTemp1 Get ComCanonicalizeXml Of hoCanon sTemp1 sCanonVersion iWithComments To sXmlExclCanon Showln sXmlExclCanon // // The C14N (exclusive) canonicalization is: // // <doc> // // <animal> // <reptile> // <lizard abc="xyz" type="african fat tailed"></lizard> // <snake type="poisonous rattler"> // </snake> // </reptile> // </animal> // </doc> End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.