Comments (2)
You are correct, ERDDAP uses its own XML parser. That is partly why it doesn't support the tags you added. ERDDAP's XML parser is basically unchanged from when it was originally written, which was before many XML features (like the ones you used) were first defined.
When I wrote the XML parser (~2006), there were only two standard Java XML parsers (SAX and DOM?), both of which had massive limitations (either massive memory use or painful coding to use it). The approach of the ERDDAP parser solved these problems: it is fast, one pass, low memory usage, and easy to code with.
As with many things in ERDDAP, if one were starting from scratch now, one might do some things differently. There are libraries now that didn't exist then. Programmers do things differently now. Different things are in style. You could say:
"Modernize ERDDAP!", but it would be a ton of work and it always seemed more important to add new features to ERDDAP than to expend great effort to follow the latest trends and rewrite lots of code. As the netcdf-java project for the last 6+ years has shown, you can have multiple programmers work to modernize a library and sometimes all you get is lots of new bugs and no new features, and changes that broke every piece of software that used that library.
I'll leave it to Chris to decide if it is a good idea and the best use of his time to switch XML parsers. I think it isn't, partly because it would be a lot of work and partly because I'm not convinced this feature you want to add would be widely used. More important, it doesn't let administrators accomplish anything that they can't already do by using other tools to generate the datasets.xml chunks for datasets in a way that includes the repetitive (for your datasets) information. Eugene Burger/Kevin O'Brien/PMEL have long had an external tool they created for their group's use to generate datasets.xml chunks given the answers to a small questionnaire (which platform, which sensors, what ID, what date deployed, etc). I think other groups have done similar things. I think make-a-new-external-tool is a better approach as it is a relatively easy project and can be customized to your group's needs. Programmer time for ERDDAP is severely limited these days and I think other features (e.g., MQTT and OGC ERD API support) seem like better uses of Chris' time as they are aligned with ERDDAP's goals and connect ERDDAP to other realms in ways that were not possible before.
from erddap.
Correct me if I'm wrong, but it looks like ERDDAP is rolling its own XML parser? Any reason for this versus using established Java libraries dedicated to this purpose?
from erddap.
Related Issues (20)
- HTML Entity Name munging in XML listings HOT 1
- Search Multiple ERDDAPs seems to be broken HOT 1
- Overly restrictive S3 limitations HOT 3
- Outer axis overlap between files HOT 1
- Unicode attributes and localized metadata HOT 46
- Record requests in a structured format HOT 4
- Inaccurate varName in logs when printing for null value attribute HOT 11
- 404 datasets when accessing via time=max(time) HOT 1
- ERDDAP_emailSmtpPort ignored HOT 1
- Log all significant events in a standard format HOT 3
- Translation tooltip images have extra encoding in paths HOT 3
- Fixed Value sourceNames are not excluded from duplicate column name detection HOT 3
- Trouble with accent or other special characters - Export encoding format HOT 20
- Datatypes changed when using .nc download HOT 5
- Please show loadDatasets progress diagnostics HOT 1
- How to request a protected dataset from a script ? HOT 19
- S3 Support HOT 1
- Relative URLs HOT 11
- ERDDAP not sending emails when emailUserName is not an email address
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from erddap.