xml-fortran

https://xml-fortran.sourceforge.net/
- latest update in 2012 
- documentation: https://xml-fortran.sourceforge.net/documentation.html 
- usage examples: https://gitlab.eufus.psnc.pl/-/snippets/15

Features:

    - reading the files in much the same way as an ordinary text file - a stream-oriented method
    - directly reading the contents into a data structure that reflects the structure of the XML file
    - constructing a tree of data from the XML file with essentially the same structure
    - processing the contents using "events", in much the same way as the original Expat library
    - supports a wide set of Fortran compilers, e.g. f90, lf95, ifort, gfortran
    - SAX, DOM processing

Limitations:

    - the lines in the XML-file should not exceed 1000 characters 
    - there is no support for DTDs or namespaces, XSLT, XPath and other more advanced features around XML
    - there is currently no support for the object-oriented approach 
    - no support (yet) for a single quote as delimiter
    - no support (yet) for conversion of escape sequences (&gt. for instance)
    - the parser may not handle malformed XML-files properly
    - the parser does not (yet) handle different line-endings properly 



Foxy

https://github.com/Fortran-FOSS-Programmers/FoXy
- latest update in 2022 
- no documentation 

Features:

    - pure Fortran library
    - Fortran 2008+ compliant
    - OOP designed
    - free, open source
    - parallel architectures supported
    - compiler support: gfortran, ifort



xmlf90

https://github.com/rscircus/xmlf90
- latest update in 2014
- very detailed documentation: https://github.com/rscircus/xmlf90/blob/master/Tutorial/UserGuide.pdf

Features:

    - pure Fortran library
    - can detect badly formed documents, giving by default an error report including the line and column where it happened; it also will accept an `error_handler` routine for finer control by the user
    - attribute values can be specified using both single and double quotes

Limitations:

    - it is not a validating parser
    - accepts only single-byte encodings for characters
    - limits on the length of element and attribute identifiers, and the length of attribute values and unbroken (i.e., without whitespace) PCDATA sections, MAX_BUFF_SIZE=300 
    - overly long comments and SGML declarations can be truncated
    - the number of attributes is limited to 20 



Fox

https://github.com/andreww/fox
- latest update in 2021 
- documentation: https://github.com/andreww/fox/tree/master/DoX

Features:

    - derived from xmlf90
    - possibility to install only selected modules of the library
    - compiler support: f95



tixi

https://github.com/DLR-SC/tixi
- latest update in 2022 
- usage examples: https://github.com/DLR-SC/tixi/wiki/TIXIUserGuide https://github.com/DLR-SC/tixi/wiki/Fortran%20Examples

Features:

    - written in C/C++
    - interfaces and wrappers for C++, Fortran, Python, JAVA and Matlab
    - creating documents 
    - creating and deleting nodes
    - adding add and remove element attributes
    - reading and writing simple and specialized nodes, aggregating these simple types,
    - processing of geometric data,
    - reading and writing of multidimensional arrays or arrays of vectors, i.e. coordinates of points

  • No labels