확장 가능한 응용 프로그램 마크업 언어

Extensible Application Markup Language
XAML(Extensible Application Markup Language)
파일 이름 확장명
.xaml
인터넷 미디어 유형
application/xaml+xml
개발자마이크로소프트
초기 릴리즈2008년 6월(2008-06)
최신 릴리즈
v2019년
2019년 3월 12일; 3년(2019-03-12)[1]
형식 유형사용자 인터페이스 표시 언어
연장 위치XML

Extensible Application Markup Language(XAML /ˈzæməl/ 오디오 스피커 아이콘(듣기))마이크로소프트가 구조화된 값과 객체를 초기화하기 위해 개발한 선언적 XML 기반 언어다.마이크로소프트의 오픈 사양 약속에 따라 이용할 수 있다.[2]

XAML은 Windows Presentation Foundation(WPF), Silverlight, Workflow Foundation(WF), Windows UI Library(Win)에서 광범위하게 사용된다.UI) 및 범용 Windows 플랫폼(UWP)WPF와 UWP에서 XAML은 UI 요소, 데이터 바인딩 및 이벤트를 정의하는 사용자 인터페이스 마크업 언어다.그러나 WF에서 XAML은 워크플로우를 정의한다.

XAML 요소는 CLR(Common Language Runtime) 개체 인스턴스에 직접 매핑되며, XAML 속성은 해당 개체의 CLR 속성과 이벤트에 매핑된다.XAML 파일을 생성하려면 Microsoft Expression Blend, Microsoft Visual Studio, 호스트 가능한 WF Visual Designer, XAMLPad 또는 Vector Architect를 사용할 수 있다.

XAML에서 생성되거나 구현된 모든 것은 더 전통적인 를 사용하여 표현할 수 있다.NET 언어(예: C# 또는 Visual Basic).NET. 그러나 XAML은 XML을 기반으로 하기 때문에 툴이 XAML을 처리하는 데 필요한 복잡성을 줄이는 것이 이 기술의 핵심 측면이다.[3]

기술

XAML은 원래 Extensible Avalon Markup Language의 약자로, Avalon은 WPF(Windows Presentation Foundation)의 코드 이름이다.[4]끝나기 전에.그러나, NET Framework 3.0 개발은 마이크로소프트가 워크플로 파운데이션용 XAML(Workflow Foundation)을 채택했다.[4]

WPF에서 XAML은 시각적 사용자 인터페이스를 설명한다.WPF는 2D 및 3D 객체, 회전, 애니메이션 및 다양한 기타 효과와 특징을 모두 정의할 수 있다.XAML 파일은 BAML(Binary Application Markup Language) 파일로 컴파일할 수 있으며,[4][5] 이 파일은 에 리소스로 삽입될 수 있다.NET Framework 어셈블리.런타임에 프레임워크 엔진은 조립 리소스에서 BAML 파일을 추출하여 구문 분석하며 해당하는 WPF 시각 트리나 워크플로우를 생성한다.

WF 컨텍스트에서 XAML은 프로세스 모델링 도구 및 규칙 시스템에 의해 생성된 것과 같이 잠재적으로 장기간 실행 가능한 선언적 로직을 설명한다.워크플로우의 직렬화 형식은 이전에는 XAML의 UI 마크업 사용과 구별하기 위해 XOML이라고 불렸지만, 현재는 더 이상 구별되지 않는다.그러나 워크플로 마크업을 포함하는 파일의 확장자는 여전히 ".xoml"[6]이다.

XAML은 템플릿이라고 불리는 모양과 느낌을 정의하기 위해 특정한 방법을 사용한다. Cascading Style Sheet 구문과는 달리 XBL에 가깝다.[7]

이 Windows Presentation Foundation 예는 캔버스라는 최상위 XAML 컨테이너에 "Hello, world!"라는 텍스트를 보여준다.

<칸바스 xmlns="http://schemas.microsoft.com/client/2010" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <텍스트블록>안녕, 세상아!</텍스트블록> </칸바스>

스키마(더)xmlns="http://schemas.microsoft.com/..."부품)은 컴퓨터에서 작업하기 위해 변경되어야 할 수 있다.Microsoft에서 권장하는 스키마를 사용하면 다음과 같은[8] 예도 있을 수 있다.

<칸바스 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <텍스트블록>안녕, 세상아!</텍스트블록> </칸바스>

이는 브라우저 내에서 호스팅되는 샌드박스 환경에서 실행되는 컴파일된 응용프로그램인 XAML Browser Applications(XAML Browser Applications)를 사용하여 WPF를 설치하면 웹페이지로 통합할 수 있다.또 다른 방법은 Silverlight 플러그인을 사용하는 것이다.코드는 HTML 페이지에 직접 포함될 수 없으며, 오히려 JavaScript를 통해 페이지에 로드되어야 한다..NET 3.0 이상이 설치된 경우, 로스트 XAML 파일도 와 함께 호환되는 웹 브라우저(Internet ExplorerFirefox 포함)에서 자체적으로 볼 수 있다.Silverlight 플러그인이 필요 없는 NET Framework 3.0.[9]느슨한 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 파일은 위의 XAML 코드(XML 파일)를 MySilverlight HTML 요소 아래에 로드하는 코드를 포함해야 한다.


