John Drago > Apache2-ASP-1.44 > Apache2::ASP::Manual::ConfigXML

Download:
Apache2-ASP-1.44.tar.gz

Annotate this POD

CPAN RT

Open  1
View Bugs
Report a bug
Source   Latest Release: Apache2-ASP-1.59

NAME ^

Apache2::ASP::Manual::ConfigXML - Documentation about the XML config file

DESCRIPTION ^

One benefit of keeping all of your application's configuration data in one place is ease of maintenance. Anyone who has had to deal with an application that used hard-coded database connection strings, hostnames or file paths would agree that an application can be rendered unmaintainable by poor configuration.

FILE NAME ^

The default filename of the XML config file is apache2-asp-config.xml

CONTENTS ^

The following is an example of the contents of apache2-asp-config.xml on Linux:

  <?xml version="1.0" ?>
  <config>
    <web_application>
      <domain_re>^.*$</domain_re>
      <do_reload_on_script_change>1</do_reload_on_script_change>
      <application_name>DefaultApp</application_name>
      <application_root>@ServerRoot@</application_root>
      <handler_root>@ServerRoot@/handlers</handler_root>
      <media_manager_upload_root>@ServerRoot@/MEDIA</media_manager_upload_root>
      <www_root>@ServerRoot@/htdocs</www_root>
      <page_cache_root>@ServerRoot@/PAGE_CACHE</page_cache_root>
      <application_state>
        <manager>Apache2::ASP::ApplicationStateManager::SQLite</manager>
        <dsn>DBI:SQLite:dbname=/tmp/apache2_asp_applications</dsn>
        <password></password>
        <username></username>
      </application_state>
      <session_state>
        <manager>Apache2::ASP::SessionStateManager::SQLite</manager>
        <cookie_domain>localhost</cookie_domain>
        <cookie_name>session-id</cookie_name>
        <dsn>DBI:SQLite:dbname=/tmp/apache2_asp_sessions</dsn>
        <password></password>
        <username></username>
        <session_timeout>30</session_timeout>
      </session_state>
      <settings>
        <!-- lib is required -->
        <lib>@ServerRoot@/lib</lib>
        <!-- the rest are completely arbitrary -->
        <dsn>DBI:mysql:databasename:localhost</dsn>
        <username>my-username</username>
        <password>swordfish</password>
      </settings>
    </web_application>
  </config>

The following is an example of the apache2-asp-config.xml file on Windows:

  <?xml version="1.0" ?>
  <config>
    <web_application>
      <domain_re>.*</domain_re>
      <do_reload_on_script_change>1</do_reload_on_script_change>
      <application_name>DefaultApp</application_name>
      <application_root>@ServerRoot@</application_root>
      <handler_root>@ServerRoot@\handlers</handler_root>
      <media_manager_upload_root>@ServerRoot@\MEDIA</media_manager_upload_root>
      <www_root>@ServerRoot@/htdocs</www_root>
      <page_cache_root>@ServerRoot@\PAGE_CACHE</page_cache_root>
      <application_state>
        <manager>Apache2::ASP::ApplicationStateManager::SQLite</manager>
        <dsn>DBI:SQLite:dbname=apache2-asp/tmp/sessiontest</dsn>
        <password>j@p@n</password>
        <username>root</username>
      </application_state>
      <session_state>
        <manager>Apache2::ASP::SessionStateManager::SQLite</manager>
        <cookie_domain>127.0.0.1</cookie_domain>
        <cookie_name>session-id</cookie_name>
        <dsn>DBI:SQLite:dbname=apache2-asp/tmp/sessiontest</dsn>
        <password>j@p@n</password>
        <username>root</username>
        <session_timeout>30</session_timeout>
      </session_state>
      <settings>
        <!-- lib is required -->
        <lib>@ServerRoot@\lib</lib>
        <!-- the rest are completely arbitrary -->
        <dsn>DBI:mysql:databasename:hostname</dsn>
        <password>j@p@n</password>
        <username>root</username>
      </settings>
    </web_application>
  </config>

