NDEF 의 TNF(Type Name Format)
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 레코드에 첨부되는 형식입니다.