Phase 3, Task 9: SensorML Main Parser
Status: COMPLETED — commit 31944c2
Deliverables
File
Lines
Description
parser.ts
~500
Main entry point: parseSensorML30(), type discrimination, capability/characteristic parsing, shared property-group helpers
parser.spec.ts
~300
46 tests: type discrimination (7), recursive parsing (2), capability/characteristic (5), shared helpers (3), error handling (3)
errors.ts
+5
Added optional path property to SensorMLParseError
Test Results
5 suites, 221 tests pass (all SensorML tests)
Zero regressions in existing sub-parser tests
Implementation Notes
parseSensorML30(json) validates input, reads type discriminator, dispatches to 4 sub-parsers
Exported shared helpers (parseDescribedObjectProperties, parseAbstractProcessProperties, parseAbstractPhysicalProcessProperties) available for future sub-parser refactor
parseCapabilityList / parseCharacteristicList fully implemented with AnyProperty name validation
SWE Common component parsing deferred to Issues Phase 3, Task 11: SWE Common Simple Components Parser #24 -Phase 3, Task 15: SWE Common Index #28 (pass-through pattern)
Re-exports SensorMLParseError and parsePosition for public API surface"
Phase 3, Task 9: SensorML Main Parser
Deliverables
parser.tsparseSensorML30(), type discrimination, capability/characteristic parsing, shared property-group helpersparser.spec.tserrors.tspathproperty toSensorMLParseErrorTest Results
Implementation Notes
parseSensorML30(json)validates input, readstypediscriminator, dispatches to 4 sub-parsersparseDescribedObjectProperties,parseAbstractProcessProperties,parseAbstractPhysicalProcessProperties) available for future sub-parser refactorparseCapabilityList/parseCharacteristicListfully implemented withAnyPropertyname validationSensorMLParseErrorandparsePositionfor public API surface"