Chap02. XForms Model
XForms Model은 form에서 수집된 데이타를 위한 템플릿을 정의한다.
XForms Framework
HTML Form의 목적은 데이타를 수집하는것이다. XForms도 마찬가지다.
XForms를 이용하며 두가지 다른 부분안에서 인풋데이타를 서술한다.
- XForm Model (데이타와 로직)
- XForm UI (데이타 입력 및 화면출력)
XForm Model은 어떠한 폼인지, 어떤 데이타를 포함하는지, 그래도 어떤 기능을 하는지를 정의한다.
XForm UI는 각 컨트롤 객체들이 화면에 출력되고 인풋 필드를 정의한다.
XForms Model
XForms model은 데이타를 설명하는데 사용되며, data model은 XML전문의 instance이며 <model>엘리먼트안에서 데이타 모델로 정의된다.
[예제]
<instance>
<person>
<fname/>
<lname/>
</person>
</instance>
<submission id="form1" action="techbug.php" method="get"/>
</model>
위의 예제에서 보면 XForms는 <instance> 엘리먼트를 이용해서 수집된 데이타를 XML 템플릿으로 정의하며 <submission>엘리먼트를 통해서 데이타를 전송한다.
XForms model은 UI의 비주얼한 부분을 처리하지는 않는다.
XForms Namespace
위의 예제에서는 XForms 네임스페이스를 빼먹었는데 다음 포스트에서 소개한다.
<instance>엘리먼트
XForms model은 수집된 데이타를 정의하는데 <instance>엘리먼트를 사용한다.
위의 예제에서 data instance에서 수집된 데이타는 아래와 같이 값이 바뀌게 된다.
<fname></fname>
<lname></lname>
</person>
에서 데이타가 입력되면 아래와 같이 바뀐다.
<fname>John</fname>
<lname>Smith</lname>
</person>
<submission>엘리먼트
데이타 전송시 사용되는 엘리먼트이며 어떻게 submit할건지를 결정하며 HTML의 <form>태그와 마찬가지로 id, action, method를 동일한 방식으로 표기한다.
XForms User Interface : controls
데이타의 표현과 입력을 위해 사용된다. XForms의 UI 앨리먼트들을 XForms에서는 컨트롤(controls)라고 부른다.
<input ref="lname"><label>Last Name</label></input>
<submit submission="form1"><label>Submit</label></submit>
과 같이 표현하며 각각의 <input>엘리먼트와 <submi>엘리먼트표현된다. 일반 XHTML의 표기법과 약간 다르게 표현된다.
XForms는 하나의 컨테이너를 필요로 한다.
XForms는 단독으로 설계되지 않으며 XForms 문서로써도 기능을 하지 못한다.
Xforms는 또다른 XML문서안에서 실행되어야 하며 XHTML1.0에서 실행될수 있고 XHTML2.0에서도 동작될 예정이다. (데꾸벅 주 : 아직 2008.12월 현재 XHTML2.0 스펙은 W3C권고안에 없다.)
<model>
<instance>
<person>
<fname/>
<lname/>
</person>
</instance>
<submission id="form1" action="submit.asp" method="get"/>
</model>
<input ref="fname"><label>First Name</label></input>
<input ref="lname"><label>Last Name</label></input>
<submit submission="form1"><label>Submit</label></submit>
</xforms>
과 같이 작성하면 다음 그림과 같이 표현된다.
XForms Processor
위의 예제에서 서브밋시 아래 XML형태로 서버로 전송하게 되며 혹은 텍스트로 전송하게 된다.
<person>
<fname>Hege</fname>
<lname>Refsnes</lname>
</person>
혹은 아래와 같이
fname=Hege;lname=Refsnes
translated by techbug
'Publisher > XForms' 카테고리의 다른 글
Chap03. XForms Namespace (0) | 2008.12.14 |
---|---|
Chap01. XForms 소개 (0) | 2008.12.13 |