AbstractXMLUtils.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.utils.xml;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.io.Writer;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.GregorianCalendar;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.xml.datatype.DatatypeFactory;
- import javax.xml.datatype.XMLGregorianCalendar;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import javax.xml.parsers.ParserConfigurationException;
- import javax.xml.transform.ErrorListener;
- import javax.xml.transform.OutputKeys;
- import javax.xml.transform.Source;
- import javax.xml.transform.Transformer;
- import javax.xml.transform.TransformerException;
- import javax.xml.transform.TransformerFactory;
- import javax.xml.transform.stream.StreamResult;
- import javax.xml.validation.SchemaFactory;
- import javax.xml.xpath.XPathFactory;
- import org.openspcoop2.utils.UtilsException;
- import org.w3c.dom.Attr;
- import org.w3c.dom.Comment;
- import org.w3c.dom.Document;
- import org.w3c.dom.Element;
- import org.w3c.dom.NamedNodeMap;
- import org.w3c.dom.Node;
- import org.w3c.dom.NodeList;
- import org.w3c.dom.Text;
- import org.xml.sax.EntityResolver;
- import org.xml.sax.ErrorHandler;
- import org.xml.sax.InputSource;
- import org.xml.sax.SAXException;
- /**
- * Classe utilizzabile per ottenere documenti xml
- *
- *
- * @author Poli Andrea (apoli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public abstract class AbstractXMLUtils {
- // XERCES
- protected abstract DocumentBuilderFactory newDocumentBuilderFactory() throws XMLException;
- protected abstract DatatypeFactory newDatatypeFactory() throws XMLException;
- protected abstract javax.xml.parsers.SAXParserFactory newSAXParserFactory() throws XMLException;
- // protected abstract javax.xml.stream.XMLEventFactory newXMLEventFactory() throws XMLException;
- protected abstract SchemaFactory newSchemaFactory() throws XMLException;
-
- // XALAN
- protected abstract TransformerFactory newTransformerFactory() throws XMLException;
- protected abstract XPathFactory newXPathFactory() throws XMLException;
-
- // XERCES
- private DocumentBuilderFactory documentFactory = null;
- private DatatypeFactory datatypeFactory = null;
- private javax.xml.parsers.SAXParserFactory saxParserFactory = null;
- // private javax.xml.stream.XMLEventFactory xmlEventFactory = null;
- private SchemaFactory schemaFactory = null;
-
- // XALAN
- private TransformerFactory transformerFactory = null;
- private XPathFactory xpathFactory = null;
-
- // OTHER
- private GregorianCalendar gregorianCalendar = null;
-
-
- // The safest way to prevent XXE is always to disable DTDs (External Entities) completely
- public static boolean DISABLE_DTDs = true;
- protected String getFeatures_disallow_doctype_decl() {
- return "http://apache.org/xml/features/disallow-doctype-decl";
- }
- public boolean isDisabledDTDs() {
- return DISABLE_DTDs;
- }
-
- // INIT - XERCES
-
- public synchronized void initDocumentBuilderFactory() throws XMLException {
- if(this.documentFactory==null){
- try {
- this.documentFactory = newDocumentBuilderFactory();
- if(DISABLE_DTDs) {
- this.documentFactory.setFeature(getFeatures_disallow_doctype_decl(), true);
- }
- } catch (Exception e) {
- throw new XMLException(e.getMessage(),e);
- }
- this.documentFactory.setNamespaceAware(true);
- }
- }
-
- public synchronized void initDatatypeFactory() throws XMLException {
- if(this.datatypeFactory==null){
- try {
- this.datatypeFactory = newDatatypeFactory();
- } catch (Exception e) {
- throw new XMLException(e.getMessage(),e);
- }
- }
- }
-
- public synchronized void initSAXParserFactory() throws XMLException {
- if(this.saxParserFactory==null){
- try {
- this.saxParserFactory = newSAXParserFactory();
- if(DISABLE_DTDs) {
- this.saxParserFactory.setFeature(getFeatures_disallow_doctype_decl(), true);
- }
- } catch (Exception e) {
- throw new XMLException(e.getMessage(),e);
- }
- }
- }
- //
- // public synchronized void initXMLEventFactory() throws XMLException {
- // if(this.xmlEventFactory==null){
- // try {
- // this.xmlEventFactory = newXMLEventFactory();
- // } catch (Exception e) {
- // throw new XMLException(e.getMessage(),e);
- // }
- // }
- // }
-
- public synchronized void initSchemaFactory() throws XMLException {
- if(this.schemaFactory==null){
- try {
- this.schemaFactory = newSchemaFactory();
- if(DISABLE_DTDs) {
- this.schemaFactory.setFeature(getFeatures_disallow_doctype_decl(), true);
- }
- } catch (Exception e) {
- throw new XMLException(e.getMessage(),e);
- }
- }
- }
- // INIT - XALAN
-
- public synchronized void initTransformerFactory() throws XMLException {
- if(this.transformerFactory==null){
- this.transformerFactory = newTransformerFactory();
- /*if(DISABLE_DTDs) {
- this.transformerFactory.setAttribute(javax.xml.XMLConstants.ACCESS_EXTERNAL_DTD, "");
- this.transformerFactory.setAttribute(javax.xml.XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");
- }*/
- }
- }
-
- public synchronized void initXPathFactory() throws XMLException {
- if(this.xpathFactory==null){
- this.xpathFactory = newXPathFactory();
- }
- }
-
- // INIT - OTHER
-
- public synchronized void initCalendarConverter() throws XMLException {
- try{
- this.initDatatypeFactory();
- this.gregorianCalendar = (GregorianCalendar) Calendar.getInstance();
- } catch (Exception e) {
- throw new XMLException(e.getMessage(),e);
- }
-
- }
-
-
- // GET - XERCES
-
- public DocumentBuilderFactory getDocumentBuilderFactory() throws XMLException {
- if(this.documentFactory==null){
- this.initDocumentBuilderFactory();
- }
- return this.documentFactory;
- }
-
- public DatatypeFactory getDatatypeFactory() throws XMLException {
- if(this.datatypeFactory==null){
- this.initDatatypeFactory();
- }
- return this.datatypeFactory;
- }
-
- public javax.xml.parsers.SAXParserFactory getSAXParserFactory() throws XMLException {
- if(this.saxParserFactory==null){
- this.initSAXParserFactory();
- }
- return this.saxParserFactory;
- }
- //
- // public javax.xml.stream.XMLEventFactory getXMLEventFactory() throws XMLException {
- // if(this.xmlEventFactory==null){
- // this.initXMLEventFactory();
- // }
- // return this.xmlEventFactory;
- // }
-
- public SchemaFactory getSchemaFactory() throws XMLException {
- if(this.schemaFactory==null){
- this.initSchemaFactory();
- }
- return this.schemaFactory;
- }
-
-
- // GET - XALAN
- public TransformerFactory getTransformerFactory() throws XMLException {
- if(this.transformerFactory==null){
- this.initTransformerFactory();
- }
- return this.transformerFactory;
- }
-
- public XPathFactory getXPathFactory() throws XMLException {
- if(this.xpathFactory==null){
- this.initXPathFactory();
- }
- return this.xpathFactory;
- }
- // GET - OTHER
-
- public XMLGregorianCalendar toGregorianCalendar(Date d) throws XMLException {
- if(this.datatypeFactory==null || this.gregorianCalendar==null){
- this.initCalendarConverter();
- }
- this.gregorianCalendar.setTime(d);
- return this.datatypeFactory.newXMLGregorianCalendar(this.gregorianCalendar);
- }
- // GET AS
-
- public Document getAsDocument(Element element) throws IOException, SAXException, ParserConfigurationException, TransformerException, XMLException{
- return this.newDocument(this.toByteArray(element));
- }
- public Document getAsDocument(Element element,ErrorHandler errorHandler) throws IOException, SAXException, ParserConfigurationException, TransformerException, XMLException{
- return this.newDocument(this.toByteArray(element),errorHandler);
- }
- public Document getAsDocument(Element element,EntityResolver entityResolver) throws IOException, SAXException, ParserConfigurationException, TransformerException, XMLException{
- return this.newDocument(this.toByteArray(element),entityResolver);
- }
- public Document getAsDocument(Element element,ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException, SAXException, ParserConfigurationException, TransformerException, XMLException{
- return this.newDocument(this.toByteArray(element),errorHandler,entityResolver);
- }
-
- public Document getAsDocument(Node Node) throws IOException, SAXException, ParserConfigurationException, TransformerException, XMLException{
- return this.newDocument(this.toByteArray(Node));
- }
- public Document getAsDocument(Node Node,ErrorHandler errorHandler) throws IOException, SAXException, ParserConfigurationException, TransformerException, XMLException{
- return this.newDocument(this.toByteArray(Node),errorHandler);
- }
- public Document getAsDocument(Node Node,EntityResolver entityResolver) throws IOException, SAXException, ParserConfigurationException, TransformerException, XMLException{
- return this.newDocument(this.toByteArray(Node),entityResolver);
- }
- public Document getAsDocument(Node Node,ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException, SAXException, ParserConfigurationException, TransformerException, XMLException{
- return this.newDocument(this.toByteArray(Node),errorHandler,entityResolver);
- }
-
-
-
- // NEW DOCUMENT
- public Document newDocument() throws IOException,SAXException,ParserConfigurationException,XMLException{
- return this.newDocument_engine(new XMLErrorHandler(),null);
- }
- public Document newDocument(ErrorHandler errorHandler) throws IOException,SAXException,ParserConfigurationException,XMLException{
- return this.newDocument_engine(errorHandler,null);
- }
- public Document newDocument(EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException,XMLException{
- return this.newDocument_engine(new XMLErrorHandler(),entityResolver);
- }
- public Document newDocument(ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException,XMLException{
- return this.newDocument_engine(errorHandler,entityResolver);
- }
- private Document newDocument_engine(ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException,XMLException{
- DocumentBuilder documentBuilder = this.getDocumentBuilderFactory().newDocumentBuilder();
- documentBuilder.setErrorHandler(errorHandler);
- if(entityResolver!=null){
- documentBuilder.setEntityResolver(entityResolver);
- }
- return documentBuilder.newDocument();
- }
-
- public Document newDocument(byte[] xml) throws IOException,SAXException,ParserConfigurationException,XMLException{
- return this.newDocument(xml,new XMLErrorHandler(),null);
- }
- public Document newDocument(byte[] xml,ErrorHandler errorHandler) throws IOException,SAXException,ParserConfigurationException,XMLException{
- return this.newDocument(xml,errorHandler,null);
- }
- public Document newDocument(byte[] xml,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException,XMLException{
- return this.newDocument(xml,new XMLErrorHandler(),entityResolver);
- }
- public Document newDocument(byte[] xml,ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException,XMLException{
- ByteArrayInputStream bin = null;
- try{
- bin = new ByteArrayInputStream(xml);
- return this.newDocument(bin,errorHandler,entityResolver);
- }finally{
- if(bin!=null){
- try{
- bin.close();
- }catch(Exception eClose){}
- }
- }
- }
- public Document newDocument(InputStream is) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is,new XMLErrorHandler(),null);
- }
- public Document newDocument(InputStream is,ErrorHandler errorHandler) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is,errorHandler,null);
- }
- public Document newDocument(InputStream is,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is,new XMLErrorHandler(),entityResolver);
- }
- public Document newDocument(InputStream is,ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- DocumentBuilder documentBuilder = this.getDocumentBuilderFactory().newDocumentBuilder();
- documentBuilder.setErrorHandler(errorHandler);
- if(entityResolver!=null)
- documentBuilder.setEntityResolver(entityResolver);
- return documentBuilder.parse(is);
- }
- public Document newDocument(File f) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(f,new XMLErrorHandler(),null);
- }
- public Document newDocument(File f,ErrorHandler errorHandler) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(f,errorHandler,null);
- }
- public Document newDocument(File f,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(f,new XMLErrorHandler(),entityResolver);
- }
- public Document newDocument(File f,ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- DocumentBuilder documentBuilder = this.getDocumentBuilderFactory().newDocumentBuilder();
- documentBuilder.setErrorHandler(errorHandler);
- if(entityResolver!=null){
- documentBuilder.setEntityResolver(entityResolver);
- }
- return documentBuilder.parse(f);
- }
- public Document newDocument(InputSource is) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is,new XMLErrorHandler(),null);
- }
- public Document newDocument(InputSource is,ErrorHandler errorHandler) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is,errorHandler,null);
- }
- public Document newDocument(InputSource is,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is,new XMLErrorHandler(),entityResolver);
- }
- public Document newDocument(InputSource is,ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- DocumentBuilder documentBuilder = this.getDocumentBuilderFactory().newDocumentBuilder();
- documentBuilder.setErrorHandler(errorHandler);
- if(entityResolver!=null){
- documentBuilder.setEntityResolver(entityResolver);
- }
- return documentBuilder.parse(is);
- }
- // NEW ELEMENT
- public Element newElement() throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newElement_engine(new XMLErrorHandler(),null);
- }
- public Element newElement(ErrorHandler errorHandler) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newElement_engine(errorHandler,null);
- }
- public Element newElement(EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newElement_engine(new XMLErrorHandler(),entityResolver);
- }
- public Element newElement(ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newElement_engine(errorHandler,entityResolver);
- }
- private Element newElement_engine(ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- DocumentBuilder documentBuilder = this.getDocumentBuilderFactory().newDocumentBuilder();
- documentBuilder.setErrorHandler(errorHandler);
- if(entityResolver!=null){
- documentBuilder.setEntityResolver(entityResolver);
- }
- return documentBuilder.newDocument().getDocumentElement();
- }
-
- public Element newElement(byte[] xml) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(xml).getDocumentElement();
- }
- public Element newElement(byte[] xml,ErrorHandler errorHandler) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(xml,errorHandler).getDocumentElement();
- }
- public Element newElement(byte[] xml,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(xml,entityResolver).getDocumentElement();
- }
- public Element newElement(byte[] xml,ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(xml,errorHandler,entityResolver).getDocumentElement();
- }
- public Element newElement(InputStream is) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is).getDocumentElement();
- }
- public Element newElement(InputStream is,ErrorHandler errorHandler) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is,errorHandler).getDocumentElement();
- }
- public Element newElement(InputStream is,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is,entityResolver).getDocumentElement();
- }
- public Element newElement(InputStream is,ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is,errorHandler,entityResolver).getDocumentElement();
- }
- public Element newElement(File f) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(f).getDocumentElement();
- }
- public Element newElement(File f,ErrorHandler errorHandler) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(f,errorHandler).getDocumentElement();
- }
- public Element newElement(File f,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(f,entityResolver).getDocumentElement();
- }
- public Element newElement(File f,ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(f,errorHandler,entityResolver).getDocumentElement();
- }
- public Element newElement(InputSource is) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is).getDocumentElement();
- }
- public Element newElement(InputSource is,ErrorHandler errorHandler) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is,errorHandler).getDocumentElement();
- }
- public Element newElement(InputSource is,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is,entityResolver).getDocumentElement();
- }
- public Element newElement(InputSource is,ErrorHandler errorHandler,EntityResolver entityResolver) throws IOException,SAXException,ParserConfigurationException, XMLException{
- return this.newDocument(is,errorHandler,entityResolver).getDocumentElement();
- }
- // TO BYTE ARRAY
- public byte[] toByteArray(Document doc) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(doc,bout);
- bout.close();
- return bout.toByteArray();
- }
- public byte[] toByteArray(Document doc,boolean omitXMLDeclaration) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(doc,bout,omitXMLDeclaration);
- bout.close();
- return bout.toByteArray();
- }
- public byte[] toByteArray(Document doc,TransformerConfig config) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(doc,bout,config);
- bout.close();
- return bout.toByteArray();
- }
-
- public byte[] toByteArray(Element element) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(element,bout);
- bout.close();
- return bout.toByteArray();
- }
- public byte[] toByteArray(Element element,boolean omitXMLDeclaration) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(element,bout,omitXMLDeclaration);
- bout.close();
- return bout.toByteArray();
- }
- public byte[] toByteArray(Element element,TransformerConfig config) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(element,bout,config);
- bout.close();
- return bout.toByteArray();
- }
-
- public byte[] toByteArray(Node node) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(node,bout);
- bout.close();
- return bout.toByteArray();
- }
- public byte[] toByteArray(Node node,boolean omitXMLDeclaration) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(node,bout,omitXMLDeclaration);
- bout.close();
- return bout.toByteArray();
- }
- public byte[] toByteArray(Node node,TransformerConfig config) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(node,bout,config);
- bout.close();
- return bout.toByteArray();
- }
- // TO STRING
- public String toString(Document doc) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(doc,bout);
- bout.close();
- return bout.toString();
- }
- public String toString(Document doc,boolean omitXMLDeclaration) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(doc,bout,omitXMLDeclaration);
- bout.close();
- return bout.toString();
- }
- public String toString(Document doc,TransformerConfig config) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(doc,bout,config);
- bout.close();
- return bout.toString();
- }
-
- public String toString(Element element) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(element,bout);
- bout.close();
- return bout.toString();
- }
- public String toString(Element element,boolean omitXMLDeclaration) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(element,bout,omitXMLDeclaration);
- bout.close();
- return bout.toString();
- }
- public String toString(Element element,TransformerConfig config) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(element,bout,config);
- bout.close();
- return bout.toString();
- }
-
- public String toString(Node node) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(node,bout);
- bout.close();
- return bout.toString();
- }
- public String toString(Node node,boolean omitXMLDeclaration) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(node,bout,omitXMLDeclaration);
- bout.close();
- return bout.toString();
- }
- public String toString(Node node,TransformerConfig config) throws TransformerException,IOException, XMLException{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.writeTo(node,bout,config);
- bout.close();
- return bout.toString();
- }
- // WRITE TO
- public void writeTo(Document doc,OutputStream os)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, os, new XMLErrorListener(),false, null, false);
- }
- public void writeTo(Document doc,OutputStream os,ErrorListener errorListener)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, os,errorListener,false, null, false);
- }
- public void writeTo(Document doc,OutputStream os,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, os, new XMLErrorListener(),omitXMLDeclaration, null, false);
- }
- public void writeTo(Document doc,OutputStream os,ErrorListener errorListener,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, os,errorListener,omitXMLDeclaration, null, false);
- }
- public void writeTo(Document doc,OutputStream os, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, os, new XMLErrorListener(),false, charset, false);
- }
- public void writeTo(Document doc,OutputStream os,ErrorListener errorListener, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, os,errorListener,false, charset, false);
- }
- public void writeTo(Document doc,OutputStream os,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, os, new XMLErrorListener(),omitXMLDeclaration, charset, false);
- }
- public void writeTo(Document doc,OutputStream os,ErrorListener errorListener,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, os,errorListener,omitXMLDeclaration, charset, false);
- }
- public void writeTo(Document doc,OutputStream os,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, os, new XMLErrorListener(),omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Document doc,OutputStream os,ErrorListener errorListener,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, os,errorListener,omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Document doc,Writer writer)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, writer, new XMLErrorListener(),false, null, false);
- }
- public void writeTo(Document doc,Writer writer,ErrorListener errorListener)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, writer,errorListener,false, null, false);
- }
- public void writeTo(Document doc,Writer writer,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, writer, new XMLErrorListener(), omitXMLDeclaration, null, false);
- }
- public void writeTo(Document doc,Writer writer,ErrorListener errorListener,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, writer,errorListener, omitXMLDeclaration, null, false);
- }
- public void writeTo(Document doc,Writer writer, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, writer, new XMLErrorListener(),false, charset, false);
- }
- public void writeTo(Document doc,Writer writer,ErrorListener errorListener, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, writer,errorListener,false, charset, false);
- }
- public void writeTo(Document doc,Writer writer,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, writer, new XMLErrorListener(), omitXMLDeclaration, charset, false);
- }
- public void writeTo(Document doc,Writer writer,ErrorListener errorListener,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, writer,errorListener, omitXMLDeclaration, charset, false);
- }
- public void writeTo(Document doc,Writer writer,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, writer, new XMLErrorListener(), omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Document doc,Writer writer,ErrorListener errorListener,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, writer,errorListener, omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Document doc,File file)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, file, new XMLErrorListener(),false, null, false);
- }
- public void writeTo(Document doc,File file,ErrorListener errorListener)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, file,errorListener,false, null, false);
- }
- public void writeTo(Document doc,File file,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, file, new XMLErrorListener(),omitXMLDeclaration, null, false);
- }
- public void writeTo(Document doc,File file,ErrorListener errorListener,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, file,errorListener,omitXMLDeclaration, null, false);
- }
- public void writeTo(Document doc,File file, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, file, new XMLErrorListener(),false, charset, false);
- }
- public void writeTo(Document doc,File file,ErrorListener errorListener, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, file,errorListener,false, charset, false);
- }
- public void writeTo(Document doc,File file,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, file, new XMLErrorListener(),omitXMLDeclaration, charset, false);
- }
- public void writeTo(Document doc,File file,ErrorListener errorListener,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, file,errorListener,omitXMLDeclaration, charset, false);
- }
- public void writeTo(Document doc,File file,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, file, new XMLErrorListener(),omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Document doc,File file,ErrorListener errorListener,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(doc, file,errorListener,omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Element element,OutputStream os)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, os, new XMLErrorListener(),false, null, false);
- }
- public void writeTo(Element element,OutputStream os,ErrorListener errorListener)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, os,errorListener,false, null, false);
- }
- public void writeTo(Element element,OutputStream os,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, os, new XMLErrorListener(),omitXMLDeclaration, null, false);
- }
- public void writeTo(Element element,OutputStream os,ErrorListener errorListener,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, os,errorListener,omitXMLDeclaration, null, false);
- }
- public void writeTo(Element element,OutputStream os, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, os, new XMLErrorListener(),false, charset, false);
- }
- public void writeTo(Element element,OutputStream os,ErrorListener errorListener, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, os,errorListener,false, charset, false);
- }
- public void writeTo(Element element,OutputStream os,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, os, new XMLErrorListener(),omitXMLDeclaration, charset, false);
- }
- public void writeTo(Element element,OutputStream os,ErrorListener errorListener,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, os,errorListener,omitXMLDeclaration, charset, false);
- }
- public void writeTo(Element element,OutputStream os,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, os, new XMLErrorListener(),omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Element element,OutputStream os,ErrorListener errorListener,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, os,errorListener,omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Element element,Writer writer)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, writer, new XMLErrorListener(),false, null, false);
- }
- public void writeTo(Element element,Writer writer,ErrorListener errorListener)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, writer,errorListener,false, null, false);
- }
- public void writeTo(Element element,Writer writer,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, writer, new XMLErrorListener(), omitXMLDeclaration, null, false);
- }
- public void writeTo(Element element,Writer writer,ErrorListener errorListener,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, writer,errorListener, omitXMLDeclaration, null, false);
- }
- public void writeTo(Element element,Writer writer, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, writer, new XMLErrorListener(),false, charset, false);
- }
- public void writeTo(Element element,Writer writer,ErrorListener errorListener, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, writer,errorListener,false, charset, false);
- }
- public void writeTo(Element element,Writer writer,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, writer, new XMLErrorListener(), omitXMLDeclaration, charset, false);
- }
- public void writeTo(Element element,Writer writer,ErrorListener errorListener,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, writer,errorListener, omitXMLDeclaration, charset, false);
- }
- public void writeTo(Element element,Writer writer,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, writer, new XMLErrorListener(), omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Element element,Writer writer,ErrorListener errorListener,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, writer,errorListener, omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Element element,File file)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, file, new XMLErrorListener(),false, null, false);
- }
- public void writeTo(Element element,File file,ErrorListener errorListener)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, file,errorListener,false, null, false);
- }
- public void writeTo(Element element,File file,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, file, new XMLErrorListener(),omitXMLDeclaration, null, false);
- }
- public void writeTo(Element element,File file,ErrorListener errorListener,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, file,errorListener,omitXMLDeclaration, null, false);
- }
- public void writeTo(Element element,File file, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, file, new XMLErrorListener(),false, charset, false);
- }
- public void writeTo(Element element,File file,ErrorListener errorListener, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, file,errorListener,false, charset, false);
- }
- public void writeTo(Element element,File file,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, file, new XMLErrorListener(),omitXMLDeclaration, charset, false);
- }
- public void writeTo(Element element,File file,ErrorListener errorListener,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, file,errorListener,omitXMLDeclaration, charset, false);
- }
- public void writeTo(Element element,File file,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, file, new XMLErrorListener(),omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Element element,File file,ErrorListener errorListener,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(element, file,errorListener,omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Node node,OutputStream os)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,os, new XMLErrorListener(),false, null, false);
- }
- public void writeTo(Node node,OutputStream os,ErrorListener errorListener)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,os,errorListener,false, null, false);
- }
- public void writeTo(Node node,OutputStream os,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,os, new XMLErrorListener(),omitXMLDeclaration, null, false);
- }
- public void writeTo(Node node,OutputStream os,ErrorListener errorListener,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,os,errorListener,omitXMLDeclaration, null, false);
- }
- public void writeTo(Node node,OutputStream os, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,os, new XMLErrorListener(),false, charset, false);
- }
- public void writeTo(Node node,OutputStream os,ErrorListener errorListener, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,os,errorListener,false, charset, false);
- }
- public void writeTo(Node node,OutputStream os,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,os, new XMLErrorListener(),omitXMLDeclaration, charset, false);
- }
- public void writeTo(Node node,OutputStream os,ErrorListener errorListener,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,os,errorListener,omitXMLDeclaration, charset, false);
- }
- public void writeTo(Node node,OutputStream os,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,os, new XMLErrorListener(),omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Node node,OutputStream os,ErrorListener errorListener,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,os,errorListener,omitXMLDeclaration, charset, indent);
- }
- private void writeNodeTo(Node node,OutputStream os,ErrorListener errorListener,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException, XMLException{
- TransformerConfig config = new TransformerConfig();
- config.setOmitXMLDeclaration(omitXMLDeclaration);
- config.setCharset(charset);
- config.setIndent(indent);
- writeTo(node,os,errorListener,config);
- }
- public void writeTo(Node node,Writer writer)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,writer, new XMLErrorListener(),false, null, false);
- }
- public void writeTo(Node node,Writer writer,ErrorListener errorListener)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,writer,errorListener,false, null, false);
- }
- public void writeTo(Node node,Writer writer,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,writer, new XMLErrorListener(),omitXMLDeclaration, null, false);
- }
- public void writeTo(Node node,Writer writer,ErrorListener errorListener,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,writer,errorListener,omitXMLDeclaration, null, false);
- }
- public void writeTo(Node node,Writer writer, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,writer, new XMLErrorListener(),false, charset, false);
- }
- public void writeTo(Node node,Writer writer,ErrorListener errorListener, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,writer,errorListener,false, charset, false);
- }
- public void writeTo(Node node,Writer writer,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,writer, new XMLErrorListener(),omitXMLDeclaration, charset, false);
- }
- public void writeTo(Node node,Writer writer,ErrorListener errorListener,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,writer,errorListener,omitXMLDeclaration, charset, false);
- }
- public void writeTo(Node node,Writer writer,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,writer, new XMLErrorListener(),omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Node node,Writer writer,ErrorListener errorListener,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,writer,errorListener,omitXMLDeclaration, charset, indent);
- }
- private void writeNodeTo(Node node,Writer writer,ErrorListener errorListener,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- TransformerConfig config = new TransformerConfig();
- config.setOmitXMLDeclaration(omitXMLDeclaration);
- config.setCharset(charset);
- config.setIndent(indent);
- writeTo(node,writer,errorListener,config);
- }
- public void writeTo(Node node,File file)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,file, new XMLErrorListener(),false, null, false);
- }
- public void writeTo(Node node,File file,ErrorListener errorListener)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,file,errorListener,false, null, false);
- }
- public void writeTo(Node node,File file,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,file, new XMLErrorListener(),omitXMLDeclaration, null, false);
- }
- public void writeTo(Node node,File file,ErrorListener errorListener,boolean omitXMLDeclaration)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,file,errorListener,omitXMLDeclaration, null, false);
- }
- public void writeTo(Node node,File file, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,file, new XMLErrorListener(),false, charset, false);
- }
- public void writeTo(Node node,File file,ErrorListener errorListener, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,file,errorListener,false, charset, false);
- }
- public void writeTo(Node node,File file,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,file, new XMLErrorListener(),omitXMLDeclaration, charset, false);
- }
- public void writeTo(Node node,File file,ErrorListener errorListener,boolean omitXMLDeclaration, String charset)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,file,errorListener,omitXMLDeclaration, charset, false);
- }
- public void writeTo(Node node,File file,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,file, new XMLErrorListener(),omitXMLDeclaration, charset, indent);
- }
- public void writeTo(Node node,File file,ErrorListener errorListener,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- this.writeNodeTo(node,file,errorListener,omitXMLDeclaration, charset, indent);
- }
- private void writeNodeTo(Node node,File file,ErrorListener errorListener,boolean omitXMLDeclaration, String charset, boolean indent)throws TransformerException,IOException, XMLException{
- TransformerConfig config = new TransformerConfig();
- config.setOmitXMLDeclaration(omitXMLDeclaration);
- config.setCharset(charset);
- config.setIndent(indent);
- writeTo(node,file,errorListener,config);
- }
-
- public void writeTo(Node node,OutputStream os,TransformerConfig config)throws TransformerException,IOException, XMLException, XMLException{
- writeTo(node,os,new XMLErrorListener(),config);
- }
- public void writeTo(Node node,OutputStream os,ErrorListener errorListener,TransformerConfig config)throws TransformerException,IOException, XMLException, XMLException{
- Source source = new DOMSourceFix(node);
- StreamResult result = new StreamResult(os);
- Transformer transformer = getTransformerFactory().newTransformer();
- if(config!=null && config.isOmitXMLDeclaration()) {
- transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,"yes");
- }
- if(config!=null && config.getCharset()!=null) {
- transformer.setOutputProperty(OutputKeys.ENCODING, config.getCharset());
- }
- if(config!=null && config.isIndent()) {
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- }
- transformer.setOutputProperty(OutputKeys.METHOD, "xml");
- transformer.setErrorListener(errorListener);
- transformer.transform(source, result);
- os.flush();
- }
-
- public void writeTo(Node node,Writer writer,TransformerConfig config)throws TransformerException,IOException, XMLException{
- writeTo(node,writer,new XMLErrorListener(),config);
- }
- public void writeTo(Node node,Writer writer,ErrorListener errorListener,TransformerConfig config)throws TransformerException,IOException, XMLException{
- Source source = new DOMSourceFix(node);
- StreamResult result = new StreamResult(writer);
- Transformer transformer = getTransformerFactory().newTransformer();
- if(config!=null && config.isOmitXMLDeclaration()) {
- transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,"yes");
- }
- if(config!=null && config.getCharset()!=null) {
- transformer.setOutputProperty(OutputKeys.ENCODING, config.getCharset());
- }
- if(config!=null && config.isIndent()) {
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- }
- transformer.setErrorListener(errorListener);
- transformer.transform(source, result);
- writer.flush();
- }
-
- public void writeTo(Node node,File file,TransformerConfig config)throws TransformerException,IOException, XMLException{
- writeTo(node,file,new XMLErrorListener(),config);
- }
- public void writeTo(Node node,File file,ErrorListener errorListener,TransformerConfig config)throws TransformerException,IOException, XMLException{
- Source source = new DOMSourceFix(node);
- StreamResult result = new StreamResult(file);
- Transformer transformer = getTransformerFactory().newTransformer();
- if(config!=null && config.isOmitXMLDeclaration()) {
- transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,"yes");
- }
- if(config!=null && config.getCharset()!=null) {
- transformer.setOutputProperty(OutputKeys.ENCODING, config.getCharset());
- }
- if(config!=null && config.isIndent()) {
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- }
- transformer.setErrorListener(errorListener);
- transformer.transform(source, result);
- }
-
-
-
- // ELIMINAZIONE DICHIARAZIONE XML
-
- @Deprecated
- public byte[] eraserXML(byte[] xml){
- return this.eraserXML(new String(xml)).getBytes();
- }
- @Deprecated
- public String eraserXML(String xml){
- String tmp = xml.trim();
- if(tmp.startsWith("<?xml")){
- int indexOf = tmp.indexOf(">");
- return tmp.substring(indexOf+1);
- }else{
- return xml;
- }
- }
-
- /**
- * Metodo che si occupa di effettuare l'eliminazione degli xsd:type String
- *
- * @deprecated utility che elimina gli xsd type
- * @param xml Xml su cui effettuare la pulizia dell'header.
- * @return byte[] contenente un xml 'pulito'.
- *
- */
- @Deprecated public byte[] eraserXsiType(byte[] xml) throws UtilsException{
- ByteArrayOutputStream cleanXML = null;
- try{
- String eraserString = " xsi:type=\"xsd:string\"";
- cleanXML = new ByteArrayOutputStream();
- // Busta
- for(int i=0; i<xml.length ; ){
- if(xml[i] == ' '){
- // String
- if(i+eraserString.length() < xml.length){
- StringBuilder test = new StringBuilder();
- for(int k=0 ; k < eraserString.length(); k++){
- test.append((char)xml[i+k]);
- }
- if(test.toString().equals(eraserString)){
- i = i + eraserString.length();
- continue;
- }
- }
- cleanXML.write(xml[i]);
- i++;
- }else{
- cleanXML.write(xml[i]);
- i++;
- }
- }
- byte [] risultato = cleanXML.toByteArray();
- cleanXML.close();
- return risultato;
- } catch(Exception e) {
- try{
- if(cleanXML!=null)
- cleanXML.close();
- }catch(Exception eis){
- // close
- }
- throw new UtilsException("Utilities.eraserType error "+e.getMessage(),e);
- }
- }
-
-
-
- // IS
-
- public boolean isDocument(byte[]xml){
- try{
- return this.newDocument(xml)!=null;
- }catch(Exception e){
- return false;
- }
- }
- public boolean isElement(byte[]xml){
- try{
- return this.newElement(xml)!=null;
- }catch(Exception e){
- return false;
- }
- }
-
-
- // ATTRIBUTE
-
- public String getAttributeValue(Node n,String attrName){
- NamedNodeMap att = n.getAttributes();
- if(att!=null){
- Node nA = att.getNamedItem(attrName);
- if(nA!=null)
- return nA.getNodeValue();
- }
- return null;
- }
-
- public void removeAttribute(Attr attr, Element src){
-
- // NOTA:
- // attr.getName ritorna anche il prefisso se c'è a differenza di attr.getLocalName
-
- if("http://www.w3.org/2000/xmlns/".equals(attr.getNamespaceURI())){
- if("xmlns".equals(attr.getName())){
- if(attr.getClass().getName().contains("org.apache.axiom.")){
- // axiom
- //System.out.println("REMOVE NS SPECIAL AXIOM XMLNS ["+attr.getClass().getName()+"]");
- src.removeAttributeNS(attr.getNamespaceURI(), "");
- }
- else{
- // cxf
- //System.out.println("REMOVE NS SPECIAL CXF XMLNS ["+attr.getClass().getName()+"]");
- src.removeAttributeNS(attr.getNamespaceURI(), attr.getName());
- }
- }
- else if(attr.getNamespaceURI()!=null){
- //System.out.println("REMOVE NS XMLNS");
- src.removeAttributeNS(attr.getNamespaceURI(), attr.getLocalName()); // Deve essere usato localName per cxf
- }
- }
- else{
- //System.out.println("REMOVE NORMAL");
- src.removeAttribute(attr.getName());
- }
- }
-
- public void addAttribute(Attr attr, Element src){
-
- // NOTA:
- // attr.getName ritorna anche il prefisso se c'è a differenza di attr.getLocalName
-
- if("http://www.w3.org/2000/xmlns/".equals(attr.getNamespaceURI())){
- if("xmlns".equals(attr.getLocalName())){
- //System.out.println("ADD NS SPECIAL XMLNS");
- src.setAttribute(attr.getName(), attr.getValue());
- }
- else{
- //System.out.println("ADD NS XMLNS");
- src.setAttributeNS(attr.getNamespaceURI(), attr.getName(), attr.getValue());
- }
- }
- else{
- //System.out.println("ADD NORMAL ATTRIBUTE");
- src.setAttribute(attr.getName(), attr.getValue());
- }
- }
-
-
-
-
-
- // NAMESPACE
-
- public Map<String, String> getNamespaceDeclaration(Node n){
- NamedNodeMap map = n.getAttributes();
- Map<String, String> namespaces = new HashMap<>();
- if(map!=null){
- for (int i = 0; i < map.getLength(); i++) {
- Node attribute = map.item(i);
- //System.out.println("ATTRIBUTE["+i+"] ("+attribute.getClass().getName()+") name["+attribute.getLocalName()+"] uri["+attribute.getNamespaceURI()+"] value["+attribute.getNodeValue()+"] prefix["+attribute.getPrefix()+"]");
-
- if(attribute!=null && (attribute instanceof Attr) ){
- Attr a = (Attr) attribute;
-
- //System.out.println("ATTRIBUTE["+i+"] INSTACE name("+a.getName()+") value("+a.getValue()+") uri("+a.getBaseURI()+") prefix("+a.getPrefix()+") localName("+a.getLocalName()+")");
- // INSTACE name(xmlns) value(www.namespace.org)
- // INSTACE name(xmlns:pp) value(www.namespace2.org)
-
- String prefix = a.getName();
- if(prefix!=null && (prefix.startsWith("xmlns") || prefix.equals("xmlns"))){
- if(prefix.contains(":")){
- prefix = prefix.split(":")[1];
- }
- else{
- prefix = "";
- }
- namespaces.put(prefix, a.getValue());
- }
- }
- }
- }
- return namespaces;
- }
-
- public String findNamespaceByPrefix(String prefix,Node node) {
- return this.findNamespaceByPrefix(prefix, node, node);
- }
- public String findNamespaceByPrefix(String prefix,Node node, Node parentNode) {
- if(node==null) {
- return null;
- }
-
- // System.out.println("[{"+node.getNamespaceURI()+"}"+node.getLocalName()+"] CERCO NAMESPACE ...");
-
- // cerco tra le definizioni del nodo
- NamedNodeMap nn = node.getAttributes();
- if(nn!=null && nn.getLength()>0) {
- for (int k = 0; k < nn.getLength(); k++) {
- Node nAttr = nn.item(k);
- if(nAttr instanceof Attr) {
- Attr attr = (Attr) nAttr;
- String prefixAttr = attr.getName();
- if(prefixAttr!=null && (prefixAttr.startsWith("xmlns") || prefix.equals("prefixAttr"))){
- if(prefixAttr.contains(":")){
- prefixAttr = prefixAttr.split(":")[1];
- }
- else{
- prefixAttr = "";
- }
- }
- // System.out.println("\t CONFRONTO ["+prefix+"]==["+prefixAttr+"] ["+attr.getName()+"] ["+attr.getLocalName()+"] ["+attr.getValue()+"] ["+attr.getNamespaceURI()+"] ...");
- if(prefix.equals(prefixAttr)) {
- // System.out.println("TROVATO PREFIX ["+prefix+"] in node [{"+node.getNamespaceURI()+"}"+node.getLocalName()+
- // "], namespace is ["+attr.getNamespaceURI()+"]["+attr.getValue()+"]");
- // TROVATO PREFIX [ns10] in node [{http://www.xxxx}ElementName], namespace is [http://www.w3.org/2000/xmlns/][http://namespaceApplicativo]
- return attr.getValue();
- }
- }
- }
- }
-
- // Sono al padre non salgo ulteriormente
- if(node.isSameNode(parentNode)) {
- // System.out.println("\tRicerca ["+prefix+"] RAGGIUNTO IL PADRE [{"+parentNode.getNamespaceURI()+"}"+parentNode.getLocalName()+"]");
- return null;
- }
- // cerco nel padre a meno che non ho raggiunto il parentNode
- Node p = node.getParentNode();
- if(p==null) {
- return null;
- }
- return this.findNamespaceByPrefix(prefix, p, parentNode);
- }
-
- public void addNamespaceDeclaration(Map<String, String> namespace, Element destNode){
- if(namespace!=null && namespace.size()>0){
- Map<String, String> declarationNamespacesDestNode = this.getNamespaceDeclaration(destNode);
- // if(declarationNamespacesDestNode.size()>0){
- // Enumeration<String> decSchema = declarationNamespacesDestNode.keys();
- // while (decSchema.hasMoreElements()) {
- // String dec = (String) decSchema.nextElement();
- // System.out.println("TROVATO ORIGINALE ["+dec+"]=["+declarationNamespacesDestNode.get(dec)+"]");
- // }
- // }
- for (String dec : namespace.keySet()) {
- //System.out.println("TROVATO ["+dec+"]=["+namespace.get(dec)+"]");
- if(declarationNamespacesDestNode.containsKey(dec)==false){
- //System.out.println("AGGIUNGO IN SCHEMA");
- String name = "xmlns:"+dec;
- if("".equals(dec)){
- name = "xmlns";
- }
- destNode.setAttributeNS("http://www.w3.org/2000/xmlns/",name,namespace.get(dec));
- }
- }
- }
- }
-
- public void removeNamespaceDeclaration(Map<String, String> namespace, Element destNode){
-
- // TODO: Da verificare, non ancora utilizzato
- if(namespace!=null && namespace.size()>0){
- for (String dec : namespace.keySet()) {
- //System.out.println("RIMUOVO ["+dec+"]=["+namespace.get(dec)+"]");
- String name = "xmlns:"+dec;
- if("".equals(dec)){
- name = "xmlns";
- }
- destNode.removeAttributeNS("http://www.w3.org/2000/xmlns/", name);
- }
- }
- }
-
-
-
-
-
-
- // NAMESPACE XSI TYPE
-
- private static final String XMLSCHEMA_INSTANCE_NAMESPACE = "http://www.w3.org/2001/XMLSchema-instance";
- private static final String XMLSCHEMA_INSTANCE_LOCAL_NAME_TYPE = "type";
-
- public void addNamespaceXSITypeIfNotExists(Node node, DynamicNamespaceContext dnc, boolean deep) {
- this.addNamespaceXSITypeIfNotExists(node, dnc, deep, node);
- }
- private void addNamespaceXSITypeIfNotExists(Node node, DynamicNamespaceContext dnc, boolean deep, Node parentNode) {
-
- if(node==null) {
- return;
- }
-
-
-
- // Gestisco attributi
- if(node instanceof Element) {
- Element element = (Element) node;
- NamedNodeMap nn = element.getAttributes();
- if(nn!=null && nn.getLength()>0) {
- List<String> prefixXSIType = new ArrayList<>();
- for (int k = 0; k < nn.getLength(); k++) {
- Node nAttr = nn.item(k);
- //System.out.println("ATTR ["+nAttr.getClass().getName()+"]");
- if(nAttr instanceof Attr) {
- Attr attr = (Attr) nAttr;
- //System.out.println("\t name["+attr.getName()+"] value["+attr.getValue()+"] namespace["+attr.getNamespaceURI()+"] prefix["+attr.getPrefix()+"]");
- // name[xsi:type] value[ns10:XXXXType] namespace[http://www.w3.org/2001/XMLSchema-instance] prefix[xsi]
- if(AbstractXMLUtils.XMLSCHEMA_INSTANCE_NAMESPACE.equals(attr.getNamespaceURI())) {
- String prefix = attr.getPrefix();
- String nameAtteso = prefix+":"+AbstractXMLUtils.XMLSCHEMA_INSTANCE_LOCAL_NAME_TYPE;
- if(prefix==null || "".equals(prefix)) {
- nameAtteso = AbstractXMLUtils.XMLSCHEMA_INSTANCE_LOCAL_NAME_TYPE;
- }
- if(nameAtteso.equals(attr.getName())) {
- if(attr.getValue()!=null && attr.getValue().contains(":")) {
- prefixXSIType.add(attr.getValue());
- }
- }
- }
- }
- }
- if(prefixXSIType.size()>0) {
- for (String prefixValue : prefixXSIType) {
- String [] tmp = prefixValue.split(":");
- if(tmp!=null && tmp.length==2) {
- String prefix = tmp[0];
- //String localName = tmp[1];
-
- // System.out.println("\n\n\n =============================================================");
- // System.out.println("[{"+node.getNamespaceURI()+"}"+node.getLocalName()+"] prefix ["+prefix+"]");
- // System.out.println("=============================================================\n");
-
- //System.out.println("VERIFICO PRESENZA NAMESPACE PER ["+prefixValue+"] prefix["+prefix+"] localName["+localName+"]");
- String namespaceEsistente = this.findNamespaceByPrefix(prefix, element, parentNode);
- boolean foundNamespace = namespaceEsistente!=null;
- if(!foundNamespace) {
- String namespace = dnc.getNamespaceURI(prefix);
- // System.out.println("[{"+node.getNamespaceURI()+"}"+node.getLocalName()+"] NAMESPACE AGGIUNTO PERCHE' NON TROVATO per ["+prefix+"]=["+namespace+"]");
- element.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:"+prefix, namespace);
- }
- // else {
- // System.out.println("[{"+node.getNamespaceURI()+"}"+node.getLocalName()+"] ESISTE NAMESPACE ["+namespaceEsistente+"] PER PREFIX: "+prefix);
- // }
- }
- }
- }
- }
- }
-
- // Vado in ricorsione sugli elementi figli
- if(deep) {
- List<Node> childList = this.getNotEmptyChildNodes(node, false);
- if(childList!=null && childList.size()>0) {
- for (Node child : childList) {
- this.addNamespaceXSITypeIfNotExists(child, dnc, deep, parentNode);
- }
- }
- }
- }
-
-
-
-
-
-
-
-
- // UTILITIES
-
- public List<Node> getNotEmptyChildNodes(Node e){
- return getNotEmptyChildNodes(e, true);
- }
- public List<Node> getNotEmptyChildNodes(Node e, boolean consideraTextNotEmptyAsNode){
- if(e==null) {
- throw new RuntimeException("Param node is null");
- }
- NodeList nl = e.getChildNodes();
- List<Node> vec = new ArrayList<Node>();
- if(nl!=null){
- for(int index = 0 ; index<nl.getLength(); index++){
- Node n = nl.item(index);
- if(n instanceof Text){
- if(consideraTextNotEmptyAsNode){
- if (((Text) nl.item(index)).getData().trim().length() == 0) {
- continue;
- }
- }else{
- continue;
- }
- }
- else if (n instanceof Comment) {
- continue;
- }
- vec.add(nl.item(index));
- }
- }
- return vec;
- }
-
- public Node getFirstNotEmptyChildNode(Node e){
- return getFirstNotEmptyChildNode(e, true);
- }
- public Node getFirstNotEmptyChildNode(Node e, boolean consideraTextNotEmptyAsNode){
- if(e==null) {
- throw new RuntimeException("Param node is null");
- }
- NodeList nl = e.getChildNodes();
- if(nl!=null){
- for(int index = 0 ; index<nl.getLength(); index++){
- Node n = nl.item(index);
- if(n instanceof Text){
- if(consideraTextNotEmptyAsNode){
- if (((Text) nl.item(index)).getData().trim().length() == 0) {
- continue;
- }
- }else{
- continue;
- }
- }
- else if (nl.item(index) instanceof Comment) {
- continue;
- }
- return nl.item(index);
- }
- }
- return null;
- }
-
- public boolean matchLocalName(Node nodo,String nodeName,String prefix,String namespace){
- if(nodo==null)
- return false;
- if(nodo.getNodeName()==null)
- return false;
- // Il nodo possiede il prefisso atteso
- if(nodo.getNodeName().equals(prefix+nodeName))
- return true;
- // Il nodo puo' ridefinire il prefisso ridefinendo il namespace
- String namespaceNodo = nodo.getNamespaceURI();
- if(namespaceNodo!=null && namespaceNodo.equals(namespace)){
- String xmlns = nodo.getPrefix();
- if(xmlns == null){
- xmlns = "";
- }else if(!xmlns.equals("")){
- xmlns = xmlns + ":";
- }
- if(nodo.getNodeName().equals(xmlns+nodeName))
- return true;
- }
- return false;
- }
-
- public Node getAttributeNode(Node node,String attributeName){
- if (node == null)
- {
- return null;
- }
- NamedNodeMap map = node.getAttributes();
- if(map==null || map.getLength()==0){
- return null;
- }
- else{
- return map.getNamedItem(attributeName);
- }
- }
- public Node getQualifiedAttributeNode(Node node,String attributeName,String namespace){
- if (node == null)
- {
- return null;
- }
- NamedNodeMap map = node.getAttributes();
- if(map==null || map.getLength()==0){
- return null;
- }
- else{
- return map.getNamedItemNS(namespace, attributeName);
- }
- }
-
- }