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 DataTable.ImportFromXml(options: QueryWithMappings)
Arguments
Remarks
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 datavar table = $Database.Get({ Parameters : { TargetSchema : 'HR', TargetTable : 'Groups' } }); table.ImportFromXml({ XPath : 'Groups/Group' }); table.Save();
Example
Using map functionvar 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: XmlNode) => 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 : XmlNode
// 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" )
}
Examples
Common use for importing datavar table = $Database.Get({ Parameters : { TargetSchema : 'HR', TargetTable : 'Groups' } }); table.ImportFromXml({ XPath : 'Groups/Group' }); table.Save();
var table = $Database.Get({ Parameters : { TargetSchema : 'HR', TargetTable : 'Groups' } }); table.ImportFromXml({ XPath : 'Groups/Group', map : function (node) { this.Id = node.Evaluate('../Id'); } }); table.Save();