XML Photo Album v1.7.0

Release Date: April 20, 2010

XML Photo Album is a free, open-source two-component system for creating and displaying albums of digital photos. The first component is the Album Generator application which runs under the Microsoft .NET Framework 2.0, available through Windows Update. The .NET framework will run on Windows 98 and later. On non-Windows systems, the Mono project provides a .NET framework. See the Linux readme distributed with the project tarball for notes on Mono compatibility. The Album Generator creates an XML database of all the album data. Albums are viewed in a web browser using the second component of the software, a set of files which automatically format the album display.

When you install the GUI application for generating the 'album.xml' document, its install directory (by default C:\Program Files\XML Album Generator\) contains the license file as well as the 'files' folder containing all of the auxiliary files (including index.xml). AlbumGenerator.exe is the main program. If you opt to install the Help Files in the installer, this readme file, an HTML help file, and a Windows help file (XMLalbum.chm) will also be installed in the application directory. You can view the HTML Help File if the .chm file does not work (if you're in Linux, for example), or if you simply prefer the HTML format. The .chm file contains the same information as 'help.html', but in the standard Windows help file format, accessible by pressing the F1 key from within the generator application.

For distribution and archiving, the album's directory can be made public on a web page, or burned to a CD or DVD. No special software besides a web browser is necessary to view the albums created with this system.

This display system has been tested on Internet Explorer 6+, Mozilla Firefox 2+, Opera 9+, and Google Chrome 1+ for Windows. It will most likely also work properly on these same browsers in Linux and Mac OS. (For Internet Explorer, ActiveX must be enabled). Some browsers (and older versions of the browsers mentioned above) may not support the required Javascript, and some do not support XSLT. The index page does not use Javascript, so if that doesn't display, your browser probably doesn't support XSLT.

Web Display Themes

Our web-browser-based display system uses a mixture of HTML, XML, XSLT, CSS, and Javascript. The photo metadata is contained in a single XML document, 'album.xml', which can be written by hand or generated by the Album Generator. Any user can create an alternate web display theme by altering our display files or writing new ones. To install a theme that the Album Generator will recognize, create a folder in the 'themes' directory and place the display files inside, as well as a 'theme.info' file which specifies how the files will be copied into the album directory. The 'theme.info' file should begin with a line specifying the version number, followed by a list of files to be copied into the album root directory. To copy files into a subfolder of the album directory, the subfolder name in square brackets should precede the list. The first file listed in the 'theme.info' file will be invoked by the Launch in browser button in the Album Generator. See the default theme.info file as an example. For the default theme, the album root directory should contain 'album.xml', the album index page ('index.xml'), and the 'files' folder which contains the rest of the display files.

For those wishing to modify the default theme, the file architecture is shown to the right. Much of the display format (colors, text sizes, etc.) can be easily changed by modifying the CSS file. The XSL files reference it, as do the HTML files. The rest of the display format may be modified within the XSL files, though this requires a little more expertise. Notably, the number of columns on the index page may be modified in the 'album_index.xsl' document by changing the 'numColumns' variable. The size at which the images are displayed is decided within the XSL, and should scale appropriately to the size of the browser window. The scaling occurs in discrete steps which are factors of common image dimensions, to avoid aliasing. The HTML files themselves do not contain any display formatting; they contain only the page initialization and calls to the Javascript necessary to tell the XSL which image to display out of the XML list. Modifying the HTML files or the Javascript file is not advisable.

File Architecture Diagram

For further information, and to check for updates, see http://xmlalbum.sourceforge.net.

The browser display portion of this system was created by Belle Philibosian. The Album Generator was created by Adam Azarchs. All components are copyright 2005-2010 Belle Philibosian and Adam Azarchs. Some rights reserved under the MIT license, see the 'license.txt' file distributed with the Album Generator application.