perfectxml.com
 Basic Search  Advanced Search   
Topics Resources Free Library Software XML News About Us
home » focus » msxml » ask a question » past questions & answers Thursday, 11 October 2007
 
NEWS
MSXML 4.0 SP2 now available!

 
MSXML
Basics
DOM
SAX
XPath
XSLT
Schemas
SOM
HTTP Access
.NET
Data Islands
Ask a Question
   Past Q&As
C++ Samples
DLL/Version Info
Reference Guide
Books
KB Articles
   HOW TO
   SAMPLE
   INFO
   BUG/PRB
   FIX
   Misc.
MSXML Tips
   August 2002
   September 2002
MSXML Tools

Microsoft XML Core Services


Go back to list of previously asked questions and answers

Question: When is Microsoft going to release the next update of MSXML? I have been using MSXML 4.0 (SP1), and would like to know if next version of MSXML would be available sometime soon?
Asked By: Guest
Viewed: 9957
Answer: Update: (May 12, 2003): MSXML 4.0 SP2 now available!

MSXML (Microsoft XML Core Services) 4.0 SP1 was released about a year ago (in March 2002), and since then no other Web release of the product has been posted or no other product included updates to this component. Recently, Office 2003 Beta 2 included MSXML 5.0.

Recently, similar question on "future of MSXML" was asked on microsoft.public.xml.msxml-webrelease newsgroup and one of the Microsoft employees replied saying:
MSXML 3.0 SP4 will ship with Microsoft Windows Server 2003
MSXML 3.0 SP5 will ship with Yukon (next release of SQL Server)
MSXML 4.0 SP2 will be available in spring 2003
MSXML 5.0 will first ship with Office 2003 Beta
MSXML 6.0 will be part of Longhorn slated for 2004

MSXML 6.0 will probably be the last release of MSXML component and Microsoft recommends using .NET Framework XML namespaces instead.
Here is a summary of changes found in MSXML 5.0 that ships with Office 2003 beta 2. Note that MSXML 5.0 shipped with Office 2003 Beta 2 and we are not sure if it is available for free redistribution and in addition, details might change in the final Office release. The details provided here are just for informational purpose.

MSXML 5.0 GUIDs and ProgIDs

Symbolic Name GUID ProgID
CLSID_DOMDocument50 {88D969E5-F192-11D4-A65F-0040963251E5} Msxml2.DOMDocument.5.0
CLSID_DSOControl50 {88D969E9-F192-11D4-A65F-0040963251E5} Msxml2.DSOControl.5.0
CLSID_FreeThreadedDOMDocument50 {88D969E6-F192-11D4-A65F-0040963251E5} Msxml2.FreeThreadedDOMDocument.5.0
CLSID_MXHTMLWriter50 {88D969F0-F192-11D4-A65F-0040963251E5} Msxml2.MXHTMLWriter.5.0
CLSID_MXNamespaceManager50 {88D969F1-F192-11D4-A65F-0040963251E5} Msxml2. MXNamespaceManager.5.0
CLSID_MXXMLWriter50 {88D969EF-F192-11D4-A65F-0040963251E5} Msxml2.MXXMLWriter.5.0
CLSID_SAXAttributes50 {88D969EE-F192-11D4-A65F-0040963251E5} Msxml2.SAXAttributes.5.0
CLSID_SAXXMLReader50 {88D969EC-8B8B-4C3D-859E-AF6CD158BE0F} Msxml2.SAXXMLReader.5.0
CLSID_ServerXMLHTTP50 {88D969EB-F192-11D4-A65F-0040963251E5} Msxml2.ServerXMLHTTP.5.0
CLSID_XMLHTTP50 {88d969c5-f192-11d4-a65f-0040963251e5} Msxml2.XMLHTTP.5.0
CLSID_XMLSchemaCache50 {88D969E7-F192-11D4-A65F-0040963251E5} Msxml2.XMLSchemaCache.5.0
CLSID_XSLTemplate50 {88D969E8-F192-11D4-A65F-0040963251E5} Msxml2.XSLTemplate.5.0
CLSID_MXDigitalSignature50 {88D969F5-F192-11D4-A65F-0040963251E5} Msxml2.MXDigitalSignature.5.0

