public EncodedData getBytesFromSource(Source source, Marshaller marshaller, String mimeType) { ByteArrayOutputStream out = new ByteArrayOutputStream(); StreamResult result = new StreamResult(out); marshaller.getTransformer().transform(source, result); if (mimeType == null) { mimeType = "application/xml"; } return new EncodedData(out.toByteArray(), mimeType); }
/** * INTERNAL * @return the transformer instance for this marshaller */ @Override public XMLTransformer getTransformer() { if(null == transformer) { XMLPlatform xmlPlatform = XMLPlatformFactory.getInstance().getXMLPlatform(); transformer = xmlPlatform.newXMLTransformer(); transformer.setEncoding(getEncoding()); transformer.setFormattedOutput(isFormattedOutput()); transformer.setFragment(fragment); } return transformer; }
/** * Get the encoding set on this XMLMarshaller * If the encoding has not been set the default UTF-8 will be used * @return the encoding set on this XMLMarshaller */ public String getEncoding() { return transformer.getEncoding(); }
XMLTransformer transformer = marshaller.getTransformer(); if (isXMLRoot) { String oldEncoding = transformer.getEncoding(); String oldVersion = transformer.getVersion(); if (((Root) obj).getEncoding() != null) { transformer.setEncoding(((Root) obj).getEncoding()); transformer.setVersion(((Root) obj).getXMLVersion()); transformer.transform(n, result); if(oldEncoding != null){ transformer.setEncoding(oldEncoding); transformer.setVersion(oldVersion); transformer.transform(n, result);
public Object convertObjectValueToDataValue(Object objectValue, Session session, XMLMarshaller marshaller) { if (objectValue != null && elementClass.isAssignableFrom(objectValue.getClass())) { ErrorHandler handler = marshaller.getErrorHandler(); Source source = null; if(handler != null && handler instanceof JAXBErrorHandler) { source = domHandler.marshal(objectValue, ((JAXBErrorHandler)handler).getValidationEventHandler()); } else { source = domHandler.marshal(objectValue, null); } DOMResult result = new DOMResult(); if(source instanceof DOMSource){ Node n = ((DOMSource)source).getNode(); if(n.getNodeType() == Node.DOCUMENT_NODE){ return ((Document)n).getDocumentElement(); } return n; }else{ XMLTransformer xmlTransformer = xmlPlatform.newXMLTransformer(); xmlTransformer.setFormattedOutput(marshaller.isFormattedOutput()); xmlTransformer.transform(source, result); return result.getNode().getFirstChild(); } } return objectValue; }
/** * Set if this XMLMarshaller should format the XML * By default this is set to true and the XML marshalled will be formatted. * @param shouldFormat if this XMLMarshaller should format the XML */ public void setFormattedOutput(boolean shouldFormat) { transformer.setFormattedOutput(shouldFormat); }
/** * PUBLIC: * Set if this should marshal to a fragment. If true an XML header string is not written out. * @param fragment if this should marshal to a fragment or not */ public void setFragment(boolean fragment) { this.fragment = fragment; if(null != transformer) { transformer.setFragment(fragment); } }
/** * Set the encoding on this XMLMarshaller * If the encoding is not set the default UTF-8 will be used * @param newEncoding the encoding to set on this XMLMarshaller */ public void setEncoding(String newEncoding) { transformer.setEncoding(newEncoding); }
XMLTransformer transformer = marshaller.getTransformer(); if (isXMLRoot) { String oldEncoding = transformer.getEncoding(); String oldVersion = transformer.getVersion(); if (((XMLRoot) obj).getEncoding() != null) { transformer.setEncoding(((XMLRoot) obj).getEncoding()); transformer.setVersion(((XMLRoot) obj).getXMLVersion()); transformer.transform(n, result); transformer.setEncoding(oldEncoding); transformer.setVersion(oldVersion); } else { transformer.transform(n, result);
public Object convertObjectValueToDataValue(Object objectValue, Session session, XMLMarshaller marshaller) { if (objectValue != null && elementClass.isAssignableFrom(objectValue.getClass())) { ErrorHandler handler = marshaller.getErrorHandler(); Source source = null; if(handler != null && handler instanceof JAXBErrorHandler) { source = domHandler.marshal(objectValue, ((JAXBErrorHandler)handler).getValidationEventHandler()); } else { source = domHandler.marshal(objectValue, null); } DOMResult result = new DOMResult(); if(source instanceof DOMSource){ Node n = ((DOMSource)source).getNode(); if(n.getNodeType() == Node.DOCUMENT_NODE){ return ((Document)n).getDocumentElement(); } return n; }else{ XMLTransformer xmlTransformer = xmlPlatform.newXMLTransformer(); xmlTransformer.setFormattedOutput(marshaller.isFormattedOutput()); xmlTransformer.transform(source, result); return result.getNode().getFirstChild(); } } return objectValue; }
/** * Set if this XMLMarshaller should format the XML * By default this is set to true and the XML marshalled will be formatted. * @param shouldFormat if this XMLMarshaller should format the XML */ @Override public void setFormattedOutput(boolean shouldFormat) { super.setFormattedOutput(shouldFormat); if(null != transformer) { transformer.setFormattedOutput(shouldFormat); } }
/** * PUBLIC: * Set if this should marshal to a fragment. If true an XML header string is not written out. * @param fragment if this should marshal to a fragment or not */ public void setFragment(boolean fragment) { transformer.setFragment(fragment); }
/** * Set the encoding on this XMLMarshaller * If the encoding is not set the default UTF-8 will be used * @param newEncoding the encoding to set on this XMLMarshaller */ @Override public void setEncoding(String newEncoding) { super.setEncoding(newEncoding); if(null != transformer) { transformer.setEncoding(newEncoding); } }
XMLTransformer transformer = marshaller.getTransformer(); if (isXMLRoot) { String oldEncoding = transformer.getEncoding(); String oldVersion = transformer.getVersion(); if (((Root) obj).getEncoding() != null) { transformer.setEncoding(((Root) obj).getEncoding()); transformer.setVersion(((Root) obj).getXMLVersion()); transformer.transform(n, result); if(oldEncoding != null){ transformer.setEncoding(oldEncoding); transformer.setVersion(oldVersion); transformer.transform(n, result);
public EncodedData getBytesFromSource(Source source, Marshaller marshaller, String mimeType) { ByteArrayOutputStream out = new ByteArrayOutputStream(); StreamResult result = new StreamResult(out); marshaller.getTransformer().transform(source, result); if (mimeType == null) { mimeType = "application/xml"; } return new EncodedData(out.toByteArray(), mimeType); }
/** * INTERNAL * @return the transformer instance for this marshaller */ @Override public XMLTransformer getTransformer() { if(null == transformer) { XMLPlatform xmlPlatform = XMLPlatformFactory.getInstance().getXMLPlatform(); transformer = xmlPlatform.newXMLTransformer(); transformer.setEncoding(getEncoding()); transformer.setFormattedOutput(isFormattedOutput()); transformer.setFragment(fragment); } return transformer; }
/** * Set if this XMLMarshaller should format the XML * By default this is set to true and the XML marshalled will be formatted. * @param shouldFormat if this XMLMarshaller should format the XML */ @Override public void setFormattedOutput(boolean shouldFormat) { super.setFormattedOutput(shouldFormat); if(null != transformer) { transformer.setFormattedOutput(shouldFormat); } }
/** * PUBLIC: * Set if this should marshal to a fragment. If true an XML header string is not written out. * @param fragment if this should marshal to a fragment or not */ public void setFragment(boolean fragment) { this.fragment = fragment; if(null != transformer) { transformer.setFragment(fragment); } }
/** * Set the encoding on this XMLMarshaller * If the encoding is not set the default UTF-8 will be used * @param newEncoding the encoding to set on this XMLMarshaller */ public void setEncoding(String newEncoding) { super.setEncoding(newEncoding); if(null != transformer) { transformer.setEncoding(newEncoding); } }
marshal(object, writer); javax.xml.transform.stream.StreamSource source = new javax.xml.transform.stream.StreamSource(new java.io.StringReader(writer.toString())); transformer.transform(source, result); FragmentContentHandler fragmentHandler = new FragmentContentHandler(((SAXResult) result).getHandler()); if (isXMLRoot) { String oldEncoding = transformer.getEncoding(); String oldVersion = transformer.getVersion(); if (((XMLRoot) object).getEncoding() != null) { transformer.setEncoding(((XMLRoot) object).getEncoding()); transformer.setVersion(((XMLRoot) object).getXMLVersion()); transformer.transform(document, fragmentHandler); transformer.setEncoding(oldEncoding); transformer.setVersion(oldVersion); } else { transformer.transform(document, fragmentHandler); String oldEncoding = transformer.getEncoding(); String oldVersion = transformer.getVersion(); if (((XMLRoot) object).getEncoding() != null) { transformer.setEncoding(((XMLRoot) object).getEncoding()); transformer.setVersion(((XMLRoot) object).getXMLVersion()); transformer.transform(document, result); transformer.setEncoding(oldEncoding); transformer.setVersion(oldVersion);