XML スキーマ ファイルに対して XML ファイルを検証したいと考えています。これは単純な xml ファイルで、名前空間などは含まれていません。MSXML 6.0 を使用して、c++ でこれを実行したいと考えています。
4476 次
1 に答える
4
ロード時に検証できます。これは、Windows/MSXML SDK のサンプル コードです。
IXMLDOMSchemaCollectionPtr pXS;
IXMLDOMDocument2Ptr pXD = NULL;
IXMLDOMParseErrorPtr pErr = NULL;
_bstr_t strResult = "";
HRESULT hr = pXS.CreateInstance(__uuidof(XMLSchemaCache50));
hr = pXS->add("urn:namespace", "myschema.xsd");
// Create a DOMDocument and set its properties.
hr = pXD.CreateInstance(__uuidof(DOMDocument50));
// Assign the schema cache to the DOMDocument's
// schemas collection.
pXD->schemas = pXS.GetInterfacePtr();
// Load books.xml as the DOM document.
pXD->async = VARIANT_FALSE;
pXD->validateOnParse = VARIANT_TRUE;
pXD->resolveExternals = VARIANT_TRUE;
hr = pXD->load("TheXmlDocument.xml");
// check hr and pXD->errorCode here
MSXML6 SDKをダウンロードして、このサンプルと他の多くのサンプルを入手できます。注: Vista にはインストールできません。Vista を実行している場合は、Windows SDKを入手してください。
于 2009-06-29T19:01:22.967 に答える