티스토리 뷰

728x90

 


XML의 네임 스페이스

1. xml

xml에서 요소의 이름은 직접 정의할 수 있다.

따라서, 서로 다른 xml 문서를 통합할 경우 같은 이름을 가진 요소로 인한 충돌이 발생할 수 있다.

 

ex)

표의 기능을 하는 table 태그

<table>
    <tr>
        <td>Apples</td>
        <td>Bananas</td>
    </tr>
</table>

가구로써의 테이블을 나타내는 table 태그

<table>
    <name>African Coffee Table</name>
    <width>80</width>
    <length>120</length>
</table>

 

이는 접두사를 이용하여 해결할 수 있는데, 같은 이름에 다른 접두사를 붙이면 이름 충돌을 방지할 수 있다.

xml에서 접두사를 사용하려면, 접두사에 대한 네임스페이스를 정의해야 한다.

<요소이름 xmlns:접두사="식별자">

 

식별자에는 보통 통합 자원 식별자인 URI(Uniform Resource Identifier)를 사용한다.

<root xmlns:h="http://www.w3.org/TR/html4/"
      xmlns:f="https://www.w3schools.com/furniture">

    <h:table>
        <h:tr>
            <h:td>Apples</h:td>
            <h:td>Bananas</h:td>
        </h:tr>
    </h:table>

    <f:table>
        <f:name>African Coffee Table</f:name>
        <f:width>80</f:width>
        <f:length>120</f:length>
    </f:table>

</root>

 

 

2. 안드로이드

안드로이드에서는 xml의 요소와 속성들을 미리 정의하여 개발자가 원하는 기능의 요소를 사용할 수 있도록 제공해준다.

이러한 요소들을 사용하기 위해선 안드로이드가 정한 식별자의 네임스페이스를 사용하여야 한다.

우리가 사용하는 layout_width, layout_height 등의 속성들은 전부 정해진 식별자인 "http://schemas.android.com/apk/res/android"를 사용하여야 한다.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
</RelativeLayout>

 

다른 식별자의 네임스페이스를 사용한다면 layout_width 등의 속성을 사용할 수 없다.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android123"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!-- 오류 발생 -->
    
</RelativeLayout>

 

 

 

 

 

 

 

이 글은

패스트 캠퍼스 Android 앱 개발의 정석 with Kotlin 올인원 패키지 Online

강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.

 


728x90
댓글
공지사항