mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-14 18:36:31 +08:00
112 lines
2.5 KiB
C++
112 lines
2.5 KiB
C++
|
|
// auto inserted precompiled begin
|
|
#include "precompiled_xml.h"
|
|
// auto inserted precompiled end
|
|
|
|
#include "XName.h"
|
|
#include <algorithm>
|
|
#include "Encoding.h"
|
|
#include "ToString.h"
|
|
|
|
|
|
namespace XML
|
|
{
|
|
|
|
XName::XName()
|
|
{
|
|
}
|
|
|
|
|
|
XName::XName(const char* name)
|
|
: Name(name)
|
|
{
|
|
}
|
|
|
|
|
|
XName::XName(const std::string& name)
|
|
: Name(name)
|
|
{
|
|
}
|
|
|
|
|
|
XName::XName(const XNamespace& ns, const std::string& name)
|
|
: Ns(ns),
|
|
Name(name)
|
|
{
|
|
}
|
|
|
|
|
|
const bool XName::Equal(const XName& rhs) const
|
|
{
|
|
if (rhs.Ns.is_init() && Ns.is_init())
|
|
return ((/*ToUpper(*/rhs.Ns->GetPrefix()/*.ToString()* /)*/ == /*ToUpper(*/Ns->GetPrefix()/*.ToString()* /)*/) &&
|
|
(/*ToUpper(*/rhs.Name.ToString()/*)*/ == /*ToUpper(*/Name.ToString()/*)*/));
|
|
if (!rhs.Ns.is_init() && !Ns.is_init())
|
|
return /*ToUpper(*/rhs.Name.ToString()/*)*/ == /*ToUpper(*/Name.ToString()/*)*/;
|
|
return false;
|
|
}
|
|
|
|
|
|
const bool XName::operator ==(const XName& rhs) const
|
|
{
|
|
if (!rhs.Ns.is_init() || !Ns.is_init())
|
|
return /*ToUpper(*/Name.ToString()/*)*/ == /*ToUpper(*/rhs.Name.ToString()/*)*/;
|
|
return ((/*ToUpper(*/Ns->GetPrefix()/*.ToString()* /)*/ == /*ToUpper(*/rhs.Ns->GetPrefix()/*.ToString()* /)*/) &&
|
|
(/*ToUpper(*/Name.ToString()/*)*/ == /*ToUpper(*/rhs.Name.ToString()/*)*/));
|
|
}
|
|
|
|
|
|
const std::string XName::ToString() const
|
|
{
|
|
if (!Ns.is_init())
|
|
return Name;
|
|
return Ns->GetPrefix()/*.ToString()*/ + ":" + Name.ToString();
|
|
}
|
|
|
|
|
|
const std::wstring XName::ToWString() const
|
|
{
|
|
if (!Ns.is_init())
|
|
return Encoding::utf82unicode(Name.ToString());
|
|
return Encoding::utf82unicode(Ns->GetPrefix()/*.ToString()*/) + L":" + Encoding::utf82unicode(Name.ToString());
|
|
}
|
|
|
|
|
|
void XName::SaveToStringList(std::list<std::string>& strList)const
|
|
{
|
|
if (!Ns.is_init())
|
|
{
|
|
strList.push_back(*Name);
|
|
return;
|
|
}
|
|
strList.push_back(Ns->GetPrefix()/*.ToString()*/);// + ":" + *Name);
|
|
strList.push_back(":");
|
|
strList.push_back(*Name);
|
|
}
|
|
|
|
|
|
void XName::SaveToWStringList(std::list<std::wstring>& strList)const
|
|
{
|
|
if (!Ns.is_init())
|
|
{
|
|
strList.push_back(Encoding::utf82unicode(*Name));
|
|
return;
|
|
}
|
|
strList.push_back(Encoding::utf82unicode(Ns->GetPrefix())/*.ToString()*/);// + ":" + *Name);
|
|
strList.push_back(L":");
|
|
strList.push_back(Encoding::utf82unicode(*Name));
|
|
}
|
|
|
|
|
|
const XName operator +(const XNamespace& ns, const std::string& name)
|
|
{
|
|
return XName(ns, name);
|
|
}
|
|
|
|
|
|
const XName operator +(const XNamespace& ns, const char* name)
|
|
{
|
|
return XName(ns, name);
|
|
}
|
|
|
|
} // namespace XML
|