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 (>. 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