DataTable.ImportFromXml
Overview
Imports xml data to specified table. If record already exist in table it's updates existing. If no record exist a new record added to table. Comparison automatically done with table primary key.
DataTable myDataTable.ImportFromXml(options:
QueryWithMappings)
Arguments
QueryWithMappings options
Specifies the import options and may contain one or more following properties:
Remarks
ColumnsXPath is used to specify additional secondary mapping path by XPath argument.
This method does not call save method after execuiton. If you want to save changes, you need to explicitly call Save method or use $Database.ImportFromXml instead.
Example
Common use for importing data
var table = $Database.Get({
Parameters : {
TargetSchema : 'HR',
TargetTable : 'Groups'
}
});
table.ImportFromXml({
XPath : 'Groups/Group'
});
table.Save();
Example
Using map function
var table = $Database.Get({
Parameters : {
TargetSchema : 'HR',
TargetTable : 'Groups'
}
});
table.ImportFromXml({
XPath : 'Groups/Group',
map : function (node) {
this.Id = node.Evaluate('../Id');
}
});
table.Save();
Types
QueryWithMappings
{
// Array of columns
Columns : Array<
QueryColumn>
Map : (node:
Xml) => void
// Maximum number of rows. If not set all rows are returns.
MaxLength : number
// Root node of mapping. If not specified $Xml instance is used.
Node :
Xml
// Array of order columns
Order : Array<
QueryOrder>
// Additional parameters
Parameters : object
// Start index of rows.
Start : number
// Array of sub queries.
SubQueries : Array<
SubQuery>
// Name of schema to execute query on.
TargetSchema : string
// Name of table to execute query on.
TargetTable : string
// Criteria of query
Where :
QueryBlock
// Root xpath to be mapped.
XPath : string
}
QueryColumn
Defines a query column to included in result
{
// Expression of column.
Expression : string
// Name of column to use in results. If not specified expression is used.
Name : string
// XPath to be mapped.
XPath : string
}
QueryOrder
Defines order expression of query result
{
// Expression to order.
Expression : string
// Type of ordering. If not specified Ascending is used.
Type : ( "Ascending" | "Descending" )
}
SubQuery
{
// Array of columns
Columns : Array<
QueryColumn>
// Maximum number of rows. If not set all rows are returns.
MaxLength : number
// Name of sub query. Relation name can be used as name.
Name : string
// Array of order columns
Order : Array<
QueryOrder>
// Additional parameters
Parameters : object
// Name of relation
Relation : string
// Start index of rows.
Start : number
// Array of sub queries.
SubQueries : Array<
SubQuery>
// Name of schema to execute query on.
TargetSchema : string
// Name of table to execute query on.
TargetTable : string
// Criteria of query
Where :
QueryBlock
// Specifies the target xpath to export data on.
XPath : string
}
QueryBlock
{
// Array of criteria blocks
Blocks : Array<
QueryBlock>
// Condition with next block. If not specified And value is used.
Condition : ( "And" | "Or" )
// Array of criteria
Criteria : Array<
QueryCriteria>
}
QueryCriteria
Defines a criteria to be used to filter results
{
// Comparison operator. Default value is Equals.
Comparison : ( "Equals" | "Different" | "LessThan" | "GreaterThan" | "LessThanOrEqualTo" | "GreaterThanOrEqualTo" | "Like" )
// Condition with next criteria. If not specified And value is used.
Condition : ( "And" | "Or" )
// Criteria expression.
Expression : string
// Array of ignored values.
IgnoredValues : any
// Value or Expression to compare
Value : any
// Type of value. If not specified Direct value is used.
ValueType : ( "Direct" | "Expression" )
}
Copyright © 2010 - 2023 Emakin. All rights reserved.