XAML을 최대한 활용하는 데 있어 중요한 부분은 바인딩의 적절한 사용과 함께 필요에 따라 사용자 지정 사용자 요소를 만드는 데 익숙해지는 것이다.바인딩은 다음과 같이 할 수 있다.

<텍스트박스> x:이름="txtInput" /> <텍스트블록> 텍스트={빈딩 ElementName=txtInput,Path=Text} /> 

XAML 버전 간의 차이점

XAML의 마이크로소프트 구현에는 다음과 같은 세 가지 주요 사항이 있다.

이 버전들은 파싱 동작에 약간의 차이가 있다.[10]또한 Silverlight 4 XAML 파서는 Silverlight 3 파일과 100% 역호환되지 않는다.Silverlight 3 XAML 파일은 Silverlight 4 파서에 의해 거부되거나 다르게 구문 분석할 수 있다.[11]

경기 대응

2007년, 주로 미국의 소프트웨어 회사들로 구성된 연합체인 유럽 상호운용성 시스템 위원회(ECIS)는 마이크로소프트가 HTML을 하이잭킹하여 XAML로 대체하려고 시도하여 벤더 락인을 만들었다고 비난했다.[12][13]아르스 테크니카에 기고한 제레미 라이머는 이 논평을 "가장 끔찍한 오류"라고 묘사했으며 XAML이 HTML을 대체하지 않을 것 같다고 덧붙였다.[13]

참고 항목

참조

  1. ^ "Extensible Application Markup Language (XAML)". Microsoft. 12 March 2019.
  2. ^ Worthington, David. "Microsoft adds XAML to 'Open Specification' list - Software Development Times On The Web". Archived from the original on 2008-12-11. Retrieved 2021-04-06.
  3. ^ "XAML Syntax In Detail". Windows Presentation Foundation library. Microsoft. 12 August 2021 – via Microsoft Docs.{{cite web}}: CS1 maint : url-status (링크)
  4. ^ a b c Rob Lelenea : 2004년 1월 - Wayback Machine2007-10-11 보관 게시
  5. ^ unknown (2009-07-30). "What is BAML?". DOTNET Spider. BAML means Binary Application Markup Language, which is a compiled version of the XAML. When you compile your XAML it creates the BAML file.
  6. ^ Andrew, Paul (25 January 2006). "xoml or xaml?". MSDN Community Archive. Microsoft. Workflow programs (or models) are saved in the XAML format which is common to Avalon for serializing .NET types as XML. Avalon XAML is all about UI and Workflow XAML is all about business process so there's quite a semantic difference. The XOML file extension looks to remain for Workflow models though the file format is XAML.{{cite web}}: CS1 maint : url-status (링크)
  7. ^ Guthrie, Scott (22 February 2008). "Silverlight Tutorial Part 7: Using Control Templates to Customize a Control's Look and Feel". ScottGu's Blog.{{cite web}}: CS1 maint : url-status (링크)
  8. ^ XAML 개요의 Microsoft XAML 개요 페이지(루트 요소xmlns)
  9. ^ 웹 상의 Windows Presentation Foundation: 웹 브라우저 응용 프로그램 - MSDN
  10. ^ "XAML Processing Differences Between Silverlight Versions and WPF". Silverlight Archive. Microsoft. 17 November 2011 – via Microsoft Docs. Silverlight includes a XAML parser that is part of the Silverlight core install. Silverlight uses different XAML parsers depending on whether your application targets Silverlight 3 or Silverlight 4. The two parsers exist side-by-side in Silverlight 4 for compatibility. In some cases, the XAML parsing behavior in Silverlight differs from the parsing behavior in Windows Presentation Foundation (WPF). WPF has its own XAML parser.{{cite web}}: CS1 maint : url-status (링크)
  11. ^ "XAML Processing Differences Between Silverlight Versions". Silverlight Archive. Microsoft. 17 November 2011 – via Microsoft Docs.{{cite web}}: CS1 maint : url-status (링크)
  12. ^ Beer, Stan (28 January 200). "Microsoft runs into EU Vista charges". iTWire. Retrieved 22 August 2013.{{cite web}}: CS1 maint : url-status (링크)
  13. ^ a b Reimer, Jeremy (26 January 2007). "European committee chair accuses Microsoft of hijacking the web". Ars Technica. Condé Nast. Retrieved 22 August 2013.{{cite web}}: CS1 maint : url-status (링크)

외부 링크