# Import/Export Workflow / Quy trình Import/Export ## 📋 Overview / Tổng quan MapEditor hỗ trợ import và export VDMA LIF JSON format để trao đổi map data với các hệ thống khác. ## 📥 Import Process / Quy trình Import ```mermaid flowchart TD Start([User Upload
VDMA LIF JSON]) --> Parse[Parse JSON
Deserialize to models] Parse --> ValidFormat{Valid JSON
Structure?} ValidFormat -->|No| ErrorFormat[Error: Invalid JSON
Abort import] ValidFormat -->|Yes| ValidSchema{Valid VDMA LIF
Schema?} ValidSchema -->|No| ErrorSchema[Error: Schema mismatch
Abort import] ValidSchema -->|Yes| ValidRefs{Valid
References?} ValidRefs -->|No| ErrorRefs[Error: Broken references
Abort import] ValidRefs -->|Yes| Transaction[Begin Database Transaction] Transaction --> SaveMap[Create Map Entity] SaveMap --> SaveVTypes[Create VehicleTypes] SaveVTypes --> SaveStations[Create Stations] SaveStations --> SaveINodes[Create InteractionNodes] SaveINodes --> SaveActions[Create Actions] SaveActions --> SaveEdges[Create Edges] SaveEdges --> SaveZones[Create Zones] SaveZones --> ValidateMap[Validate Map
Connectivity check] ValidateMap --> ValidCheck{Validation
Passed?} ValidCheck -->|No| Rollback[Rollback Transaction
Abort import] ValidCheck -->|Yes| Commit[Commit Transaction] Commit --> Success([Import Complete
Return Map ID]) style Start fill:#e6ffe6 style Success fill:#e6ffe6 style ErrorFormat fill:#ffe6e6 style Rollback fill:#ffe6e6 ``` ## 📤 Export Process / Quy trình Export ```mermaid flowchart TD Start([User Click Export
Select Map ID]) --> LoadMap[Load Map Entity] LoadMap --> LoadRelated[Load Related Entities
Parallel queries] LoadRelated --> LoadVTypes[Query VehicleTypes] LoadRelated --> LoadStations[Query Stations] LoadRelated --> LoadEdges[Query Edges] LoadRelated --> LoadZones[Query Zones] LoadStations --> LoadINodes[Query InteractionNodes] LoadINodes --> LoadActions[Query Actions] LoadVTypes --> Transform[Transform to VDMA LIF Models] LoadActions --> Transform LoadEdges --> Transform LoadZones --> Transform Transform --> Build[Build VDMA LIF Structure
metaInformation, layout, arrays] Build --> Serialize[Serialize to JSON
camelCase, pretty print] Serialize --> Validate{Valid VDMA LIF
Output?} Validate -->|No| ErrorExport[Internal Error] Validate -->|Yes| Download[Generate Download
Filename: mapId.json] Download --> Success([Export Complete]) style Start fill:#e6ffe6 style Success fill:#e6ffe6 style ErrorExport fill:#ffe6e6 ``` ## ✅ Data Integrity Guarantees **Import Validations**: 1. JSON Syntax: Valid JSON format 2. Schema Compliance: Required fields present 3. Reference Integrity: Edges reference existing stations 4. Geometric Validity: Positions, trajectories valid 5. Unique Constraints: No duplicate IDs **Export Guarantees**: 1. Completeness: All related entities included 2. Format Compliance: Valid VDMA LIF schema 3. Reference Resolution: All IDs properly mapped 4. Transaction Safety: All-or-nothing import ## 🔗 Related Documents / Tài liệu Liên quan - [MapEditor Overview](README.md) - Tổng quan MapEditor - [VDMA LIF Standard](VDMA_LIF_Standard.md) - Format specification - [Database Design](Database_Design.md) - Database schema --- **Last Updated**: 2025-11-13