Files
Slnkdwf/ATL90/source/SProxy/DiscoMapParser.cpp
Jos Groot Lipman 0e37d774d2 Merge SLNKDWF64 branch
svn path=/Slnkdwf/trunk/; revision=23911
2015-01-21 12:09:31 +00:00

83 lines
1.7 KiB
C++

//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
#include "stdafx.h"
#include "util.h"
#include "DiscoMapparser.h"
#include "DiscoMapDocument.h"
CDiscoMapParser::CDiscoMapParser(void)
:m_pDocument(NULL)
{
}
CDiscoMapParser::~CDiscoMapParser(void)
{
}
CDiscoMapParser::CDiscoMapParser(ISAXXMLReader * pReader, CParserBase * pParent, DWORD dwLevel)
:CParserBase(pReader, pParent, dwLevel), m_pDocument(NULL)
{
}
CDiscoMapDocument * CDiscoMapParser::CreateDiscoMapDocument(void)
{
m_pDocument.Attach( new CDiscoMapDocument );
return m_pDocument;
}
TAG_METHOD_IMPL(CDiscoMapParser, OnDiscoveryClientResultsFile)
{
TRACE_PARSE_ENTRY();
return S_OK;
}
TAG_METHOD_IMPL(CDiscoMapParser, OnResults)
{
TRACE_PARSE_ENTRY();
return S_OK;
}
TAG_METHOD_IMPL(CDiscoMapParser, OnDiscoveryClientResult)
{
TRACE_PARSE_ENTRY();
CStringW strRT;
HRESULT hr = GetAttribute(pAttributes, L"referenceType", sizeof("referenceType")-1, strRT);
if(FAILED(hr))
return hr;
CDiscoMapDocument * pDoc = GetDiscoMapDocument();
if(strRT == "System.Web.Services.Discovery.SchemaReference")
{
CStringW strURL;
hr = GetAttribute(pAttributes, L"url", sizeof("url")-1, strURL);
if(FAILED(hr))
return hr;
CStringW strFileName;
hr = GetAttribute(pAttributes, L"filename", sizeof("filename")-1, strFileName);
if(FAILED(hr))
return hr;
pDoc->AddSchema(strURL,strFileName);
return S_OK;
}
if(strRT == "System.Web.Services.Discovery.ContractReference")
{
CStringW strWSDLFile;
hr = GetAttribute(pAttributes, L"filename", sizeof("filename")-1, strWSDLFile);
if(FAILED(hr))
return hr;
pDoc->SetWSDLFile(strWSDLFile);
}
return S_OK;
}