#pragma once
#include <memory>
#include <vector>

#include "XmlElement.h"

class XmlProlog : public XmlElement
{
public:
    enum class Version{
        V1_0
    };

    enum class Encoding{
        UTF8
    };

private:

    Version mVersion;
    Encoding mEncoding;

public:
    XmlProlog(const std::string& tagName);

    static std::unique_ptr<XmlProlog> Create(const std::string& tagName);

    Encoding GetEncoding() const;
    Version GetVersion() const;

    void SetEncoding(const std::string& encoding);
    void SetVersion(const std::string& version);
    void Update();
};

using XmlPrologPtr = std::shared_ptr<XmlProlog>;
using XmlPrologUPtr = std::unique_ptr<XmlProlog>;
