Moodle APIs 3.9
Moodle 3.9.13+ (Build: 20220325)
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
xml_database_importer Class Reference

XML format importer class (uses SAX for speed and low memory footprint). More...

Inheritance diagram for xml_database_importer:
database_importer file_xml_database_importer string_xml_database_importer

Public Member Functions

 begin_database_import ($version, $timestamp)
 Callback function. More...
 
 begin_table_import ($tablename, $schemaHash)
 Callback function. More...
 
 finish_database_import ()
 Callback function. More...
 
 finish_table_import ($tablename)
 Callback function. More...
 
 import_database ()
 Common import method. More...
 
 import_table_data ($tablename, $data)
 Callback function. More...
 
 set_transaction_mode ($mode)
 How to use transactions during the import. More...
 

Protected Member Functions

 cdata ($parser, $data)
 Callback function. More...
 
 get_parser ()
 Creates and setups a SAX parser. More...
 
 tag_close ($parser, $tag)
 Callback function. More...
 
 tag_open ($parser, $tag, $attributes)
 Callback function. More...
 

Protected Attributes

bool $check_schema
 Boolean flag - whether or not to check that XML database schema matches the RDBMS database schema before importing (used by. More...
 
 $current_data
 
 $current_data_is_null
 
 $current_field
 
 $current_row
 
 $current_table
 
database_manager $manager
 Database manager of the target database (a. More...
 
moodle_database $mdb
 Connection to the target database (a. More...
 
xmldb_structure $schema
 Target database schema in XMLDB format (a. More...
 
moodle_transaction $transaction
 Transaction object.
 
string $transactionmode = 'allinone'
 How to use transactions.
 

Detailed Description

XML format importer class (uses SAX for speed and low memory footprint).

Provides logic for parsing XML data and calling appropriate callbacks. Subclasses should define XML data sources.

Member Function Documentation

◆ begin_database_import()

database_importer::begin_database_import (   $version,
  $timestamp 
)
inherited

Callback function.

Should be called only once database per import operation, before any database changes are made. It will check the database schema if

See also
check_schema is true
Exceptions
dbtransfer_exceptionif any checking (e.g. database schema, Moodle version) fails
Parameters
float$versionthe version of the system which generated the data
string$timestampthe timestamp of the data (in ISO 8601) format.
Return values
void

◆ begin_table_import()

database_importer::begin_table_import (   $tablename,
  $schemaHash 
)
inherited

Callback function.

Should be called only once per table import operation, before any table changes are made. It will delete all table data.

Exceptions
dbtransfer_exceptionan unknown table import is attempted
ddl_table_missing_exceptionif the table is missing
Parameters
string$tablename- the name of the table that will be imported
string$schemaHash- the hash of the xmldb_table schema of the table
Return values
void

◆ cdata()

xml_database_importer::cdata (   $parser,
  $data 
)
protected

Callback function.

Called by the XML parser for character data processing.

Parameters
resource$parserXML parser resource.
string$datacharacter data to be processed
Return values
void

◆ finish_database_import()

database_importer::finish_database_import ( )
inherited

Callback function.

Should be called only once database per import operation, after all database changes are made. It will commit changes.

Return values
void

◆ finish_table_import()

database_importer::finish_table_import (   $tablename)
inherited

Callback function.

Should be called only once per table import operation, after all table changes are made. It will reset table sequences if any.

Parameters
string$tablename
Return values
void

◆ get_parser()

xml_database_importer::get_parser ( )
protected

Creates and setups a SAX parser.

Subclasses should use this method to create the XML parser.

Return values
resourceXML parser resource.

◆ import_database()

database_importer::import_database ( )
inherited

Common import method.

Return values
void

Reimplemented in file_xml_database_importer, and string_xml_database_importer.

◆ import_table_data()

database_importer::import_table_data (   $tablename,
  $data 
)
inherited

Callback function.

Should be called only once per record import operation, only between

See also
begin_table_import and
finish_table_import calls. It will insert table data.
Exceptions
dml_exceptionif data insert operation failed
Parameters
string$tablename- the name of the table in which data will be imported
object$data- data object (fields and values will be inserted into table)
Return values
void

◆ set_transaction_mode()

database_importer::set_transaction_mode (   $mode)
inherited

How to use transactions during the import.

Parameters
string$mode'pertable', 'allinone' or 'none'.

◆ tag_close()

xml_database_importer::tag_close (   $parser,
  $tag 
)
protected

Callback function.

Called by the XML parser for closing tags processing.

Parameters
resource$parserXML parser resource.
string$tagname of opening tag
Return values
void

◆ tag_open()

xml_database_importer::tag_open (   $parser,
  $tag,
  $attributes 
)
protected

Callback function.

Called by the XML parser for opening tags processing.

Parameters
resource$parserXML parser resource.
string$tagname of opening tag
array$attributesset of opening tag XML attributes
Return values
void

Member Data Documentation

◆ $check_schema

bool database_importer::$check_schema
protectedinherited

Boolean flag - whether or not to check that XML database schema matches the RDBMS database schema before importing (used by.

See also
begin_database_import).

◆ $manager

database_manager database_importer::$manager
protectedinherited

Database manager of the target database (a.

See also
database_manager object).

◆ $mdb

moodle_database database_importer::$mdb
protectedinherited

Connection to the target database (a.

See also
moodle_database object).

◆ $schema

xmldb_structure database_importer::$schema
protectedinherited

Target database schema in XMLDB format (a.

See also
xmldb_structure object).

The documentation for this class was generated from the following file: