# AnIML XML > **Status:** Experimental · **Vendor:** IUPAC / ASTM · **Extensions:** `.animl` AnIML (Analytical Information Markup Language) is a broad XML container for analytical data, not only spectroscopy. This reader covers AnIML documents that expose a spectral `SeriesSet`: an axis series identified as wavelength or wavenumber, plus one or more same-length signal series. Coverage is scoped to committed synthetic fixtures while real spectral AnIML files are sourced. ## Instruments & software Vendor-neutral analytical instruments and software that emit AnIML. No real redistributable spectral AnIML file is available yet, so committed spectral fixtures are synthetic; a committed real-world AnIML file is non-spectral and is deliberately refused. ## File structure XML, dispatched on an `.animl` extension by sniffing for `` and `` numeric values plus uniform `AutoIncrementedValueSet` grids defined by `StartValue` and `Increment`. ## Variants & support status | Variant | Status | Notes | |---|---|---| | Spectral `SeriesSet` with explicit values | Experimental | Axis + same-length signal series. | | `AutoIncrementedValueSet` axis grid | Experimental | Uniform `StartValue` + `Increment`. | | `SampleSet` numeric parameters | Experimental | Emitted as record targets. | | Real vendor spectral AnIML | Planned | Synthetic fixtures only; real files + XSD conformance wanted. | ## Limitations & known gaps - AnIML is a broad analytical container; documents without a supported spectral axis series are refused (the committed non-spectral NMR/DLS example is a locked refusal). - Remaining gaps: real spectral AnIML fixtures, non-zero segmented value-set indices, schema/XSD validation and broader vendor-export conformance. ## Reference readers `animl-python` and generic XML validators read the same documents; reference comparison awaits real spectral fixtures. ## Samples & validation Fixtures under `samples/animl/`: `synthetic_nirs.animl` and `synthetic_nirs_autoincrement.animl` (each 1 record, `nm` axis, `absorbance`, `protein` target; the second uses an `AutoIncrementedValueSet` axis). `Example3.animl` is a real but non-spectral AnIML file kept as a locked refusal. The probe reports `animl` at `Confidence::Definite`.