ddn.data.xml.validate

Validation entrypoints (DTD/XSD/RelaxNG), implemented in phases.

Types 6

Supported schema languages for XML validation.

XSDXML Schema (XSD).
RELAX_NGRelax NG (RNG).

Validation options.

Fields
bool nonetIf `true`, do not allow network access in `xmllint` (`--nonet`).
string[] catalogFilesOptional XML catalog files passed via `--catalogs` (may be empty).
bool allowExternalSubsetIf `true`, allow loading an external subset / external entities during native DTD validation.
bool preferNativeIf `true` (default), use native D9 validation for supported schema subsets before falling back to CLI tools.

Result of validating an XML document.

Fields
bool valid`true` if the document is valid for the chosen schema.
int exitCodeExit code returned by `xmllint`.
string stdoutCaptured stdout from `xmllint`.
string stderrCaptured stderr from `xmllint` (usually contains validation diagnostics).
XmlValidationMessage[] messagesParsed diagnostics extracted from `stderr`.

Validation message severity.

ERRORValidation error.
WARNINGValidation warning.
INFOInformational message.

Validation diagnostic category.

This is intentionally coarse-grained so it can be shared across CLI-backed and future native validators.

PARSEXML well-formedness / parser-level error.
DTDDTD validity error.
XSDXML Schema (XSD) validation error.
RELAX_NGRelax NG validation error.
OTHERAnything else / unknown.

A structured validation diagnostic.

Fields
XmlValidationSeverity severitySeverity.
XmlValidationCategory categoryCategory.
XmlLocation locationLocation, if available.
string messageHuman-readable message.
string rawLineOriginal raw line from `xmllint` output.

Functions 13

fnXmlValidationMessage[] parseXmllintMessages(string stderrText) @safe
private fnstring readAll(File file)
private fnXmlValidationResult runXmllintValidate(const string[] argv)
private fnXmlValidationResult runXmllintValidateStdin(const string[] argv, string stdinText)
private fnstring[] catalogsArgs(const XmlValidateOptions options)
fnXmlValidationResult validateDtd( string xml, string systemId = "", XmlValidateOptions options = XmlValidateOptions.init) @safeValidates an XML document using the library's native DTD validation.
fnXmlValidationResult validateDtd(XmlDocument document, XmlValidateOptions options = XmlValidateOptions.init) @safeValidates a DOM document using native DTD validation.
fnXmlValidationResult validateXsdFile( string xmlFile, string xsdFile, XmlValidateOptions options = XmlValidateOptions.init)Validates `xmlFile` using an XSD schema.
fnXmlValidationResult validateXsd( string xml, string xsdFile, XmlValidateOptions options = XmlValidateOptions.init)Validates an in-memory XML document against an XSD schema.
fnXmlValidationResult validateXsd( XmlDocument document, string xsdFile, XmlValidateOptions options = XmlValidateOptions.init)Validates a DOM document against an XSD schema.
fnXmlValidationResult validateRelaxNgFile( string xmlFile, string rngFile, XmlValidateOptions options = XmlValidateOptions.init)Validates `xmlFile` using a Relax NG schema.
fnXmlValidationResult validateRelaxNg( string xml, string rngFile, XmlValidateOptions options = XmlValidateOptions.init)Validates an in-memory XML document against a Relax NG schema.
fnXmlValidationResult validateRelaxNg( XmlDocument document, string rngFile, XmlValidateOptions options = XmlValidateOptions.init)Validates a DOM document against a Relax NG schema.