22#include <com/sun/star/xml/wrapper/XXMLDocumentWrapper.hpp>
23#include <com/sun/star/xml/csax/XCompressedDocumentHandler.hpp>
24#include <com/sun/star/lang/XServiceInfo.hpp>
30#define NODEPOSITION_NORMAL 1
31#define NODEPOSITION_STARTELEMENT 2
32#define NODEPOSITION_ENDELEMENT 3
34#include <libxml/tree.h>
38 css::xml::wrapper::XXMLDocumentWrapper,
39 css::xml::sax::XDocumentHandler,
40 css::xml::csax::XCompressedDocumentHandler,
41 css::lang::XServiceInfo
80 css::uno::Sequence< css::uno::Reference< css::xml::wrapper::XXMLElementWrapper > >
m_aReservedNodes;
84 void getNextSAXEvent();
87 static void sendStartElement(
88 const css::uno::Reference< css::xml::sax::XDocumentHandler >& xHandler,
89 const css::uno::Reference< css::xml::sax::XDocumentHandler >& xHandler2,
90 const xmlNodePtr pNode);
93 static void sendEndElement(
94 const css::uno::Reference< css::xml::sax::XDocumentHandler >& xHandler,
95 const css::uno::Reference< css::xml::sax::XDocumentHandler >& xHandler2,
96 const xmlNodePtr pNode);
100 const css::uno::Reference< css::xml::sax::XDocumentHandler >& xHandler,
101 const css::uno::Reference< css::xml::sax::XDocumentHandler >& xHandler2,
102 const xmlNodePtr pNode);
104 static OString getNodeQName(
const xmlNodePtr pNode);
106 sal_Int32 recursiveDelete(
const xmlNodePtr pNode);
108 void getNextReservedNode();
110 void removeNode(
const xmlNodePtr pNode)
const;
112 static xmlNodePtr checkElement(
113 const css::uno::Reference< css::xml::wrapper::XXMLElementWrapper >& xXMLElement);
115 void buildIDAttr( xmlNodePtr pNode )
const;
116 void rebuildIDLink( xmlNodePtr pNode )
const;
123 virtual css::uno::Reference< css::xml::wrapper::XXMLElementWrapper > SAL_CALL getCurrentElement( )
override;
125 virtual void SAL_CALL setCurrentElement(
const css::uno::Reference<
126 css::xml::wrapper::XXMLElementWrapper >& element )
override;
128 virtual void SAL_CALL removeCurrentElement( )
override;
130 virtual sal_Bool SAL_CALL isCurrent(
const css::uno::Reference<
131 css::xml::wrapper::XXMLElementWrapper >& node )
override;
133 virtual sal_Bool SAL_CALL isCurrentElementEmpty( )
override;
135 virtual OUString SAL_CALL getNodeName(
const css::uno::Reference<
136 css::xml::wrapper::XXMLElementWrapper >& node )
override;
138 virtual void SAL_CALL clearUselessData(
139 const css::uno::Reference< css::xml::wrapper::XXMLElementWrapper >& node,
140 const css::uno::Sequence< css::uno::Reference< css::xml::wrapper::XXMLElementWrapper > >& reservedDescendants,
141 const css::uno::Reference< css::xml::wrapper::XXMLElementWrapper >& stopAtNode )
override;
143 virtual void SAL_CALL
collapse(
const css::uno::Reference<
144 css::xml::wrapper::XXMLElementWrapper >& node )
override;
146 virtual void SAL_CALL generateSAXEvents(
147 const css::uno::Reference< css::xml::sax::XDocumentHandler >& handler,
148 const css::uno::Reference< css::xml::sax::XDocumentHandler >& xEventKeeperHandler,
149 const css::uno::Reference< css::xml::wrapper::XXMLElementWrapper >& startNode,
150 const css::uno::Reference< css::xml::wrapper::XXMLElementWrapper >& endNode )
override;
152 virtual void SAL_CALL getTree(
153 const css::uno::Reference< css::xml::sax::XDocumentHandler >& handler )
override;
155 virtual void SAL_CALL rebuildIDLink(
156 const css::uno::Reference< css::xml::wrapper::XXMLElementWrapper >& node )
override;
159 virtual void SAL_CALL startDocument( )
override;
161 virtual void SAL_CALL endDocument( )
override;
163 virtual void SAL_CALL startElement(
164 const OUString& aName,
165 const css::uno::Reference< css::xml::sax::XAttributeList >& xAttribs )
override;
167 virtual void SAL_CALL endElement(
const OUString& aName )
override;
169 virtual void SAL_CALL characters(
const OUString& aChars )
override;
171 virtual void SAL_CALL ignorableWhitespace(
const OUString& aWhitespaces )
override;
173 virtual void SAL_CALL processingInstruction(
const OUString& aTarget,
const OUString& aData )
override;
175 virtual void SAL_CALL setDocumentLocator(
const css::uno::Reference< css::xml::sax::XLocator >& xLocator )
override;
178 virtual void SAL_CALL compressedStartDocument( )
override;
180 virtual void SAL_CALL compressedEndDocument( )
override;
182 virtual void SAL_CALL compressedStartElement(
183 const OUString& aName,
184 const css::uno::Sequence< css::xml::csax::XMLAttribute >& aAttributes )
override;
186 virtual void SAL_CALL compressedEndElement(
const OUString& aName )
override;
188 virtual void SAL_CALL compressedCharacters(
const OUString& aChars )
override;
190 virtual void SAL_CALL compressedIgnorableWhitespace(
const OUString& aWhitespaces )
override;
192 virtual void SAL_CALL compressedProcessingInstruction(
const OUString& aTarget,
const OUString& aData )
override;
194 virtual void SAL_CALL compressedSetDocumentLocator(
195 sal_Int32 columnNumber,
196 sal_Int32 lineNumber,
197 const OUString& publicId,
198 const OUString& systemId )
override;
This class represents a SAX handler which simply forwards to the corresponding libxml API and transla...
NAME XMLDocumentWrapper_XmlSecImpl – Class to manipulate a libxml2 document.
sal_Int32 m_nReservedNodeIndex
sal_Int32 m_nCurrentPosition
css::uno::Sequence< css::uno::Reference< css::xml::wrapper::XXMLElementWrapper > > m_aReservedNodes
xmlNodePtr m_pCurrentElement
xmlNodePtr m_pRootElement
xmlNodePtr m_pCurrentReservedNode
css::uno::Sequence< OUString > getSupportedServiceNames()
OUString getImplementationName()
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
#define XSECXMLSEC_DLLPUBLIC