xhtml Syntax


Home > Document > xhtml > Tutorial > xhtml Syntax

XHTML에서 지켜야 할 문법(XML well-formed attribute 참조)은 다음과 같습니다.



모든 Attribute 이름은 반드시 소문자여야 한다.

아래의 경우는 WIDTH를 대문자로 표기했기 때문에 XHTML 문법에 맞지 않는 틀린 표기입니다.

틀린 문법
<table WIDTH="100%">


바른 문법
<table width="100%">



pre-defined Attribute 값은 반드시 소문자여야 한다. (2006-06-05 추가 부분)

xhtml의 attribute 값 중에는 id나 class 같이 사용자가 임의로 이름을 줄 수 있는 값과 button element의 type attribute와 같이 사용 값을 (button|submit|reset)의 3개로 미리 정해놓고 그 값들 중에서 하나를 선택해서 써야되는 경우가 있습니다. 이런 attribute 값을 enumerated attribute value list (미리 정의되어 나열된 attribute 값의 목록)라고 부르는데, 이런 attribute 값은 xhtml DTD에 모두 소문자로 정의되어 있습니다. 소문자로 미리 정의되어 있는 attribute 값에 대해서는 xhtml 1.0의 경우 W3C의 strict.dtd, transitional.dtd, frameset.dtd를 참조하시고, enumerated list에 대해서는 이 사이트의 ATTLIST 문서의 Enumerated List를 참조하시기 바랍니다. 또한 DTD를 보는 방법은 이 사이트의 XML DTD를 참조하면 되겠습니다.


Attribute 값이 ID type일 경우 그 값을 참조하여 사용하는 IDREF(S) 값과 반드시 일치해야 한다.(2006-06-05 추가)

사용하는 attribute 가 (x)HTML의 'id' attribute와 같은 ID type일 경우가 있습니다. 그런데 어떤 attribute 값이 ID type으로 지정된 attribute의 값을 참조하는 IDREF(S) type으로 지정된 경우 이 두 값은 대소문자까지 일치시켜야만 됩니다. 이 정도로 이해가 힘들 것으로 예상되므로 예를 하나 보겠습니다. 아래와 같이 label element의 for attribute는 input element의 id 값인 'man'을 attribute 값으로 참조해서 사용하고 있습니다.

ID type attribute와 그 값을 참조하는 IDREF(S) type의 값은 반드시 대소문자까지 일치
<input type="radio" id="man" />
<label accesskey="m" for="man">Man</label>

이 경우 한군데는 'MAN' 으로 하고 다른데는 'man'으로 한다든가 하여 대소문자가 불일치하면 안된다는 뜻 입니다.


모든 Attribute 값은 반드시 따옴표 속에 들어가야 된다.

아래의 경우 100%를 따옴표 속에 넣지 않았기 때문에 틀렸습니다.

틀린 문법
<table width=100%>


바른 문법
<table width="100%">

Attribute 값은 생략될 수 없다.

HTML에서는 생략해도 무방한 속성값들이 있습니다. 예를 들어 Table Cell에서 줄바꿈을 방지하는 'nowrap' 같은 경우가 되겠습니다.

<td nowrap>............</td> 와 같이 생략할 수 있지만 XHTML에서는 아래와 같이

<td nowrap="nowrap">............</td> 으로 속성값을 반드시 표기해 주어야 합니다.

틀린 문법
<dl compact>
<input checked>
<input readonly>
<input disabled>
<option selected>
<frame noresize>


바른 문법
<dl compact="compact">
<input checked="checked" />
<input readonly="readonly" />
<input disabled="disabled" />
<option selected="selected" />
<frame noresize="noresize" />

아래의 표는 HTML에서는 생략해서 사용하지만 XHTML에서는 반드시 표기해야 될 속성의 목록들입니다.

XHTML에서는 반드시 표기해야 될 속성의 목록
HTML XHTML
compact compact="compact"
checked checked="checked"
declare declare="declare"
readonly readonly="readonly"
disabled disabled="disabled"
selected selected="selected"
defer defer="defer"
ismap ismap="ismap"
nohref nohref="nohref"
noshade noshade="noshade"
nowrap nowrap="nowrap"
multiple multiple="multiple"
noresize noresize="noresize"



name Attribute 대신 id Attribute를 사용한다.

HTML 4.01 에서 'name' attribute를 사용하는 a, applet, frame, iframe, img, map 등의 Element를 XHTML에서는 사용하지 않고, 'id' Attribute를 사용합니다.

틀린 문법
<img src="picture.gif" name="picture1" />


바른 문법
<img src="picture.gif" id="picture1" />

*만약에 지금 낮은 버전의 브라우저를 사용하면서, HTML과 XHTML 에서 모두 작동되게 하고 싶으면 아래와 같이 'name' 과 'id' Attribute를 다 사용해 줍니다.

낮은 버전의 브라우저에서 XHTML과 호환 시키는 방법
<img src="picture.gif" id="picture1" name="picture1" />


The lang Attribute

XHTML에서는 내용물이 Text로 된 모든 Element 문자 세트를 따로 지정할 수 있습니다. Element 마다 문자 세트를 다르게 지정하고 싶으면 해당 Tag에 아래와 같이 xml:lang Attribute 를 지정해 주어야 합니다.

입력

<div lang="ko" xml:lang="ko">한글로 지정했습니다!</div>



<!DOCTYPE>, <html>, <head>, <body> <title>등 5가지 Element는 반드시 사용되어야 한다.

<!DOCTYPE>, <html>, <head>, <body> <title>등 5가지 Element는 반드시 사용되어야 하며, title Element는 head Tag 속에 들어가야 됩니다. 아래는 최소한의 Element만을 사용한 XHTML 문서가 되겠습니다.

입력
<!DOCTYPE .....><!--  이 곳에 DTD 선언을 해 줍니다. -->
<html>
    <head>
        <title>문서 제목 넣는 곳</title>
    </head>
    <body>
        브라우저 창에 나타나는 부분
    </body>
</html>

Element prohibitions

Element prohibitions란 어떤 element가 subset으로 가질 수 없는 element들을 말 합니다.

a
a element(들)를 포함할 수 없다.
pre
img, object, big, small, sub, or sup 등의 element(들)를 포함할 수 없다.
button
input, select, textarea, label, button, form, fieldset, iframe, isindex 등의 element(들)를 포함할 수 없다.
label
label element(들)을 포함할 수 없다..
form
form element(들)을 포함할 수 없다.





이 문서의 저작권은 www.cadvance.org 에 있습니다.

Top
Back
New
검색