W3Data AppML
What is AppML?
AppML is a tool for bringing server data to HTML applications.
w3data.php is a subset of AppML.
The purpose of w3data.php is to provide w3data.js with data from a web server.
Application Models
AppML uses application models (written in JavaScript object notation) to describe server applications.
This simple model describes a full application for retrieving data from a database:
model_customers.js
{
"database" : {
"connection" : "localmysql",
"sql" : "SELECT * FROM Customers"}
}
The models are stored on the server and cannot be edited by a web user.
You have to be a server administrator or a user given the rights to edit files on the server.
Using an application model is easy, just add the model name to w3data.php when you call w3Http():
Example
<script>
w3Http("w3data.php?model=model_customers", function () {
if (this.readyState == 4 && this.status == 200) {
var myObject = JSON.parse(this.responseText);
w3DisplayData("id01", myObject);
}
});
</script>
Try It Yourself »
Displaying From a Text File
Example
<script>
w3Http("w3data.php?model=model_cd_from_txt", function () {
if (this.readyState == 4 && this.status == 200) {
var myObject = JSON.parse(this.responseText);
w3DisplayData("id01", myObject);
}
});
</script>
Try It Yourself »
This is the model used in the application:
model_cd_from_txt
{
"data" : {
"type" : "csvfile",
"filename" : "cd_catalog.txt",
"items" : [
{"name" : "title", "index"
: 1},
{"name" : "artist", "index" :
2},
{"name" : "price", "index" : 5}
]
}
}
This is the comma separated text file:
cd_catalog.txt
Empire Burlesque,Bob Dylan,USA,Columbia,10.90,1985
Hide your heart,Bonnie Tyler,UK,CBS Records,9.90,1988
Greatest Hits,Dolly Parton,USA,RCA,9.90,1982
Still got the blues,Gary Moore,UK,Virgin records,10.20,1990
Eros,Eros Ramazzotti,EU,BMG,9.90,1997
One night only,Bee Gees,UK,Polydor,10.90,1998
Sylvias Mother,Dr.Hook,UK,CBS,8.10,1973
Maggie May,Rod Stewart,UK,Pickwick,8.50,1990
Displaying From a JSON File
Example
<script>
w3Http("w3data.php?model=model_cd_from_json", function () {
if (this.readyState == 4 && this.status == 200) {
var myObject = JSON.parse(this.responseText);
w3DisplayData("id01", myObject);
}
});
</script>
Try It Yourself »
This is the model used in the application:
model_cd_from_json.js
{
"data" : {
"type" : "jsonfile",
"filename" : "cd_catalog.js",
"record" : "cd"
"items" : [
{"name" : "title", "nodename"
: "title"},
{"name" : "artist", "nodename" :
"title"},
{"name" : "price", "nodename" :
"title"}
]
}
}
This is the JSON file:
cd_catalog.js
{
"cd" : [
{ "title" : "Empire Burlesque",
"artist" : "Bob Dylan", "price" : "10.90" },
{ "title" :
"Hide your heart", "artist" : "Bonnie Tyler", "price" : "9.90" },
{ "title" : "Greatest Hits", "artist" : "Dolly Parton", "price" : "9.90" },
{ "title" : "Still got the blues", "artist" : "Gary Moore", "price" : "10.20"
},
{ "title" : "Eros", "artist" : "Eros Ramazzotti",
"price" : "9.90" },
{ "title" : "One night only",
"artist" : "Bee Gees", "price" : "10.90" },
{ "title" : "Sylvias
Mother", "artist" : "Dr.Hook", "price" : "8.10" }
]
}
Displaying From an XML File
Example
<script>
w3Http("w3data.php?model=model_cd_from_xml", function () {
if (this.readyState == 4 && this.status == 200) {
var myObject = JSON.parse(this.responseText);
w3DisplayData("id01", myObject);
}
});
</script>
Try It Yourself »
This is the model used in the application:
model_cd_from_xml
{
"data" : {
"type" : "xmlfile",
"filename" : "cd_catalog.xml",
"record" : "CD",
"items" : [
{"name" : "artist", "nodename"
: "ARTIST"},
{"name" : "title", "nodename"
: "TITLE"},
{"name" : "country", "nodename"
: "COUNTRY"}
]
}
}
TThis is the XML file:
cd_catalog.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<PUBLISHED>1985</PUBLISHED>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS
Records</COMPANY>
<PRICE>9.90</PRICE>
<PUBLISHED>1988</PUBLISHED>
</CD>
<CD>
<TITLE>Greatest Hits</TITLE>
<ARTIST>Dolly Parton</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>RCA</COMPANY>
<PRICE>9.90</PRICE>
<PUBLISHED>1982</PUBLISHED>
</CD>
<CD>
<TITLE>Still got the
blues</TITLE>
<ARTIST>Gary Moore</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Virgin records</COMPANY>
<PRICE>10.20</PRICE>
<PUBLISHED>1990</PUBLISHED>
</CD>
<CD>
<TITLE>Eros</TITLE>
<ARTIST>Eros Ramazzotti</ARTIST>
<COUNTRY>EU</COUNTRY>
<COMPANY>BMG</COMPANY>
<PRICE>9.90</PRICE>
<PUBLISHED>1997</PUBLISHED>
</CD>
<CD>
<TITLE>One night only</TITLE>
<ARTIST>Bee Gees</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Polydor</COMPANY>
<PRICE>10.90</PRICE>
<PUBLISHED>1998</PUBLISHED>
</CD>
<CD>
<TITLE>Sylvias Mother</TITLE>
<ARTIST>Dr.Hook</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS</COMPANY>
<PRICE>8.10</PRICE>
<PUBLISHED>1973</PUBLISHED>
</CD>
</CATALOG>