LibreOffice Module xmloff (master)
1
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
xmloff
source
xforms
XFormsSubmissionContext.cxx
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
* This file is part of the LibreOffice project.
4
*
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/.
8
*
9
* This file incorporates work covered by the following license notice:
10
*
11
* Licensed to the Apache Software Foundation (ASF) under one or more
12
* contributor license agreements. See the NOTICE file distributed
13
* with this work for additional information regarding copyright
14
* ownership. The ASF licenses this file to you under the Apache
15
* License, Version 2.0 (the "License"); you may not use this file
16
* except in compliance with the License. You may obtain a copy of
17
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
18
*/
19
20
21
#include "
XFormsSubmissionContext.hxx
"
22
23
#include "
xformsapi.hxx
"
24
25
#include <
xmloff/xmlimp.hxx
>
26
#include <
xmloff/xmltoken.hxx
>
27
#include <
xmloff/xmltkmap.hxx
>
28
#include <
xmloff/namespacemap.hxx
>
29
30
#include <
sax/tools/converter.hxx
>
31
32
#include <com/sun/star/xforms/XModel2.hpp>
33
34
#include <osl/diagnose.h>
35
#include <
sal/log.hxx
>
36
37
using
com::sun::star::xml::sax::XAttributeList;
38
using
com::sun::star::xforms::XModel2;
39
40
using namespace
com::sun::star::uno
;
41
using namespace
xmloff::token
;
42
43
44
XFormsSubmissionContext::XFormsSubmissionContext
(
45
SvXMLImport
& rImport,
46
const
Reference<XModel2>
& xModel ) :
47
TokenContext
( rImport )
48
{
49
// register submission with model
50
SAL_WARN_IF
( !xModel.is(),
"xmloff"
,
"need model"
);
51
mxSubmission
= xModel->createSubmission().get();
52
SAL_WARN_IF
( !mxSubmission.is(),
"xmloff"
,
"can't create submission"
);
53
xModel->getSubmissions()->insert(
Any
( mxSubmission ) );
54
}
55
56
namespace
{
57
58
Any
toBool
( std::string_view rValue )
59
{
60
Any
aValue;
61
bool
bValue(
false
);
62
if
(::
sax::Converter::convertBool
( bValue, rValue ))
63
{
64
aValue <<= bValue;
65
}
66
return
aValue;
67
}
68
69
}
// namespace
70
71
void
XFormsSubmissionContext::HandleAttribute
(
const
sax_fastparser::FastAttributeList::FastAttributeIter
& aIter )
72
{
73
switch
( aIter.
getToken
() &
TOKEN_MASK
)
74
{
75
case
XML_ID
:
76
xforms_setValue
(
mxSubmission
,
"ID"
, aIter.
toString
() );
77
break
;
78
case
XML_BIND
:
79
xforms_setValue
(
mxSubmission
,
"Bind"
, aIter.
toString
() );
80
break
;
81
case
XML_REF
:
82
xforms_setValue
(
mxSubmission
,
"Ref"
, aIter.
toString
() );
83
break
;
84
case
XML_ACTION
:
85
xforms_setValue
(
mxSubmission
,
"Action"
, aIter.
toString
() );
86
break
;
87
case
XML_METHOD
:
88
xforms_setValue
(
mxSubmission
,
"Method"
, aIter.
toString
() );
89
break
;
90
case
XML_VERSION
:
91
xforms_setValue
(
mxSubmission
,
"Version"
, aIter.
toString
() );
92
break
;
93
case
XML_INDENT
:
94
xforms_setValue
(
mxSubmission
,
"Indent"
,
toBool
( aIter.
toView
() ) );
95
break
;
96
case
XML_MEDIATYPE
:
97
xforms_setValue
(
mxSubmission
,
"MediaType"
, aIter.
toString
() );
98
break
;
99
case
XML_ENCODING
:
100
xforms_setValue
(
mxSubmission
,
"Encoding"
, aIter.
toString
() );
101
break
;
102
case
XML_OMIT_XML_DECLARATION
:
103
xforms_setValue
(
mxSubmission
,
"OmitXmlDeclaration"
,
104
toBool
( aIter.
toView
() ) );
105
break
;
106
case
XML_STANDALONE
:
107
xforms_setValue
(
mxSubmission
,
"Standalone"
,
toBool
( aIter.
toView
() ) );
108
break
;
109
case
XML_CDATA_SECTION_ELEMENTS
:
110
xforms_setValue
(
mxSubmission
,
"CDataSectionElement"
, aIter.
toString
() );
111
break
;
112
case
XML_REPLACE
:
113
xforms_setValue
(
mxSubmission
,
"Replace"
, aIter.
toString
() );
114
break
;
115
case
XML_SEPARATOR
:
116
xforms_setValue
(
mxSubmission
,
"Separator"
, aIter.
toString
() );
117
break
;
118
case
XML_INCLUDENAMESPACEPREFIXES
:
119
xforms_setValue
(
mxSubmission
,
"IncludeNamespacePrefixes"
, aIter.
toString
() );
120
break
;
121
default
:
122
XMLOFF_WARN_UNKNOWN
(
"xmloff"
, aIter);
123
assert(
false
&&
"unknown attribute"
);
124
break
;
125
}
126
}
127
129
SvXMLImportContext
*
XFormsSubmissionContext::HandleChild
(
130
sal_Int32,
131
const
Reference<css::xml::sax::XFastAttributeList>
& )
132
{
133
assert(
false
&&
"no children supported"
);
134
return
nullptr
;
135
}
136
137
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
com::sun::star::uno::Reference
Definition:
XMLFootnoteSeparatorImport.hxx:31
XFormsSubmissionContext::mxSubmission
css::uno::Reference< css::beans::XPropertySet > mxSubmission
Definition:
XFormsSubmissionContext.hxx:37
xmloff::token::XML_REPLACE
Definition:
xmltoken.hxx:1625
xmloff::token::XML_VERSION
Definition:
xmltoken.hxx:2104
XFormsSubmissionContext.hxx
xforms_setValue
void xforms_setValue(const css::uno::Reference< css::beans::XPropertySet > &xPropSet, const OUString &rName, const T &aValue)
Definition:
xformsapi.hxx:52
xmloff::token::XML_OMIT_XML_DECLARATION
Definition:
xmltoken.hxx:2810
xmloff::token::XML_ENCODING
Definition:
xmltoken.hxx:742
xmloff::token::XML_INDENT
Definition:
xmltoken.hxx:2809
xmlimp.hxx
com::sun::star::uno
xmltoken.hxx
XMLOFF_WARN_UNKNOWN
#define XMLOFF_WARN_UNKNOWN(area, rIter)
Definition:
xmlictxt.hxx:114
xmloff::token::XML_REF
Definition:
xmltoken.hxx:2805
TokenContext
handle attributes through an SvXMLTokenMap
Definition:
TokenContext.hxx:33
XFormsSubmissionContext::XFormsSubmissionContext
XFormsSubmissionContext(SvXMLImport &rImport, const css::uno::Reference< css::xforms::XModel2 > &xModel)
Definition:
XFormsSubmissionContext.cxx:44
toBool
VCL_DLLPUBLIC bool toBool(std::u16string_view rValue)
xmloff::token::XML_STANDALONE
Definition:
xmltoken.hxx:2811
sax_fastparser::FastAttributeList::FastAttributeIter
converter.hxx
sax_fastparser::FastAttributeList::FastAttributeIter::getToken
sal_Int32 getToken() const
namespacemap.hxx
xmloff::token::XML_BIND
Definition:
xmltoken.hxx:2802
log.hxx
XFormsSubmissionContext::HandleChild
virtual SvXMLImportContext * HandleChild(sal_Int32 nElementToken, const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList) override
will be called for each child element
Definition:
XFormsSubmissionContext.cxx:129
XFormsSubmissionContext::HandleAttribute
virtual void HandleAttribute(const sax_fastparser::FastAttributeList::FastAttributeIter &aIter) override
will be called for each attribute
Definition:
XFormsSubmissionContext.cxx:71
sax::Converter::convertBool
static bool convertBool(bool &rBool, std::u16string_view rString)
sax_fastparser::FastAttributeList::FastAttributeIter::toString
OUString toString() const
xmltkmap.hxx
xmloff::token::XML_CDATA_SECTION_ELEMENTS
Definition:
xmltoken.hxx:2812
SvXMLImportContext
This class deliberately does not support XWeak, to improve performance when loading large documents...
Definition:
xmlictxt.hxx:45
xformsapi.hxx
GotoObjFlags::Any
xmloff::token::XML_ID
Definition:
xmltoken.hxx:1061
xmloff::token::XML_SEPARATOR
Definition:
xmltoken.hxx:1712
xmloff::token::XML_MEDIATYPE
Definition:
xmltoken.hxx:2820
SAL_WARN_IF
#define SAL_WARN_IF(condition, area, stream)
xmloff::token
Handling of tokens in XML:
Definition:
fasttokenhandler.cxx:31
xmloff::token::XML_METHOD
Definition:
xmltoken.hxx:2807
xmloff::token::XML_INCLUDENAMESPACEPREFIXES
Definition:
xmltoken.hxx:2821
xmloff::token::XML_ACTION
Definition:
xmltoken.hxx:220
sax_fastparser::FastAttributeList::FastAttributeIter::toView
std::string_view toView() const
TOKEN_MASK
constexpr sal_Int32 TOKEN_MASK
Definition:
xmlimp.hxx:94
SvXMLImport
Definition:
xmlimp.hxx:178
Generated on Tue Jun 21 2022 20:09:16 for LibreOffice Module xmloff (master) by
1.8.10