MXML
1. 개요
MXML은 매크로미디어가 개발한 기술로, 어도비 시스템즈에 인수된 후 Adobe Flex Markup Language에서 MXML로 명칭이 변경되었다. MXML은 어도비 플래시 플랫폼의 일부이며, ActionScript, Action Message Format 등과 함께 사용된다. MXML은 "Hello World!"를 출력하는 간단한 애플리케이션 예제와 패널 및 콤보박스를 사용하는 예제와 같이 다양한 방식으로 사용될 수 있다. 어도비 플래시는 MXML로 작성된 애플리케이션을 실행하는 런타임 환경이다.
-
선언형 마크업 언어 -
XAML
XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다. -
선언형 마크업 언어 -
XBL
XBL은 XML 기반 언어로서 XUL 위젯의 동작 정의에 사용되며, 데이터 바인딩을 포함하는 `<bindings>` 요소 아래의 `<binding>` 요소를 통해 바인딩이 선언되고 CSS 속성 `-moz-binding`으로 XUL 요소에 적용된다. -
선언형 프로그래밍 언어 -
XAML
XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다. -
선언형 프로그래밍 언어 -
임베디드 SQL
임베디드 SQL은 호스트 프로그래밍 언어 내에 SQL 문을 삽입하여 데이터베이스와 상호 작용하는 기술로, 데이터베이스 액세스를 표준화하지만 보안 취약점과 이식성 저하의 단점도 가진다. -
마크업 언어 -
HTML
HTML은 웹 페이지 제작을 위한 표준 마크업 언어로서, 팀 버너스리가 제안하고 구현한 후 인터넷 발전과 함께 널리 사용되며, SGML에 기반하여 하이퍼텍스트 기능으로 다양한 콘텐츠를 표현하고 연결하며, W3C와 WHATWG에서 표준화를 진행하고 최신 버전은 HTML Living Standard이다. -
마크업 언어 -
XAML
XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다.
2. 역사
매크로미디어가 MXML을 개발하였으나, 이후 어도비에 인수되었다. 어도비 인수 후, Adobe Flex는 Apache Flex로 이관되었다. MXML은 원래 'Macromedia Flex Markup Language'의 약어였으나, 어도비 인수 후에는 약어가 아닌 것으로 변경되었다.
3. 문법
MXML은 XML 기반의 마크업 언어이므로, XML의 문법 규칙을 따른다. `<mx:Application>` 루트 요소를 사용하여 애플리케이션을 정의한다. `<mx:Panel>`, `<mx:ComboBox>` 등의 태그를 사용하여 UI 구성 요소를 선언적으로 배치한다. 중첩된 태그를 통해 계층적인 UI 구조를 표현한다. `dataProvider="{sampleArray}"`와 같이 중괄호({})를 사용하여 데이터 바인딩을 할 수 있다.
다음은 헬로 월드 프로그램 예시이다.
```xml
4. 예제 코드
다음은 MXML 코드 예제이다.
```xml
```
헬로 월드 예제는 다음과 같다.
```xml
4.1. 헬로 월드
다음은 "Hello World!"를 출력하는 간단한 MXML 애플리케이션 예제이다.
```xml
4.2. 패널 및 콤보박스
다음은 패널과 콤보박스를 포함하는 MXML 애플리케이션 예제이다.
```xml
5. 관련 기술
MXML은 원래 매크로미디어가 개발했지만, 어도비(현 어도비 시스템즈)에 인수되었다. 인수 후 Adobe Flex는 Apache Flex가 되었다. 원래 명칭은 Macromedia Flex Markup Language였지만, 어도비 인수 후에는 단순하게 MXML로 불렸으며, 이는 어떤 특정한 단어의 약자도 아니다.