AASX 패키지 — ZIP 내부 구조 해부
.aasx 파일은 확장자만 다를 뿐 ZIP 포맷 — 내부 구조를 알면 직접 조작할 수 있다
.aasxZIP 기반 패키지CellS513.aasx✓ OPC 관계 기반unzip
ZIP 호환 압축 포맷
Package Explorer 또는
Python zipfile 로 열기 가능
📦CellS513.aasxZIP 포맷 패키지 루트
├─📄[Content_Types].xmlMIME 타입 선언 — AASX 마커 포함
├─📁_rels/OPC 관계 파일 디렉토리
└─🔗.rels패키지 루트 관계 정의 (aasx-origin 링크)
├─📁aasx/AAS 핵심 데이터 디렉토리
├─📁_rels/aasx-origin → .aas.json 관계 정의 (OPC 규약)
└─🔗aasx-origin.relsaasx-origin → 실제 .aas.json 링크 (XML)
├─📌aasx-origin반드시 존재해야 하는 마커 파일 (내용 없음)
├─📋CellS513.aas.jsonAAS V3 JSON — Shell + Submodel + ConceptDescription 전체
└─📁files/Blob/File Element가 참조하는 실제 파일들
├─📕manual_LR01.pdfHandoverDocumentation Submodel 참조 매뉴얼
├─🔧drawing_MainJig.stpCAD 파일 (STEP 포맷)
└─🖼️thumbnail.png자산 썸네일 이미지
└─🖼️thumbnail.png패키지 수준 썸네일 (탐색기 미리보기)
파일 크기 참고표
파일 종류일반 크기
.aas.json (기본)50~200 KB
PDF 매뉴얼1~10 MB
CAD (STEP)5~50 MB
이미지/썸네일50~500 KB
전체 .aasx1~60 MB
핵심 파일 역할
aasx-origin
AASX 패키지 식별자.
빈 파일이지만 반드시 존재해야 함
.aas.json
AAS V3 JSON 포맷.
Shell, Submodel, ConceptDescription 전체 포함
/files/ 디렉토리
File/Blob SubmodelElement가 참조하는 실제 이진 파일(이미지·PDF·문서)을 보관하는 디렉토리
[Content_Types].xml
OPC 표준 매니페스트. 각 파일의 MIME 타입을 선언하여 패키지 무결성을 보장
GUI AAS Package Explorer 로 열기 AASX 공식 도구
# 1. Package Explorer 설치 (GitHub: admin-shell-io/aasx-package-explorer)
# 2. File → Open → CellS513.aasx 선택
# 3. 트리 뷰에서 Shell / Submodel 탐색
# 4. 편집 후 File → Save As → .aasx 저장
GUI 기반 — 코딩 불필요
ConceptDescription 연결 확인 가능
PY Python zipfile 로 열기 PYTHON
import zipfile, json
# AASX 열기 (ZIP 호환)
with zipfile.ZipFile("CellS513.aasx", "r") as z:
    # 내부 파일 목록 확인
    print(z.namelist)
    # AAS JSON 읽기
    with z.open("aasx/CellS513.aas.json") as f:
        data = json.load(f)
! 주의사항
aasx-origin 파일이 없으면 AASX로 인식 안 됨
.rels 의 관계 경로가 JSON 경로와 일치해야 함
files/ 경로는 JSON 내 value 필드와 정확히 매칭