맨위로가기

XForms

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

XForms는 웹 폼을 대체하기 위해 설계된 XML 기반의 기술로, 모델-뷰-컨트롤러(MVC) 방식을 사용하여 데이터, 제약 조건, 뷰를 정의한다. HTML 폼과 달리 XML 형식으로 데이터를 서버에 전송할 수 있으며, XSLT를 통해 다른 XML 문서에서 생성될 수 있다. 현재 대부분의 웹 브라우저는 XForms를 기본적으로 지원하지 않지만, 다양한 플러그인, 확장, 서버 측 솔루션을 통해 사용할 수 있다. XForms는 모바일 장치에서 서버 왕복 횟수를 줄이고, 장치 독립적인 폼 기술을 제공하며, 자바스크립트 의존성을 낮추는 장점이 있어 유용하게 사용될 수 있다. XForms는 XRX 아키텍처와 같은 기술과 결합하여 사용되기도 한다.

더 읽어볼만한 페이지

  • W3C 표준 - HTML
    HTML은 웹 페이지 제작을 위한 표준 마크업 언어로서, 팀 버너스리가 제안하고 구현한 후 인터넷 발전과 함께 널리 사용되며, SGML에 기반하여 하이퍼텍스트 기능으로 다양한 콘텐츠를 표현하고 연결하며, W3C와 WHATWG에서 표준화를 진행하고 최신 버전은 HTML Living Standard이다.
  • W3C 표준 - 타임드 텍스트
    타임드 텍스트는 영상이나 오디오 콘텐츠에 시간 정보를 담아 표현되는 텍스트로, 자막이나 캡션 등에 활용되며 TTML, WebVTT 등의 표준이 존재한다.
  • XML 기반 표준 - XAML
    XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다.
  • XML 기반 표준 - 아톰 (표준)
    Atom은 웹 사이트 업데이트 정보와 콘텐츠 배포를 위한 XML 기반 문서 형식으로, Atom 배포 형식과 Atom 출판 프로토콜로 구성되어 있으며, RSS를 대체하기 위해 고안되었고 국제화 지원 및 모듈성에서 차이를 보인다.
XForms
기본 정보
종류XML 데이터 처리 형식
개발자W3C
최신 버전1.1 (2023년 11월 7일)
최신 버전 상태권고안
웹사이트W3C XForms
기술 정보
유형웹 폼
마임 유형application/xml, application/xhtml+xml
기반XML
특징
특징플랫폼 독립적인 데이터 처리
강력한 데이터 유형
재사용 가능한 사용자 인터페이스 요소
국제화 지원
접근성 지원
역사
최초 발표2003년
표준화W3C 권고
기타
관련 기술XML
XHTML
CSS
XPath
SOAP
REST

2. HTML 폼과의 차이점

XForms는 HTML 폼과 달리 모델-뷰-컨트롤러(MVC) 접근 방식을 채택하여 데이터(모델), 표현(뷰), 제어(컨트롤러)를 분리한다. 이를 통해 데이터와 사용자 인터페이스를 독립적으로 관리하고 재사용성을 높인다.

XForms는 XML 형식으로 서버에 데이터를 보내고 받을 수 있으며, 다양한 비 XML 제출 프로토콜(multipart/form-data, application/x-www-form-urlencoded)도 사용할 수 있다.[1] XML 문서를 폼의 기본값 데이터로 포함할 수 있어, XML을 사용한 제출은 분석 및 편집이 용이하다. XForms 자체도 XML의 방언이므로, XSL Transformations를 사용하여 XForms 문서와 XML 문서 간 상호 변환이 가능하다. XML 변환 언어를 사용하면, 스키마 언어에서 XForms를 생성하거나, XForms를 기존 HTML 폼으로 변환할 수 있다.

2. 1. 모델

XForms 모델은 모델-뷰-컨트롤러(MVC) 접근 방식을 사용하여 폼 데이터, 해당 데이터에 대한 제약 조건 및 제출을 설명한다.[1]

