172 AutoPtr<Document> pDoc =
new Document;
173 AutoPtr<Element> dimensionSetElement = pDoc->createElement(
"DimensionSet");
174 pDoc->appendChild(dimensionSetElement);
177 std::string dimensionXMLString;
179 for (
auto it = m_vecDimensions.begin(); it != m_vecDimensions.end(); ++it) {
180 dimensionXMLString += (*it)->toXMLString();
184 AutoPtr<Text> percents = pDoc->createTextNode(
"%s");
185 dimensionSetElement->appendChild(percents);
188 AutoPtr<Element> xDimensionElement = pDoc->createElement(
"XDimension");
189 AutoPtr<Element> xDimensionIdElement = pDoc->createElement(
"RefDimensionId");
190 if (hasXDimension()) {
191 std::string xDimensionId = this->m_spXDimension->getDimensionId();
192 AutoPtr<Text> idXText = pDoc->createTextNode(xDimensionId);
193 xDimensionIdElement->appendChild(idXText);
195 xDimensionElement->appendChild(xDimensionIdElement);
196 dimensionSetElement->appendChild(xDimensionElement);
199 AutoPtr<Element> yDimensionElement = pDoc->createElement(
"YDimension");
200 AutoPtr<Element> yDimensionIdElement = pDoc->createElement(
"RefDimensionId");
201 if (hasYDimension()) {
202 std::string yDimensionId = this->m_spYDimension->getDimensionId();
203 AutoPtr<Text> idYText = pDoc->createTextNode(yDimensionId);
204 yDimensionIdElement->appendChild(idYText);
206 yDimensionElement->appendChild(yDimensionIdElement);
207 dimensionSetElement->appendChild(yDimensionElement);
210 AutoPtr<Element> zDimensionElement = pDoc->createElement(
"ZDimension");
211 AutoPtr<Element> zDimensionIdElement = pDoc->createElement(
"RefDimensionId");
212 if (hasZDimension()) {
213 std::string zDimensionId = this->m_spZDimension->getDimensionId();
214 AutoPtr<Text> idZText = pDoc->createTextNode(zDimensionId);
215 zDimensionIdElement->appendChild(idZText);
217 zDimensionElement->appendChild(zDimensionIdElement);
218 dimensionSetElement->appendChild(zDimensionElement);
221 AutoPtr<Element> tDimensionElement = pDoc->createElement(
"TDimension");
222 AutoPtr<Element> tDimensionIdElement = pDoc->createElement(
"RefDimensionId");
223 if (hasTDimension()) {
224 std::string tDimensionId = this->m_spTDimension->getDimensionId();
225 AutoPtr<Text> idTText = pDoc->createTextNode(tDimensionId);
226 tDimensionIdElement->appendChild(idTText);
228 tDimensionElement->appendChild(tDimensionIdElement);
229 dimensionSetElement->appendChild(tDimensionElement);
231 std::stringstream xmlstream;
233 writer.writeNode(xmlstream, pDoc);
235 m_lastResult = boost::str(boost::format(xmlstream.str().c_str()) % dimensionXMLString.c_str());