blob: 2520365eb53e1abf413150a6da9afd7fd1eb882f [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//
// Description:
//
// Simple C++ Xml Reader classes.
//
// Remarks:
//
//-----------------------------------------------------------------------------
namespace Xml
{
#pragma prefast(disable:26439) // implicit noexcept
#pragma prefast(disable:26495) // uninitialized member variable
// May want Unicode someday.
typedef char Char;
class Attribute
{
public:
Attribute(Char * name, Char * value);
Char * GetValue(const Char * name);
void Dump();
public:
Attribute * Next;
Char * Name;
Char * Value;
};
class Node
{
public:
Node() {}
Node(const Char * name, Attribute * attributeList);
Node * GetChild(const Char * name);
Char * GetAttributeValue(const Char * name);
void Dump(int indent);
void Dump();
public:
Node * Next;
Node * ChildList;
Attribute * AttributeList;
const Char * Name;
Char * Data;
int LineNumber;
static Node * TopNode;
};
Node * ReadFile(const char * fileName);
} // namespace Xml