개발공부/WPF

[XAML] 엘리먼트 어트리뷰트(Element & Attribute)

개발자 찐빵이 2021. 10. 27. 00:39
728x90

XAML(Extensible Application Markup Language)
닷넷 API에서만 사용하는 XML 기반의 마크업 언어.
사용자 인터페이스 Element, 데이터 바인딩, 이벤트 등의 기능을 정의할 때 사용한다.

Element의 기능

  • 포함된 데이터에 대해 설명한다.
  • 다른 요소를 포함한다.

element는 다음과 같이 element 이름, 데이터 형식으로 구성된다.

"fruit"이라는 이름의 Element를 정의하는 방법

<xs:element name = "fruit" type = "xs:string">

이렇게 element가 정의된 경우라면 다음과 같이 element를 만들 수 있다.

<fruit> apple </fruit>
<fruit> strawberry </fruit>

주의사항

  • XML은 대/소문자를 구별한다.
  • 요소의 이름은 숫자나 밑줄 또는 "XML"이라는 문자로 시작될 수 없다.
  • 요소의 이름에는 공백이 포함될 수 없다.

Attribute의 기능

  • 요소(Element)의 부가 정보를 나타낸다.
  • 기본 값을 할당할 수 있고 순서에 상관 없이 선언될 수 있다.
  • '' 또는 ""로 묶여져서 나타낸다.
<xs:element name="fruits">
   <xs:complexType>
      <xs:sequence>
      <xs:element name="fruitNumber" type="positiveInteger"/>
      <xs:element name="fruitName" type="xs:string"/>
      <xs:element name="price" type="xs:number/">
    </xs:sequence>
    <xs:attribute name="fruitType" type="xs:string"/>
  </xs:complexType>
</xs:element>

이렇게 정의할 수 있고 XML 문서에는 다음과 같이 사용할 수 있다.

<?xml version="1.0">
<fruits fruitType = "GeneralFruits">
  <fruitNumber>1</fruitNumber>
  <fruitName>apple</fruitName>
  <price>5000</price>
</fruits>

XAML에는 .NET의 네임스페이스, 데이터 타입, 프로퍼티, 이벤트 등을 XML 네임스페이스, 엘리먼트, 어트리뷰트와 매핑해주는 규칙이 정의되어있다.

엘리먼트 종류

  • 오브젝트 엘리먼트(Object element)
    기본 생성자(Defalut constructor)를 사용해서 상응하는 닷넷 객체를 생성하는 것
  • 프로퍼티 엘리먼트
    복잡한 프로퍼티를 설정할 수 있는 대안. 표현이 길어질 수 있다.
    프로퍼티 엘리먼트는 단순한 프로퍼티(ex : Background Property)로 사용할 수 있으며, 이때 프로퍼티 엘리먼트는 생략된다.

어트리뷰트 종류

  • 프로퍼티 어트리뷰트(프로퍼티로 매핑)
    생성된 닷넷 객체에 동일한 프로퍼티를 설정하는 것과 동일하다.
  • 이벤트 어트리뷰트(이벤트로 매핑)
    객체의 이벤트 처리기와 연결된다.

참고 자료

엘리먼트와 어트리뷰트

반응형