client_types.xml

The client_types.xml file provides client type detection support for servlets extending PageListServlet. Using the configuration data in the client_types.xml file, servlets can determine the language type that calling clients require for the response.

The client type detection support allows servlets to call appropriate JavaServer Pages (JSP) files with the callPage() method. Servlets select JSP files based on the markup-language type of the request.

Servlets must use the following version of the callPage() method to determine the markup language type required by the client:

  callPage(String mlName,
           String pageName,
           HttpServletRequest request,
           HttpServletResponse response)

where the arguments are:

To see how the callPage() method is invoked by a servlet, see Example: Extending PageListServlet.

In the example, the client type detection method that is provided by the PageListServlet, getMLTypeFromRequest(HttpServletRequestrequest), inspects the HttpServletRequest object request headers and searches for a match in the client_types.xml file.

The client type detection method performs these functions:

The client_types.xml file is located in the /QIBM/UserData/WebAS5/product/instance/properties directory, where product is either Base or ND, and instance is the name of your instance.

Sample file entry

  <?xml version="1.0"?>

  <!DOCTYPE clients [
  <!ELEMENT client-type (description,markup-language,request-header+)>
  <!ELEMENT description (#PCDATA)>
  <!ELEMENT markup-language (#PCDATA)>
  <!ELEMENT request-header (name,value)>
  <!ELEMENT clients (client-type+)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT value (#PCDATA)>]>

  <clients>
    <client-type>
      <description>IBM Speech Client</description>
      <markup-language>VXML</markup-language>
      <request-header>
        <name>user-agent</name>
        <value>IBM VoiceXML pre-release version 000303</value>
      </request-header>
      <request-header>
        <name>accept</name>
        <value>text/vxml</value>
      </request-header>
    </client-type>
    <client-type>
      <description>WML Browser</description>
      <markup-language>WML</markup-language>
      <request-header>
        <name>accept</name>
        <value>text/x-wap.wml</value>
      </request-header>
    <request-header>
        <name>accept</name>
        <value>text/vnd.wap.wml</value>
      </request-header>
    </client-type>
  </clients>