'xmlns' 태그의 글 목록 :: iopeni - Think of C#

WPF를 처음 접하였을 때 정말 복잡한 암호 처럼 보였던 

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

라는 문장을 보며 당췌 이게 뭐하는 것인지 몰랐습니다.


익스플로러에 저 URL을 두들겨 봐도 아무것도 없는 황당함... 외우는 것에 취약한 저는 쉐뜨를 연발 하며, WPF는 내가 공부 할 수 있는 뭔가가 아닌가보다 라며 절망에 빠졌던 기억이 있습니다.


어셈블리 PresentationFramework.dll version 4.0.0.0 을 디스어셈블 하여 보니....

다음과 같이 NameSpace와 맵핑 된 것이 하드 코딩 되어 있는 것을 확인 할 수 있었습니다.


1. winfx 영역

XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Shapes")

XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Navigation")

XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Controls")

XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Documents")

XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Shell")

XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Data")

XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows")

XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation","System.Windows.Controls.Primitives")

XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation","System.Windows.Media.Animation")

XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Input")

XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Media")

XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml", "System.Windows.Markup")


2. netfx 영역

XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Controls")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Navigation")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Documents")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Shapes")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Shell")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Navigation")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Data")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation","System.Windows.Controls.Primitives")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation","System.Windows.Media.Animation")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Input")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Media")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Shapes")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Shell")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Controls")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Data")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation","System.Windows.Controls.Primitives")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation","System.Windows.Media.Animation")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Input")

XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Documents")


3. xps영역

XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Input")

XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Media.Animation")

XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Controls")

XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Documents")

XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Shapes")

XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Navigation")

XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Data")

XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows")

XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Controls.Primitives")


사실 WPF를 학습하면서 XAML이 어떻게 구성되며, 어떤 네임스페이스를 사용하는지 알아야 하는 경우는 발생하지 않았으나 XAML을 구성하는데 있어서 어떤 네임스페이스를 사용하고 있는지 알아 두는 것도 나쁘지 않을 것 같아 정리 합니다.


XAML 코드에 기본 네임스페이스 말고 다른 네임스페이스를 언제 사용하게 될지 모르기 때문에 말이죠. 


사실 이 정리는 역어셈블을 통해 취득한 내용이므로 이것이 전체 네임스페이스 인지 아닌지는 알 수 없습니다.

아마도 제가 찾지 못했던 MSDN의 어느 구석에는 이 맵핑 정보가 있을지도 모르겠습니다.


OTL... 이 맵핑 정보 하나 알아내는 것도.. 어마 어마한 노력이...... 머리 나쁜 개발자는 점점 더 설곳이 없어지는거 같습니다......... 


http://msdn.microsoft.com/ko-kr/library/ms747086(v=vs.110).aspx

MSDN의 관련 정보 입니다.

Posted by 프로그래머란 카페인을 코드로 변환하는 기계다
,