2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 Nokia. All rights
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END============================================
20 * ===================================================================
24 package org.onap.clamp.clds.util;
26 import java.io.StringWriter;
27 import javax.xml.XMLConstants;
28 import javax.xml.transform.OutputKeys;
29 import javax.xml.transform.Transformer;
30 import javax.xml.transform.TransformerException;
31 import javax.xml.transform.TransformerFactory;
32 import javax.xml.transform.dom.DOMSource;
33 import javax.xml.transform.stream.StreamResult;
34 import org.apache.batik.anim.dom.SVGDOMImplementation;
35 import org.apache.batik.dom.GenericDOMImplementation;
36 import org.apache.batik.util.SVGConstants;
37 import org.w3c.dom.DOMImplementation;
38 import org.w3c.dom.Document;
40 public class XmlTools {
43 * Private constructor to avoid creating instances of util class.
49 * Transforms document to XML string.
51 * @param doc XML document
54 public static String exportXmlDocumentAsString(Document doc) {
56 TransformerFactory tf = TransformerFactory.newInstance();
57 tf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
58 Transformer transformer = tf.newTransformer();
59 transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
60 StringWriter writer = new StringWriter();
61 transformer.transform(new DOMSource(doc), new StreamResult(writer));
62 return writer.getBuffer().toString();
63 } catch (TransformerException e) {
64 throw new RuntimeException(e);
69 * Creates empty svg document.
73 public static Document createEmptySvgDocument() {
74 DOMImplementation domImplementation = GenericDOMImplementation.getDOMImplementation();
75 String svgNs = SVGDOMImplementation.SVG_NAMESPACE_URI;
76 return domImplementation.createDocument(svgNs, SVGConstants.SVG_SVG_TAG, null);