Philosophy

Data files in general, and XML files in particular, can be generally be used in three different ways: All three approaches are supported with the XML-Fortran library. They will be elaborated on below.

Reading XML files from top to bottom

The XML parser module is based on the concept of SAX, but it works by letting the program read the XML file piece by piece, instead of via call-back routines. In fact it is very much like the way you would use READ statements to read the file:
   call xml_open( info, .... )

   do
      !
      ! Get the next tag and the associated data
      !
      call xml_get( info, .... )
      !
      ! Check if we have reached the end of the file or not
      !
      if ( .not. xml_ok(info) ) exit

      !
      ! Handle the attributes and data for this tag
      !
      ....
   enddo

   !
   ! End of file
   !
   call xml_close( info )

Storing XML files in a hierarchical data structure

Via the tree module you can load the contents of the XML file into a tree structure and use that to query the data later on.

To be expanded ...

Generating reader routines

A completely different approach is to use a description of the variables you want to read in via an XML file, to actually generate the code to do so. This is the purpose of the xmlreader program, which is currently (september 2005) under development. The idea is that in many cases you need to load all the data contained in the XML file and then use them in the program, in other words, the data you expect are a fixed collection. Hence, the code to read the data from the file can be generated automatically, provided you describe it accurately.