--- source_files: - Common/DTS.CommonCore/Enums/SettingsExport/TopLevelFields.cs generated_at: "2026-04-16T02:43:04.993021+00:00" model: "Qwen/Qwen3-Coder-Next-FP8" schema_version: 1 sha256: "d94295ae09d6b074" --- # SettingsExport ### **1. Purpose** This module defines a strongly-typed enumeration (`TopLevelFields`) representing the allowed top-level XML element names used in settings export/serialization contexts within the DTS system. It serves as a canonical source of truth for the root tags that may appear in XML configuration files, ensuring consistency across serialization, deserialization, and validation logic throughout the codebase. --- ### **2. Public Interface** The module exposes only one public type: - **`TopLevelFields`** (`enum`) Represents the set of valid top-level XML element names. Members: - `GlobalSettings` - `TestSetupDefaultSettings` - `SensorSettings` - `TestHistorySettings` Each member corresponds to a specific configuration section in exported XML. No methods, properties, or constructors are defined on the enum. --- ### **3. Invariants** - The set of enum values is **fixed** and exhaustive for top-level XML tags used in settings export. - No additional values may be added without updating all consumers that rely on this enum for validation or routing logic. - The underlying type is the default `int` (not explicitly specified, but standard for C# enums without a base type). - Enum values are **case-sensitive** and must match the exact string names used in XML (e.g., `` not ``), though case handling in XML parsing is typically managed elsewhere. --- ### **4. Dependencies** - **Depends on**: None (self-contained enum in `DTS.Common.Enums.SettingsExport` namespace). - **Used by**: Implicitly, any module responsible for XML settings export/import (e.g., serializers, configuration loaders, validators). While not visible in this source file, typical consumers would include classes handling XML serialization (e.g., `XmlSerializer`-based exporters) or schema validation logic that routes based on the root element. --- ### **5. Gotchas** - **No documentation on XML schema mapping**: The enum names are used as-is in XML, but the source provides no indication of whether XML element names are case-sensitive, whether aliases exist, or how namespace prefixes are handled. - **No extensibility mechanism**: Adding a new top-level field requires recompilation and careful coordination across all consumers, as there is no fallback or dynamic registration pattern evident here. - **No versioning guidance**: The enum does not indicate whether older XML formats with different root tags are supported or deprecated. - **None identified from source alone** — further context from serialization/deserialization logic would be needed to confirm behavior (e.g., how unknown root tags are handled).