XForms 다루기

XForms는 전통적인 웹 폼에 다양성을 부여합니다. 다양한 플랫폼과 브라우저, 심지어 비전통적인 매체인 PDF 문서에서도 사용할 수 있습니다.

XForms의 첫번째 차이는 클라이언트에 폼을 전송하는 방법입니다. HTML 저작자를 위한 XForms에 XForms를 작성하는 자세한 설명이 있습니다. 이 튜토리얼에서는 간단한 예제만을 살펴봅니다.

예 2-8. 간단한 XForms 검색폼

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
    <h:title>검색</h:title>
    <model>
        <submission action="http://example.com/search"
                    method="post" id="s"/>
    </mode>
</h:head>
<h:body>
    <h:p>
        <input ref="q"><label>찾기</label></input>
        <submit submission="s"></label>Go</label></submit>
    </h:p>
</h:body>
</h:html>

위 폼은 (q로 이름 붙여진) 텍스트 입력 상자와 제출 버튼을 표시합니다. 제출 버튼을 클릭하면, 폼은 action에 지정한 페이지로 넘어갑니다.

여기서부터 웹 어플리케이션의 시점에서 차이가 납니다. 일반 HTML 폼에서는 데이터가 application/x-www-form-urlencoded로 전송되지만, XForms에서는 이 정보가 XML 형식의 데이터로 전송됩니다.

XML 데이터를 위해서 XForms를 선택한다면, 이 경우 브라우저가 생성한 XML 데이터는 $HTTP_RAW_POST_DATA에서 찾을 수 있고, 이를 선호하는 XSLT 엔진이나 문서 처리기로 넘길 수 있습니다.

형식화에 관심이 없고, 데이터를 전통적인 $_POST 변수로 읽고 싶다면, method 속성을 urlencoded-post로 변경하여 클라이언트 브라우저가 application/x-www-form-urlencoded로 보내도록 할 수 있습니다.

예 2-9. XForms가 $_POST를 만들도록 사용하기

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
    <h:title>검색</h:title>
    <model>
        <submission action="http://example.com/search"
                    method="urlencoded-post" id="s"/>
    </mode>
</h:head>
<h:body>
    <h:p>
        <input ref="q"><label>찾기</label></input>
        <submit submission="s"></label>Go</label></submit>
    </h:p>
</h:body>
</h:html>

참고: 이 글이 쓰여진 시점에서, 많은 브라우저가 XForms를 지원하지 않습니다. 위 예제가 실패한다면, 브라우저의 버전을 확인해 보십시오.