X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=asdcplib%2Fsrc%2FKM_xml.h;fp=asdcplib%2Fsrc%2FKM_xml.h;h=0000000000000000000000000000000000000000;hb=a2374eb06a0f6d391d1d5ae04f50ce5e8076173a;hp=cf77366a67c90d9b9f8d0a957162df3e8b0ff8b7;hpb=38ff2954f40131a12aa8a037b9fc6c4abd3894b9;p=libdcp.git diff --git a/asdcplib/src/KM_xml.h b/asdcplib/src/KM_xml.h deleted file mode 100644 index cf77366a..00000000 --- a/asdcplib/src/KM_xml.h +++ /dev/null @@ -1,141 +0,0 @@ -/* -Copyright (c) 2005-2011, John Hurst -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ -/*! \file KM_xml.h - \version $Id: KM_xml.h,v 1.8 2011/08/15 23:03:26 jhurst Exp $ - \brief XML writer -*/ - - -#ifndef _KM_XML_H_ -#define _KM_XML_H_ - -#include -#include -#include - -namespace Kumu -{ - 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 - { - std::string name; - std::string value; - }; - - // - typedef std::list AttributeList; - typedef AttributeList::const_iterator Attr_i; - typedef std::list ElementList; - typedef ElementList::const_iterator Elem_i; - - // - class XMLNamespace - { - std::string m_Prefix; - std::string m_Name; - - KM_NO_COPY_CONSTRUCT(XMLNamespace); - XMLNamespace(); - - public: - XMLNamespace(const char* prefix, const char* name) : m_Prefix(prefix), m_Name(name) {} - ~XMLNamespace() {} - - inline const std::string& Prefix() const { return m_Prefix; } - inline const std::string& Name() const { return m_Name; } - }; - - // - class XMLElement - { - KM_NO_COPY_CONSTRUCT(XMLElement); - XMLElement(); - - protected: - AttributeList m_AttrList; - ElementList m_ChildList; - const XMLNamespace* m_Namespace; - void* m_NamespaceOwner; - - std::string m_Name; - std::string m_Body; - - public: - XMLElement(const char* name); - ~XMLElement(); - - inline const XMLNamespace* Namespace() const { return m_Namespace; } - inline void SetNamespace(const XMLNamespace* ns) { assert(ns); m_Namespace = ns; } - - bool ParseString(const char* document, ui32_t doc_len); - bool ParseString(const ByteString& document); - bool ParseString(const std::string& document); - - // building - void SetName(const char* name); - void SetBody(const std::string& value); - void AppendBody(const std::string& value); - void SetAttr(const char* name, const char* value); - void SetAttr(const char* name, const std::string& value) { SetAttr(name, value.c_str()); } - XMLElement* AddChild(XMLElement* element); - XMLElement* AddChild(const char* name); - XMLElement* AddChildWithContent(const char* name, const char* 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; - - // querying - inline const std::string& GetBody() const { return m_Body; } - inline const ElementList& GetChildren() const { return m_ChildList; } - inline const std::string& GetName() const { return m_Name; } - inline const AttributeList& GetAttributes() const { return m_AttrList; } - const char* GetAttrWithName(const char* name) const; - XMLElement* GetChildWithName(const char* name) const; - const ElementList& GetChildrenWithName(const char* name, ElementList& outList) const; - bool HasName(const char* name) const; - - // altering - void DeleteAttributes(); - void DeleteAttrWithName(const char* name); - void DeleteChildren(); - void DeleteChild(const XMLElement* element); - void ForgetChild(const XMLElement* element); - }; -} // namespace Kumu - -#endif // _KM_XML_H_ - -// -// end KM_xml.h -//