--- parser3/src/classes/xnode.h 2001/09/26 15:43:59 1.2 +++ parser3/src/classes/xnode.h 2020/12/15 17:10:30 1.35 @@ -1,28 +1,26 @@ /** @file Parser: @b dnode methods class - MDnode class decl. - Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) - Author: Alexander Petrosyan (http://design.ru/paf) - - $Id: xnode.h,v 1.2 2001/09/26 15:43:59 parser Exp $ + Copyright (c) 2001-2020 Art. Lebedev Studio (http://www.artlebedev.com) + Author: Alexandr Petrosian (http://paf.design.ru) */ #ifndef XNODE_H #define XNODE_H -#include +#define IDENT_XNODE_H "$Id: xnode.h,v 1.35 2020/12/15 17:10:30 moko Exp $" -class MXnode : public Methoded { +class MXnode: public Methoded { public: // Value /// MXnode: +$const - Value *get_element(const String& aname) { - // $CLASS, $method - if(Value *result=Methoded::get_element(aname)) + Value* get_element(const String& aname) { + // $method + if(Value* result=Methoded::get_element(aname)) return result; // $const - if(Value *result=(Value *)consts.get(aname)) + if(Value* result=consts.get(aname)) return result; return 0; @@ -30,17 +28,29 @@ public: // Value public: // VStateless_class - Value *create_new_value(Pool& pool) { return new(pool) VXnode(pool); } + Value* create_new_value(Pool&) { + throw Exception(PARSER_RUNTIME, + 0, + "no constructors available, use CreateXXX DOM methods to create nodes instead"); + } public: - MXnode(Pool& pool); + MXnode(const char* aname=0); public: // Methoded bool used_directly() { return true; } private: - Hash consts; + HashStringValue consts; }; +xmlNode& as_node(MethodParams& params, int index, const char* msg); +xmlChar* as_xmlchar(Request& r, MethodParams& params, int index, const char* msg); +xmlChar* as_xmlqname(Request& r, MethodParams& params, int index, const char* msg=0); +xmlChar* as_xmlncname(Request& r, MethodParams& params, int index, const char* msg=0); +xmlChar* as_xmlname(Request& r, MethodParams& params, int index, const char* msg=0); +xmlChar* as_xmlnsuri(Request& r, MethodParams& params, int index); +xmlNs& pa_xmlMapNs(xmlDoc& doc, const xmlChar* href, const xmlChar* prefix); + #endif