SaxonC 13.0.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
180
181private:
187
188 DocumentBuilder();
189
196 DocumentBuilder(SaxonProcessor *p, int64_t docBuilderObject, std::string cwd);
197
202 DocumentBuilder(const DocumentBuilder &other);
203
204 void createException(const char *message = nullptr);
205
206 SaxonProcessor *proc;
207 int64_t docBuilderObject, schemaValRef;
208 // jclass docBuilderClass, procClass;
209 // jclass saxonCAPIClass;
210 std::string baseURI;
211 std::string cwdDB;
212 bool lineNumbering, dtdVal;
213};
214
215#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:55
XdmNode * parseXmlFromFile(const char *filename)
Build a document from a supplied XML file.
Definition DocumentBuilder.cpp:128
SchemaValidator * getSchemaValidator()
Get the SchemaValidator used to validate documents loaded using this DocumentBuilder.
Definition DocumentBuilder.cpp:76
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:104
void setSchemaValidator(SchemaValidator *validator)
Set the SchemaValidator to be used.
Definition DocumentBuilder.cpp:63
bool isLineNumbering()
Ask whether line and column numbering is enabled for documents loaded using this DocumentBuilder.
Definition DocumentBuilder.cpp:61
void setBaseUri(const char *uri)
Set the base URI of a document loaded using this DocumentBuilder.
Definition DocumentBuilder.cpp:89
const char * getBaseUri()
Get the base URI of documents loaded using this DocumentBuilder when no other URI is available.
Definition DocumentBuilder.cpp:102
bool isDTDValidation()
Ask whether DTD validation is to be applied to documents loaded using this DocumentBuilder.
Definition DocumentBuilder.cpp:87
XdmNode * parseXmlFromUri(const char *source)
Build a document from a supplied URI source.
Definition DocumentBuilder.cpp:150
void setDTDValidation(bool option)
Set whether DTD validation should be applied to documents loaded using this DocumentBuilder.
Definition DocumentBuilder.cpp:81
SaxonApiException.
Definition SaxonApiException.h:25
The SaxonProcessor class acts as a factory for generating XQuery, XPath, Schema and XSLT compilers.
Definition SaxonProcessor.h:137
Definition SchemaValidator.h:27
This class represents a node in the XDM data model.
Definition XdmNode.h:57