Validation
Common

XML schema based validation of XML representations of SCAP documents. More...

## Typedefs

typedef enum oscap_document_type | oscap_document_type_t
| SCAP document type identifiers.
typedef int(* | xml_reporter )(const char *file, int line, const char *msg, void *arg)

## Enumerations

enum | oscap_document_type { OSCAP_DOCUMENT_OVAL_DEFINITIONS = 1, OSCAP_DOCUMENT_OVAL_VARIABLES, OSCAP_DOCUMENT_OVAL_SYSCHAR, OSCAP_DOCUMENT_OVAL_RESULTS, OSCAP_DOCUMENT_OVAL_DIRECTIVES, OSCAP_DOCUMENT_XCCDF, OSCAP_DOCUMENT_CPE_LANGUAGE, OSCAP_DOCUMENT_CPE_DICTIONARY, OSCAP_DOCUMENT_CVE_FEED, OSCAP_DOCUMENT_SCE_RESULT, OSCAP_DOCUMENT_SDS, OSCAP_DOCUMENT_ARF, OSCAP_DOCUMENT_XCCDF_TAILORING }
| SCAP document type identifiers. More...

## Functions

const char * | oscap_document_type_to_string (oscap_document_type_t type)
| Convert oscap_document_type_t constant to human readable (english) representation. More...
int | oscap_validate_document (const char *xmlfile, oscap_document_type_t doctype, const char *version, xml_reporter reporter, void *arg)
| Validate a SCAP document file against a XML schema. More...
int | oscap_schematron_validate_document (const char *xmlfile, oscap_document_type_t doctype, const char *version, const char *outfile)
| Validate a SCAP document file against schematron rules. More...
int | oscap_apply_xslt (const char *xmlfile, const char *xsltfile, const char *outfile, const char **params)
| Apply a XSLT stylesheet to a XML file. More...
const char * | oscap_path_to_schemas (void)
| Function returns path used to locate OpenSCAP XML schemas.
const char * | oscap_path_to_schematron (void)
| Function returns path used to locate OpenSCAP Schematron files.
const char * | oscap_path_to_cpe (void)
| Function returns path used to locate OpenSCAP Default CPE files.
int | oscap_determine_document_type (const char *document, oscap_document_type_t *doc_type)
| Determine document type.

## Detailed Description

XML schema based validation of XML representations of SCAP documents.

## Enumeration Type Documentation

enum oscap_document_type

SCAP document type identifiers.

Enumerator
OSCAP_DOCUMENT_OVAL_DEFINITIONS | OVAL Definitions file.
OSCAP_DOCUMENT_OVAL_VARIABLES | OVAL Variables.
OSCAP_DOCUMENT_OVAL_SYSCHAR | OVAL system characteristics file.
OSCAP_DOCUMENT_OVAL_RESULTS | OVAL results file.
OSCAP_DOCUMENT_OVAL_DIRECTIVES | OVAL directives file.
OSCAP_DOCUMENT_XCCDF | XCCDF benchmark file.
OSCAP_DOCUMENT_CPE_LANGUAGE | CPE language file.
OSCAP_DOCUMENT_CPE_DICTIONARY | CPE dictionary file.
OSCAP_DOCUMENT_CVE_FEED | CVE NVD feed.
OSCAP_DOCUMENT_SCE_RESULT | SCE result file.
OSCAP_DOCUMENT_SDS | Source Data Stream file.
OSCAP_DOCUMENT_ARF | Result Data Stream file.
OSCAP_DOCUMENT_XCCDF_TAILORING | XCCDF tailoring file.

## Function Documentation

int oscap_apply_xslt | ( | const char * | xmlfile,
|  | const char * | xsltfile,
|  | const char * | outfile,
|  | const char ** | params
| ) |  |

Apply a XSLT stylesheet to a XML file.

If xsltfile is not an absolute path, the file will be searched relatively to a path specified by the OSCAP_XSLT_PATH environment variable. If the variable does not exist a default path is used (usually something like $PREFIX/share/openscap/schemas).

Parameters

  xmlfile | File to be transformed.
  xsltfile | XSLT file
  outfile | Result file shall be written here (NULL for stdout).
  params | list of key-value pairs to pass to the stylesheet.

Returns
  the number of bytes written or -1 in case of failure

const char* oscap_document_type_to_string | ( | oscap_document_type_t | type | ) |

Convert oscap_document_type_t constant to human readable (english) representation.

Parameters

  type | OpenSCAP Document Type

Returns
  English string describing document type.

Return values

  Returned | value might be pointer to static memory and must not be modified.
  NULL | in case of unrecognized document type

int oscap_schematron_validate_document | ( | const char * | xmlfile,
|  | oscap_document_type_t | doctype,
|  | const char * | version,
|  | const char * | outfile
| ) |  |

Validate a SCAP document file against schematron rules.

The rules are searched relative to path specified by the OSCAP_SCHEMA_PATH environment variable. If the variable does not exist a default path is used (usually something like $PREFIX/share/openscap/schemas).

Parameters

  xmlfile | File to be validated.
  doctype | Document type represented by the file.
  version | Version of the document, use NULL for library's default.
  outfile | Report from schematron validation is written into the outfile. If NULL, stdou will be used.

Returns
  0 on pass; <0 error; >0 fail

int oscap_validate_document | ( | const char * | xmlfile,
|  | oscap_document_type_t | doctype,
|  | const char * | version,
|  | xml_reporter | reporter,
|  | void * | arg
| ) |  |

Validate a SCAP document file against a XML schema.

Schemas are searched relative to path specified by the OSCAP_SCHEMA_PATH environment variable. If the variable does not exist a default path is used (usually something like $PREFIX/share/openscap/schemas).

Directory structure must adhere $SCHEMA_PATH/$STANDARD/$VERSION/$SCHEMAFILE.xsd structure, where $STANDARD is oval, xccdf, etc., and $VERSION is a version of the standard.

Parameters

  xmlfile | File to be validated.
  doctype | Document type represented by the file.
  version | Version of the document, use NULL for library's default.
  reporter | A reporter to by notified of encountered issues. Can be NULL, if a binary document validates / does not validate answer is satisfactonary.
  arg | Argument for the reporter.

Returns
  0 on pass; -1 error; 1 fail