XAML
파일 확장자 | .xaml |
---|---|
인터넷 미디어 타입 |
application/xaml+xml |
개발 | 마이크로소프트 |
발표일 | 2008년 6월[1] |
최신 버전 | v2019 (2019년 3월 12일[2]) |
포맷 종류 | 사용자 인터페이스 마크업 언어 |
다음으로부터 확장 | XML |
확장 응용 프로그램 마크업 언어(Extensible Application Markup Language), 곧 XAML([zæ:mɛl])로 발음)은 마이크로소프트사가 구조값과 객체를 초기화하는 데 사용하려고 만든 선언형 XML 기반 언어이다. 마이크로소프트사의 Open Specification Promise를 통해 사용할 수 있다.[3] XAML은 원래 윈도우 프레젠테이션 파운데이션의 코드 이름이기도 했던 Avalon에서 따와서 "eXtension Avalon Markup Language"를 대표하는 말이었다.[4]
개요
[편집]XAML은 닷넷 프레임워크 3.0 기술에, 특히 윈도우 프레젠테이션 파운데이션(WPF), 윈도 워크플로 파운데이션(WF)에 널리 쓰인다. WPF에서 XAML은 사용자 인터페이스 마크업 언어로 쓰이면서 사용자 인터페이스의 요소, 데��터 바인딩, 이벤트 등의 기능을 정의한다. 윈도 워크플로 파운데이션에서 워크플로는 XAML을 사용하여 정의할 수 있다.
XAML 요소는 공통 언어 런타임 객체 인터페이스에 직접 매핑할 수 있지만 XAML은 공통 언어 런타임 속성과 이벤트를 해당 객체로 매핑하는 데 사용한다. XAML 파일은 마이크로소프트 익스프레션 블렌드, 마이크로소프트 비주얼 스튜디오, 호스팅 가능한 윈도 워크플로 파운데이션 비주얼 디자이너와 같은 시각 디자인 도구로 만들고 편집할 수 있다. 표준 문서 편집기, XAMLPad와 같은 코드 편집기, Vectropy와 같은 그래픽 편집기로 만들어 편집할 수도 있다.
XAML을 추가하거나 그것으로 만든 어떠한 것이든 C#, 비주얼 베이직 닷넷과 같은 기존에 쓰여왔던 닷넷 언어를 사용하여 표현할 수 있다. 그러나 이 기술의 주된 측면은 XML 기반이기에 XAML을 처리하는 도구에 필요한 복잡성을 줄이는 것이다.[5] 그 결과 다양한 제품이 XAML 기반의 응용 프로그램을 만들 수 있는(특히 윈도우 프레젠테이션 파운데이션) 공간에서 등장하고 있다. XAML은 단순히 XML 기반이므로 개발자들과 디자이너들은 컴파일을 하지 않아도 두 마크업 언어 사이에서 콘텐츠를 자유로이 공유하고 편집할 수 있다.
예
[편집]이 윈도우 프레젠테이션 파운데이션의 예는 캔버스(Canvas)라 불리는 최상위 XAML 컨테이너에 "Hello, world!"를 표시한다.
<Canvas xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<TextBlock>Hello, world!</TextBlock>
</Canvas>
스키마(xmlns="https://web.archive.org/web/20170705010515/http://schemas.microsoft.com/..." 부분)는 컴퓨터에서 동작할 수 있게 변경할 필요가 있다. 마이크로소프트가 권장하는 스키마를 사용한 예시는 다음과 같을 수도 있다.[6]
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<TextBlock>Hello, world!</TextBlock>
</Canvas>
이것은 브라우저 내에 호스팅되는 샌드박스 환경에서 실행되는 컴파일된 응용 프로그램인 XBAP를 사용하여 WPF를 설치하는 경우 웹 페이지로 통합할 수 있다. 다른 방법으로는 실버라이트 플러그인을 사용하는 것이다. 닷넷 3.0 이후가 설치되어 있다면 느슨한(loose) XAML 파일도 실버라이트 플러그인 없이 닷넷 프레임워크 3.0과 결합하여 호환 웹 브라우저(인터넷 익스플로러와 파이어폭스 포함) 직접 확인이 가능하다.[7] 코드는 HTML 페이지에 직접 추가할 수 없다. 대신 자바스크립트를 통해 페이지로 로드되어야 한다. 느슨한 XAML 파일들은 렌더링할 시각적인 내용을 정의하는 것으로 제한되는 마크업 전용 파일이다. 이들은 응용 프로그램과 컴파일되지 않는다.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>XAML Example</title>
<script type="text/javascript" src="MySilverlight.js" />
<script type="text/javascript" src="Silver.js" />
</head>
<body>
<div id="MySilverlight" >
</div>
<script type="text/javascript">
createMySilverlight();
</script>
</body>
</html>
MySilverlight.js 파일은 MySilverlight 요소 밑에 상기의 XAML 코드(XML 파일로)를 로드하는 코드를 포함해야 한다.
같이 보기
[편집]각주
[편집]- ↑ 《[MS-XAML] – v1.0, Xaml Object Mapping Specification 2006》 (PDF), 마이크로소프트, June 2006, 2010년 12월 24일에 원본 문서 (PDF)에서 보존된 문서, 2010년 6월 24일에 확인함
- ↑ “Extensible Application Markup Language (XAML)”. 마이크로소프트. 2019년 3월 12일.
- ↑ “Microsoft adds XAML to 'Open Specification' list - SD Times On The Web”. 2008년 12월 11일에 원본 문서에서 보존된 문서. 2011년 7월 19일에 확인함.
- ↑ “January 2004 - Posts - Rob Relyea”. 2007년 10월 11일에 원본 문서에서 보존된 문서. 2007년 10월 6일에 확인함.
- ↑ XAML Syntax Terminology
- ↑ Microsoft XAML Overview page at XAML Overview (Root element and xmlns)
- ↑ Windows Presentation Foundation on the Web: Web Browser Applications - MSDN