소스 XML 파일
<MIME>/packages 디렉토리에 위치한 이러한 XML 파일들은 update-mime-database 프로그램을 통해 설치된 MIME 형식들에 대한 모든 정보를 제공합니다. XML 파일 자체에 대한 다음과 같은 몇 가지 규칙이 존재합니다:
- 이름 공간을 “http://www.freedesktop.org/standards/shared-mime-info”로 지정해야 합니다
- 최상위(root) 엘리먼트의 이름은 mime-info가 되어야 합니다
- mime-info 엘리먼트의 자식으로 여러 (0개 이상의) mime-type 엘리먼트들을 지정할 수 있습니다. type 속성은 정의된 MIME 형식을 지정하기 위해 사용됩니다.
기본적으로 freedesktop.org.xml 파일은 <MIME> 경로 (보통은 /usr/share/mime/packages) 중의 하나에 있는 packages 디렉토리에 설치됩니다.
표 5-1은 mime-type 엘리먼트의 자식으로 올 수 있는 각 엘리먼트에 대한 간단한 설명을 제공합니다.
엘리먼트 (및 속성) | 설명 |
---|---|
<glob pattern="*.xyz"> | 이 엘리먼트는 파일 이름에 glob 패턴을 지정합니다. 만약 파일 이름이 일치하면 부모 mime-type 엘리먼트의 MIME 형식으로 지정됩니다. pattern 속성은 필수적인 속성입니다. |
<magic priority="50"> | 이 엘리먼트는 일치된 엘리먼트를 자식으로 포함합니다. priority 속성은 생략할 수 있으며, 0부터 100사이의 우선순위를 지정합니다 (가장 우선 순위가 높은 것은 100입니다) 각각의 자식 일치된 엘리먼트는 세 가지 필수 속성인 type, offset, 값와 네번째 (생략할 수 있는) 속성인 mask를 가집니다. 이 속성들에 대한 자세한 정보는 XDG 공통 MIME 정보 명세서를 참조하기 바랍니다. |
<alias type="미디어/하위 형식"> | 이 엘리먼트는 부모 mime-type 엘리먼트에 대한 별칭을 정의합니다. 별칭은 단순히 다른 형식으로 알려진 MIME 형식입니다. 예를 들어 application/x-pdf는 application/pdf MIME 형식의 별칭입니다. |
<sub-class-of type="미디어/하위 형식"> | 이 엘리먼트는 부모 mime-type 엘리먼트를 type 속성 내에 지정된 MIME 형식의 하위 클래스로 정의합니다. 예를 들어, image/svg는 text/xml, text/plain, application/octet-stream MIME 형식의 하위 클래스입니다. |
<comment xml:lang="locale"> | 이 엘리먼트는 MIME 형식에 대한 사람이 읽기 편한 설명을 제공합니다. 이 엘리먼트는 여러 (0개 이상) 올 수 있으며 각각은 xml:lang 속성에 대해 고유한 값을 가집니다. |
<root-XML namespaceURI="이름 공간" localName=""> | 만약 파일이 XML 파일로 인식되면 이 엘리먼트의 namespaceURI 속성과 localName 속성을 이용하여 (둘 다 필수 속성입니다) 보다 세세한 분류를 할 수 있도록 도와줍니다. namespaceURI 속성은 문서의 이름 공간을 지칭하며, localName 속성은 문서의 최상위 엘리먼트의 이름을 지칭합니다. 만약 localName 속성이 존재하지만 값이 설정되어 있지 않다면, 최상위 엘리먼트의 이름은 아무렇게나 쓸 수 있지만, 이름 공간은 일치해야 합니다. |
이러한 파일들을 이해할 수 있는 가장 쉬운 방법은 예제를 살펴보는 것입니다. XDG 공통 MIME 명세서에 따르면, 예제 5-2는 diff.xml이라는 소스 XML 파일의 내용을 보여줍니다. 이 예에서는 text/x-diff라는 MIME 형식을 정의합니다. 여기에는 여러 언어로 MIME 형식에 대한 (사람이 보기 편한) 설명을 담고 있는 comment 엘리먼트들이 있습니다. 이 MIME 형식은 glob 패턴과 일치하는 이름을 찾는 규칙과 파일의 내용을 살펴보는 “(sniffing)” 규칙 (매직(magic) 규칙이라고도 함)을 모두 가지고 있습니다. .diff 혹은 .patch라는 확장자를 가지는 파일들은 이 MIME 형식으로 인식됩니다. 또는 파일의 내용이 match 엘리먼트의 value 속성 내의 문자열값으로 시작하는 파일들은 text/x-diff MIME 형식으로 인식될 것입니다.
glob 패턴과 매직 규칙이 적용되는 순서에 대한 것은 이 문서의 범위를 벗어납니다. 이에 대한 자세한 사항은 XDG 공통 MIME 정보 명세서를 참조하기 바랍니다.
<?xml version='1.0'?> <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'> <mime-type type="text/x-diff"> <comment>Differences between files</comment> <comment xml:lang="af">verskille tussen lêers</comment> <!-- more translated comment elements --> <magic priority="50"> <match type="string" offset="0" value="diff\t"/> <match type="string" offset="0" value="***\t"/> <match type="string" offset="0" value="Common subdirectories: "/> </magic> <glob pattern="*.diff"/> <glob pattern="*.patch"/> </mime-type> </mime-info>