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

81 lines
1.8 KiB
C++

//
// AttributeParser.h
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
#pragma once
#include "stdafx.h"
#include "Parser.h"
#include "Emit.h"
#include "resource.h"
class CAttribute;
class CAttributeParser : public CParserBase
{
private:
CAttribute *m_pAttribute;
public:
inline CAttributeParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CAttribute *pAttribute = NULL)
:CParserBase(pReader, pParent, dwLevel), m_pAttribute(pAttribute)
{
}
inline CAttribute * GetAttribute()
{
return m_pAttribute;
}
inline void SetAttribute(CAttribute *pAttribute)
{
m_pAttribute = pAttribute;
}
HRESULT ValidateElement();
/*
<attribute
form = (qualified | unqualified)
id = ID
name = NCName
ref = QName
type = QName
use = (prohibited | optional | required | default | fixed) : optional
value = string
{any attributes with non-schema namespace . . .}>
Content: (annotation? , (simpleType?))
</attribute>
*/
BEGIN_XMLTAG_MAP()
XMLTAG_ENTRY_EX("annotation", XSD_NAMESPACEA, OnAnnotation)
XMLTAG_ENTRY_EX("simpleType", XSD_NAMESPACEA, OnSimpleType)
END_XMLTAG_MAP()
BEGIN_XMLATTR_MAP()
XMLATTR_ENTRY("form", OnForm)
XMLATTR_ENTRY("ref", OnRef)
XMLATTR_ENTRY("name", OnName)
XMLATTR_ENTRY_EX("arrayType", WSDL_NAMESPACEA, OnArrayType)
XMLATTR_ENTRY("type", OnType)
XMLATTR_ENTRY("use", OnUse)
XMLATTR_ENTRY("value", OnValue)
XMLATTR_ENTRY("id", OnID)
END_XMLATTR_MAP()
TAG_METHOD_DECL(OnAnnotation);
TAG_METHOD_DECL(OnSimpleType);
ATTR_METHOD_DECL(OnForm);
ATTR_METHOD_DECL(OnRef);
ATTR_METHOD_DECL(OnArrayType);
ATTR_METHOD_DECL(OnName);
ATTR_METHOD_DECL(OnType);
ATTR_METHOD_DECL(OnUse);
ATTR_METHOD_DECL(OnValue);
ATTR_METHOD_DECL(OnID);
};