9#ifndef INCLUDED_OOX_MATHML_IMPORTUTILS_HXX
10#define INCLUDED_OOX_MATHML_IMPORTUTILS_HXX
16#include <com/sun/star/uno/Reference.hxx>
18#include <oox/token/tokens.hxx>
19#include <rtl/ustring.hxx>
26class XFastAttributeList;
39#define XML_STREAM_OPENING(token) (TAG_OPENING | token)
40#define XML_STREAM_CLOSING(token) (TAG_CLOSING | token)
123 OUString& operator[](
int token);
124 OUString
attribute(
int token,
const OUString& def)
const;
125 bool attribute(
int token,
bool def)
const;
136 Tag(
int token = XML_TOKEN_INVALID,
137 const css::uno::Reference<css::xml::sax::XFastAttributeList>& attributes
138 = css::uno::Reference<css::xml::sax::XFastAttributeList>());
147 OUString
attribute(
int token,
const OUString& def = OUString())
const;
151 bool attribute(
int token,
bool def)
const;
161 operator bool()
const;
170 Tag currentTag()
const;
174 int currentToken()
const;
178 void moveToNextTag();
185 Tag ensureOpeningTag(
int token);
192 Tag checkOpeningTag(
int token);
198 void ensureClosingTag(
int token);
203 bool findTag(
int token);
207 void handleUnexpectedTag();
210 Tag checkTag(
int token,
bool optional);
211 bool findTagInternal(
int token,
bool silent);
212 void skipElementInternal(
int token,
bool silent);
228 const css::uno::Reference<css::xml::sax::XFastAttributeList>& attributes
229 = css::uno::Reference<css::xml::sax::XFastAttributeList>());
230 void appendOpeningTag(
int token,
const AttributeList& attribs);
231 void appendClosingTag(
int token);
233 void appendCharacters(std::u16string_view characters);
243 return attributes.attribute(
t, def);
248 return attributes.attribute(
t, def);