/*
-Copyright (c) 2005-2011, John Hurst
+Copyright (c) 2005-2015, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
{
class XMLElement;
- // Return true if the given string contains an XML document (or the start of one).
- bool StringIsXML(const char* document, ui32_t len = 0);
-
//
struct NVPair
{
typedef std::list<XMLElement*> ElementList;
typedef ElementList::const_iterator Elem_i;
+ bool GetXMLDocType(const ByteString& buf, std::string& ns_prefix, std::string& type_name,
+ std::string& namespace_name, AttributeList& doc_attr_list);
+
+ bool GetXMLDocType(const std::string& buf, std::string& ns_prefix, std::string& type_name,
+ std::string& namespace_name, AttributeList& doc_attr_list);
+
+ bool GetXMLDocType(const byte_t* buf, ui32_t buf_len, std::string& ns_prefix, std::string& type_name,
+ std::string& namespace_name, AttributeList& doc_attr_list);
+
//
class XMLNamespace
{
bool ParseString(const ByteString& document);
bool ParseString(const std::string& document);
+ bool ParseFirstFromString(const char* document, ui32_t doc_len);
+ bool ParseFirstFromString(const ByteString& document);
+ bool ParseFirstFromString(const std::string& document);
+
// building
void SetName(const char* name);
void SetBody(const std::string& value);
XMLElement* AddChildWithContent(const char* name, const std::string& value);
XMLElement* AddChildWithPrefixedContent(const char* name, const char* prefix, const char* value);
void AddComment(const char* value);
- void Render(std::string&) const;
- void RenderElement(std::string& outbuf, ui32_t depth) const;
+ void Render(std::string& str) const { Render(str, true); }
+ void Render(std::string&, const bool& pretty) const;
+ void RenderElement(std::string& outbuf, const ui32_t& depth, const bool& pretty) const;
// querying
inline const std::string& GetBody() const { return m_Body; }