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 ChangesThe ISAXXMLReader (and IVBSAXXMLReader) method parse is updated to have the varInput parameter as an optional parameter (instead of a required parameter).
|