--- source_files: - Common/DTS.Common/XMLUtils/TestSetupExportXML/TestSetups/TestSetup/TestSetupXMLClass.cs generated_at: "2026-04-17T16:09:45.090949+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "6d5d97d1ece504b8" --- # TestSetup ### Purpose This module defines `TestSetupXMLClass`, the root container class for XML serialization of test setup configurations. It serves as the top-level data structure for exporting/importing test setup data, aggregating references to DAS (Data Acquisition System) hardware lists, test groups, fields, hardware includes, level triggers, and metadata. ### Public Interface - **`TestSetupXMLClass`** - Root XML container class for test setup export. - `string Id { get; set; }` - Identifier for the test setup. - `List DASList { get; set; }` - Collection of DAS hardware list configurations. Serialized as XML element "DASList". - `List Groups { get; set; }` - Collection of test group configurations. Serialized as XML element "Groups". - `FieldsXMLClass Fields { get; set; }` - Field definitions for the test setup. Serialized as XML element "Fields". - `string HardwareIncludes { get; set; }` - Hardware include references (no XML element attribute specified, uses property name). - `LevelTriggersXMLClass LevelTriggers { get; set; }` - Level trigger configurations. Serialized as XML element "LevelTriggers". - `MetaDatasXMLClass MetaDatas { get; set; }` - Metadata associated with the test setup. Serialized as XML element "MetaDatas". ### Invariants - All properties are nullable reference types; no null checks or initialization is enforced at the class level. - XML element names are explicitly controlled via `[XmlElement]` attributes for most collection properties. ### Dependencies - **Depends on**: `System.Xml.Serialization` for XML serialization attributes. - **Depends on**: `DASListXMLClass`, `GroupsXMLClass`, `FieldsXMLClass`, `LevelTriggersXMLClass`, `MetaDatasXMLClass` (referenced but not shown in this batch). - **Depended on by**: Unclear from source alone—likely used by XML import/export utilities in the parent namespace. ### Gotchas - The `DASList` property is of type `List` and serialized with `[XmlElement("DASList")]`, which means each item in the list is serialized as a `` element, not wrapped in a parent container. This differs from typical `[XmlArray]`/`[XmlArrayItem]` patterns. - `HardwareIncludes` lacks an `[XmlElement]` attribute, so its XML element name defaults to the property name, unlike other properties in this class. ---