1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: dp_xml.h,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #if ! defined INCLUDED_DP_XML_H
32 #define INCLUDED_DP_XML_H
34 #include "rtl/ref.hxx"
35 #include "rtl/ustrbuf.hxx"
36 #include "cppuhelper/implbase1.hxx"
37 #include "com/sun/star/uno/XComponentContext.hpp"
38 #include "com/sun/star/xml/input/XRoot.hpp"
39 #include "com/sun/star/xml/sax/XDocumentHandler.hpp"
47 namespace css
= ::com::sun::star
;
52 //==============================================================================
54 css::uno::Reference
< css::xml::sax::XDocumentHandler
> const & xDocHandler
,
55 ::ucbhelper::Content
& ucb_content
,
56 css::uno::Reference
< css::uno::XComponentContext
> const & xContext
);
58 //==============================================================================
60 css::uno::Reference
< css::xml::input::XRoot
> const & xRoot
,
61 ::ucbhelper::Content
& ucb_content
,
62 css::uno::Reference
< css::uno::XComponentContext
> const & xContext
);
64 //==============================================================================
65 class XmlElement
: public ::cppu::WeakImplHelper1
< css::xml::input::XElement
>
68 css::uno::Reference
<css::xml::input::XNamespaceMapping
> m_xNamespaceMapping
;
69 const css::uno::Reference
<css::xml::input::XElement
> m_xParent
;
71 ::rtl::OUString m_localname
;
72 css::uno::Reference
<css::xml::input::XAttributes
> m_xAttributes
;
73 ::rtl::OUString m_characters
;
74 bool m_got_endElement
;
76 void check_xmlns( sal_Int32 uid
) const throw (css::xml::sax::SAXException
);
80 m_got_endElement( false )
82 virtual ~XmlElement();
84 inline bool isParsed() const { return m_got_endElement
; }
87 css::uno::Reference
<css::xml::input::XNamespaceMapping
>
89 css::uno::Reference
<css::xml::input::XElement
> const & xParent
,
90 sal_Int32 uid
, ::rtl::OUString
const & localname
,
91 css::uno::Reference
< css::xml::input::XAttributes
>
93 : m_xNamespaceMapping( xMapping
),
96 m_localname( localname
),
97 m_xAttributes( xAttributes
),
98 m_got_endElement( false )
102 virtual css::uno::Reference
<css::xml::input::XElement
> SAL_CALL
103 getParent() throw (css::uno::RuntimeException
);
104 virtual ::rtl::OUString SAL_CALL
getLocalName()
105 throw (css::uno::RuntimeException
);
106 virtual sal_Int32 SAL_CALL
getUid()
107 throw (css::uno::RuntimeException
);
108 virtual css::uno::Reference
<css::xml::input::XAttributes
> SAL_CALL
109 getAttributes() throw (css::uno::RuntimeException
);
110 virtual void SAL_CALL
ignorableWhitespace(
111 ::rtl::OUString
const & rWhitespaces
)
112 throw (css::xml::sax::SAXException
, css::uno::RuntimeException
);
113 virtual void SAL_CALL
characters( ::rtl::OUString
const & rChars
)
114 throw (css::xml::sax::SAXException
, css::uno::RuntimeException
);
115 virtual void SAL_CALL
processingInstruction(
116 ::rtl::OUString
const & Target
, ::rtl::OUString
const & Data
)
117 throw (css::xml::sax::SAXException
, css::uno::RuntimeException
);
118 virtual void SAL_CALL
endElement()
119 throw (css::xml::sax::SAXException
, css::uno::RuntimeException
);
120 virtual css::uno::Reference
<css::xml::input::XElement
> SAL_CALL
122 sal_Int32 nUid
, ::rtl::OUString
const & rLocalName
,
123 css::uno::Reference
<css::xml::input::XAttributes
> const & xAttributes
)
124 throw (css::xml::sax::SAXException
, css::uno::RuntimeException
);
127 //==============================================================================
128 class XmlRootElement
: public ::cppu::ImplInheritanceHelper1
<
129 XmlElement
, css::xml::input::XRoot
>
131 const ::rtl::OUString m_uri
;
134 virtual ~XmlRootElement();
136 inline ::rtl::OUString
const & getUri() const
140 ::rtl::OUString
const & uri
, ::rtl::OUString
const & localname
);
143 virtual void SAL_CALL
startDocument(
144 css::uno::Reference
<css::xml::input::XNamespaceMapping
>
146 throw (css::xml::sax::SAXException
, css::uno::RuntimeException
);
147 virtual void SAL_CALL
endDocument()
148 throw (css::xml::sax::SAXException
, css::uno::RuntimeException
);
149 virtual void SAL_CALL
processingInstruction(
150 ::rtl::OUString
const & target
, ::rtl::OUString
const & data
)
151 throw (css::xml::sax::SAXException
, css::uno::RuntimeException
);
152 virtual void SAL_CALL
setDocumentLocator(
153 css::uno::Reference
<css::xml::sax::XLocator
> const & xLocator
)
154 throw (css::xml::sax::SAXException
, css::uno::RuntimeException
);
155 virtual css::uno::Reference
<css::xml::input::XElement
> SAL_CALL
157 sal_Int32 uid
, ::rtl::OUString
const & localname
,
158 css::uno::Reference
<css::xml::input::XAttributes
> const & xAttributes
)
159 throw (css::xml::sax::SAXException
, css::uno::RuntimeException
);