Expand description
DDS-XML 1.0 §7.3.3 Building Block “Types” — Datenmodell.
Beschreibungs-Datenmodell der XML-Sicht auf XTypes 1.3 Type-Definitionen.
zerodds-xml haelt bewusst eine eigenstaendige Beschreibungsschicht und
macht keine Cross-Crate-Edge zu zerodds-types::DynamicType. Hoeher
liegende Adapter koennen die hier gehaltenen Strukturen spaeter in
ihre DCPS-Datenmodelle uebersetzen.
Spec-Quelle: OMG DDS-XML 1.0 §7.3.3 (Types Building Block).
§XML → Rust-Type Mapping
<types> | Vec<TypeLibrary> (multiple <types> erlaubt)
<module name=…> | TypeLibrary / TypeDef::Module(ModuleEntry)
<struct name=… extensibility=… |
baseType=…> | TypeDef::Struct(StructType)
<member name=… type=… key=… |
optional=… id=… |
arrayDimensions=… |
sequenceMaxLength=… |
stringMaxLength=…> | StructMember
<enum name=…> | TypeDef::Enum(EnumType)
<enumerator name=… value=…> | EnumLiteral
<union name=… discriminator=…> | TypeDef::Union(UnionType)
<case><caseDiscriminator/> |
<member …/></case> | UnionCase
<typedef name=… type=… …> | TypeDef::Typedef(TypedefType)
<bitmask name=… bitBound=…> | TypeDef::Bitmask(BitmaskType)
<bit_value name=… position=…> | BitValue
<bitset name=…> | TypeDef::Bitset(BitsetType)
<bitfield name=… type=… mask=…> | BitFieldStructs§
- BitField
- Einzelnes
<bitfield>-Element eines Bitsets. - BitValue
- Einzelner
<bit_value>-Eintrag. - Bitmask
Type <bitmask>-Definition (Spec §7.3.3.4.8).- Bitset
Type <bitset>-Definition (Spec §7.3.3.4.9).- Const
Entry <const name="X" type="long" value="42"/>.- Enum
Literal - Einzelner
<enumerator>-Eintrag. - Enum
Type <enum>-Definition (Spec §7.3.3.4.5).- Forward
Decl Entry <forward_dcl name="T" kind="STRUCT|UNION"/>.- Include
Entry <include file="..."/>— XML-Composition.- Module
Entry - Geschachteltes Modul (
<module name="…">— Spec §7.3.3.4.1). - Struct
Member - Einzelner Struct-Member (
<member …/>— Spec §7.3.3.4.4.1). - Struct
Type <struct>-Definition (Spec §7.3.3.4.4).- Type
Library - Container fuer 1+ Type-Definitionen aus einem
<types>-Block. - Typedef
Type <typedef>-Definition (Spec §7.3.3.4.7).- Union
Case <case>-Eintrag (Spec §7.3.3.4.6.1).- Union
Type <union>-Definition (Spec §7.3.3.4.6).
Enums§
- Extensibility
- Extensibility-Annotation (
@final,@appendable,@mutable) — Spec §7.2.3.5 + §7.3.3.4.4.1. - Primitive
Type - Primitive-Type-Symbol gemaess Spec §7.2.1 + §7.3.3.4.4.2.
- TypeDef
- Ein einzelner Type-Eintrag (Spec §7.3.3.4 — Struct/Enum/Union/Typedef/ Bitmask/Bitset oder geschachteltes Modul).
- TypeRef
- Type-Verweis aus einem
type=…-Attribut (Member, Typedef, Bitfield- Mask): entweder Primitive-Symbol oder Named-Reference auf einen nutzer-definierten Type (MyModule::State). - Union
Discriminator - Discriminator-Wert eines Cases.