iOS Swift

NDEF 의 TNF(Type Name Format)

basker 2023. 6. 6. 14:57

NDEF 의 헤더 값 중 TNF는 레코드 내 페이로드의 타입을 설정하는 데 사용됩니다. 

0  Empty Type 페이로드가 존재하지 않는다
1 NFC Forum well-known 타입  포럼에서 정의한 형식
2 MIME 타입 
3 AURI(Absolute URI type)
4 NFC Forum External Type  NFC 포럼에서 정의한 형식되로 임의의 타입을 만들 때 사용
5 Unknown Type
6 Unchanged 청크 레코드 에서 해당 슬라이스가 이전 슬라이스와 같은 타입임을 나타낼 때 사용
7 Reserved 사용되지 않음

NFC 포럼은TNF 1 과 TNF 4 에 대해 Record Type Definition(RTD) 규격에 이를 정의하고 있습니다. TNF 1은 Well Known Types 으로 URN Uniform Resource Name(URN) 명명 규칙을 따라, "urn:nfc:wkt:T" 형식을 따릅니다. 여기서 urn은 URN 네이밍 규칙을 말하고 nfc:wkt는 네임스페이스 식별자를 나타내고 T는 타입을 표현합니다. 잘 알려진 타입(Well Known Type)은 크게 글로벌 타입과 로컬 타입으로 나눌 수 있습니다. 클로벌 타입은 대문자로 시작합니다  예를 들어 텍스트 레코드는 "T", URI 레코드는 "U" 스마트 포인트 레코드는 "Sp" 와 같습니다. 로컬 유형은 공통 문자나 숫자로 시작합니다. 로컬 타입은 일반적으로 개발자에 의해 정의됩니다. 

 

TNF 4는 NFC 포럼에서 정의하는 외부 타입을 나타내며 이는 NFC에서 정의한 규칙에 따라 임의로 타입을 만들어 사용할 때 지정됩니다. NFC 외부 타입으로 설정된 타입은 아래와 같은 형식을 수 있습니다. 

URN: "urn:nfc:ext:object-wolrd.tstory.com:test"

nfc.ext는 외부 타입을 나타내는 네임 스페이스 식별자이고, object-world.tstory.com 이 도메인 네임, test 가 타입 이름이 됩니다. 외부 타입을 정의할 때 도메인 네임 내에 타입 이름을 설정해아 합니다. 

 

Text Record 

Text 레코드는 NFC 포럼이 정의한 잘 알려진 타입으로 타입 이름은 T("urn:nfc:wkt:T") 이고 텍스트 데이터를 포함하고 있습니다. 해당 페이로드 데이터의 포맷은 아래와 같습니다. 

 

첫 번째 비트는 해당 UTF 코딩 방식을 설정합니다. 0 일 경우 UTF-8, 1일 경우 UTF-16을 사용합니다. 다음 비트는 Reserved 로 사용되지 않고 0으로 설정합니다. 다음은 Language Code의 길이로 나머지 6 비트를 사용합니다. 따라서 해당 값의 범위는 0 에서 63이 됩니다.  Language Code는 ISO/IANA Language Code를 사용합니다. 

 

URI Record

URI 레코드는 NFC 포럼이 정의한 잘 알려진 타입으로 이름은 U("urn:nfc:wkt:U") 로 URI 데이터를 가지고 있습니다. 해당 페이로드의 포맷은 아래와 같습니다. 

URI Prefix Code는 1byte 값으로 URI Data의 크기를 줄이기 위해 축약 값을 표현합니다. 사용 가능한 값은 아래와 같습니다. 

Decimal Content
0 N/A
1 http://www.
2 https://www.
3 http://
4 https://
5 tel:
6 mailto:
7 ftp://anonymous:anonymous@
8 ftp://ftp.
9 ftps://
10 sftp://
11 smb://
12 nfs://
13 ftp://
14 dav://
15 news:
16 telnet://
17 imap:
18 rtsp://
19 urn:
20 pop:
21 sip:
22 sips:
23 tftp:
24 btspp://
25 btl2cap://
26 btgoep://
27 tcpobex://
28 irdaobex://
29 file://
30 urn:epc:id:
31 urn:epc:tag:
32 urn:epc:pat:
33 urn:epc:raw:
34 run:epc:
35 urn:nfc:
36 ~ 255 Reserved

URI 데이터는 Uniform Resource Locator(URL) 과 Uniform Resource Name(URN) 데이터를 가지고 있습니다. 

 

Smart Poster 레코드 

스마트 포스터 레코드는 NFC 포럼에서 잘 알려진 정의 타입으로 타입 이름은 Sp("urn:nfc:wkt:Sp")입니다. 이는 URI 레코드를 중심으로 해당 레코드를 보조할 다른 레코드로 결합된 레코드입니다. 스마트 포스터 레코드는 하나의 URI 레코드를 가지고 다른 레코드들은 해당 URI 레코드에 첨부되는 형식입니다.