1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
12 #include <librevenge/librevenge.h>
14 #include "xmlictxt.hxx"
16 namespace writerperfect::exp
18 /// Handler for <office:meta>.
19 class XMLMetaDocumentContext
: public XMLImportContext
22 XMLMetaDocumentContext(XMLImport
& rImport
);
24 librevenge::RVNGPropertyList
& GetPropertyList() { return m_aPropertyList
; }
26 rtl::Reference
<XMLImportContext
>
27 CreateChildContext(const OUString
& rName
,
28 const css::uno::Reference
<css::xml::sax::XAttributeList
>& xAttribs
) override
;
30 void SAL_CALL
endElement(const OUString
& rName
) override
;
33 librevenge::RVNGPropertyList m_aPropertyList
;
36 /// Parses an XMP file.
37 class XMPParser
: public cppu::WeakImplHelper
<css::xml::sax::XDocumentHandler
>
40 explicit XMPParser(librevenge::RVNGPropertyList
& rMetaData
);
41 ~XMPParser() override
;
44 void SAL_CALL
startDocument() override
;
46 void SAL_CALL
endDocument() override
;
49 startElement(const OUString
& rName
,
50 const css::uno::Reference
<css::xml::sax::XAttributeList
>& xAttribs
) override
;
52 void SAL_CALL
endElement(const OUString
& rName
) override
;
54 void SAL_CALL
characters(const OUString
& rChars
) override
;
56 void SAL_CALL
ignorableWhitespace(const OUString
& aWhitespaces
) override
;
58 void SAL_CALL
processingInstruction(const OUString
& aTarget
, const OUString
& aData
) override
;
61 setDocumentLocator(const css::uno::Reference
<css::xml::sax::XLocator
>& xLocator
) override
;
64 librevenge::RVNGPropertyList
& mrMetaData
;
65 bool m_bInIdentifier
= false;
66 OUString m_aIdentifier
;
67 bool m_bInTitle
= false;
68 bool m_bInTitleItem
= false;
70 bool m_bInCreator
= false;
71 bool m_bInCreatorItem
= false;
73 bool m_bInLanguage
= false;
74 bool m_bInLanguageItem
= false;
76 bool m_bInDate
= false;
77 bool m_bInDateItem
= false;
81 } // namespace writerperfect::exp
83 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */