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) Canonicalize XML FragmentDemonstrates how to canonicalize a fragment of an XML document. The fragment is identified by the element having an Id attribute equal to a specified value. (The Id attribute can have any namespace, and the attribute name is case-insensitive (thus "ID", "Id", "id", etc. match).
Use ChilkatAx-win32.pkg Procedure Test Handle hoHttp Variant vSbXml Handle hoSbXml Handle hoCanon String sCanonVersion Boolean iWithComments String sPrefixList String sUrl Boolean iSuccess String sXmlCanonFrag String sTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. 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 exclusive XML canonicalization. Move "EXCL_C14N" To sCanonVersion Move False To iWithComments // The optional inclusive namespaces prefix list if using exclusive canonicalization. Move "" To sPrefixList Move "https://www.chilkatsoft.com/exampleData/canonicalizeFragmentTest.xml" To sUrl Get pvComObject of hoSbXml to vSbXml Get ComQuickGetSb Of hoHttp sUrl vSbXml To iSuccess // This is the input XML: // <?xml version="1.0" encoding="UTF-8"?> // <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> // <SignedInfo> // <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> // <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> // <Reference URI="#object"> // <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> // <DigestValue>OPnpF/ZNLDxJ/I+1F3iHhlmSwgo=</DigestValue> // </Reference> // </SignedInfo> // <SignatureValue>nihUFQg4mDhLgecvhIcKb9Gz8VRTOlw+adiZOBBXgK4JodEe5aFfCqm8WcRIT8GL // LXSk8PsUP4//SsKqUBQkpotcAqQAhtz2v9kCWdoUDnAOtFZkd/CnsZ1sge0ndha4 // 0wWDV+nOWyJxkYgicvB8POYtSmldLLepPGMz+J7/Uws=</SignatureValue> // <KeyInfo> // <KeyValue> // <RSAKeyValue> // <Modulus>4IlzOY3Y9fXoh3Y5f06wBbtTg94Pt6vcfcd1KQ0FLm0S36aGJtTSb6pYKfyX7PqC // UQ8wgL6xUJ5GRPEsu9gyz8ZobwfZsGCsvu40CWoT9fcFBZPfXro1Vtlh/xl/yYHm // +Gzqh0Bw76xtLHSfLfpVOrmZdwKmSFKMTvNXOFd0V18=</Modulus> // <Exponent>AQAB</Exponent> // </RSAKeyValue> // </KeyValue> // </KeyInfo> // <Object Id="object">some text // with spaces and CR-LF.</Object> // </Signature> // Canonicalize and return the fragment of XML starting at the element where the Id attribute equals "object". Get ComGetAsString Of hoSbXml To sTemp1 Get ComCanonicalizeFragment Of hoCanon sTemp1 "object" sCanonVersion sPrefixList iWithComments To sXmlCanonFrag Showln sXmlCanonFrag // The output is: // // <Object xmlns="http://www.w3.org/2000/09/xmldsig#" Id="object">some text // with spaces and CR-LF.</Object> // End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.