Web-based applications (Web services and service-oriented architectures) can be run via a Web-based browser. There are several approaches to writing such Web-based applications. A lightweight approach is suitable for hand-held devices. In this approach, a Java servlet or a JSP page (Java 2 Platform, JSP), or an ASP application (Microsoft .NET, ASP) generates HTML (Hypertext Markup Language), XHTML, or XML documents (W3C Semantic Web Activity, XHTML, XML) to be displayed by the browser. Most browsers use an anchored URLs extension (e.g., .doc, .jpg, .xml, etc.) to choose an appropriate plug-in to display the URL when it is clicked. Besides displaying text and multimedia, Web servers and/or browsers can also execute Java applets or scripting languages to read and/or change persistent data. Previously, about 98% of these data were stored in relational or object-relational databases. However, recently more of these data are being stored in XML-based documents. Often these documents have an associated “schema” declaring the nesting of tags and the types of primitive values, or an “ontology” (Everett et al., 2002, Hunter, 2003) declaring classes, attributes, and relations that are used in the document.