Latest web development tutorials
 

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>