126 Poco::XML::DOMWriter writer;
127 writer.setNewLine(
"\n");
128 writer.setOptions(Poco::XML::XMLWriter::PRETTY_PRINT);
130 Poco::AutoPtr<Poco::XML::Document> mDoc =
new Poco::XML::Document();
133 Poco::AutoPtr<Poco::XML::Element> rootElem = mDoc->createElement(
"detector-grouping");
134 rootElem->setAttribute(
"description", grouping.
description);
135 mDoc->appendChild(rootElem);
138 for (
size_t gi = 0; gi < grouping.
groups.size(); gi++) {
139 Poco::AutoPtr<Poco::XML::Element> gElem = mDoc->createElement(
"group");
140 gElem->setAttribute(
"name", grouping.
groupNames[gi]);
141 rootElem->appendChild(gElem);
143 Poco::AutoPtr<Poco::XML::Element> idsElem = mDoc->createElement(
"ids");
144 idsElem->setAttribute(
"val", grouping.
groups[gi]);
145 gElem->appendChild(idsElem);
149 for (
size_t pi = 0; pi < grouping.
pairs.size(); pi++) {
150 Poco::AutoPtr<Poco::XML::Element> gElem = mDoc->createElement(
"pair");
151 gElem->setAttribute(
"name", grouping.
pairNames[pi]);
152 rootElem->appendChild(gElem);
154 Poco::AutoPtr<Poco::XML::Element> fwElem = mDoc->createElement(
"forward-group");
155 fwElem->setAttribute(
"val", grouping.
groupNames[grouping.
pairs[pi].first]);
156 gElem->appendChild(fwElem);
158 Poco::AutoPtr<Poco::XML::Element> bwElem = mDoc->createElement(
"backward-group");
159 bwElem->setAttribute(
"val", grouping.
groupNames[grouping.
pairs[pi].second]);
160 gElem->appendChild(bwElem);
162 Poco::AutoPtr<Poco::XML::Element> alphaElem = mDoc->createElement(
"alpha");
163 alphaElem->setAttribute(
"val", boost::lexical_cast<std::string>(grouping.
pairAlphas[pi]));
164 gElem->appendChild(alphaElem);
168 Poco::AutoPtr<Poco::XML::Element> gElem = mDoc->createElement(
"default");
170 rootElem->appendChild(gElem);
172 std::stringstream stream;
173 writer.writeNode(stream, mDoc);