17 #ifndef VCSN_XML_INTERNAL_IOS_HXX
18 # define VCSN_XML_INTERNAL_IOS_HXX
22 XERCES_CPP_NAMESPACE_BEGIN
24 template<
class Ostream>
34 XERCES_CPP_NAMESPACE_END
42 BinCxxInputStream::readBytes(XMLByte *
const toFill,
43 const XMLSize_t maxToRead)
46 unsigned s = _in->rdbuf()->sgetn((
char *)toFill, maxToRead);
53 BinCxxInputStream::curPos()
const
60 CxxInputSource::makeStream()
const
62 return new BinCxxInputStream(_in);
66 print_xml(std::ostream& out,
67 xercesc::DOMImplementation* impl,
68 xercesc::DOMElement* root)
70 using namespace xercesc;
74 # if XERCES_VERSION_MAJOR == 2
75 DOMWriter* writer = impl->createDOMWriter();
77 if (writer->canSetFeature(XMLUni::fgDOMWRTFormatPrettyPrint,
true))
78 writer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint,
true);
80 writer->writeNode(outstream, *root);
81 # elif XERCES_VERSION_MAJOR > 2
82 DOMLSSerializer* writer = impl->createLSSerializer();
83 DOMLSOutput *target = impl->createLSOutput();
84 target->setByteStream(outstream);
85 DOMConfiguration *config = writer->getDomConfig();
87 if (config->canSetParameter(XMLUni::fgDOMWRTFormatPrettyPrint,
true))
88 config->setParameter(XMLUni::fgDOMWRTFormatPrettyPrint,
true);
90 writer->write(root, target);
92 # error "Unsupported Xerces-C++ major version (too old)."
104 #endif // ! VCSN_XML_INTERNAL_IOS_HXX