1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
diff -urN glest-source-3.2.1/shared_lib/sources/xml/xml_parser.cpp glest-source-3.2.1.mod/shared_lib/sources/xml/xml_parser.cpp
--- glest-source-3.2.1/shared_lib/sources/xml/xml_parser.cpp 2009-02-13 18:52:25.000000000 +0300
+++ glest-source-3.2.1.mod/shared_lib/sources/xml/xml_parser.cpp 2009-04-15 11:13:46.000000000 +0400
@@ -87,10 +87,17 @@
try{
ErrorHandler errorHandler;
- DOMBuilder *parser= (static_cast<DOMImplementationLS*>(implementation))->createDOMBuilder(DOMImplementationLS::MODE_SYNCHRONOUS, 0);
- parser->setErrorHandler(&errorHandler);
- parser->setFeature(XMLUni::fgXercesSchemaFullChecking, true);
- parser->setFeature(XMLUni::fgDOMValidation, true);
+#if XERCES_VERSION_MAJOR < 3
+ DOMBuilder *parser= (static_cast<DOMImplementationLS*>(implementation))->createDOMBuilder(DOMImplementationLS::MODE_SYNCHRONOUS, 0);
+ parser->setErrorHandler(&errorHandler);
+ parser->setFeature(XMLUni::fgXercesSchemaFullChecking, true);
+ parser->setFeature(XMLUni::fgDOMValidation, true);
+#else
+ DOMLSParser *parser = (static_cast<DOMImplementationLS*>(implementation))->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0);
+ DOMConfiguration *config = parser->getDomConfig();
+ config->setParameter(XMLUni::fgXercesSchemaFullChecking, true);
+ config->setParameter(XMLUni::fgDOMValidate, true);
+#endif
DOMDocument *document= parser->parseURI(path.c_str());
if(document==NULL){
@@ -119,9 +126,20 @@
}
LocalFileFormatTarget file(path.c_str());
- DOMWriter* writer = implementation->createDOMWriter();
- writer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true);
- writer->writeNode(&file, *document);
+#if XERCES_VERSION_MAJOR < 3
+ DOMWriter* writer = implementation->createDOMWriter();
+ writer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true);
+ writer->writeNode(&file, *document);
+#else
+ DOMLSSerializer *serializer = implementation->createLSSerializer();
+ DOMLSOutput* output=implementation->createLSOutput();
+ DOMConfiguration* config=serializer->getDomConfig();
+ config->setParameter(XMLUni::fgDOMWRTFormatPrettyPrint,true);
+ output->setByteStream(&file);
+ serializer->write(document,output);
+ output->release();
+ serializer->release();
+#endif
document->release();
}
catch(const DOMException &e){
|