SaxonC 12.8.0
Saxon Processor library for C/C++, PHP and Python
Loading...
Searching...
No Matches
DocumentBuilder.h
1
2// Copyright (c) 2022 - 2024 Saxonica Limited.
3// This Source Code Form is subject to the terms of the Mozilla Public License,
4// v. 2.0. If a copy of the MPL was not distributed with this file, You can
5// obtain one at http://mozilla.org/MPL/2.0/. This Source Code Form is
6// "Incompatible With Secondary Licenses", as defined by the Mozilla Public
7// License, v. 2.0.
9
10#ifndef DOCUMENT_BUILDER_H
11#define DOCUMENT_BUILDER_H
12
13#include "saxonc_export.h"
14#include "saxonc/SaxonProcessor.h"
15#include <string>
16
17class SaxonProcessor;
19class XdmNode;
20class SchemaValidator;
21
35class SAXONC_EXPORT DocumentBuilder {
36
37 friend class SaxonProcessor;
38
39public:
43 ~DocumentBuilder();
44
61
62 void setLineNumbering(bool option);
63
72
73 bool isLineNumbering();
74
87
88 void setSchemaValidator(SchemaValidator *validator);
89
97
105
106 void setDTDValidation(bool option);
107
114
115 bool isDTDValidation();
116
129
130 void setBaseUri(const char *uri);
131
138
139 const char *getBaseUri();
140
153
154 XdmNode *parseXmlFromString(const char *content,
155 const char *encoding = nullptr);
156
165
166 XdmNode *parseXmlFromFile(const char *filename);
167
178 XdmNode *parseXmlFromUri(const char *source);
179
186 bool exceptionOccurred();
187
192 void exceptionClear();
193
199 const char *getErrorMessage();
200
206 const char *getErrorCode();
207
214
215private:
221
222 DocumentBuilder();
223
230 DocumentBuilder(SaxonProcessor *p, int64_t docBuilderObject, std::string cwd);
231
236 DocumentBuilder(const DocumentBuilder &other);
237
238 void createException(const char *message = nullptr);
239
240 SchemaValidator *schemaValidator;
241 SaxonProcessor *proc;
242 SaxonApiException *exception;
243 int64_t docBuilderObject;
244 // jclass docBuilderClass, procClass;
245 // jclass saxonCAPIClass;
246 std::string baseURI;
247 std::string cwdDB;
248 bool lineNumbering, dtdVal;
249};
250
251#endif /* DOCUMENT_BUILDER_H */
void setLineNumbering(bool option)
Set whether line and column numbering is to be enabled for documents constructed using this DocumentB...
Definition DocumentBuilder.cpp:56
SaxonApiException * getException()
Deprecated.
Definition DocumentBuilder.cpp:165
XdmNode * parseXmlFromFile(const char *filename)
Build a document from a supplied XML file.
Definition DocumentBuilder.cpp:121
SchemaValidator * getSchemaValidator()
Get the SchemaValidator used to validate documents loaded using this DocumentBuilder.
Definition DocumentBuilder.cpp:71
XdmNode * parseXmlFromString(const char *content, const char *encoding=nullptr)
Load an XML document, to create a tree representation of the document in memory.
Definition DocumentBuilder.cpp:101
const char * getErrorMessage()
Deprecated.
Definition DocumentBuilder.cpp:163
void setSchemaValidator(SchemaValidator *validator)
Set the SchemaValidator to be used.
Definition DocumentBuilder.cpp:67
bool isLineNumbering()
Ask whether line and column numbering is enabled for documents loaded using this DocumentBuilder.
Definition DocumentBuilder.cpp:65
void setBaseUri(const char *uri)
Set the base URI of a document loaded using this DocumentBuilder.
Definition DocumentBuilder.cpp:86
const char * getBaseUri()
Get the base URI of documents loaded using this DocumentBuilder when no other URI is available.
Definition DocumentBuilder.cpp:99
bool isDTDValidation()
Ask whether DTD validation is to be applied to documents loaded using this DocumentBuilder.
Definition DocumentBuilder.cpp:84
XdmNode * parseXmlFromUri(const char *source)
Build a document from a supplied URI source.
Definition DocumentBuilder.cpp:138
const char * getErrorCode()
Deprecated.
Definition DocumentBuilder.cpp:161
void exceptionClear()
Deprecated.
Definition DocumentBuilder.cpp:156
void setDTDValidation(bool option)
Set whether DTD validation should be applied to documents loaded using this DocumentBuilder.
Definition DocumentBuilder.cpp:75
bool exceptionOccurred()
Deprecated.
Definition DocumentBuilder.cpp:167
SaxonApiException.
Definition SaxonApiException.h:24
The SaxonProcessor class acts as a factory for generating XQuery, XPath, Schema and XSLT compilers.
Definition SaxonProcessor.h:117
Definition SchemaValidator.h:26
This class represents a node in the XDM data model.
Definition XdmNode.h:57