Understanding the NCML Handler
From OPeNDAP Documentation
The NCML handler has 53 classes. The classes fall into four broad categories:
- Utilities
- Used to perform various routine tasks (namespace agg_util)
- BES Framework
- Used to instantiate the module and provide interface hooks for the BES DAP module (namespace ncml_module)
- NCML Parser
- A SAX2 parser that uses the NCML text to build one or more DAP objects (DDS, DataDDS, etc.) (namespace ncml_module)
- AIS code
- Classes that add, modify or remove variables and attributes. (namespace ncml_module)
- Aggregation code
- Classes that build Join New and Join Existing aggregations (namespace ncml_module)
The following sections list the classes/files that fall into these five categories along with some notes about those classes where appropriate.
Utilities
BES Framework
- NCMLModule: public BESAbstractModule
- NCMLRequestHandler: public BESRequestHandler
- NCMLContainer: public BESContainer
- NCMLContainerStorage: public BESContainerStorageVolatile
NCML Parser
The classes the make up the core of the SAX2 parser are:
- SaxParser
- SimpleLocationParser
- SimpleTimeParser
- XMLHelper
- SaxParserWrapper
Those classes are augmented by the Element classes that are used to build the in-memory objects the NCML needs to carry out the AIS or Aggregation tasks specified by a given NCML file. They are:
- NCMLElement
- AggregationElement
- AttributeElement
- DimensionElement
- ExplicitElement
- NetcdfElement
- ReadMetadataElement
- RemoveElement
- ValuesElement
- ScanElement
- VariableElement
- VariableAggElement