본문으로 바로가기

네임스페이스와 휴먼랭귀지, manifest

category 웹코딩/HTML 2015. 4. 17. 03:22

네임스페이스(namespace)

XHTML은 HTML을 XML로 재정의한 언어이기 때문에 XML이 가지는 확장성을 이용하여 다른 XML형식의 문서 표준을 네임스페이스(xmlns)를 이용하여 지원할 수 있습니다.

<html xmlns="http://www.w3.org/1999/xhtml">

중복되는 다수의 네임 스페이스

다른 문서 타입으로 부터 요소와 속성을 포함하기 원한다면, 이름이 같은 다중의 네임 스페이스는 어찌해야 하는가? 충돌할 염려가 있기 때문에 하나의 문서를 위해 이름이 같은 다수의 DTD를 결합할 수는 없습니다. 그러나 다수의 네임 스페이스는 사용할 수 있다. 네임 스페이스는 같은 문서내에 다수의 마크업 단어의 사용을 허락하기 때문입니다. 따라서 요소들에 새로운 세트를 추가하는 것은 다른 네임 스페이스를 가리키는 것만큼 쉽습니다.

예를 들어 XHTML 문서 내에 MathML을 포함시키기를 원한다면, 아래와 같이 네임 스페이스 속성을 가진 요소를 포함하면 됩니다.

<div xmlns="www.w3.org/1998/Math/MathML">
<!-- math elements here -->
</div>

XML에 순종적인 브라우저는 XHTML이 아니라 MathML 이라는 것을 발견하기 위해 http://www.w3.org/1998/Math/MathML 네임 스페이스를 사용할 것입니다.

그러나 만약 MathML의 여러 가지 실례를 포함하고 싶다면 어찌되는가? 그것은 네임 스페이스 선언을 포함하는 대신에, 문서의 처음에 MathML 네임 스페이스를 선언할 수 있고, 나중에는 단축된 프리픽스만으로 언급하면 됩니다.

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:math="http://www.w3.org/1998/Math/MathML">

그런 다음 아래와 같이 단축된 네임 스페이스 앞에 위치하는 math를 div에 태그로 사용할 수 있게 됩니다.

<math:div>
 ...
</div>

휴먼 랭귀지

웹 브라우저나 음성 브라우저와 같은 User Agents가 웹 문서에 쓰여진 언어를 올바로 해석할 수 있도록 (X)HTML 문서에 사용 언어를 선언할 수 있는데, 대표적 방법에는 휴먼 랭귀지 명시와 meta 요소를 이용한 선언이 있습니다.

휴먼 랭귀지 명시는 한국어, 영어, 일본어등의 인간이 사용하는 언어를 HTML 문서에 선언하여 (X)HTML을 해석할 수 있는 소프트웨어들이 올바르게 동작하도록 하는 것을 의미합니다. 이는 <html> 요소에 선언할 수 있으며, 콘텐츠 안에서 다양한 휴먼 랭귀지를 사용하는 경우 특정 요소마다 각각 다시 선언할 수 있습니다.

한국어(ko) 영어 (en) 일어(ja) ...

<html xml:lang="ko" lang="ko">
<p>사과는 영어로 <span lang="en">apple</span>이라고 합니다.</p>

XHTML에서 네임 스페이스와 휴먼 랭귀지 동시에 표현.

<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">

언어를 설정하는 방식은 HTML에서는 lang 속성을 사용하고, XHTML 1.0 에서는 text/html인 경우에 lang과 xml:lang 속성을 사용하며, XHTML 1.1에서는 xml:lang 속성만 사용합니다. 아래는 HTML 5의 lang 선언 방식입니다.

<html lang="ko">

ko는 한글이고 ko_KR은 남한의 한글입니다. 영어도 미국영어(en_US)와 영국영어(en_GB)가 있듯이 언어가 여러가지이면 세분화된다.

manifest

HTML5에 새로 추가된 <html>의 속성중에 manifest가 있습니다. 이 속성은 문서 애플리케이션 캐시 목록(cache manifest)의 위치(URL)를 지정합니다. 이 속성은 서버로부터 애플리케이션을 가져와서 클라이언트에서 실행하게 하는 역할을 수행합니다. 이것은 오프라인 모드처럼 네트워크가 비정상적인 상태에서 HTML 문서가 실행될 수 있게 만들며, 이때 manifest 속성은 애플리케이션 캐시에 필요한 파일을 내려받을 수 있도록 그 위치를 브라우저에 알려줍니다. 파일을 클라이언트에 저장하게 되면, 오프라인 모드를 지원할 수 있을 뿐만 아니라 문서 로딩 속도가 더 빨라지고 서버 부하를 줄일 수 있다는 장점이 있습니다.

<html manifest="cache.manifest">