SaxonC 13.0.0
Saxon Processor library for C/C++, PHP and Python
Loading...
Searching...
No Matches
SchemaValidator.h
1
2// Copyright (c) 2022 - 2025 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 SAXON_SCHEMA_H
11#define SAXON_SCHEMA_H
12
13#include "saxonc_export.h"
14#include "saxonc/SaxonProcessor.h"
15
16#include <string>
17
18class SaxonProcessor;
19class XdmValue;
20class XdmNode;
21class XdmItem;
22class XsdSchema;
23
27class SAXONC_EXPORT SchemaValidator {
28public:
35
44 SchemaValidator(SaxonProcessor *proc, std::string cwd = "");
45
50 SchemaValidator(const SchemaValidator &other);
51
56
63
69 void setcwd(const char *cwd);
70
76 const char * getcwd();
77
90 void registerSchemaFromFile(const char *xsd);
91
99 void registerSchemaFromString(const char *schemaStr,
100 const char *systemID = nullptr);
101
109
117 void exportSchema(const char *fileName);
118
123 void setOutputFile(const char *outputFile);
124
129 const char *getOutputFile();
130
137 void validate(const char *sourceFile = nullptr);
138
145 void validateFromString(const char *content);
146
154 XdmNode *validateToNode(const char *sourceFile = nullptr);
155
162 void setSourceNode(XdmNode *source);
163
173
181 void setParameter(const char *name, XdmValue *value, bool withParam=true);
182
188 bool removeParameter(const char *name);
189
196 void setProperty(const char *name, const char *value);
197
206 void clearParameters(bool deleteValues = false);
207
211 void clearProperties();
212
219 XdmValue *getParameter(const char *name, bool withParam=true);
220
224 std::map<std::string, XdmValue *> &getParameters();
225
229 std::map<std::string, std::string> &getProperties();
230
231
241 void setLax(bool l);
242
248 bool isLax();
249
254 XsdSchema * getSchema();
255
256 void setUseXsiSchemaLocation(bool recognize);
257
258 bool isUseXsiSchemaLocation();
259
260 void setDocumentElementName(const char * eqname);
261
262 const char * getDocumentElementName();
263
264 void validateMultiple(const char **sourceFile);
265
266 bool isExpandAttributeDefaults();
267
268 void setExpandAttributeDefaults(bool expand);
272 int64_t getUnderlyingValidator() { return cppV; }
273
277 SaxonProcessor* getSaxonProcessor();
278
279private:
280
281 friend class XsdSchema;
282 friend class DocumentBuilder;
283
284
285 SchemaValidator(std::string cwd, int64_t p, int64_t schemaValidatorObject);
286
287 bool lax;
288
289 int64_t cppV, procRef;
290 std::string cwdV;
291 std::string
292 outputFile;
293 std::map<std::string, XdmValue *>
294 parameters;
296 std::map<std::string, std::string>
297 properties;
299};
300
301#endif /* SAXON_SCHEMA_H */
SAXONC_EXPORT void setParameter(sxnc_parameter **parameters, int *parLen, int *parCap, const char *name, sxnc_value *value)
Set a parameter.
Definition SaxonCGlue.c:202
SAXONC_EXPORT int64_t getParameter(sxnc_parameter *parameters, int parLen, const char *name)
Get a parameter from the list.
Definition SaxonCGlue.c:178
SAXONC_EXPORT void setProperty(sxnc_property **properties, int *propLen, int *propCap, const char *name, const char *value)
Set a property.
Definition SaxonCGlue.c:228
A document builder holds properties controlling how a Saxon document tree should be built,...
Definition DocumentBuilder.h:35
The SaxonProcessor class acts as a factory for generating XQuery, XPath, Schema and XSLT compilers.
Definition SaxonProcessor.h:137
Definition SchemaValidator.h:27
bool isLax()
Ask whether validation is to be in lax mode.
void registerSchemaFromString(const char *schemaStr, const char *systemID=nullptr)
Register the schema supplied as a string.
Definition SchemaValidator.cpp:226
void clearProperties()
Clear configuration property values set.
Definition SchemaValidator.cpp:412
void validateFromString(const char *content)
Validate an instance document by a registered schema.
Definition SchemaValidator.cpp:257
void registerSchemaFromFile(const char *xsd)
Register the schema from file name.
Definition SchemaValidator.cpp:184
const char * getcwd()
Get the current working directory set on this validator.
Definition SchemaValidator.cpp:109
void setcwd(const char *cwd)
Set the current working directory for the validator.
Definition SchemaValidator.cpp:103
void setOutputFile(const char *outputFile)
Set the name of the output file that will be used by the validator.
Definition SchemaValidator.cpp:113
int64_t getUnderlyingValidator()
Get the underlying Java object of the C++ schema validator.
Definition SchemaValidator.h:272
SchemaValidator & operator=(const SchemaValidator &other)
The copy assignment= operator.
SchemaValidator()
Default constructor.
Definition SchemaValidator.cpp:12
void clearParameters(bool deleteValues=false)
Clear parameter values set.
Definition SchemaValidator.cpp:394
XsdSchema * getSchema()
Get the schema used by this schema validator.
void registerSchemaFromNode(XdmNode *node)
Register the schema supplied as an XDM Node Object.
Definition SchemaValidator.cpp:152
void exportSchema(const char *fileName)
Export a precompiled Schema Component Model.
Definition SchemaValidator.cpp:212
XdmNode * getValidationReport()
Get the validation report.
Definition SchemaValidator.cpp:125
void validate(const char *sourceFile=nullptr)
Validate an instance document by a registered schema.
Definition SchemaValidator.cpp:289
const char * getOutputFile()
Get the output file that will be used by the validator.
Definition SchemaValidator.cpp:119
std::map< std::string, XdmValue * > & getParameters()
Get all parameters as a std::map.
Definition SchemaValidator.cpp:414
std::map< std::string, std::string > & getProperties()
Get all configuration properties specified on the processor as a std::map.
Definition SchemaValidator.cpp:419
XdmNode * validateToNode(const char *sourceFile=nullptr)
Validate an instance document supplied as a Source object.
Definition SchemaValidator.cpp:319
void setLax(bool l)
Set the validation mode - which may be either strict or lax.
Definition SchemaValidator.cpp:123
void setSourceNode(XdmNode *source)
Set the source node for validation.
Definition SchemaValidator.cpp:351
bool removeParameter(const char *name)
Remove a parameter (name, value) pair.
Definition SchemaValidator.cpp:380
The class XdmItem represents an item in a sequence, as defined by the XDM data model.
Definition XdmItem.h:31
This class represents a node in the XDM data model.
Definition XdmNode.h:57
An XdmValue represents a value in the XDM data model.
Definition XdmValue.h:33
Definition XsdSchema.h:26