Open SCAP Library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Typedefs | Enumerations | Functions
Validation

Detailed Description

XML schema based validation of XML representations of SCAP documents.

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_UNKNOWN = 0, OSCAP_DOCUMENT_OVAL_DEFINITIONS, 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, OSCAP_DOCUMENT_OCIL, OSCAP_DOCUMENT_CVRF_FEED
}
 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. More...
 
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. More...
 

Enumeration Type Documentation

SCAP document type identifiers.

Enumerator
OSCAP_DOCUMENT_UNKNOWN 

The type is unknown.

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.

OSCAP_DOCUMENT_OCIL 

OCIL Definitions file.

OSCAP_DOCUMENT_CVRF_FEED 

CVRF feed.

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
xmlfileFile to be transformed.
xsltfileXSLT file
outfileResult file shall be written here (NULL for stdout).
paramslist of key-value pairs to pass to the stylesheet.
Returns
the number of bytes written or -1 in case of failure
int oscap_determine_document_type ( const char *  document,
oscap_document_type_t doc_type 
)

Determine document type.

Deprecated:
This function has been deprecated and it may be dropped from later OpenSCAP releases. Please use oscap_source_get_scap_type instead.
const char* oscap_document_type_to_string ( oscap_document_type_t  type)

Convert oscap_document_type_t constant to human readable (english) representation.

Parameters
typeOpenSCAP Document Type
Returns
English string describing document type.
Return values
Returnedvalue might be pointer to static memory and must not be modified.
NULLin case of unrecognized document type
const char* oscap_path_to_schematron ( void  )

Function returns path used to locate OpenSCAP Schematron files.

Deprecated:
This function has been deprecated. It has never returned correct path to schematron files. This function may be dropped from the next version of the library.
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
xmlfileFile to be validated.
doctypeDocument type represented by the file.
versionVersion of the document, use NULL for library's default.
outfileReport from schematron validation is written into the outfile. If NULL, stdou will be used.
Returns
0 on pass; <0 error; >0 fail
Deprecated:
This function has been deprecated and it may be dropped from later OpenSCAP releases. Please use oscap_source_validate_schematron instead.
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
xmlfileFile to be validated.
doctypeDocument type represented by the file.
versionVersion of the document, use NULL for library's default.
reporterA reporter to by notified of encountered issues. Can be NULL, if a binary document validates / does not validate answer is satisfactonary.
argArgument for the reporter.
Returns
0 on pass; -1 error; 1 fail
Deprecated:
This function has been deprecated and it may be dropped from later OpenSCAP releases. Please use oscap_source_validate instead.