New Interfaces

  [
    odl,
    uuid(2933BF96-7B36-11D2-B20E-00C04F983E60),
    dual,
    nonextensible,
    oleautomation
  ]
  interface IXMLDOMDocument3 : IXMLDOMDocument2 {

    [id(0x000000d0), helpstring("perform runtime validation on the 
          currently loaded XML document node")]

    HRESULT validateNode(
            [in] IXMLDOMNode* node, 
            [out, retval] IXMLDOMParseError** errorObj);

    [id(0x000000d1), helpstring("clone node such that clones ownerDocument is this document")]
    HRESULT importNode(
            [in] IXMLDOMNode* node, 
            [in] VARIANT_BOOL deep, 
            [out, retval] IXMLDOMNode** clone);
  };

  [
    odl,
    uuid(3EFAA428-272F-11D2-836F-0000F87A7782),
    helpstring("structure for reporting parser errors"),
    dual,
    nonextensible,
    oleautomation
  ]
  interface IXMLDOMParseError2 : IXMLDOMParseError {
    [id(0x000000be), propget]
    HRESULT errorXPath([out, retval] BSTR* xpathexpr);
    
    [id(0x000000bb), propget]
    HRESULT allErrors([out, retval] IXMLDOMParseErrorCollection** allErrors);
    
    [id(0x000000bc)]
    HRESULT errorParameters(
            [in] long index, 
            [out, retval] BSTR* param);
    
    [id(0x000000bd), propget]
    HRESULT errorParametersCount([out, retval] long* count);
  };

  [
    odl,
    uuid(3EFAA429-272F-11D2-836F-0000F87A7782),
    helpstring("structure for reporting parser errors"),
    dual,
    nonextensible,
    oleautomation
  ]
  interface IXMLDOMParseErrorCollection : IDispatch {
    [id(00000000), propget]
    HRESULT item(
            [in] long index, 
            [out, retval] IXMLDOMParseError2** error);

    [id(0x000000c1), propget]
    HRESULT length([out, retval] long* length);

    [id(0x000000c2), propget]
    HRESULT next([out, retval] IXMLDOMParseError2** error);

    [id(0x000000c3)]
    HRESULT reset();

    [id(0xfffffffc), propget, restricted, hidden]
    HRESULT _newEnum([out, retval] IUnknown** ppUnk);
  };

  [
    odl,
    uuid(C90352F7-643C-4FBC-BB23-E996EB2D51FD),
    helpstring("IMXXMLFilter interface"),
    dual,
    nonextensible,
    oleautomation
  ]
  interface IMXXMLFilter : IDispatch {
    
    [id(0x0000058f)]
    HRESULT getFeature(
            [in] BSTR strName, 
            [out, retval] VARIANT_BOOL* fValue);
    
    [id(0x00000591)]
    HRESULT putFeature(
            [in] BSTR strName, 
            [in] VARIANT_BOOL fValue);

    [id(0x00000590)]
    HRESULT getProperty(
            [in] BSTR strName, 
            [out, retval] VARIANT* varValue);
    
    [id(0x00000592)]
    HRESULT putProperty(
            [in] BSTR strName, 
            [in] VARIANT varValue);
    
    [id(0x0000058d), propget]
    HRESULT entityResolver([out, retval] IUnknown** oResolver);
    
    [id(0x0000058d), propputref]
    HRESULT entityResolver([in] IUnknown* oResolver);

    [id(0x0000058b), propget]
    HRESULT contentHandler([out, retval] IUnknown** oHandler);
    
    [id(0x0000058b), propputref]
    HRESULT contentHandler([in] IUnknown* oHandler);
    
    [id(0x0000058c), propget]
    HRESULT dtdHandler([out, retval] IUnknown** oHandler);
    
    [id(0x0000058c), propputref]
    HRESULT dtdHandler([in] IUnknown* oHandler);
    
    [id(0x0000058e), propget]
    HRESULT errorHandler([out, retval] IUnknown** oHandler);
    
    [id(0x0000058e), propputref]
    HRESULT errorHandler([in] IUnknown* oHandler);
  };

  [
    odl,
    uuid(7474853B-20B3-437E-83F7-8E7F3064BE90),
    helpstring("XML Digital Signature Key"),
    dual,
    nonextensible,
    oleautomation
  ]
  interface IXMLDSigKey : IDispatch {

    [id(0x00000005)]
    HRESULT getVerifyingCertificate([out, retval] IUnknown** certificate);
  };

  [
    odl,
    uuid(7474853C-20B3-437E-83F7-8E7F3064BE90),
    helpstring("XML Digital Signature Key"),
    nonextensible
  ]
  interface IXMLDSigKeyEx : IXMLDSigKey {
    HRESULT _stdcall getCSPHandle([out, retval] ULONG_PTR* hProvider);
    HRESULT _stdcall getVerifyingCertificateContext([out, retval] void** certContext);
  };

  [
    odl,
    uuid(7474853D-20B3-437E-83F7-8E7F3064BE90),
    helpstring("XML Digital Signature"),
    dual,
    nonextensible,
    oleautomation
  ]
  interface IXMLDigitalSignature : IDispatch {

    [id(0x00000008), propputref]
    HRESULT signature([in] IXMLDOMNode* signatureNode);

    [id(0x00000008), propget]
    HRESULT signature([out, retval] IXMLDOMNode** signatureNode);

    [id(0x00000009), propputref]
    HRESULT store([in] IUnknown* store);

    [id(0x00000009), propget]
    HRESULT store([out, retval] IUnknown** store);

    [id(0x00000007)]
    HRESULT sign(
            [in] IXMLDSigKey* keyRef, 
            [in] XMLDSIG_WRITEKEYINFO wki, 
            [out, retval] IXMLDSigKey** signKeyRef);

    [id(0x0000000a)]
    HRESULT verify(
            [in] IXMLDSigKey* keyRef, 
            [out, retval] IXMLDSigKey** verifyKeyRef);

    [id(0x00000006)]
    HRESULT setReferenceData(
            [in] BSTR uri, 
            [in] IUnknown* punk);

    [id(0x00000004)]
    HRESULT createSAXProxy([out, retval] IUnknown** saxProxy);

    [id(0x00000001)]
    HRESULT createKeyFromCSP(
            [in] long providerType, 
            [in] BSTR providerName, 
            [in] BSTR keyContainerName, 
            [in] long flags, 
            [out, retval] IXMLDSigKey** keyRef);

    [id(0x00000002)]
    HRESULT createKeyFromHMACSecret(
            [in] BSTR base64Secret, 
            [in] long lHMACOutputLength, 
            [out, retval] IXMLDSigKey** keyRef);

    [id(0x00000003)]
    HRESULT createKeyFromNode(
            [in] IXMLDOMNode* node, 
            [out, retval] IXMLDSigKey** keyRef);
  };

  [
    odl,
    uuid(7474853E-20B3-437E-83F7-8E7F3064BE90),
    helpstring("XML Digital Signature"),
    nonextensible
  ]
  interface IXMLDigitalSignatureEx : IXMLDigitalSignature {

    HRESULT _stdcall createKeyFromCertContext(
            [in] void* pCertContext, 
            [out, retval] IXMLDSigKeyEx** keyRef);
    
    HRESULT _stdcall createKeyFromHMACSecretBinary(
            [in] unsigned char* pSecret, 
            [in] long nSecretLen, 
            [in] long lHMACOutputLength, 
            [out, retval] IXMLDSigKeyEx** keyRef);
    
    HRESULT _stdcall setStoreHandle([in] void* hCertStore);

    HRESULT _stdcall getStoreHandle([out, retval] void** hCertStore);
    HRESULT _stdcall setDebugOutput([in] IStream* debugOutput);
  };

  [
    odl,
    uuid(0000000C-0000-0000-C000-000000000046)
  ]
  interface IStream : ISequentialStream {

    HRESULT _stdcall RemoteSeek(
            [in] _LARGE_INTEGER dlibMove, 
            [in] unsigned long dwOrigin, 
            [out] _ULARGE_INTEGER* plibNewPosition);

    HRESULT _stdcall SetSize([in] _ULARGE_INTEGER libNewSize);

    HRESULT _stdcall RemoteCopyTo(
            [in] IStream* pstm, 
            [in] _ULARGE_INTEGER cb, 
            [out] _ULARGE_INTEGER* pcbRead, 
            [out] _ULARGE_INTEGER* pcbWritten);

    HRESULT _stdcall Commit([in] unsigned long grfCommitFlags);

    HRESULT _stdcall Revert();

    HRESULT _stdcall LockRegion(
            [in] _ULARGE_INTEGER libOffset, 
            [in] _ULARGE_INTEGER cb, 
            [in] unsigned long dwLockType);
    
    HRESULT _stdcall UnlockRegion(
            [in] _ULARGE_INTEGER libOffset, 
            [in] _ULARGE_INTEGER cb, 
            [in] unsigned long dwLockType);

    HRESULT _stdcall Stat(
            [out] tagSTATSTG* pstatstg, 
            [in] unsigned long grfStatFlag);
    
    HRESULT _stdcall clone([out] IStream** ppstm);
  };

  [
    odl,
    uuid(0C733A30-2A1C-11CE-ADE5-00AA0044773D)
  ]
  interface ISequentialStream : IUnknown {

    HRESULT _stdcall RemoteRead(
            [out] unsigned char* pv, 
            [in] unsigned long cb, 
            [out] unsigned long* pcbRead);

    HRESULT _stdcall RemoteWrite(
            [in] unsigned char* pv, 
            [in] unsigned long cb, 
            [out] unsigned long* pcbWritten);
  };

Other Changes

The ISAXXMLReader (and IVBSAXXMLReader) method parse is updated to have the varInput parameter as an optional parameter (instead of a required parameter).


Go back to list of previously asked questions and answers
  Contact Us | E-mail Us | Site Guide | About PerfectXML | Advertise ©2004 perfectxml.com. All rights reserved. | Privacy