XSL Challenge

Andy Dent dent at oofile.com.au
Sat Jun 5 23:59:02 BST 1999

At 8:25 -0400 5/6/99, Roger Costello wrote:
>It looks simple.  It is deceptively challenging.
>An XML document stores database data as follows:
><?xml version="1.0"?>
>        <Columns>
>                <Column name="col1"/>
>                <Column name="col2"/>
>        </Columns>
>        <Rows>
>            <Row>


>So the HTML table
>should look like this:
>           col1    col2
>           A       C
>           E       S


It's not quite applicable, but this is very close to the kind of 
layout problems we solve in our report writer. I found XSL syntax too 
complex for our purposes (machines and humans writing, machine 
parsing back into report definitions).

The following annotated sample gives an idea of what our output looks 
like, more examples at 
<ftp://ftp.highway1.com.au/pub/adsoftware/xml/reportOutput/> and I'm 
really interested in having them criticised.

<?xml version='1.0' standalone='yes'?>
<report ID='1'>

<!-- embedded schema
      The following is based largely on the XML Schema working group draft
      http://www.w3.org/TR/xmlschema-1/ with our own datatypes
      (eg: ui2) defined below being compatible with Microsoft's data
      types in XML-Data, except format of date, time etc. defined in

      Our dbFields are <elementType>s nested within the <elementType> of
      the table, rather than the MS approach of declaring an <elementType>
      then using an IDRef in the <element> type attribute. This was partly
      to speedup development of our first release of schema parsing and
      partly because our database, like most others, allows field names
      to be reused within the local scope of a table and

       We use length attributes in the <datatype> to indicate string
       and base64 fixed length fields following the facets discussed in

       <elementType name='dbStudents'>
          <elementType name='Last_Name'>
             <datatypeRef name='string' length='25'/>
          <elementType name='First_Name'>
             <datatypeRef name='string' length='15'/>
<!-- our styles for text are specified using CSS strings and connected via
ID with the ID tag only being written by the report-writer for elements
which have a unique style (they cascade) in order to cut down on visual
clutter inside the XML

        #1-2-1{font-family: Helvetica; line-height: 1.000 ; font-size: 
10 ; color: rgb(0, 0, 0); text-align:  left}

<!-- page header and footer descriptions skipped
the following table description generates a table as you require from
the given schema element dbStudents, adding a column for each element.

We already have <column> elements working for specifing overriding headers
and planned extensions are:
1) allow <column> to specify a source element (eg: Last_Name) within
    the main table source

2) allow the source attribute to indicate a filename, eg: a dBase file
    so the XML spec is layout only, pulling the data in directly from an
    external database.
       <table ID='1-2-1' source='dbStudents'>

<!-- data for dbStudents -->
       <field2>Fixed Text</field2>

       <field2>Fixed Text</field2>


Andy Dent BSc MACS AACM, Software Designer, A.D. Software, Western Australia
OOFILE - Database, Reports, Graphs, GUI for c++ on Mac, Unix & Windows
PP2MFC - PowerPlant->MFC portability

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)

More information about the Xml-dev mailing list