XML(eXtensible Markup Language)

  • tree 구조 ( hierarchical )
  • 반드시 단 하나의 root만 가져야 한다
  • DTD(Document Type Definition)는 문서 당 하나여야 한다

```xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE note[

    <!ELEMENT note (to,from,heading,body)>

    <!ELEMENT to (#PCDATA)>

    <!ELEMENT from (#PCDATA)>

    <!ELEMENT heading (#PCDATA)>

    <!ELEMENT body (#PCDATA)>

]>


<TCPIP>

   <ip addr="loopback">127.0.0.1</ip>

     .

      .

       .

```


검색

```xml

일반적으로는         / 

문서 전체에서 검색   //       계층은 상관없음

attribute를 검색    @        /ip/@addr 하면 loopback이 나온다.

attribute로 검색    []       /ip[addr="loopback"]

```

xpath에서 namespace 때문에 tag가 검색이 잘 안되는데, 그럴 땐 //*[local-name()='ip']를 이용한다. 
또는 NameSpaceContext를 만들어서 xpath에 붙여도 된다.


namespace

다른 parent 아래에 있지만 이름이 같은 tag 들은 ``xml //tag``로 검색시 구분이 안되기 때문에, namespace를 지원한다.

```xml

<video:TCPIP xmlns:video="URL">

    <video:ip>

```
alias같은 개념으로 `` video == "URL"``이며 이를 이용해 중복을 회피할 수 있다.
Note ) namespace는 해당 element가 어느 group에 속해 있는지를 나타내는 것 이외에 어떤 의미도 가지지 않는다. 즉 element 이름이 `` video:ip``가 되는 것이 아니라, ip가 video group이라는 것만 나타낸다.



'JS Stack > Front-end' 카테고리의 다른 글

[jQuery] CDN, Usage  (0) 2017.04.13
쿠키(Cookie)와 저장소(Storage)  (0) 2017.04.12
[Front-end] DOM 이벤트 모델  (0) 2017.03.15
[JS] 팁, 문서 객체 모델(DOM)  (0) 2017.03.15
HTML (HTML5)  (0) 2017.03.01