feat(flight-data-exchange): add AIDX/SSIM detailed specs — SCR fields, XML structure, CDM milestones

This commit is contained in:
zhiqiang feng
2026-04-13 13:48:14 +08:00
parent 991e64994d
commit e455a1d0f8
2 changed files with 210 additions and 7 deletions
@@ -91,10 +91,14 @@ AODB 市場增速顯著高於整體機場信息系統,反映智慧機場建設
IATA、ATA、ACI 共同認可的全球 XML 消息標準,用於航空公司、機場、第三方之間交換航班運營數據。是 SESAR A-CDM 信息交換的標準格式。所有現代 AODB 必須原生支持 AIDX 接口。 IATA、ATA、ACI 共同認可的全球 XML 消息標準,用於航空公司、機場、第三方之間交換航班運營數據。是 SESAR A-CDM 信息交換的標準格式。所有現代 AODB 必須原生支持 AIDX 接口。
> 詳細規範(消息類型、XML 結構、運營狀態碼、A-CDM 里程碑代碼)見 [[flight-data-exchange]]。
### SSIMStandard Schedules Information Manual ### SSIMStandard Schedules Information Manual
IATA 定義的航班時刻表交換格式標準。AODB 需能解析 SSIM 文件(如 Chapter 7 格式),自動構建機場季節性航班計劃。 IATA 定義的航班時刻表交換格式標準。AODB 需能解析 SSIM 文件(如 Chapter 7 格式),自動構建機場季節性航班計劃。
> 詳細規範(SCR 報文14字段格式、協調員響應代碼)見 [[flight-data-exchange]]。
### 傳統航空報文標準 ### 傳統航空報文標準
即使 XML 和 API 日漸普及,AODB 仍需支持以下傳統格式以確保與老系統的互操作性: 即使 XML 和 API 日漸普及,AODB 仍需支持以下傳統格式以確保與老系統的互操作性:
@@ -4,7 +4,7 @@ created: 2026-04-08
updated: 2026-04-08 updated: 2026-04-08
type: concept type: concept
tags: [flight-data, api, integration, system] tags: [flight-data, api, integration, system]
sources: [raw/articles/iata-ssim-2026.md, raw/articles/schedule-data-exchange-2025.md] sources: [raw/articles/iata-ssim-2026.md, raw/articles/schedule-data-exchange-2025.md, raw/articles/aidx-xml-imp-guide-v22.1.md]
--- ---
# 航班数据交换标准 # 航班数据交换标准
@@ -25,14 +25,213 @@ sources: [raw/articles/iata-ssim-2026.md, raw/articles/schedule-data-exchange-20
## SSIM — Standard Schedules Information Manual ## SSIM — Standard Schedules Information Manual
| 项目 | 信息 | || 项目 | 信息 |
|------|------| |------|------|
| 最新版本 | **第 36 版(2026** | || 最新版本 | **第 36 版(2026** |
| 发布频率 | 年度 | || 发布频率 | 年度 |
| 适用范围 | 全球所有 IATA 成员航司及合作伙伴 | || 适用范围 | 全球所有 IATA 成员航司及合作伙伴 |
| 核心内容 | 航班计划报文格式、最小衔接时间(MCT)、机场协调程序 | || 核心内容 | 航班计划报文格式、最小衔接时间(MCT)、机场协调程序 |
SSIM 是航班计划数据交换的行业基准,采用固定长度报文格式(flat file),支持批量数据交换。 SSIM 是航班计划数据交换的行业基准,采用**固定长度报文格式(flat file**,支持批量数据交换。
### SSIM 信息数据行字段定义(Chapter 6/7 SCR 报文)
每行数据包含 14 个固定字段,固定位置,不可变长:
```
NXZ101 XZ102 20JUN20AUG 0234500 189738 AGPAGP1000 1055BCNBCN JP
^1 ^3 ^4 ^6 ^7 ^8 ^9 ^10 ^11
```
| 字段 | 名称 | 内容 | 示例 |
|------|------|------|------|
| 1 | Action Code | 操作代码(N=新请求/C=变更/D=删除) | N |
| 2 | Arrival Flight Designator | 到达航班(航司代码+航班号,最低3位数字) | XZ101 |
| 3 | Departure Flight Designator | 出发航班(航司代码+航班号) | XZ102 |
| 4 | Period Start | 有效期开始 | 20JUN |
| 5 | Period End | 有效期结束 | 20AUG |
| 6 | Weekdays of Operation | 周运营日(1=周一~7=周日,1-7数字串) | 0234500 |
| 7 | Number of Seats | 座位数(3位数字) | 189 |
| 8 | Aircraft Subtype | IATA 机型代码(3位) | 738 |
| 9 | Origin Airport | 出发/到达机场代码(同一行往返) | AGP |
| 10 | Arrival Time (UTC) | 到达时间(UTC,过夜加1后缀) | 1000 |
| 11 | Departure Time (UTC) | 出发时间(UTC | 1055 |
| 12 | Next/Destination Airport | 目的地/下一机场代码 | BCN |
| 13 | Arrival Service Type | 到达服务类型(J=定期客机/P=调机) | J |
| 14 | Departure Service Type | 出发服务类型 | P |
### SSIM SCR 报文示例
**标准 turnaround 格式(新请求):**
```
SCR /schedule@carrier.com
S21 01APR DUB
NXZ101 XZ102 20JUN20AUG 0234500 189738 AGP1000 1055BCN JP
SI NEW SERIES
GI BEST REGARDS
```
含义:S21航季,4月1日发给 DUB 机场,XZ 航司新 slot 请求,XZ101 进港/XZ102 出港,6月20日—8月20日每周二三四五执飞,189座,B738 机型,AGP 进港 1000zBCN 出港 1055z。
### 协调员响应代码
| 代码 | 含义 |
|------|------|
| K | 确认(Confirmed |
| X | 变更(Change required |
| U | 拒绝(Refused |
| O | 建议(Offer alternative |
---
## AIDX — Aviation Information Data Exchange
|| 项目 | 信息 |
|------|------|
|| 类型 | XML 消息标准(ISO/IEC 19757-3 |
|| 版本 | v22.1(每年 2 次发布) |
|| 覆盖 | 约 **180 个**数据元素,涵盖航班运营全生命周期 |
|| 开发者 | IATA Delivery on Orders Working Group80+ 航司/机场/厂商参与) |
|| 适用范围 | 航司↔机场↔第三方,运营动态实时交换 |
AIDX 由 IATA、ATA、ACI 共同认可,是 SESAR A-CDM、ACI ACRIS A-CDM Web Services、ICAO A-CDM(亚太区)信息交换的标准格式。
### 三种核心消息类型
| 消息类型 | 用途 | 方向 |
|----------|------|------|
| `IATA_AIDX_FlightLegNotifRQ` | 无请求方主动通知(推送) | 发送方 → 接收方 |
| `IATA_AIDX_FlightLegRQ` | 查询请求 | 发送方 → 接收方 |
| `IATA_AIDX_FlightLegRS` | 响应/确认 | 接收方 → 发送方 |
### 集成模式
**模式1:无请求方主动通知(推送)**
```
Sender → IATA_AIDX_FlightLegNotifRQ → Receiver
Sender ← IATA_AIDX_FlightLegRS ← Receiver(可选确认)
```
**模式2:查询 + 同步响应**
```
Sender → IATA_AIDX_FlightLegRQ → Receiver
Sender ← IATA_AIDX_FlightLegRS ← Receiver
```
### XML 数据结构(IATA_AIDX_FlightLegNotifRQ
```xml
<IATA_AIDX_FlightLegNotifRQ Version="2" TimeStamp="2017-01-16T17:27:49Z"
TransactionIdentifier="1484587669244" Target="Production" PrimaryLangID="en-us">
<Originator CompanyShortName="UAL" TravelSector="A" Code="UA" CodeContext="3"/>
<DeliveringSystem CompanyShortName="DEN" TravelSector="C" Code="DEN" CodeContext="3"/>
<FlightLeg>
<LegIdentifier>
<Airline CodeContext="3">UA</Airline>
<FlightNumber>1815</FlightNumber>
<DepartureAirport CodeContext="3">LAX</DepartureAirport>
<ArrivalAirport CodeContext="3">IAH</ArrivalAirport>
<OriginDate>2017-01-16</OriginDate>
<RepeatNumber CurrentInd="true">1</RepeatNumber>
</LegIdentifier>
<LegData InternationalStatus="Domestic">
<ServiceType>J</ServiceType>
<OperationalStatus>OP</OperationalStatus>
<CabinClass Class="7">
<PaxCount Qualifier="70A" Usage="Actual">166</PaxCount>
<SeatCapacity>166</SeatCapacity>
</CabinClass>
<AircraftInfo>
<AircraftType>737</AircraftType>
<AircraftSubType>73Q</AircraftSubType>
<Registration>N77518</Registration>
<TailNumber>518</TailNumber>
</AircraftInfo>
<AirportResources Usage="Actual">
<Resource DepartureOrArrival="Departure">
<PassengerGate>70A</PassengerGate>
</Resource>
<Resource DepartureOrArrival="Arrival">
<PassengerGate>E8</PassengerGate>
<BaggageClaimUnit>C5</BaggageClaimUnit>
</Resource>
</AirportResources>
<OperationTime OperationQualifier="OFB" CodeContext="9750" TimeType="ACT">2017-01-16T14:28:00Z</OperationTime>
<OperationTime OperationQualifier="TKO" CodeContext="9750" TimeType="ACT">2017-01-16T14:41:00Z</OperationTime>
<OperationTime OperationQualifier="TDN" CodeContext="9750" TimeType="ACT">2017-01-16T17:27:00Z</OperationTime>
<OperationTime OperationQualifier="ONB" CodeContext="9750" TimeType="EST">2017-01-16T17:33:00Z</OperationTime>
</LegData>
</FlightLeg>
</IATA_AIDX_FlightLegNotifRQ>
```
### 航班唯一标识(UFI)规则
`LegIdentifier` 构成唯一标识,必须严格遵循以下规则:
| 字段 | 规则 |
|------|------|
| `OriginDate` | **静态** — 即使航班改期仍不变,以首个航段的 UTC 计划出发日期为准 |
| `ArrivalAirport` | **静态** — 航班备降后原字段不变,新增 `PlannedArrivalAptHistory` 记录 |
| `OperationalSuffix` | **静态** — 如需变更须取消原航班并创建新航班 |
| `RepeatNumber` | 同一计划日期的重复起飞次数,1=首次尝试 |
### 运营状态代码
| 代码 | 含义 | 使用场景 |
|------|------|----------|
| OP | Operational Flight | 正常执行 |
| NOP | Non-Operational | 计划但不执行 |
| DV | Diverted | 备降 |
| DX | Cancelled | 取消 |
| RT | Re-route | 改航路 |
| GRT | Ground Return | 返回始发地(未起飞) |
| SQ | Re-instate | 恢复已取消/备降航班 |
### A-CDM 里程碑时间代码(Codeset 9750
| 代码 | 含义 | 阶段 |
|------|------|------|
| SCH | Scheduled | 计划 |
| INI | Flight Plan Activated | 起飞前 |
| OFB | Off Blocks(撤轮档) | 推出 |
| TKO | Takeoff(起飞) | 离地 |
| FIN | Final Approach | 最后进近 |
| TDN | Touch Down(落地) | 接地 |
| LAN | Landed | 落地 |
| ONB | On Blocks(靠桥) | 停靠 |
### 时间类型
| 类型 | 含义 |
|------|------|
| SCT | Scheduled Time(计划时间) |
| EST | Estimated Time(预计时间) |
| ACT | Actual Time(实际时间) |
> **注意**:所有时间必须为 UTC,以 `xsd:DateTime` 格式传输,后缀 Z。元素缺失=无更新;`xsi:nil="true"`=显式清空;空元素(如 `<PassengerGate/>`)可能引发校验错误。
### 技术规范
| 项目 | 要求 |
|------|------|
| 字符编码 | UTF-8 |
| 时间格式 | xsd:DateTimeUTC,末尾 Z |
| 重复元素 | 使用 `RepeatIndex` 属性标记序号 |
| Nil 值 | 使用 `xsi:nil="true"`,禁止空白元素 |
| 传输机制 | 未规定(可基于 HTTPS REST、SFTP、WebService 等) |
### SSIM 与 AIDX 对比
| 维度 | SSIM Flat File | AIDX XML |
|------|----------------|----------|
| 数据类型 | 航班计划(季节性/批量) | 航班运营动态(实时) |
| 更新频率 | 批量定时交换(航季) | 实时推送/查询 |
| 格式 | 固定长度字段( mainframe 遗留格式) | 树形 XML 结构 |
| 复杂度 | 低(字段固定),但解析困难 | 高(180+ 元素),但扩展性强 |
| 典型场景 | slot 协调、季节计划 | A-CDM、地面保障、旅客信息 |
| IATA 策略 | 逐步向 XML/IATA-OS 迁移 | 主推方向,已广泛部署 |
## IATA Schedule Data Exchange Program2025 新动态) ## IATA Schedule Data Exchange Program2025 新动态)