Web Developer's Virtual Library: Encyclopedia of Web Design Tutorials, Articles and Discussions


WDVL Newsletter

Active Server Pages
JSP/Java Servlets
Microsoft SQL Server
Daily Backup
Dedicated Servers
Streaming Audio/Video
24-hour Support    

jobs.webdeveloper.com

Hiermenus


e-commerce
Partner With Us















Developer Channel
FlashKit.com
JavaScript.com
JavaScriptSource
Developer Jobs
ScriptSearch
StreamingMediaWorld
Web Developer's Journal
Web Developer's Virtual Library
WebDeveloper.com
Webreference
Web Hosts
XMLfiles.com

internet.com
IT
Developer
Internet News
Small Business
Personal Technology

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers


Creating a Markup Language (Con't) - Page 4

November 14, 2001

  <order_history customer_id="1">
    <order id="1">
      <customer_address address_type="Ship To Address"
  	   customer_id="1"/>
  	<order_date sayas="May 18, 2001 at 16 17 hours">
  	   2001-05-18T16:17:16   </order_date>
  	<order_status>Processing</order_status>
  	<tax>0.09</tax>
  	<shipping_charge>0.4</shipping_charge>
  	<total_charge>2.48</total_charge>
  	<product id="1" quantity="3"/>
  	<product id="3" quantity="1"/>
    </order>
  </order_history>

Finally, to provide the user with detailed order information, the full product name and description must be available. This will also allow the user to ask for a product list, and eventually we can perhaps extend the interface to enable products to be ordered by voice. Note that the <product_list> is not associated with any particular <customer_record>.

Also note that, ideally, the <product_list> wouldn't actually be in the same document as the customer data. However, we'll keep everything in one file here to avoid the issue of linking between documents. It might amuse us to picture the harried developers reaching the same conclusion to save time and give themselves some chance of meeting their beloved boss's deadline. Later on, they will no doubt want to refine the process and generate smaller XML documents that can be processed more quickly.

</customer_record>
  <product_list>
    <product id="1" name="MIXED1000" price="1.99">
   Mixed Bag of 1000 Rubber Bands</product>\
    <product id="2" name="MIXED5000" price="4.09">
   Mixed Bag of 5000 Rubber Bands</product>
    <product id="3" name="RED1000" price="2.19">
   Bag of 1000 Red Rubber Bands</product>
    <product id="4" name="RED10000" price="17.49">
   Bag of 10000 Red Rubber Bands</product>
    <product id="5" name="BLUE1000" price="0.99">
   Bag of 1000 Blue Rubber Bands</product>
    <product id="6" name="BLUE10000" price="8.99">
   Bag of 10000 Blue Rubber Bands</product>
  </product_list>
 </myrubberbands>

This example is formatted to fit the space above, and for readability, adds quite a bit of whitespace between <product></product> tags that would probably not occur in a real document.

Generating MyRubberbandsML

Now we have examined the existing database, outlined a suitable voice interface for it, and defined our source markup language and the method for generating it. Now, we are ready to create a stylesheet to convert it to a VoiceXML form implementing the design we decided on in the previous section Designing A Voice Interface. This stylesheet, myrubberbands2vxml.xsl, is quite lengthy, and can be found in its entirety in the code download. Here, I shall pick out just the important points in the code for discussion; including the dynamic generation of grammars, some VoiceXML features worthy of particular attention, and fundamental XSL concepts used.

Creating a Markup Language - Page 3
Early Adopter VoiceXML
VoiceXML Stylesheet - Page 5


Up to => Home / Authoring / Languages / XML / Adopter




Jupiter Online Media: internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and Jupiter Online Media

Jupitermedia Corporate Info


Legal Notices, Licensing, & Permissions, Privacy Policy.

Web Hosting | Newsletters | Tech Jobs | Shopping | E-mail Offers