28#include <rtl/ustring.hxx>
42 enum { NAMESPACE_NONE = -2, NAMESPACE_UNKNOWN = -1, NAMESPACE_XML = 0 };
48 int registerNamespaceIri(
Span const & iri);
53 Result nextItem(Text reportText,
Span * data,
int * nsId);
55 bool nextAttribute(
int * nsId,
Span * localName);
59 Span getAttributeValue(
bool fullyNormalize);
61 int getNamespaceId(
Span const & prefix)
const;
63 const OUString&
getUrl()
const {
return fileUrl_;}
85 prefix(thePrefix), nsId(theNsId) {}
97 NamespaceList::size_type theInheritedNamespaces,
98 int theDefaultNamespaceId):
99 name(theName), inheritedNamespaces(theInheritedNamespaces),
100 defaultNamespaceId(theDefaultNamespaceId)
114 char const * theNameBegin,
char const * theNameEnd,
115 char const * theNameColon,
char const * theValueBegin,
116 char const * theValueEnd):
117 nameBegin(theNameBegin), nameEnd(theNameEnd),
118 nameColon(theNameColon), valueBegin(theValueBegin),
119 valueEnd(theValueEnd)
127 SAL_DLLPRIVATE
char read() {
return pos_ == end_ ?
'\0' : *pos_++; }
129 SAL_DLLPRIVATE
char peek()
const {
return pos_ == end_ ?
'\0' : *pos_; }
131 SAL_DLLPRIVATE
void normalizeLineEnds(
Span const & text);
133 SAL_DLLPRIVATE
void skipSpace();
135 SAL_DLLPRIVATE
bool skipComment();
137 SAL_DLLPRIVATE
void skipProcessingInstruction();
139 SAL_DLLPRIVATE
void skipDocumentTypeDeclaration();
141 SAL_DLLPRIVATE
Span scanCdataSection();
143 SAL_DLLPRIVATE
bool scanName(
char const ** nameColon);
145 SAL_DLLPRIVATE
int scanNamespaceIri(
146 char const * begin,
char const * end);
148 SAL_DLLPRIVATE
char const * handleReference(
149 char const * position,
char const * end);
151 SAL_DLLPRIVATE
Span handleAttributeValue(
152 char const * begin,
char const * end,
bool fullyNormalize);
154 SAL_DLLPRIVATE Result handleStartTag(
int * nsId,
Span * localName);
156 SAL_DLLPRIVATE Result handleEndTag();
158 SAL_DLLPRIVATE
void handleElementEnd();
160 SAL_DLLPRIVATE Result handleSkippedText(
Span * data,
int * nsId);
162 SAL_DLLPRIVATE Result handleRawText(
Span * text);
164 SAL_DLLPRIVATE Result handleNormalizedText(
Span * text);
166 SAL_DLLPRIVATE
static int toNamespaceId(NamespaceIris::size_type pos);
std::stack< ElementData > ElementStack
XmlReader & operator=(const XmlReader &)=delete
XmlReader(const XmlReader &)=delete
const OUString & getUrl() const
std::vector< Span > NamespaceIris
oslFileHandle fileHandle_
std::vector< NamespaceData > NamespaceList
Attributes::iterator currentAttribute_
SAL_DLLPRIVATE char peek() const
SAL_DLLPRIVATE char read()
NamespaceList namespaces_
NamespaceIris namespaceIris_
std::vector< AttributeData > Attributes
AttributeData(char const *theNameBegin, char const *theNameEnd, char const *theNameColon, char const *theValueBegin, char const *theValueEnd)
ElementData(Span const &theName, NamespaceList::size_type theInheritedNamespaces, int theDefaultNamespaceId)
NamespaceList::size_type inheritedNamespaces
NamespaceData(Span const &thePrefix, int theNsId)
#define OOO_DLLPUBLIC_XMLREADER