Annotation of parser3/src/types/pa_vxdoc.C, revision 1.5
1.1 parser 1: /** @dom
2: Parser: @b dom parser type.
3:
4: Copyright(c) 2001 ArtLebedev Group(http://www.artlebedev.com)
5: Author: Alexander Petrosyan <paf@design.ru>(http://design.ru/paf)
6:
1.5 ! parser 7: $Id: pa_vxdoc.C,v 1.4 2001/10/19 14:56:17 parser Exp $
1.1 parser 8: */
9: #include "pa_config_includes.h"
10: #ifdef XML
1.5 ! parser 11: static const char *RCSId="$Id: pa_vxdoc.C,v 1.4 2001/10/19 14:56:17 parser Exp $";
1.1 parser 12:
13: #include "pa_vxdoc.h"
14:
1.2 parser 15: #include <XalanDOM/XalanDocumentType.hpp>
16: #include <XalanDOM/XalanElement.hpp>
17:
1.1 parser 18: void VXdoc_cleanup(void *vxdoc) {
19: //_asm int 3;
20: static_cast<VXdoc *>(vxdoc)->cleanup();
21: }
1.2 parser 22:
23: /// VXdoc: $CLASS,$method
24: Value *VXdoc::get_element(const String& name) {
25: try {
26: // $CLASS,$method
27: if(Value *result=VStateless_object::get_element(name))
28: return result;
29:
30: // fields
31: XalanDocument& document=get_document(pool(), &name);
32:
33: if(name=="doctype") {
34: // readonly attribute DocumentType doctype;
1.4 parser 35: return NEW VXnode(pool(), document.getDoctype(), false);
1.2 parser 36: } else if(name=="implementation") {
37: // readonly attribute DOMImplementation implementation;
38: return 0;
39: } else if(name=="documentElement") {
40: // readonly attribute Element documentElement;
1.4 parser 41: return NEW VXnode(pool(), document.getDocumentElement(), false);
1.2 parser 42: }
43:
44: } catch(const XalanDOMException& e) {
1.5 ! parser 45: Exception::provide_source(pool(), &name, e);
1.2 parser 46: }
47:
48: return 0;
49: }
50:
1.1 parser 51: #endif
E-mail: