--- parser3/src/classes/xdoc.C 2004/02/20 13:19:08 1.142 +++ parser3/src/classes/xdoc.C 2004/09/13 08:12:57 1.145 @@ -9,7 +9,7 @@ #ifdef XML -static const char * const IDENT_XDOC_C="$Date: 2004/02/20 13:19:08 $"; +static const char * const IDENT_XDOC_C="$Date: 2004/09/13 08:12:57 $"; #include "gdome.h" #include "libxml/tree.h" @@ -157,13 +157,13 @@ private: // methods -static void writeNode(Request& r, GdomeNode *node, +static void writeNode(Request& r, VXdoc& xdoc, GdomeNode *node, GdomeException exc) { if(!node || exc) throw XmlException(0, exc); // write out result - r.write_no_lang(*new VXnode(&r.charsets, node)); + r.write_no_lang(*new VXnode(&r.charsets, xdoc, node)); } // Element createElement(in DOMString tagName) raises(DOMException); @@ -177,7 +177,7 @@ static void _createElement(Request& r, M (GdomeNode *)gdome_doc_createElement(vdoc.get_document(), r.transcode(tagName).use(), &exc); - writeNode(r, node, exc); + writeNode(r, vdoc, node, exc); } // Element createElementNS(in DOMString namespaceURI, in DOMString qualifiedName) raises(DOMException); @@ -194,7 +194,7 @@ static void _createElementNS(Request& r, r.transcode(namespaceURI).use(), r.transcode(qualifiedName).use(), &exc); - writeNode(r, node, exc); + writeNode(r, vdoc, node, exc); } // DocumentFragment createDocumentFragment() @@ -206,7 +206,7 @@ static void _createDocumentFragment(Requ (GdomeNode *)gdome_doc_createDocumentFragment( vdoc.get_document(), &exc); - writeNode(r, node, exc); + writeNode(r, vdoc, node, exc); } // Text createTextNode(in DOMString data); @@ -220,7 +220,7 @@ static void _createTextNode(Request& r, vdoc.get_document(), r.transcode(data).use(), &exc); - writeNode(r, node, exc); + writeNode(r, vdoc, node, exc); } // Comment createComment(in DOMString data) @@ -234,7 +234,7 @@ static void _createComment(Request& r, M vdoc.get_document(), r.transcode(data).use(), &exc); - writeNode(r, node, exc); + writeNode(r, vdoc, node, exc); } // CDATASection createCDATASection(in DOMString data) raises(DOMException); @@ -248,7 +248,7 @@ static void _createCDATASection(Request& vdoc.get_document(), r.transcode(data).use(), &exc); - writeNode(r, node, exc); + writeNode(r, vdoc, node, exc); } // ProcessingInstruction createProcessingInstruction(in DOMString target,in DOMString data) raises(DOMException); @@ -264,7 +264,7 @@ static void _createProcessingInstruction r.transcode(target).use(), r.transcode(data).use(), &exc); - writeNode(r, node, exc); + writeNode(r, vdoc, node, exc); } // Attr createAttribute(in DOMString name) raises(DOMException); @@ -278,7 +278,7 @@ static void _createAttribute(Request& r, vdoc.get_document(), r.transcode(name).use(), &exc); - writeNode(r, node, exc); + writeNode(r, vdoc, node, exc); } // Attr createAttributeNS(in DOMString namespaceURI, in DOMString qualifiedName) raises(DOMException); @@ -295,7 +295,7 @@ static void _createAttributeNS(Request& r.transcode(namespaceURI).use(), r.transcode(qualifiedName).use(), &exc); - writeNode(r, node, exc); + writeNode(r, vdoc, node, exc); } // EntityReference createEntityReference(in DOMString name) raises(DOMException); @@ -309,7 +309,7 @@ static void _createEntityReference(Reque vdoc.get_document(), r.transcode(name).use(), &exc); - writeNode(r, node, exc); + writeNode(r, vdoc, node, exc); } // NodeList getElementsByTagName(in DOMString name); @@ -329,7 +329,7 @@ static void _getElementsByTagName(Reques for(gulong i=0; ias_string(); if(s=="yes") - output_option=true; + output_option=1; else if(s=="no") - output_option=false; + output_option=0; else throw Exception("parser.runtime", &s, @@ -636,20 +636,20 @@ static Xdoc2buf_result xdoc2buf(Request& 0, "xsltNewStylesheet failed"); - #define OOS2STYLE(name) \ + #define OOSTRING2STYLE(name) \ stylesheet->name=oo.name?BAD_CAST xmlMemStrdup(r.transcode(*oo.name)->str):0 - #define OOE2STYLE(name) \ - stylesheet->name=oo.name + #define OOBOOL2STYLE(name) \ + if(oo.name>=0) stylesheet->name=oo.name - OOS2STYLE(method); - OOS2STYLE(encoding); - OOS2STYLE(mediaType); -// OOS2STYLE(doctypeSystem); -// OOS2STYLE(doctypePublic); - OOE2STYLE(indent); - OOS2STYLE(version); - OOE2STYLE(standalone); - OOE2STYLE(omitXmlDeclaration); + OOSTRING2STYLE(method); + OOSTRING2STYLE(encoding); + OOSTRING2STYLE(mediaType); +// OOSTRING2STYLE(doctypeSystem); +// OOSTRING2STYLE(doctypePublic); + OOBOOL2STYLE(indent); + OOSTRING2STYLE(version); + OOBOOL2STYLE(standalone); + OOBOOL2STYLE(omitXmlDeclaration); xmlDoc *document=gdome_xml_doc_get_xmlDoc(vdoc.get_document()); document->encoding=BAD_CAST xmlMemStrdup(render_encoding); @@ -727,7 +727,7 @@ static void _string(Request& r, MethodPa 0/*not to file, to memory*/, true/*use source charset to render, client charset to put to header*/); // write out result - r.write_no_lang(String(buf.str, buf.length)); + r.write_no_lang(String(String::Body(buf.str), String::L_AS_IS)); } #ifndef DOXYGEN @@ -798,10 +798,10 @@ static VXdoc& _transform(Request& r, con oo.method=stylesheet->method?&r.transcode(stylesheet->method):0; oo.encoding=stylesheet->encoding?&r.transcode(stylesheet->encoding):0; oo.mediaType=stylesheet->mediaType?&r.transcode(stylesheet->mediaType):0; - oo.indent=stylesheet->indent!=0; + oo.indent=stylesheet->indent; oo.version=stylesheet->version?&r.transcode(stylesheet->version):0; - oo.standalone=stylesheet->standalone!=0; - oo.omitXmlDeclaration=stylesheet->omitXmlDeclaration!=0; + oo.standalone=stylesheet->standalone; + oo.omitXmlDeclaration=stylesheet->omitXmlDeclaration; // return return result;