120 likes | 235 Views
This document outlines the methods for managing Microsoft Installer (MSI) information using XML, XSLT, and CVS, as demonstrated in the Kakapo Meeting on August 28, 2003. It includes an example XML database file that stores comprehensive details about various managed MSIs, including product names, vendors, support URLs, and more. It also discusses the use of XSLT to convert XML data into HTML formats for efficient presentation, along with pros and cons of using XML, XSLT, and CVS for version control and deployment. Example output files and their URLs are provided.
E N D
MSI Information using XML, XSLT, & CVS Kakapo Meeting August 28, 2003
Example XML database file: • http://web.mit.edu/pismere/msilist/msilist.xml • Stores all the info about managed MSIs. • Contents: • <people>: names of people, teams, groups, with URLs and contact info • <places>: info about clusters • <msis>: info about our managed MSIs
<msi> <product-name> <vendor> <title> <version> <category> <file-url> <support-url> <msi-info> <config-info> <bug-info> <license-info> <packaged-by> <provided-by> <last-updated> <year> <month> <day> <msis> contents:
<msi> <product-name> <vendor>Adobe</vendor> <title>Acrobat Reader</title> <version>6.0</version> </product-name> <category>General Productivity</category> <file-url> file://win.mit.edu/dfs/msi/acst/adobe_reader_60/adobe_reader_mit_60.msi</file-url> <support-url> http://www.adobe.com/support/products/acrreader.html</support-url> <msi-info>Extracted MSI after setup process from vendor installer using InstallShield AdminStudio. Provided MSI and MST did not work in our environment.</msi-info> <license-info>free version</license-info> <packaged-by>Chad Dupuis</packaged-by> <provided-by>Academic Computing</provided-by> <last-updated> <year>2003</year>- <month>07</month>- <day>10</day> </last-updated> </msi> An <msi> entry
Example XSL template file • XSL template files • convert the database into desired output style • are themselves in XML format • Our example: • http://web.mit.edu/pismere/msilist/acst/msisupport.xsl • Desired output style: • tree of HTML files • patterned after Academic Computing msi pagehttp://web.mit.edu/acs/windows/msisupport.html • Used HTML Tidy to turn the HTML into viable XML
Msisupport.xsl contents • <xsl:stylesheet> • <xsl:output method=“html”> (output file is html) • <xsl:template match=“/”> (start at top of xml file) • <html>,<head>,<body>… (create main page) • <xsl:for-each select=“…”> (select <msi>s) • <xsl:sort select=“…”> (group, sort) • <xsl:value-of select=“…”> (display info) • <xsl:call-template name=“create-info-page”>(make output documents for each msi) • <xsl:template name=“expand-people-name”> • <xsl:template name=“create-info-page”> • <html>,<head>,<body>… (create new html tree) • <xsl:value-of select=“pismere:outputDocument…”> (save to separate file)
Invoking XSLT processor • http://web.mit.edu/pismere/msilist/acst/generate-html.cmd • Runs “msxsl ..\msilist.xml msisupport.xsl -o msisupport.html” • In English: • Use the MSXSL processor • Use “msilist.xml” as the input file • Use “msisupport.xsl” as the template file • Create “msisupport.html” as the main output file
Results • Creates • http://web.mit.edu/pismere/msilist/acst/msisupport.html • and the http://web.mit.edu/pismere/msilist/acst/msiinfo/ directory, containing: • adobe_acrobat_reader_50_idafg0o_MSI_README.html • adobe_acrobat_reader_60_idand0o_MSI_README.html • esri_arcinfo_workstation_83_idame0o_MSI_README.html • microsoft_visio_2002_idaah0o_MSI_README.html
Using CVS • Created/edited files on some computer • Checked into CVS • “msilist” module in “pismere-test” repository on cvs.mit.edu server • Deployed via pismere locker in AFS • Directory hierarchy directly checked out from same module • http://web.mit.edu/pismere/msilist/CVS • Redeploying after changes: • A simple “cvs update” in pismere locker
Pros and Cons: XML • PROs • Free • Extremely general, so any structure for database can be achieved • Understood by a large and increasing number of browsers/applications • Can use simple text editor to change, or more xml-aware applications. • CONs • Generality means we make the rules… and we have to enforce them • Isn’t quite widespread enough to be easily accessible to laypeople
Pros and Cons: XSLT • PROs • Free • General enough to get just about any look-and-feel • Is also an XML document, so same tools can be used to edit • CONs • Difficult to learn, tedious to write • But: easy enough to parrot and include; hopefully the tough parts only need to be done once • Still at version 1.0, so not perfected yet • Multiple output documents not natively supported,so it forces a choice of a particular processor toimplement (my choice: MSXSL)
Pros and Cons: CVS • PROs • Free • Deployment via AFS • Revision control • Some file conflict resolution • Recovering older versions • CONs • Usually a command-line client • Learning curve • Some gotchas • filename capitalization, • binary/text tags, etc…