Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

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

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


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 the XML::Simple manpage. 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 to submit bug reports.


HOMEPAGE

Please visit the Apache2::ASP homepage at http://apache2-asp.no-ip.org/ 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.

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy