SDC4 Data Types Reference
Overview
SDCStudio supports the full range of SDC4 data types, providing a comprehensive foundation for data modeling. This reference guide covers all supported data types, their characteristics, validation options, and usage examples.
Core Data Types
Primitive Types
XdString
- Purpose: Text data with validation rules
- Base Type:
sdc4:XdStringType - Validation Options:
- Pattern matching (regex)
- Length constraints (min/max)
- Enumeration values
- Required/optional flags
<xsd:element name="state" type="mc-state-type">
<xsd:annotation>
<xsd:documentation>US State name</xsd:documentation>
</xsd:annotation>
</xsd:element>
XdCount
- Purpose: Integer values with constraints
- Base Type:
sdc4:XdCountType - Validation Options:
- Range constraints (min/max)
- Precision requirements
- Units specification
- Reference ranges
<xsd:element name="population" type="mc-population-type">
<xsd:annotation>
<xsd:documentation>Total population count</xsd:documentation>
</xsd:annotation>
</xsd:element>
XdQuantity
- Purpose: Numeric values with units
- Base Type:
sdc4:XdQuantityType - Validation Options:
- Range constraints
- Unit validation
- Precision requirements
- Reference ranges
<xsd:element name="percentage" type="mc-percentage-type">
<xsd:annotation>
<xsd:documentation>Percentage value with units</xsd:documentation>
</xsd:annotation>
</xsd:element>
XdBoolean
- Purpose: True/false values
- Base Type:
sdc4:XdBooleanType - Validation Options:
- Default values
- Required/optional flags
<xsd:element name="active" type="mc-active-type">
<xsd:annotation>
<xsd:documentation>Active status flag</xsd:documentation>
</xsd:annotation>
</xsd:element>
XdDateTime
- Purpose: Date and time values
- Base Type:
sdc4:XdDateTimeType - Validation Options:
- Format validation
- Range constraints
- Timezone handling
<xsd:element name="created_date" type="mc-created-date-type">
<xsd:annotation>
<xsd:documentation>Creation timestamp</xsd:documentation>
</xsd:annotation>
</xsd:element>
XdFloat/XdDouble
- Purpose: Floating-point numbers
- Base Type:
sdc4:XdFloatType/sdc4:XdDoubleType - Validation Options:
- Range constraints
- Precision requirements
- Units specification
<xsd:element name="latitude" type="mc-latitude-type">
<xsd:annotation>
<xsd:documentation>Geographic latitude</xsd:documentation>
</xsd:annotation>
</xsd:element>
Complex Types
Clusters
- Purpose: Grouped related components
- Structure: Container for multiple components
- Usage: Logical grouping of clinical/domain data elements
Important: Clusters in the data section should contain clinical/domain data only, NOT identity information. Use Party components in the DM's subject field for identity.
<xsd:element name="vital_signs" type="mc-vital-signs-cluster">
<xsd:annotation>
<xsd:documentation>Vital signs measurements cluster</xsd:documentation>
</xsd:annotation>
</xsd:element>
Lists
- Purpose: Ordered collections of components
- Structure: Sequence of similar elements
- Usage: Repeated data patterns
<xsd:element name="cities" type="mc-cities-list">
<xsd:annotation>
<xsd:documentation>List of cities in state</xsd:documentation>
</xsd:annotation>
</xsd:element>
References
- Purpose: Links to other components
- Structure: Pointer to existing component
- Usage: Component reuse and relationships
<xsd:element name="state_ref" type="mc-state-reference">
<xsd:annotation>
<xsd:documentation>Reference to state component</xsd:documentation>
</xsd:annotation>
</xsd:element>
Adapters
- Purpose: Wrapper components for special handling
- Structure: Container with specific behavior
- Usage: Custom processing and validation
<xsd:element name="state_adapter" type="mc-state-adapter">
<xsd:annotation>
<xsd:documentation>State component adapter</xsd:documentation>
</xsd:annotation>
</xsd:element>
Validation Rules
Pattern Validation
Regex Patterns
- String Validation: Regular expression patterns
- Format Enforcement: Consistent data formats
- Custom Rules: Domain-specific validation
<xsd:restriction base="sdc4:XdStringType">
<xsd:pattern value="[A-Z]{2}"/>
<xsd:minLength value="2"/>
<xsd:maxLength value="2"/>
</xsd:restriction>
Range Validation
- Numeric Constraints: Min/max value limits
- Date Ranges: Temporal constraints
- Custom Ranges: Business rule enforcement
<xsd:restriction base="sdc4:XdCountType">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="999999999"/>
</xsd:restriction>
Enumeration Validation
Value Lists
- Predefined Values: Allowed value sets
- Domain Constraints: Business rule enforcement
- Validation: Automatic value checking
<xsd:restriction base="sdc4:XdStringType">
<xsd:enumeration value="Active"/>
<xsd:enumeration value="Inactive"/>
<xsd:enumeration value="Pending"/>
</xsd:restriction>
Required/Optional Flags
Element Requirements
- Required Elements: Must be present
- Optional Elements: May be omitted
- Default Values: Fallback values
<xsd:element name="required_field" type="mc-required-type" minOccurs="1"/>
<xsd:element name="optional_field" type="mc-optional-type" minOccurs="0"/>
Component Metadata
Documentation Elements
Labels
- Human Readable: User-friendly names
- Localization: Multi-language support
- Consistency: Standardized naming
<xsd:element name="label" type="sdc4:XdStringType">
<xsd:annotation>
<xsd:documentation>Human-readable label</xsd:documentation>
</xsd:annotation>
</xsd:element>
Descriptions
- Detailed Information: Comprehensive descriptions
- Usage Guidelines: Implementation guidance
- Business Context: Domain understanding
<xsd:element name="description" type="sdc4:XdStringType">
<xsd:annotation>
<xsd:documentation>Detailed component description</xsd:documentation>
</xsd:annotation>
</xsd:element>
Processing Elements
Validation Rules
- Business Logic: Domain-specific validation
- Data Quality: Integrity enforcement
- Error Handling: Validation failure responses
Transformation Rules
- Data Conversion: Format transformations
- Unit Conversion: Measurement conversions
- Normalization: Data standardization
Advanced Features
Reference Ranges
Validation Ranges
- Normal Values: Expected value ranges
- Warning Levels: Caution thresholds
- Critical Levels: Error thresholds
<xsd:element name="ReferenceRange" type="mc-reference-range-type">
<xsd:annotation>
<xsd:documentation>Reference range for validation</xsd:documentation>
</xsd:annotation>
</xsd:element>
Exceptional Values
Special Values
- Null Values: Missing data representation
- Error Values: Data error indicators
- Unknown Values: Unavailable data
<xsd:element name="ExceptionalValue" type="mc-exceptional-value-type">
<xsd:annotation>
<xsd:documentation>Exceptional value handling</xsd:documentation>
</xsd:annotation>
</xsd:element>
Units and Measurements
Unit Specification
- Standard Units: SI unit system
- Custom Units: Domain-specific units
- Unit Conversion: Automatic conversions
<xsd:element name="units" type="mc-units-type">
<xsd:annotation>
<xsd:documentation>Measurement units</xsd:documentation>
</xsd:annotation>
</xsd:element>
Best Practices
Type Selection
Choose Appropriate Types
- Data Nature: Match type to data characteristics
- Validation Needs: Select types with required validation
- Performance: Consider processing efficiency
- Standards: Follow SDC4 best practices
Validation Strategy
- Business Rules: Enforce domain constraints
- Data Quality: Ensure data integrity
- User Experience: Provide clear error messages
- Performance: Balance validation with speed
Component Design
Logical Organization
- Group Related Elements: Use clusters for logical grouping
- Consistent Naming: Follow naming conventions
- Clear Documentation: Provide comprehensive descriptions
- Reusability: Design for component reuse
Relationship Management
- Clear Dependencies: Define component relationships
- Reference Usage: Use references for component reuse
- Validation: Ensure relationship integrity
- Documentation: Document relationship purposes
Implementation Examples
Complete Component Example
<xsd:complexType name="mc-state-type">
<xsd:annotation>
<xsd:documentation>US State component with validation</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="label" type="sdc4:XdStringType">
<xsd:annotation>
<xsd:documentation>State name label</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="xdstring-value" type="sdc4:XdStringType">
<xsd:annotation>
<xsd:documentation>State name value</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="validation" type="mc-state-validation">
<xsd:annotation>
<xsd:documentation>State validation rules</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
Validation Rules Example
<xsd:complexType name="mc-state-validation">
<xsd:annotation>
<xsd:documentation>State validation rules</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="pattern" type="sdc4:XdStringType">
<xsd:annotation>
<xsd:documentation>State name pattern</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="enumeration" type="mc-state-enumeration">
<xsd:annotation>
<xsd:documentation>Valid state values</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
Need More Information? Check the Data Modeling Guide for detailed usage examples, or explore the Best Practices Guide for implementation recommendations.