You can classify tools and libraries that handle XML under several views
that are more or less important depending on the circumstances of your
job. Here are some views:
View \ Tool |
SAX |
DOM |
XSLT |
XPA token parsing |
XPA tree parsing (used to be XTAL) |
concept/technique |
call back |
tree traversal |
declarative (functional) tree transformation
|
pull parsing using grammars |
tree transformation using tree grammars |
data structure |
event |
tree |
DOM |
ANTLR token |
ANTLR AST |
memory consumption |
very low |
moderate to high (depending on implementation) |
moderate to high (depending on implementation) |
very low |
high |
suitable for large (100M+) files |
yes |
no |
no |
yes |
no |
programming style |
OO, call back |
OO, procedural |
declarative, functional |
rules: declarative, semantic actions
: OO |
rules: declarative, semantic actions
: OO |
environment |
embedded in Java |
embedded in Java, C++, Flash, etc. |
stand alone |
compiled to Java, integrating Java fragments |
compiled to Java, integrating Java fragments |
transformation vs. handling
1
|
handling |
mainly handling |
mainly transformation |
mainly handling |
mainly transformation |
required knowledge |
medium |
low to medium |
low |
high |
high |
complexity of programming |
high |
medium |
low |
high |
high |
expressiveness |
low |
medium |
medium to high |
high |
very high |
1by handling as opposed to transformation I mean the
process of extracting and using data from XML as done in configuration files
etc. |
XPA: Copyright (c) 2003, Oliver Zeigermann
January 2003