폼 작성자는 XML 스키마 데이터 유형에 대해 사용자 데이터를 검증하고, 특정 데이터를 요구하고, 입력 컨트롤을 비활성화하거나 상황에 따라 양식의 섹션을 변경하고, 데이터 간의 특정 관계를 적용하고, 데이터의 가변 길이 배열을 입력하고, 양식 데이터에서 파생된 계산된 값을 출력할 수 있다.[1] XML 문서를 사용하여 항목을 미리 채울 수도 있다.[1]

웹 폼과 달리 XForms는 XML 형식으로 서버에 데이터를 보낼 수 있다.[1] 물론, 다양한 비 XML 제출 프로토콜(multipart/form-data, application/x-www-form-urlencoded)도 사용할 수 있다.[1]

2. 2. 뷰

XForms 제작자는 모델-뷰-컨트롤러 (MVC) 접근 방식을 사용했다. 뷰는 양식에 어떤 컨트롤이 나타나는지, 어떻게 그룹화되는지, 그리고 어떤 데이터에 바인딩되는지를 설명한다. CSS는 양식의 모양을 설명하는 데 사용될 수 있다.[1]

XForms 문서는 웹 양식만큼 간단할 수 있지만, XForms에는 많은 고급 기능이 포함되어 있다. 예를 들어, XMLHttpRequest/AJAX를 사용하는 것과 유사하게 스크립팅 없이 실행 중인 양식을 업데이트하기 위해 새 데이터를 요청하고 사용할 수 있다.[1]

2. 3. 고급 기능

XForms는 XMLHttpRequest/AJAX와 유사하게 스크립팅 없이도 동적으로 폼을 업데이트할 수 있는 기능을 제공한다.[1] 이를 통해 폼 작성자는 사용자의 데이터를 XML 스키마 데이터 유형에 따라 유효성을 검사할 수 있다. 또한, 특정 데이터 필드를 필수로 지정하거나, 입력 컨트롤을 비활성화하거나, 상황에 따라 폼의 섹션을 변경하는 등의 작업을 수행할 수 있다.

XForms는 데이터 간의 특정 관계를 적용하고, 데이터의 가변 길이 배열을 입력하며, 폼 데이터에서 파생된 계산된 값을 출력하는 기능도 제공한다.[1] XML 문서를 사용하여 항목을 미리 채우고, 실시간으로 액션에 응답하며, 표시되는 장치(데스크톱 브라우저, 모바일, 텍스트 전용 등)에 따라 각 컨트롤의 스타일을 수정할 수 있다.[1]

이러한 고급 기능들은 자바스크립트와 같은 스크립팅 언어를 사용하지 않고도 구현할 수 있다.[1] XForms는 더 복잡한 폼 동작을 구현하기 위한 이벤트 모델과 액션을 포함하지만, 이러한 액션 및 이벤트 처리는 자바스크립트와 같은 일반적인 스크립팅 언어가 아닌 XForms XML 방언을 사용하여 지정된다.[1]

3. 소프트웨어 지원

현재 대부분의 주요 웹 브라우저는 XForms를 기본적으로 지원하지 않는다. 하지만, 다양한 브라우저 플러그인, 클라이언트 측 확장, 서버 측 솔루션을 통해 XForms를 사용할 수 있다.

