50 lines
2.9 KiB
Markdown
50 lines
2.9 KiB
Markdown
|
|
---
|
||
|
|
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., `<GlobalSettings>` not `<globalsettings>`), 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).
|