DTD ^

This is the DTD for the XML config file:

  <!ELEMENT application_name ( #PCDATA ) >
  
  <!ELEMENT application_root ( #PCDATA ) >
  
  <!ELEMENT application_state ( manager, dsn, password, username ) >
  
  <!ELEMENT config ( web_application ) >
  
  <!ELEMENT cookie_domain ( #PCDATA ) >
  
  <!ELEMENT cookie_name ( #PCDATA ) >
  
  <!ELEMENT do_reload_on_script_change ( #PCDATA ) >
  
  <!ELEMENT domain_re ( #PCDATA ) >
  
  <!ELEMENT dsn ( #PCDATA ) >
  
  <!ELEMENT handler_root ( #PCDATA ) >
  
  <!ELEMENT lib ( #PCDATA ) >
  
  <!ELEMENT manager ( #PCDATA ) >
  
  <!ELEMENT media_manager_upload_root ( #PCDATA ) >
  
  <!ELEMENT page_cache_root ( #PCDATA ) >
  
  <!ELEMENT password ( #PCDATA ) >
  
  <!ELEMENT session_state ( manager, cookie_domain, cookie_name, dsn, password, username, session_timeout ) >
  
  <!ELEMENT session_timeout ( #PCDATA ) >
  
  <!ELEMENT settings ( lib ) >
  
  <!ELEMENT username ( #PCDATA ) >
  
  <!ELEMENT web_application ( domain_re, do_reload_on_script_change, application_name, application_root, handler_root, media_manager_upload_root, www_root, page_cache_root, application_state, session_state, settings ) >
  
  <!ELEMENT www_root ( #PCDATA ) >

And this is the XML schema for the config file:

  <?xml version="1.0" encoding="UTF-8" ?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="application_name">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="application_root">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="application_state">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="manager" />
          <xs:element ref="dsn" />
          <xs:element ref="password" />
          <xs:element ref="username" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="config">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="web_application" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="cookie_domain">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="cookie_name">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="do_reload_on_script_change">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="domain_re">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="dsn">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="handler_root">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="lib">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="manager">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="media_manager_upload_root">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="page_cache_root">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="password">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="session_state">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="manager" />
          <xs:element ref="cookie_domain" />
          <xs:element ref="cookie_name" />
          <xs:element ref="dsn" />
          <xs:element ref="password" />
          <xs:element ref="username" />
          <xs:element ref="session_timeout" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="session_timeout">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="settings">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="lib" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="username">
      <xs:complexType mixed="true" />
    </xs:element>
  
    <xs:element name="web_application">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="domain_re" />
          <xs:element ref="do_reload_on_script_change" />
          <xs:element ref="application_name" />
          <xs:element ref="application_root" />
          <xs:element ref="handler_root" />
          <xs:element ref="media_manager_upload_root" />
          <xs:element ref="www_root" />
          <xs:element ref="page_cache_root" />
          <xs:element ref="application_state" />
          <xs:element ref="session_state" />
          <xs:element ref="settings" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="www_root">
      <xs:complexType mixed="true" />
    </xs:element>
  
  </xs:schema>

PARSING ^

As of 2007-07-03, the XML config file is parsed by XML::Simple. Anything that breaks XML::Simple will break Apache2::ASP::Config.

BUGS ^

It's possible that some bugs have found their way into this release.

Use RT http://rt.cpan.org/NoAuth/Bugs.html?Dist=Apache2-ASP to submit bug reports.

HOMEPAGE ^

Please visit the Apache2::ASP homepage at http://www.devstack.com/ to see examples of Apache2::ASP in action.

AUTHOR ^

John Drago mailto:jdrago_999@yahoo.com

COPYRIGHT AND LICENSE ^

Copyright 2007 John Drago, All rights reserved.

This software is free software. It may be used and distributed under the same terms as Perl itself.