3. 1. 브라우저 플러그인 및 확장


  • 파이어폭스 XForms 확장 기능은 모질라 프로젝트의 일부였다.[2] XForms 1.0 SE 지원은 완전하지는 않지만, HTML 테이블에서 사용되는 속성 기반 반복을 제외하고 대부분의 사양을 다루었다. 이 확장 기능은 파이어폭스 2와 파이어폭스 3에서 사용할 수 있었지만, 파이어폭스 4 이상을 지원하도록 업그레이드되지 않았다. 2011년 7월, 수석 개발자는 XForms 지원이 더 이상 업데이트되지 않을 것이라고 썼다.[3] 결국 파이어폭스 19에서 XForms에 대한 지원은 중단되었다.[4]
  • IBM 로터스 폼즈(IBM Lotus Forms)는 XForms 기반 순수 XML 양식의 개발 및 배포를 지원한다. Eclipse 기반 시각적 디자인 환경과 웹 브라우저 및 독립 실행형 데스크톱 응용 프로그램에서 XForms 기반 양식을 실행할 수 있는 클라이언트 측 뷰어의 평가판 다운로드를 할 수 있다.
  • [http://www.formsPlayer.com/ formsPlayer]는 인터넷 익스플로러 6 이상을 확장하여 XForms 외에도 DOM, XPath 등을 구현한다.

3. 2. 클라이언트 측 구현


  • 파이어폭스 XForms 확장 기능은 모질라 프로젝트의 일부였다.[2] HTML 테이블에서 사용되는 속성 기반 반복을 제외하고 대부분의 사양을 다루지만, XForms 1.0 SE 지원은 완전하지 않았다. 이 확장 기능은 파이어폭스 2와 파이어폭스 3에서 사용할 수 있었지만, 파이어폭스 4 이상을 지원하도록 업그레이드되지 않았다. 2011년 7월, 수석 개발자는 XForms 지원이 더 이상 업데이트되지 않을 것이라고 작성했다.[3] XForms에 대한 지원은 결국 파이어폭스 19에서 더 이상 사용되지 않게 되었다.[4]
  • FormFaces는 순수 자바스크립트 프로세서이다. XForms+HTML이 직접 브라우저로 전송되며, 자바스크립트가 XForms를 HTML 폼으로 변환한다. XHTML 1.0, ECMAScript-262 제3판, DOM Level 2에 대응하는 브라우저(인터넷 익스플로러, 모질라, 파이어폭스, 오페라, Konqueror, 사파리, NetFront)에서 사용 가능하다.
  • X-Smiles는 오픈 소스 Java 기반 클라이언트 구현(XML 브라우저)이다. XForms 외에도 XHTML, CSS, SVG 등을 지원한다.
  • OpenOffice.org 버전 2.0 이상 및 LibreOffice는 XForms를 지원한다.[5][6]

3. 3. 서버 측 구현

XForms는 서버 측에서 HTML 폼이나 다른 위젯(일반적으로 Ajax를 이용)으로 변환하여 즉시 사용할 수 있다. 다음과 같은 구현이 존재한다.

다음은 XHTML/XForms 문서를 HTML 및 자바스크립트 코드로 생성하는 서버 측에서 사용하는 컴파일러형 구현이다.

4. 구현 기술 비교

FormFaces, AJAXForms, XSLTForms, Chiba, Orbeon Forms 등은 Ajax 기술을 기반으로 한다. 이러한 구현들은 서버 측 및 클라이언트 측 처리 방식, 종속성, 확장성, 성능, 라이선스, 성숙도, 네트워크 트래픽, 오프라인 기능, 브라우저 간 호환성 등에서 차이가 있다.[1]

Ubiquity XForms, FormFaces 및 XSLTForms는 XForms 표준에서 순수 Ajax 처리를 통해 100% XForms 클라이언트 측 처리 및 데이터 모델 업데이트를 제공하는 반면, 다른 구현은 콘텐츠를 브라우저로 전달하기 전에 서버 측 Java/.NET XForms 처리를 사용하여 Ajax 마크업으로 변환한다. 두 기술 모두 브라우저에서 작동할 수 있다.[1]

FormsPlayer와 같은 클라이언트 측 플러그인은 브라우저에 통합되므로 기존 서버 아키텍처에서 작동하고, 응답성이 뛰어나며, 서버에서 데이터를 적게 가져올 수 있다는 장점이 있다.[1]

서버 측 및 클라이언트 플러그인 솔루션 간의 상충 관계는 소프트웨어가 유지 관리되는 위치에 있다. 즉, 각 클라이언트는 필요한 플러그인을 설치해야 하거나, XForms 변환기 엔진 언어 기술을 수용하도록 서버 아키텍처를 변경해야 한다. 이론적으로 이러한 솔루션을 모두 혼합하는 것이 가능하다. 예를 들어 클라이언트 측 XForms 구현에 대해 브라우저를 테스트하고 해당 경우 기본 XForms를 제공하며, 그렇지 않은 경우에는 서버 솔루션을 기본값으로 설정할 수 있다.[1]

Ubiquity XForms, FormFaces 및 XSLTForms는 클라이언트 또는 서버에서 "제로 소프트웨어" 솔루션을 제공한다. 클라이언트에 새로운 소프트웨어를 설치할 필요가 없으며, 모든 서버 측 아키텍처와 함께 솔루션을 사용할 수 있다. 이는 FormFaces 및 Ubiquity XForms가 100% Ajax로 작성되었고, XSLTForms가 XSLT 및 Ajax로 작성되었기 때문이다. 상충 관계는 다른 솔루션에 비해 더 많은 코드가 처음에 클라이언트에 다운로드된다는 것이다(코드는 클라이언트에 캐시될 수 있음). FormFaces는 아직 XML 스키마 유효성 검사를 지원하지 않는다.[1]

5. XRX 애플리케이션 아키텍처

XForms는 복잡한 XML 데이터를 쉽게 편집할 수 있게 해주므로, REST 인터페이스를 자주 활용하는 네이티브 XML 데이터베이스와 함께 XForms를 사용하는 데 많은 장점이 있다. 클라이언트 측의 XForms, REST 인터페이스, 서버 측의 XQuery의 세 가지 기술 조합을 통칭하여 XRX 애플리케이션 개발이라고 한다. XRX는 클라이언트와 데이터베이스 모두에서 XML을 사용하고, 객체 또는 관계형 데이터 구조로의 변환을 피하는 단순한 아키텍처로 유명하다.

6. 모바일 장치용 XForms

XForms는 서버와의 통신 횟수를 줄이고, 다양한 장치에 대한 사용자 인터페이스 개발을 간소화하며, 자바스크립트 의존성을 낮추는 등 모바일 환경에서 특히 유용하다.[1]

6. 1. 장점

XForms는 모바일 장치에서 사용할 때 다음과 같은 이점을 제공한다.[1]

  • XForms를 사용하는 사용자 인터페이스는 HTML 4 양식을 사용하는 사용자 인터페이스보다 자급자족적이며 서버와의 왕복 횟수가 적다.[1]
  • 모바일 장치의 기능은 매우 다양하여, 여러 장치에 대해 서로 다른 사용자 인터페이스를 생성해야 한다. XForms는 이러한 작업량을 줄이기 위해 장치와 독립적으로 양식을 설명할 수 있도록 설계되었다.[1]
  • XForms는 자바스크립트의 필요성을 줄여준다. 이는 모바일 장치에서 자바스크립트 지원이 크게 다르고 널리 의존하기 어렵다는 점에서 특히 흥미롭다. 또한 보안 문제로 자바스크립트가 비활성화된 시스템에서도 작동할 수 있다.[1]

6. 2. 구현

ODK[7]는 ODK XForms라고 불리는 W3C XForms 1.0의 하위 집합을 사용하는 오픈 소스 모바일 데이터 수집 플랫폼이다.[8] J2ME 플랫폼용 경량 XForms 클라이언트인 Xfolite([http://www.xfolite.org Xfolite]), MIDP 2.0 및 CLDC 1.x에 대응하는 휴대 전화에서 작동하는 PicoForms Micro Edition Browser([http://www.picoforms.com PicoForms Micro Edition Browser]), XForms 프로세서를 통합한 휴대용 애플리케이션 개발 플랫폼인 DataMovil([http://www.datamovil.info DataMovil])등이 있다. DataMovil은 Java ME 기반으로 각종 휴대 기기에서 작동한다.

참조

[1] 간행물 Live XML Data 2014-06
[2] 웹사이트 Mozilla XForms Project - Download https://www-archive.[...] Mozilla 2013-03-12
[3] 블로그 The Future of Mozilla XForms http://philipp.wagne[...] 2011-07-13
[4] 웹사이트 XForms https://developer.mo[...] Mozilla Developer Network (MDN) 2013-03-12
[5] 웹사이트 XML Form Documents (XForms) https://wiki.openoff[...] Apache OpenOffice 2020-05-24
[6] 웹사이트 XML Form Documents (XForms) https://help.libreof[...] The Document Foundation 2013-03-12
[7] 웹사이트 ODK - Collect data anywhere https://getodk.org/
[8] 웹사이트 ODK XForms Specification http://getodk.github[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com