xml_validate_schema
returns a string with list of errors detected by DTD and XML
Schema validator on reading given XML document.
xml_validate_schema
(in document varchar,
in parser_mode integer,
in base_uri varchar,
in content_encoding varchar,
in content_language varchar,
in dtd_validator_config varchar);
Description
This parses the argument, which is expected to be an XML
fragment (possibly with syntax errors, violations of validity conditions etc.)
and returns a human-readable list of errors as a string.
If there is a "schemaLocation" attribute in root element,
XML Schema declaration will be loaded and partial
schema validation will be performed. If this attribute does not exist and
the Validation option below is not set to DISABLED, then an error will be
returned: ('FATAL : Schema declaration is not loaded').
The XML Schema validation routines are tightly coupled with DTD validator.
If the document contains both Schema and DTD information then both validations are
made in the same time in order to provide as accurate diagnostics as possible.
However, it is impossible to check whether the declared DTD matches or contradicts to the declared Schema,
so the parser performs two independent validations to every item of source data.
E.g. if DTD contradicts to the schema in description of some particular element and
data in the document does not contain this element then no errors is reported; but if
sun an element occurs in the document then either DTD validator or Schema validator will log an error.
Parameters
document –
XML or HTML document to check
parser_mode –
0 or 1; 0 - XML parser mode 1 - HTML parser mode
base_uri –
in HTML parser mode change all absolute references to relative from given base_uri (http://<host>:<port>/<path>)
content_encoding –
string with content encoding type of <document>; valid are 'ASCII', 'ISO', 'UTF8', 'ISO8859-1', 'LATIN-1' etc., defaults are 'UTF-8' for XML mode and 'LATIN-1' for HTML mode
content_language –
string with language tag of content of <document>; valid names are listed in IETF RFC 1766, default is 'x-any' (it means 'mix of words from various human languages)
dtd_validator_config –
configuration string of the validator, default is empty string meaning that DTD validator should be fully disabled and only critical errors should be reported.
It is very probable that this is not the best choice for your application, so please
refer
Configuration Options of the DTD Validator to find out
how to let validator to do better job.
Return Types
Human readable list of errors if applicable as a varchar.
Validating XML Against a DTD
declare _result varchar;
_result := xml_validate_schema (
_text, 0, 'http://localhost.localdomain/xmlrepository', 'UTF-8', 'x-any',
'Validation=SGML FsaBadWs=IGNORE BuildStandalone=ENABLE MaxErrors=100');
if (_res = '') _res := 'NO ERRORS DETECTED';