28#include <com/sun/star/beans/XPropertySet.hpp>
29#include <com/sun/star/lang/XMultiComponentFactory.hpp>
30#include <com/sun/star/document/XEmbeddedScripts.hpp>
31#include <com/sun/star/xml/sax/SAXException.hpp>
51 const Reference<XFastAttributeList>& xAttributes)
53 OUString aValue = xAttributes->getOptionalValue(
nToken);
54 if (!aValue.isEmpty())
61 else if (aValue ==
"false")
68 throw xml::sax::SAXException(SvXMLImport::getNameFromToken(
nToken)
69 +
": no boolean value (true|false)!",
70 Reference<XInterface>(),
Any());
79 const css::uno::Reference<css::frame::XModel>& rxModel)
83 Reference<document::XEmbeddedScripts> xDocumentScripts(rxModel, UNO_QUERY_THROW);
89 Reference<beans::XPropertySet> xPSet(rxModel, UNO_QUERY);
95 "BasicImport::startRootElement: nowhere to import to!");
99 throw xml::sax::SAXException(
"nowhere to import to", Reference<XInterface>(),
Any());
105Reference<XFastContextHandler>
107 const Reference<XFastAttributeList>& xAttributes)
111 throw xml::sax::SAXException(
"illegal namespace!", Reference<XInterface>(),
Any());
126 Reference<container::XNameAccess> xLib(
131 catch (
const container::ElementExistException&)
134 "BasicLibrariesElement::startChildElement");
136 catch (
const lang::IllegalArgumentException&)
139 "BasicLibrariesElement::startChildElement");
156 Reference<container::XNameContainer> xLib;
171 catch (
const lang::IllegalArgumentException&)
174 "BasicLibrariesElement::startChildElement");
180 throw xml::sax::SAXException(
"expected library-linked or library-embedded element!",
181 Reference<XInterface>(),
Any());
190 SvXMLImport& rImport,
const Reference<script::XLibraryContainer2>& rxLibContainer,
191 OUString aLibName,
bool bReadOnly)
193 , m_xLibContainer(rxLibContainer)
194 , m_aLibName(
std::move(aLibName))
202 catch (
const lang::WrappedTargetException&)
209 sal_Int32 nElement,
const Reference<XFastAttributeList>& xAttributes)
213 throw xml::sax::SAXException(
"illegal namespace!", Reference<XInterface>(),
Any());
224 throw xml::sax::SAXException(
"expected module element!", Reference<XInterface>(),
Any());
239 const Reference<container::XNameContainer>& rxLib,
247Reference<XFastContextHandler>
249 const Reference<XFastAttributeList>& xAttributes)
255 throw xml::sax::SAXException(
"illegal namespace!", Reference<XInterface>(),
Any());
261 if (xAttributes.is())
269 throw xml::sax::SAXException(
"expected source-code element!", Reference<XInterface>(),
279 const Reference<container::XNameContainer>& rxLib,
298 aElement <<=
m_aBuffer.makeStringAndClear();
302 catch (
const container::ElementExistException&)
306 catch (
const lang::IllegalArgumentException&)
310 catch (
const lang::WrappedTargetException&)
This class deliberately does not support XWeak, to improve performance when loading large documents.
SvXMLImport & GetImport()
BasicElementBase(SvXMLImport &rImport)
static bool getBoolAttr(bool *pRet, sal_Int32 nToken, const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttributes)
OUString const m_aLibName
css::uno::Reference< css::container::XNameContainer > m_xLib
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override
endFastElement is called before a context will be destructed, but after an elements context has been ...
virtual css::uno::Reference< XFastContextHandler > SAL_CALL createFastChildContext(sal_Int32 Element, const css::uno::Reference< css::xml::sax::XFastAttributeList > &Attribs) override
css::uno::Reference< css::script::XLibraryContainer2 > m_xLibContainer
BasicEmbeddedLibraryElement(SvXMLImport &rImport, const css::uno::Reference< css::script::XLibraryContainer2 > &rxLibContainer, OUString aLibName, bool bReadOnly)
virtual css::uno::Reference< XFastContextHandler > SAL_CALL createFastChildContext(sal_Int32 Element, const css::uno::Reference< css::xml::sax::XFastAttributeList > &Attribs) override
css::uno::Reference< css::script::XLibraryContainer2 > m_xLibContainer
BasicLibrariesElement(SvXMLImport &rImport, const css::uno::Reference< css::frame::XModel > &rxModel)
virtual css::uno::Reference< XFastContextHandler > SAL_CALL createFastChildContext(sal_Int32 Element, const css::uno::Reference< css::xml::sax::XFastAttributeList > &Attribs) override
BasicModuleElement(SvXMLImport &rImport, const css::uno::Reference< css::container::XNameContainer > &rxLib, OUString aName)
css::uno::Reference< css::container::XNameContainer > m_xLib
css::uno::Reference< css::container::XNameContainer > m_xLib
virtual void SAL_CALL characters(const OUString &rChars) override
This method is called for all characters that are contained in the current element.
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override
endFastElement is called before a context will be destructed, but after an elements context has been ...
BasicSourceCodeElement(SvXMLImport &rImport, const css::uno::Reference< css::container::XNameContainer > &rxLib, OUString rName)
#define TOOLS_INFO_EXCEPTION(area, stream)
#define SAL_WARN_IF(condition, area, stream)
Handling of tokens in XML:
#define XML_ELEMENT(prefix, name)
constexpr sal_Int32 NAMESPACE_TOKEN(sal_uInt16 prefixToken)
constexpr bool IsTokenInNamespace(sal_Int32 nToken, sal_uInt16 nNamespacePrefix)
constexpr sal_Int32 TOKEN_MASK
constexpr sal_uInt16 XML_NAMESPACE_OOO