23#include <com/sun/star/io/Pipe.hpp>
24#include <com/sun/star/xml/dom/DocumentBuilder.hpp>
25#include <com/sun/star/xml/dom/XNode.hpp>
26#include <com/sun/star/xml/dom/XDocument.hpp>
27#include <com/sun/star/xml/dom/NodeType.hpp>
28#include <com/sun/star/xml/sax/XSAXSerializable.hpp>
29#include <com/sun/star/xml/sax/Writer.hpp>
30#include <com/sun/star/beans/StringPair.hpp>
31#include <com/sun/star/xml/dom/XDocumentBuilder.hpp>
36using ::com::sun::star::uno::Reference;
37using ::com::sun::star::uno::Exception;
38using ::com::sun::star::uno::Sequence;
39using ::com::sun::star::uno::UNO_QUERY;
40using ::com::sun::star::uno::UNO_QUERY_THROW;
41using ::com::sun::star::uno::UNO_SET_THROW;
42using ::com::sun::star::xml::dom::DocumentBuilder;
43using ::com::sun::star::xml::dom::XNode;
44using ::com::sun::star::xml::dom::XDocument;
45using ::com::sun::star::xml::sax::XSAXSerializable;
46using ::com::sun::star::beans::StringPair;
47using ::com::sun::star::xml::dom::NodeType_DOCUMENT_NODE;
48using ::com::sun::star::xml::dom::NodeType_ELEMENT_NODE;
49using ::com::sun::star::xml::dom::XDocumentBuilder;
50using ::com::sun::star::xml::sax::Writer;
51using ::com::sun::star::xml::sax::XDocumentHandler;
58Reference< css::io::XInputStream >
71 Reference< XSAXSerializable > xSerializer( rNode, UNO_QUERY );
72 if ( !xSerializer.is() )
75 Reference< XNode > xNode = rNode;
76 if ( xNode->getNodeType() == NodeType_DOCUMENT_NODE )
78 Reference< XDocument >
const xDoc( xNode, UNO_QUERY_THROW );
79 xNode.set( xDoc->getDocumentElement(), UNO_QUERY_THROW );
82 "CSerializationAppXML::serialize_node: invalid node type!" );
86 Reference< XDocument >
const xDocument( xDocBuilder->newDocument(), UNO_SET_THROW );
89 Reference< XNode >
const xImportedNode( xDocument->importNode( xNode,
true ), UNO_SET_THROW );
90 xDocument->appendChild( xImportedNode );
93 xSerializer.set( xDocument, UNO_QUERY );
97 "CSerializationAppXML::serialize_node: no serialization access to the node/document!" );
101 xSaxWriter->setOutputStream( Reference< css::io::XOutputStream >(
m_xBuffer, UNO_QUERY_THROW) );
104 xSerializer->serialize( Reference< XDocumentHandler >(xSaxWriter, UNO_QUERY_THROW), Sequence< StringPair >() );
117 Reference< XNode > cur =
m_aFragment->getFirstChild();
121 cur = cur->getNextSibling();
virtual void serialize() override
start the serialization process
void serialize_node(const css::uno::Reference< css::xml::dom::XNode > &aNode)
css::uno::Reference< css::io::XPipe > m_xBuffer
virtual css::uno::Reference< css::io::XInputStream > getInputStream() override
get the serialized bytes.
css::uno::Reference< css::xml::dom::XDocumentFragment > m_aFragment
#define DBG_UNHANDLED_EXCEPTION(...)
#define ENSURE_OR_RETURN_VOID(c, m)
Reference< XComponentContext > getProcessComponentContext()
css::uno::Reference< css::deployment::XPackageRegistry > create(css::uno::Reference< css::deployment::XPackageRegistry > const &xRootRegistry, OUString const &context, OUString const &cachePath, css::uno::Reference< css::uno::XComponentContext > const &xComponentContext)