データ スキーマは、igDataSource
コンポーネントのデータ変換を処理します。スキーマ定義は次の部分で構成されます。
フィールド定義は次の項目で構成されます。
JavaScript 配列を使用する場合、配列スキーマを使うのが最良のオプションです。このようにこれらの配列を使用すると、JavaScript オブジェクトやその他の配列を含むことができます。
JavaScript の場合:
var arrayOfObjects = [
{song:"Light My Fire",artist:"The Doors",year:1967},
{song:"Another Brick in the Wall",artist:"Pink Floyd",year:1979},
{song:"The Show Must Go On",artist:"Queen",year:1991}
];
var arrayOfArrays = [
["Light My Fire", "The Doors", 1967],
["Another Brick in the Wall", "Pink Floyd", 1979],
["The Show Must Go On", "Queen", 1991]
];
var mySchema = new $.ig.DataSchema("array", {
fields: [{
name: "song"
}, {
name: "artist"
}, {
name: "year"
}]
});
var ds = new $.ig.DataSource({
dataSource: arrayOfObjects,
schema: mySchema
}).dataBind();
JSON スキーマ JSON データを使用する場合、JSON スキーマを使うのが最良のオプションです。
JavaScript の場合:
var json = {
"profile":{
"current":160,
"target":150
},
"program": [
{
"category":"exercise",
"weekly schedule":[
{"day":"sunday", "activity":"swimming"},
{"day":"monday", "activity":"running"},
{"day":"tuesday", "activity":"biking"},
{"day":"wednesday", "activity":"running"},
{"day":"thursday", "activity":"swimming"},
{"day":"friday", "activity":"running"},
{"day":"saturday", "activity":"golf"}
]
}
]
};
var jsonSchema = new $.ig.DataSchema("json", {
fields: [{
name: "day"
}, {
name: "activity"
}],
searchField: "program[0]['weekly schedule']"
});
var ds = new $.ig.DataSource({
dataSource: json,
schema: jsonSchema
}).dataBind();
XML データを使用する場合、XML スキーマを使うのが最良のオプションです。
XML の場合:
gustavo0@adventure-works.com
May 16 2005 4:33
catherine0@adventure-works.com
May 16 2005 4:33
kim2@adventure-works.com
May 16 2005 4:33
XML スキーマの場合、XPath を使用して、バインドしたいデータのあるノードを選択します。
JavaScript の場合:
var xmlSchema = new $.ig.DataSchema("xml", { fields:[
{name : "FirstName", xpath: "generalInfo/@firstName"},
{name : "LastName", xpath : "generalInfo/@lastName"},
{name : "Email", xpath : "generalInfo"} ],
searchField:"//person"});
注: データ スキーマを定義した後、それをデータ ソースのスキーマ オプションに適用できます。
JavaScript の場合:
var mySchema = new $.ig.DataSchema("array", {
fields: [{
name: "song"
}, {
name: "artist"
}, {
name: "year"
}]
});
var ds = new $.ig.DataSource({
dataSource: arrayOfObjects,
schema: mySchema
}).dataBind();
オンラインで表示: GitHub