Document.h Source File

メインページ 名前空間一覧 クラス階層 構成 ファイル一覧 名前空間メンバ 構成メンバ ファイルメンバ

# Document.h

解説を見る。

    00001 // -*- mode: c++ -*-
    00002
    00003 #ifndef MiX_DOCUMENT_H_
    00004 #define MiX_DOCUMENT_H_
    00005
    00006 #include "classes.h"
    00007 #include "misc.h"
    00008 #include "XMLString.h"
    00009 #include "extern/noncopyable.hpp"
    00010
    00011 namespace MiX{
    00012
    00013   template <class charT,class char_traits,class xml_traits>
    00014   class Document : boost::noncopyable,
    00015                    public NodeContainer<charT,char_traits,xml_traits>{
    00016   public:
    00017     MiX_Template_Typedef(charT,char_traits,xml_traits);
    00018     typedef Document<charT,char_traits,xml_traits> this_type;
    00019     typedef typename nodelist_type::iterator nodelist_iter;
    00020     typedef NodeContainer<charT,char_traits,xml_traits> nodecontainer_type;
    00021   private:
    00022     const static typename nodelist_type::iterator dmy_it;
    00023   protected:
    00030     Document() { };
    00031   public:
    00033     virtual ~Document()throw() { };
    00035     virtual NodeType getType() const{ return Node_Document; };
    00041     static NodeType type(){ return Node_Document; } ;
    00043     element_type& getRoot()const;
    00050     virtual string_type toString(bool is_indent=false,int indent_off=0)const;
    00057     attribute_type& operator[](const string_type& name){
    00058       return getAttribute(name);
    00059     }
    00063     node_type& clone(nodecontainer_type& dmy,const nodelist_iter& it=dmy_it)const { return clone(); }
    00064
    00068     node_type& clone() const;
    00075     static this_type& create(const string_type& rootname);
    00076
    00077     friend class DOM_Parser<charT,char_traits,xml_traits>;
    00078   };
    00079 }
    00080
    00081 #ifndef MiX_DOCUMENT_CPP_
    00082 #include "Document.cpp"
    00083 #endif
    00084
    00085 #endif